---
title: 块存储扩容
description: "如果需要添加Monitor，如图修改ceph1的“/etc/ceph/ceph.conf”，在“mon_initial_members”和“mon_host”中添加ceph4和ceph5的IP地址。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengceph_07_0005.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengceph_07_0005.html
indexId: 7372fb09650865b8799e3158f97033c93e8546ed22c9652387b1e54e8a9fc6f068
---
# 块存储扩容

#### 扩容机器添加Monitor

如果需要添加Monitor，如图修改ceph1的“/etc/ceph/ceph.conf”，在“mon_initial_members”和“mon_host”中添加ceph4和ceph5的IP地址。

1. 编辑ceph.conf。
```
cd
/etc/ceph/
vim ceph.conf
```


  a. 将“mon_initial_members=ceph1,ceph2,ceph3”修改为“mon_initial_members=ceph1,ceph2,ceph3,ceph4,ceph5”。
  b. 将“mon_host=192.168.3.156,192.168.3.157,192.168.3.158”修改为“mon_host=192.168.3.156,192.168.3.157,192.168.3.158,192.168.3.197,192.168.3.198”。
2. 将ceph.conf从ceph1节点推送至各个节点。
  1 ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3 ceph4 ceph5

3. 在ceph1创建monitor。
  1 ceph-deploy mon create ceph4 ceph5

4. 查看mon状态。
  1 ceph mon stat

  若“mon stat”中出现扩容机器的信息，说明扩容进来的服务器创建Monitor成功。


#### （可选）删除Monitor

删除monitor对集群影响较大，一般需要提前规划好，如不需要，可以不用删除。


以删除Monitor ceph2和ceph3为例，需修改ceph1的“/etc/ceph/ceph.conf”文件中的ceph2和ceph3的信息，并将ceph.conf推送至各节点。

1. 编辑ceph.conf。
  1 2 3 cd /etc/ceph/ vim ceph.conf

  将“mon_initial_members=ceph1,ceph2,ceph3,ceph4,ceph5”修改为“mon_initial_members=ceph1,ceph4,ceph5”。

  将“mon_host=192.168.3.156,192.168.3.157,192.168.3.158,192.168.3.197,192.168.3.198”修改为“mon_host=192.168.3.156,192.168.3.197,192.168.3.198”。

2. 将ceph.conf从ceph1节点推送至各个节点。
  1 ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3 ceph4 ceph5

3. 删除monitor ceph2和ceph3。
  1 ceph-deploy mon destroy ceph2 ceph3


#### 部署MGR

为扩容的节点ceph4和ceph5创建MGR。

```
ceph-deploy mgr create ceph4 ceph5
```


#### 部署OSD

给扩容进来的服务器创建OSD，由于每台服务器有12块硬盘，执行如下命令：

```
for i in {a..l}
do
ceph-deploy osd create ceph4 --data /dev/sd${i}
done
for i in {a..l}
do
ceph-deploy osd create ceph5 --data /dev/sd${i}
done
```


#### 配置存储池

1. 查看存储池信息。
  1 ceph osd lspools

2. 修改相应的“pgnum”和“pgpnum”。
  pg的计算规则如下：

  Total PGs = (Total_number_of_OSD * 100 / max_replication_count) / pool_count

  因此按照该环境修改“pgnum”和“pgpnum”如下： 1 2 ceph osd pool set poolname pg_num 2048 ceph osd pool set poolname pgp_num 2048


#### 添加块设备

1. 列出存储池信息。
  1 ceph osd lspools

2. 在ceph1上创建image。
  在 RBD 存储池中创建5个块设备，每个块设备大小为200G，脚本命令如下：

  1 2 3 4 5 6 7 8 9 10 11 12 #!/bin/bash pool="vdbench" size="204800" createimages() { for image in {0..4} do rbd create image${image} --size ${size} --pool ${pool} --image-format 2 --image-feature layering sleep 1 done } createimage

3. 查看存储池的image。
  1 rbd ls vdbench


#### 验证扩容

扩容后，Ceph会通过迁移来自其他OSD的一些pg到新添进的OSD，再次平衡数据。

1. 确认数据迁移结束后集群是否恢复健康。
  1 ceph -s

2. 确定集群的存储容量是否增加。
  1 ceph osd df
