Ceph集群扩容

一个基本的集群启动并开始运行后,下一步就是扩展集群

做以下实验:

1.在node4(192.168.10.14)上添加一个 OSD 守护进程

2.分别在 node2 和 node3 上添加 Ceph Monitor ,以形成 Monitors 的法定人数

 

实验:为ceph集群添加OSD

一.准备工作

在所有节点上修改解析记录,加入node4

在node4节点上:

配置时间与管理节点admin同步

配置好yum源并安装好ceph软件

挂载好一块磁盘

 

在管理节点admin上:

把用户公钥传到node4上

 

二.配置集群加入OSD

在管理节点上操作:

[root@node4 ~]# mkfs.xfs /dev/sdb
[root@node4 ~]# mkdir /mnt/osd4
[root@node4 ~]# mount /dev/sdb /mnt/osd4/
 
[root@admin ~]# cd /etc/ceph/
[root@admin ceph-cluster]# ceph-deploy osd prepare node4:/mnt/osd4 #准备osd
[root@kafka3 ceph]# chown -R ceph.ceph /mnt/osd4 #赋予权限
[root@admin ceph-cluster]# ceph-deploy osd activate node4:/mnt/osd4 #激活osd

 

一旦你新加了 OSD ,,Ceph 集群就开始重均衡,把归置组迁移到新 OSD 。可以用下面的 ceph 命令观察此过程:

[root@admin ceph-cluster]# ceph -w

 

=====================================================================

删除OSD

1.把OSD踢出集群

删除 OSD 前,它通常是 up 且 in 的,要先把它踢出集群,以使 Ceph 启动重新均衡、把数据拷贝到其他 OSD

ceph osd out {osd-num}

例:

[root@admin ceph-cluster]# ceph osd out 2

 

2.观察数据迁移

一旦把 OSD 踢出( out )集群, Ceph 就会开始重新均衡集群、把归置组迁出将删除的 OSD 。你可以用 ceph 工具观察此过程

ceph -w

你会看到归置组状态从 active+clean 变为 active, some degraded objects 、迁移完成后最终回到 active+clean 状态

 

3.停止OSD进程

把 OSD 踢出集群后,它可能仍在运行,就是说其状态为 up 且 out 。删除前要先停止 OSD 进程

/etc/init.d/ceph stop osd.{osd-num}

-----------------------------------------------------

这是el6中的操作方法,7中可kill进程号, 或用systemd结束

systemctl stop  ceph-osd@4

结束进程后用ceph osd tree可以看到osd状态已经由up变成了down


4.删除 OSD

此步骤依次把一个 OSD 移出集群 CRUSH 图、删除认证密钥、删除 OSD 图条目、删除 ceph.conf 条目。

如果主机有多个硬盘,每个硬盘对应的 OSD 都得重复此步骤

1) ceph osd crush remove {name} #删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了,name可用ceph osd crush tree查看

例:

[root@admin ceph-cluster]# ceph osd crush remove osd.2

 

2)删除 OSD 认证密钥: ceph auth del osd.{osd-num}

例:

[root@admin ceph-cluster]# ceph auth del osd.2

 

3)删除 OSD: ceph osd rm {osd-num}

例:

[root@admin ceph-cluster]# ceph osd rm 2

 

=======================================================

有时候,(通常是只有几台主机的“小”集群,比如小型测试集群)拿出( out )某个 OSD 可能会使 CRUSH 进入临界状态,这时某些 PG 一直卡在 active+remapped 状态.如果遇到了这种情况,你应该把此 OSD 标记为 in :

ceph osd in {osd-num}

 

等回到最初的状态后,把它的权重设置为 0 ,而不是标记为 out ,用此命令:

ceph osd crush reweight osd.{osd-num} 0

 

执行后,你可以观察数据迁移过程,应该可以正常结束。把某一 OSD 标记为 out 和权重改为 0 的区别在于,前者,包含此 OSD 的桶、其权重没变;而后一种情况下,桶的权重变了(降低了此 OSD 的权重)。某些情况下, reweight 命令更适合“小”集群。

 


 

实验:为ceph集群添加monitor

 

Ceph 存储集群需要至少一个 Monitor 才能运行。

为达到高可用,,型的 Ceph 存储集群会运行多个 Monitors,这样在单个 Monitor 失败时不会影响 Ceph 存储集群的可用性。

Ceph 使用 PASOX 算法,此算法要求有多半 monitors(即 1 、 2:3 、 3:4 、 3:5 、 4:6 等 )形成法定人数

下面我们要在node1和node2上添加monitor,以形成monitor的法定人数:

1.修改配置文件:

[root@admin ceph]# vim ceph.conf

ceph的块储存接入层适配的虚拟化协议 ceph扩容节点_权重

 

2.新增monitor成员:

[root@admin ceph]# ceph-deploy --overwrite-conf mon add node1
[root@admin ceph]# ceph-deploy --overwrite-conf mon add node2
 
或 ceph-deploy mon create {host-name [host-name]...}

 

注: 在一主机上新增监视器时,如果它不是由 ceph-deploy new 命令所定义的,那就必须把 public network 加入 ceph.conf 配置文件

 

 

3.添加完成后查看:

[root@admin ceph]# ceph quorum_status --format json-pretty

ceph的块储存接入层适配的虚拟化协议 ceph扩容节点_权重_02

 

 

-------------------------------------------------------------------------------------------------------------------

删除monitor

ceph-deploy mon destroy {host-name [host-name]...}