服务端部署
部署ZooKeeper集群
共需要部署两个ZooKeeper集群,bcm-zk集群和ccm-zk集群。bcm-zk存储加速节点配置信息,ccm-zk存储GlobalCache集群信息。

配置注意项:
- gcache.conf如果故障域配置为机架,要求尽量将zookeeper集群的各个节点部署到不同的机架上,以防某个机架下电时,整个zk集群不可用的情况发生。
- gcache.conf和bcm.xml两个文件中的zk_server_list的需要保证和实际配置集群一致,如果不一致会出现以下两种现象:
- CCM-ZK部署
- 部署ccm ZooKeeper。
- 进入zkData目录创建并修改myid文件。
1 2
cd /opt/apache-zookeeper-3.6.3-bin && mkdir zkData cd zkData && echo 1 > myid
在ceph1节点将“myid”的值设置为“1”,ceph2/ceph3节点则分别设置“myid”的值为“2”和“3”。
- 进入“conf”目录,修改zoo.cfg的配置,注意修改dataDir的位置和server对应的端口号。
1 2 3
cd /opt/apache-zookeeper-3.6.3-bin/conf mv zoo_sample.cfg zoo.cfg vi zoo.cfg
1 2 3 4 5 6 7 8 9 10 11 12
tickTime=1000 initLimit=10 syncLimit=2 dataDir=/opt/apache-zookeeper-3.6.3-bin/zkData clientPort=2181 server.1=ceph1:2888:3888;2181 server.2=ceph2:2888:3888;2181 server.3=ceph3:2888:3888;2181 autopurge.purgeInterval=3 autopurge.snapRetainCount=3 maxClientCnxns=333 4lw.commands.whitelist=*
需要修改的参数配置建议如表 参数释义所示。
表1 参数释义 参数名称
参数说明
配置建议
dataDir
ZooKeeper数据存放目录。
请根据实际情况填写
server.x
ZooKeeper服务ID。
主机名(IP):2888:3888
autopurge.purgeInterval
清理历史快照的时间间隔,单位为小时。
可以设置时间周期,在业务不繁忙的时候进行清理。
3
autopurge.snapRetainCount
保留最近的多少个历史快照,用于数据恢复,最小值为3。
3
maxClientCnxns
同一台客户端与该server最大连接数,默认为60。
1000/zk节点数,三节点为333,四节点为250,以此类推
4lw.commands.whitelist
ZooKeeper4字命令白名单,默认是关闭的。
*
- 修改日志文件配置项,防止日志文件过大。
1
vi log4j.properties
1 2
zookeeper.log.maxfilesize=20MB zookeeper.log.maxbackupindex=100
1
vi /opt/apache-zookeeper-3.6.3-bin/bin/zkEnv.sh
1 2 3 4
if [ "x${ZOO_LOG4J_PROP}" = "x" ] then ZOO_LOG4J_PROP="INFO,ROLLINGFILE" fi
需要修改的参数配置建议如表 参数释义所示。
- 进入“/opt/apache-zookeeper-3.6.3-bin/bin”目录,修改zkServer.sh文件。
1 2
cd /opt/apache-zookeeper-3.6.3-bin/bin vi zkServer.sh
- 添加如下内容。
1
export LD_LIBRARY_PATH="/opt/gcache/lib"
- 修改/opt/apache-zookeeper-3.6.3-bin/bin/zkEnv.sh,添加JAVA_HOME路径。
vim /opt/apache-zookeeper-3.6.3-bin/bin/zkEnv.sh
添加如下内容。
1
JAVA_HOME="/usr/local/jdk8u282-b08"
- 修改目录属组权限。
1
chown globalcacheop:globalcache -R /opt/apache-zookeeper-3.6.3-bin
- 进入zkData目录创建并修改myid文件。
- 部署ccm ZooKeeper。
- BCM-ZK部署
- 部署bcm ZooKeeper。
- zkData目录创建并修改myid文件。
1 2
cd /opt/apache-zookeeper-3.6.3-bin-bcm && mkdir zkData cd zkData && echo 1 > myid
在ceph1节点将“myid”的值设置为“1”,ceph2/ceph3节点则分别设置“myid”的值为“2”和“3”。
- 进入“conf”目录,修改zoo.cfg的配置,注意修改dataDir的位置和server对应的端口号。
1 2 3
cd /opt/apache-zookeeper-3.6.3-bin-bcm/conf mv zoo_sample.cfg zoo.cfg vi zoo.cfg
1 2 3 4 5 6 7 8 9 10 11 12
tickTime=1000 initLimit=10 syncLimit=2 dataDir=/opt/apache-zookeeper-3.6.3-bin-bcm/zkData clientPort=2182 server.1=ceph1:2889:3889;2182 server.2=ceph2:2889:3889;2182 server.3=ceph3:2889:3889;2182 autopurge.purgeInterval=3 autopurge.snapRetainCount=3 maxClientCnxns=333 4lw.commands.whitelist=*
需要修改的参数配置建议如表 参数释义所示。
- 修改日志文件配置项,防止日志文件过大。
1
vi log4j.properties
1 2
zookeeper.log.maxfilesize=20MB zookeeper.log.maxbackupindex=100
1
vi /opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkEnv.sh
1 2 3 4
if [ "x${ZOO_LOG4J_PROP}" = "x" ] then ZOO_LOG4J_PROP="INFO,ROLLINGFILE" fi
需要修改的参数配置建议参考CCM-ZK配置表 参数释义。
- 进入“/opt/apache-zookeeper-3.6.3-bin-bcm/bin”目录,修改zkServer.sh文件。
1 2
cd /opt/apache-zookeeper-3.6.3-bin-bcm/bin vi zkServer.sh
- 添加如下内容。
1
export LD_LIBRARY_PATH="/opt/gcache/lib"
- 修改/opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkEnv.sh,添加JAVA_HOME路径。
vim /opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkEnv.sh
添加如下内容。
1
JAVA_HOME="/usr/local/jdk8u282-b08"
- 修改目录属组权限。
1
chown globalcacheop:globalcache -R /opt/apache-zookeeper-3.6.3-bin-bcm
- zkData目录创建并修改myid文件。
- 部署bcm ZooKeeper。

推荐使用单数节点的ZooKeeper集群,偶数节点的ZooKeeper可能会导致数据不一致。
ZooKeeper开机启动配置
在部署bcm-zk和ccm-zk的节点上设置zookeeper开机自动启动。用户根据当前节点实际部署zookeeper类型进行配置,以下示例节点同时部署了bcm-zk和ccm-zk。
- 进入到“/etc/rc.d/init.d”目录下,新建一个ZooKeeper脚本,并添加权限。
1 2 3
cd /etc/rc.d/init.d/ touch zookeeper chmod 700 zookeeper
- 编辑ZooKeeper脚本。
1
vim zookeeper
#!/bin/bash #chkconfig:2345 20 90 #description:zookeeper #processname:zookeeper export JAVA_HOME=/usr/local/jdk8u282-b08 case $1 in start) su globalcacheop /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh start su globalcacheop /opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkServer.sh start ;; stop) su globalcacheop /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh stop su globalcacheop /opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkServer.sh stop ;; status) su globalcacheop /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh status su globalcacheop /opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkServer.sh status ;; restart) su globalcacheop /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh restart su globalcacheop /opt/apache-zookeeper-3.6.3-bin-bcm/bin/zkServer.sh restart ;; *) echo "require start|stop|status|restart" ;; esac
- 添加到开机启动。
chkconfig --add zookeeper
- 检查是否添加成功。
chkconfig --list
部署Global Cache
- 服务端gcache.conf配置项配置。
vi /opt/gcache/conf/gcache.conf
- 以下为gcache.conf的全量可配置项,其中用#注释的配置项为默认项,即如果用户不配置的话,该配置项就会以默认值生效,如果用户取消注释进行配置,程序会以用户的配置值生效。
- 非默认项的配置项为必须配置项,即配置文件必须存在这些配置项,用户可以自行配置生效。
- gcache.conf中配置项以单元标签进行分类,注意配置项与单元标签是相关的,如果A单元的配置项配置到B单元的标签下不会生效
- 单元内的标签可以无序(A标签下的item1可以在item2之前也可以在之后,但是必须在A标签下),单元也可以无序(A单元可以在B单元之前,B单元也可在A单元之前)。
- ccm单元为ccm服务专属配置单元,gc、sa、global单元为globalcache服务专属配置单元,其余单元为共享配置单元。服务启动会校验专属配置单元和共享配置单元中的配置项。
## 注意关于文件夹,文件路径,路径配置项的值长度最长为128,过长会被判断非法 ## ---------------------------- log ---------------- # [log] # log_flush_interval = 500 ## 日志刷盘频率,单位毫秒,range:[0,2147483647] # log_size = 20971520 ## 最大备份日志大小,单位bytes,range:[0,20971520] # log_num = 100 ## 最大日志备份文件数量,单位个,range:[0,2147483647] # log_level = INFO ## 日志打印级别阈值,range:CRI,ERR,WARN,INFO,DBG # log_file_path = /var/log/gcache/ ## 日志文件路径 # log_backup_file_path = /var/log/gcache/backup/ ## 日志备份文件路径 # log_file_path_tmp = /opt/gcache/tmp/ ## # log_backup_file_path_tmp = /opt/gcache/tmp/backup ## # log_disk_threshold = 80 ## range:[0,100] # log_disk_interval = 1 ## range:[0,2147483647] # log_mod_level = 386:INFO ## 各模块日志级别,书写格式:moduAId:logLevel,modiBId:logLevel # zk_log_level = zk_log_level_info ## zk日志级别,range: zk_log_level_error,zk_log_level_warn, zk_log_level_info, zk_log_level_debug # log_retention_period = 31536000 ## 日志留存期,单位秒 ## --------------------------security------------------------ [security] tls_status=on ## 是否开启tls,range:on,off。注意如果配置为on,需要security标签下的所有配置项合法,比如kmc,cert路径文件存在;如果配置是off,那么启动时不会校验该单元标签下的配置项 # tls_version = 1.3 ## tls协议版本,目前只支持1.3 # max_connect = 4096 ## ssl最大链接数,range:[0,40960] # portid_start = 7880 ## 端口号起点,range:[1024,65535] # portid_end = 7889 ## 端口号终点,range:[1024,65535] # cert_check_period_days = 3 ## 证书过期检测周期天数,range:[0,2147483647] # cert_check_warnning_days = 90 ## 证书过期告警提前天数,range:[0,2147483647] # tls_cipher_list = TLS_AES_256_GCM_SHA384 ## tls算法, range:TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_CCM_SHA256, TLS_AES_128_CCM_8_SHA256 # cert_path = /opt/gcache/secure/Certs ## cert相关文件路径 # ca_file = ca.crt ## ca证书文件名,所在目录为cert_path配置路径 # keypass_file = identity.ks ## 口令文件名称,所在目录为cert_path配置路径 # agent_cert_file = agent.crt ## 设备证书文件名称,所在目录为cert_path配置路径 # public_key_file = agent.common ## 设备公钥文件名称,所在目录为cert_path配置路径 # private_key_file = agent.self ## 设备私钥文件名称,所在目录为cert_path配置路径 # revoke_crl_file = revoke.crl ## 吊销列表文件名称,所在目录为cert_path配置路径 # kmc_path = /opt/gcache/secure/kmc ## kmc相关文件路径 # kmc_primary_ksf = kmc.primary.ks ## kmc primary密钥文件名,所在目录为kmc_path配置路径 # kmc_standby_ksf = kmc.standby.ks ## kmc standby密钥文件名,所在目录为kmc_path配置路径 ## -------------------------- gcrpc ----------------- [gcrpc] ccm_address = 192.168.1.108:7910 ## ccm进程的rpc server侦听地址,ip与public_ipv4_addr保持一致 gc_address = 192.168.1.108:7915 ## gc进程的rpc server侦听地址,ip与public_ipv4_addr保持一致 # -----------------------------proxy----------------------------- [proxy] ceph_conf_path = /opt/gcache/ceph/ceph.conf ## ceph配置文件路径 ceph_keyring_path = /opt/gcache/ceph/ceph.client.admin.keyring ## ceph keyring文件路径 # core_number = 26,27,28,29 ## CephProxy绑核信息,其中每个数字表示CPU ID # bind_core = 1 ## 是否绑核,1表示绑核,0表示不绑核,为0时,core_number无效 # rados_log_out_file = /var/log/gcache/proxy.log rados_mon_op_timeout = 5 ## CephProxy与Monitor交互的请求超时时间,单位秒(s),如果不设置该选项或者改为0,则表示不超时,range:[0,2147483647] # rados_osd_op_timeout = 0 ## osd超时时间,0表示不设置超时,range:[0,2147483647] # --------------------------- communicate --------------------------------- [communicate] public_ipv4_addr = 192.168.1.108 ## 前端网络IP,服务端与客户端之间的网络, 用于客户端与SA(Sever Adapter)之间通信 # local_port = 7880,7881 ## 本节点用于接收客户端的请求的端口号,目前最多支持配置8个端口使用端口号,每个需要在[1024,65535]内的没有使用的端口号 zk_server_list = ceph1:2181,ceph2:2181,ceph3:2181 ## 在ZooKeeper中配置的IP,在/etc/hosts中映射得到,ZooKeeper server集群IP:port,如果是多机,则用逗号,隔开; 如果开启了tls_status,那么端口号需要设置为客户端安全端口号2281(与zookeeper server zoo.cfg中的配置相同)。无默认值,必须配置 # -----------------------------ccm---------------------------- [ccm] # replication_num = 3 ## 数据副本数,多节点填3,单节点填1 cache_node_num = 3 ## 当前gc集群节点数,该值必须不小于replication_num,不大于集群最大节点数128 pt_num = 4096 pg_num = 1024 # temp_fault_time_out = 1800 ## 临时故障检测时间,超时判断为永久故障,range:[1,2147483647] # check_node_up_time_out = 900 ## 节点启动检测时间,超时判断为节点故障,range:[1,2147483647] # heartbeat_timeout = 5 ## 心跳超时时间,单位秒,范围[3,20] # heartbeat_interval = 1 ## 心跳上报和检测时间间隔,单位秒,范围[1,3] # rpc_timeout = 5 ## 范围[5,15] ccm_monitor = 1 ## 该节点是否作为ccm部署节点,1为部署,0为不部署 fault_domain = node ## ccm故障域设置,可选值node或者rack # write_op_throttle = 200 ## 限制未返回的write operation的数量,0表示不限制 # read_op_throttle = 0 ## 限制未返回的read operation的数量,0表示不限制 # write_bw_throttle = 600000 ## 限制未返回的write operation的带宽,单位kb,0表示不限制 # read_bw_throttle = 0 ## 限制未返回的read operation的带宽,单位kb,0表示不限制 [gc] cluster_ipv4_addr = 192.168.2.108 ## 后端网络IP,服务端之间的网络,用于Plog(Persistence Layer)之间通信 ## ------------------------ cluster Hb ------------- # # cluster heartbeat parameters, 超时时间为retry_times * retry_interval + interval,如下默认配置为5s # [clusterHb] # interval = 1 ## 连接上如果没有数据发送的话,多久后发送keepalive探测分组,单位是秒,range:[1,3] # retry_times = 4 ## 关闭连接之前的最大重试次数,range:[3,10] # retry_interval = 1 ## 前后两次探测之间的时间间隔,单位是秒,range:[1,3] # -----------------------------sa----------------------------- # [sa] # core_number_64 = 18,19,20,21,22,23,24,25,26,27 ## server adaptor绑核信息,其中每个数字表示CPU ID # core_number_96 = 72,73,74,75,76,77,78,79,80,81,82,83 # core_number_128 = 72,73,74,75,76,77,78,79,80,81,82,83 # queue_amount = 8 ## 消息处理队列数量,range:[4,5000] # queue_max_capacity = 512 ## 消息处理队列最大容量, 最大1024,range:[1,1024] # msgr_amount = 5 ## SA的msgr-worker线程数量,range:[1,16] # bind_core = 1 ## messenger线程是否绑核,range:0 or 1 # bind_queue_core = 1 ## pthread绑核,range:0 or 1 # write_qos = 1 ## 是否启用wcache的QoS,0表示不启用 # get_quota_cyc = 1000 ## 启用wcacheQoS时,读取wcache带宽限额的时间间隔,单位ms # enable_messenger_throttle = 1 ## 是否启用Ceph messenger的QoS,0表示不启用 # sa_op_throttle = 30000 ## 限制未返回的operation的数量,0表示不限制 #-------------------------sa ceph------------------------- [global] ms_connection_idle_timeout = 259200 ## 空闲链接可以保留的时间,单位秒。网络超时配置 # 以下三个参数用于配置Ceph messenger的throttle。启用Ceph messenger的QoS时有效 osd_client_message_size_cap = 8589934592 osd_client_message_cap = 5000000000 ms_dispatch_throttle_bytes = 1258291200
- 拷贝ceph配置信息到/opt/gcache/ceph下。
1 2 3 4
cp /etc/ceph/ceph.conf /opt/gcache/ceph/ cp /etc/ceph/ceph.client.admin.keyring /opt/gcache/ceph/ chown globalcache:globalcache -R /opt/gcache/ceph/ chmod 640 /opt/gcache/ceph/*
- 执行touch /etc/sudoers.d/globalcache-smartctl 创建文件。
此处以nvme namespace为1作为示例,对于其余namespace对应进行修改。
1 2
touch /etc/sudoers.d/globalcache-smartctl vi /etc/sudoers.d/globalcache-smartctl
globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9]n1 globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9]n1p[0-9] globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9]n1p[0-9][0-9] globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1 globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1p[0-9] globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1p[0-9][0-9] globalcache ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1p[0-9][0-9][0-9] globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9]n1 globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9]n1p[0-9] globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9]n1p[0-9][0-9] globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1 globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1p[0-9] globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1p[0-9][0-9] globalcacheop ALL=NOPASSWD:/usr/sbin/smartctl -i /dev/nvme[0-9][0-9]n1p[0-9][0-9][0-9]
- 根据所使用的机器的NVMe盘的使用情况修改bdm.conf 配置文件,配置文件在“/opt/gcache/conf”目录下。
使用如下命令查看系统磁盘,确认哪一块盘是空闲的可以做BDM分区。
1
lsblk
如上图所示nvme0n1p13和nvme1n1p13是可以使用的,可以看到nvme0n1p13和nvme1n1p13的容量大小都是2.7T,7中关于创建池的大小设置可以根据实际情况分配。
bdm.conf配置文件中默认使用/path/to/your/disk作为BDM控制的设备,需要根据实际情况进行修改。通常情况下Ceph的WAL与DB分区会使用一部分NVMe空间,在这种情况下需要手动创建bdm的nvme分区。参考部署OSD节点,partition.sh脚本最后两行创建/dev/nvme0n1p13与/dev/nvme1n1p13给BDM使用,则修改bdm.conf配置文件为:
1 2 3 4 5 6 7 8 9
#metapool:id:<pool_id>:segmentSize:<size>:name:<name> #datapool:id:<pool_id>:segmentSize:<size>:name:<name> metapool:id:0:segmentSize:4096:name:metapool metapool:id:1:segmentSize:262144:name:headpool datapool:id:2:segmentSize:4194304:name:datapool #device:id:<disk_id>:size:<size>:status:<status>:name:<name> device:id:0:sn:0:size:0:status:0:name:/dev/nvme0n1p13 device:id:1:sn:0:size:0:status:0:name:/dev/nvme1n1p13
以上最后两行加粗的盘符即使用的NVMe盘。
当前版本CCM需要保证刚好具有两个分区,否则会导致启动失败。
当前版本需要保证7的WCachePool 180G空间和IndexPool 700G空间,RCachePool使用剩余空间。
- 修改使用的NVME分区的权限,以/dev/nvme0n1p13和/dev/nvme1n1p13为例。
1 2
chown globalcache:globalcache /dev/nvme0n1p13 chown globalcache:globalcache /dev/nvme1n1p13
- 为开机执行脚本添加执行权限。
1
chmod 700 /etc/rc.d/rc.local
打开rc.local。1
vi /etc/rc.d/rc.local
添加以下内容:
1 2
chown globalcache:globalcache /dev/nvme0n1p13 chown globalcache:globalcache /dev/nvme1n1p13
- 执行BDM的格式化操作, 并创建WcachePool、RcachePool、IndexPool、StreamPool。
BDM格式化前,需要确保gcache.conf配置正确,否则会初始化失败,失败原因可以查看/var/log/messages。
推荐配置:
3.2T nvme盘 * 2:推荐配置1
7.68T nvme盘 * 2:推荐配置2
推荐配置1:1 2 3 4 5
sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_format /opt/gcache/conf/bdm.conf --force sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 4194304 180G WCachePool sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 67108864 3500G RCachePool sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 67108864 700G IndexPool sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 4194304 20G StreamPool
推荐配置2:
1 2 3 4 5
sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_format /opt/gcache/conf/bdm.conf --force sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 4194304 180G WCachePool sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 67108864 7000G RCachePool sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 67108864 700G IndexPool sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_createCapPool 4194304 20G StreamPool
- 使用bdm_df命令查看信息。
1
sudo -u globalcacheop LD_LIBRARY_PATH=/opt/gcache/lib /opt/gcache/bin/bdm_df
查看Pool ID 3,4,5,6是否创建成功,并且Pool ID和3的创建顺序正确对应。
- 创建sysctl.conf配置文件,设置一个进程可以拥有的VMA(虚拟内存区域)的数量。
1
vi /etc/sysctl.conf
- 新增如下内容。
1 2 3 4 5 6 7
# sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. ## Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override# only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there.## For more information, see sysctl.conf(5) and sysctl.d(5). vm.max_map_count = 1000000
- 使修改内容生效。
1
sysctl -p
- 新增如下内容。
- 为安全起见,建议创建运维用户,禁止root用户的远程登录。
- 解除操作系统对普通用户使用su命令的限制。
vi /etc/pam.d/su
使用"#"注释掉红框的一行。
- 禁止root用户的远程登录。
1
vi /etc/ssh/sshd_config
修改PermitRootLogin为no。
- 重启sshd服务,使配置生效。
1
systemctl restart sshd.service
- 修改运维账号口令有效期为90天。
1
passwd -x 90 globalcacheop
修改运维账号口令到期前7天提醒。
1
passwd -w 7 globalcacheop
修改运维账号过期后35天内允许用户修改。
1
passwd -i 35 globalcacheop
- 解除操作系统对普通用户使用su命令的限制。

集群启动后,不可以使用/opt/apache-zookeeper-3.6.3-bin-bcm/bin和/opt/apache-zookeeper-3.6.3-bin/bin下的zkCli.sh对ZK集群的信息做出修改,否则会导致严重问题。