中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

块存储扩容

扩容机器添加Monitor

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

  1. 编辑ceph.conf
    1
    2
    3
    cd
    /etc/ceph/
    vim ceph.conf
    
    1. 将“mon_initial_members=ceph1,ceph2,ceph3”修改为“mon_initial_members=ceph1,ceph2,ceph3,ceph4,ceph5”。
    2. 将“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。

1
ceph-deploy mgr create ceph4 ceph5

部署OSD

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

1
2
3
4
5
6
7
8
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