[Ceph] 分布式块存储

官网wiki


概述

mimic版本需要结合pool使用,一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。

  1. 环境部署图


    图1

    pool命令需在ceph-deploy节点使用
    你可以在虚拟机上运行 ceph-client 节点,但是不能在与 Ceph 存储集群(除非它们也用 VM )相同的物理节点上执行。



Pool 管理

引文

  1. 打印列表
    ceph osd lspools

  2. 创建
    ceph osd pool create rbd 128
    创建一个pg_num 为128 (适用于OSD数量小于5个),名字叫rbd的Pool;

  3. 格式化rbd格式
    ceph osd pool application enable rbd on pool rbd

  4. 删除
    ceph osd pool delete test-pool test-pool --yes-i-really-really-mean-it
    删除一个pool会同时清空pool的所有数据,因此非常危险。(和rm -rf /类似)。因此删除pool时ceph要求必须输入两次pool名称,同时加上--yes-i-really-really-mean-it选项。
    此外由于缺省没有配置mon节点的 mon_allow_pool_delete 字段所致,解决办法就是到mon节点进行相应的设置
    参考网址

  5. 查看状态
    rados df


块存储命令

相关命令需要在client节点使用。引文

  1. 创建镜像
    rbd create foo --size 4096 --image-feature layering
    PS: 后面的参数要带,具体意义参见 引文

  2. 快存储模式
    sudo rbd map foo --name client.admin

PS: 如果是centos 7.2,7.6没出现这个问题引文 可能会报错如下错误
missing required protocol features missing 400000000000000,解决方案

ceph osd crush tunables hammer
ceph osd crush reweight-all
  1. 文件系统格式化
    sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo
    /dev/rbd/rbd/foo是具体的foo路径

4.挂载使用

sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device

5.删除镜像
rbd rm testpool/myimage

  1. 镜像列表
    rbd ls

  2. 镜像明细
    rbd info foo

  3. 镜像后的对象数据
    rados -p testpool ls

  4. 卸载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。