Loading

5.8、ceph集群增加和删除Monitor

8 增加和删除Monitor

一个集群可以只有一个 monitor,推荐生产环境至少部署 3 个。Ceph 使用 Paxos 算法的一个变种对各种 map、以及其它对集群来说至关重要 的信息达成共识。建议(但不是强制)部署奇数个 monitor。Ceph 需要 mon 中的大多数在运行并能够互相通信,比如单个 mon,或 2 个中的 2 个,3 个中的 2 个,4 个中的 3 个等(半数可用机制)。初始部署时,建议部署 3 个 monitor。后续如果要增加,请一次增加 2 个。 在新节点 ceph-node04 172.16.1.34 节点上新增和删除 monitor

8.1 新增一个 monitor
1 在 ceph-deploy 节点上添加 ceph-node04 节点的 hosts 解析
[root@ceph-deploy my-cluster]# echo "172.16.1.34 ceph-node04" >> /etc/hosts

2 在 ceph-deploy 节点上分发秘钥到 ceph-node04 节点上
(1) 分发秘钥
[root@ceph-deploy my-cluster]# ssh-copy-id root@ceph-node04

(2) 检查秘钥是否分发成功
[root@ceph-deploy my-cluster]# ssh root@ceph-node04
[root@ceph-node04 ~]# exit

3 在 ceph-node04 节点上配置阿里云 yum 源
(1) 配置 ceph 源
[root@ceph-node04 ~]# cat > /etc/yum.repos.d/ceph.repo << EOF
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-octopus/el7/\$basearch
gpgcheck=0
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-octopus/el7/noarch
gpgcheck=0
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-octopus/el7/SRPMS
gpgcheck=0
EOF

(2) 配置 base、epel 源
[root@ceph-node04 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@ceph-node04 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

(3) 生成 yum 源缓存
[root@ceph-node04 ~]# yum clean all
[root@ceph-node04 ~]# yum makecache

4 通过 ceph-deploy 命令在 ceph-node04 节点上安装 ceph 相关的软件包
[root@ceph-deploy my-cluster]# ceph-deploy install --no-adjust-repos ceph-node04

5 修改 ceph.conf 配置文件,添加 mon 配置
在 mon_initial_members、mon_host 配置后面分别追加新增 mon 节点的 hostname 和 ip 地址。
[root@ceph-deploy my-cluster]# vim /root/my-cluster/ceph.conf
[global]
fsid = 14912382-3d84-4cf2-9fdb-eebab12107d8
mon_initial_members = ceph-node01, ceph-node02, ceph-node03, ceph-node04
mon_host = 172.16.1.31,172.16.1.32,172.16.1.33,172.16.1.34
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

[mon]
mon allow pool delete = true

6 使用 ceph-deploy 命令将配置文件 ceph.conf 和 admin key 复制到所有节点的 "/etc/ceph" 目录下(存在的会被覆盖),以便每次执行
ceph CLI 命令无需指定 monitor 地址和 ceph.client.admin.keyring
[root@ceph-deploy my-cluster]# ceph-deploy --overwrite-conf admin ceph-deploy ceph-node01 ceph-node02 \
ceph-node03 ceph-node04

7 通过 ceph-deploy 命令在 ceph-node04 节点上部署 monitor
[root@ceph-deploy my-cluster]# ceph-deploy mon create ceph-node04
[root@ceph-node04 ~]# ps -ef |grep -v grep |grep ceph
root       1844       1 0 10:20 ?       00:00:00 /usr/bin/python3.6 /usr/bin/ceph-crash
ceph       3577       1 1 14:21 ?       00:00:00 /usr/bin/ceph-mon -f --cluster ceph --id ceph-node04 --setuser
ceph --setgroup ceph

8 在安装 ceph-mon 服务的节点上重启 ceph-mon 服务
# 在ceph-node01、ceph-node02、ceph-node03、ceph-node04节点上操作
# systemctl restart ceph-mon.target

9 查看 mon 状态
[root@ceph-deploy my-cluster]# ceph quorum_status --format json-pretty
[root@ceph-deploy my-cluster]# ceph mon stat
e2: 4 mons at {
ceph-node01=[v2:172.16.1.31:3300/0,v1:172.16.1.31:6789/0],
ceph-node02=[v2:172.16.1.32:3300/0,v1:172.16.1.32:6789/0],
ceph-node03=[v2:172.16.1.33:3300/0,v1:172.16.1.33:6789/0],
ceph-node04=[v2:172.16.1.34:3300/0,v1:172.16.1.34:6789/0]},
election epoch 44, leader 0 ceph-node01, quorum 0,1,2,3 ceph-node01,ceph-node02,ceph-node03,ceph-node04

[root@ceph-deploy my-cluster]# ceph -s
cluster:
   id:     14912382-3d84-4cf2-9fdb-eebab12107d8
   health: HEALTH_OK

services:
   mon: 4 daemons, quorum ceph-node01,ceph-node02,ceph-node03,ceph-node04 (age 20m)
   mgr: ceph-node03(active, since 4h), standbys: ceph-node01, ceph-node02
   mds: cephfs:1 {0=ceph-node03=up:active} 2 up:standby
   osd: 6 osds: 6 up (since 4h), 6 in (since 37h)

data:
   pools:   3 pools, 81 pgs
   objects: 337 objects, 1.2 GiB
   usage:   8.7 GiB used, 111 GiB / 120 GiB avail
   pgs:     81 active+clean
8.2 删除 monitor

注意: 确保你删除某个 mon 后,其余 mon 仍能达成一致,如果不能达成一致,删除它之前需要先增加一个 mon。

1 卸载 ceph-node04 节点上的 mon
[root@ceph-deploy my-cluster]# ceph-deploy mon destroy ceph-node04
[root@ceph-node04 ~]# ps -ef | grep ceph
root       1844       1 0 10:20 ?       00:00:00 /usr/bin/python3.6 /usr/bin/ceph-crash
root       3860   1426 0 15:14 pts/0   00:00:00 grep --color=auto ceph

2 卸载 ceph 包并清理数据
[root@ceph-deploy my-cluster]# ceph-deploy purge ceph-node04

执行的命令实际为:
# yum -y -q remove ceph ceph-release ceph-common ceph-radosgw
"/etc/ceph/"目录会被移除。

3 清理 ceph-node04 节点上的数据
[root@ceph-deploy my-cluster]# ceph-deploy purgedata ceph-node04

执行的命令为:
Running command: rm -rf --one-file-system -- /var/lib/ceph
Running command: rm -rf --one-file-system -- /etc/ceph/

4 彻底清理 ceph 相关软件包
[root@ceph-node04 ~]# rpm -qa |grep 15.2.15 |xargs -i yum remove {} -y

5 将 ceph-deploy 节点上 ceph-node04 的 hosts 解析删除

6 修改 ceph.conf 配置文件,删除 mon 配置
在 mon_initial_members、mon_host 配置后面分别删除新增 mon 节点的 hostname 和 ip 地址。
[root@ceph-deploy my-cluster]# vim /root/my-cluster/ceph.conf
[global]
fsid = 14912382-3d84-4cf2-9fdb-eebab12107d8
mon_initial_members = ceph-node01, ceph-node02, ceph-node03
mon_host = 172.16.1.31,172.16.1.32,172.16.1.33
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

[mon]
mon allow pool delete = true

7 推送修改的 ceph.conf 文件到所有节点(覆盖旧的/etc/ceph/ceph.conf)
[root@ceph-deploy my-cluster]# ceph-deploy --overwrite-conf config push ceph-deploy ceph-node01 ceph-node02 \
ceph-node03

8 在安装 ceph-mon 服务的节点上重启 ceph-mon 服务
# 在ceph-node01、ceph-node02、ceph-node03节点上操作
# systemctl restart ceph-mon.target

9 查看 mon 的状态
[root@ceph-deploy my-cluster]# ceph quorum_status --format json-pretty
[root@ceph-deploy my-cluster]# ceph mon stat
e3: 3 mons at {
ceph-node01=[v2:172.16.1.31:3300/0,v1:172.16.1.31:6789/0],
ceph-node02=[v2:172.16.1.32:3300/0,v1:172.16.1.32:6789/0],
ceph-node03=[v2:172.16.1.33:3300/0,v1:172.16.1.33:6789/0]},
election epoch 50, leader 0 ceph-node01, quorum 0,1,2 ceph-node01,ceph-node02,ceph-node03

[root@ceph-deploy my-cluster]# ceph -s
cluster:
   id:     14912382-3d84-4cf2-9fdb-eebab12107d8
   health: HEALTH_OK

services:
   mon: 3 daemons, quorum ceph-node01,ceph-node02,ceph-node03 (age 23m)
   mgr: ceph-node03(active, since 5h), standbys: ceph-node01, ceph-node02
   mds: cephfs:1 {0=ceph-node03=up:active} 2 up:standby
   osd: 6 osds: 6 up (since 5h), 6 in (since 38h)

data:
   pools:   3 pools, 81 pgs
   objects: 337 objects, 1.2 GiB
   usage:   8.7 GiB used, 111 GiB / 120 GiB avail
   pgs:     81 active+clean

posted @ 2021-12-29 17:18  云起时。  阅读(845)  评论(0编辑  收藏  举报