Ceph块设备快速入门
要实践本手册,需要完成集群存储快速入门安装,并确保Ceph集群处于active状态,才能使用块设备
1 | Note Ceph 块设备也叫 RBD 或 RADOS 块设备。 |
你可以在虚拟机上运行 ceph-client 节点,但是不能在与 Ceph 存储集群(除非它们也用 VM )相同的物理节点上执行下列步骤。
安装Ceph
1,确认你使用了合适的内核版本,详情见操作系统推荐。
1 2 | lsb_release -a #Ubuntu uname -r #CentOS |
2,在管理节点上,通过ceph-deploy安装ceph
1 | ceph-deploy install ceph-client |
注意:ceph-client为可以连接的主机名或者IP地址,最好设置好ssh免密,否则需要输入密码才能进行安装
最好在对应节点设置好yum源使用以下命令安装,否则安装很慢或者安装失败
1 | yum -y update && yum -y install ceph-radosgw |
3,在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client 。
ceph-deploy 工具会把密钥环复制到 /etc/ceph 目录,要确保此密钥环文件有读权限
配置块设备
1,创建存储池
要创建一个存储池,执行
1 2 3 4 | ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \ [crush-ruleset-name] [expected-num-objects] ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure \ [erasure-code-profile] [crush-ruleset-name] [expected_num_objects] |
参数含义如下
{pool-name}
描述:存储池名称,必须唯一
类型:String
是否必需:必需
{pg-num}
描述:存储池拥有的归置组总数。
1 2 3 4 5 6 7 | 确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值: 少于 5 个 OSD 时可把 pg_num 设置为 128 OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512 OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096 OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值 自己计算 pg_num 取值时可借助 pgcalc 工具 |
类型:整数
是否必需:必需
{pgp-num}
描述:用于归置的归置组总数。此值应该等于归置组总数,归置组分割的情况下除外。
类型:整数
是否必需:没指定的话读取默认值、或 Ceph 配置文件里的值。
默认值:8
{replicated|erasure}
描述:存储池类型,可以是副本(保存多份对象副本,以便从丢失的 OSD 恢复)或纠删(获得类似 RAID5 的功能)。多副本存储池需更多原始存储空间,但已实现所有 Ceph 操作;纠删存储池所需原始存储空间较少,但目前仅实现了部分 Ceph 操作。
类型:string
是否必需:No
默认值:replicated
例如创建一个存储池
1 2 | [root@client ~]# ceph osd pool create rbd_pool 128 pool 'rbd_pool' created |
初始化存储池(没有返回)
1 | [root@client ~]# rbd pool init rbd_pool |
2,创建一个存储卷
创建存储卷卷名为volume1 使用存储卷为rbd_pool 大小问5000M
1 | rbd create volume1 --pool rbd_pool --size 5000 |
查看
1 2 | [root@ceph-client]# rbd ls rbd_pool volume1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # rbd info volume1 -p rbd_pool rbd image 'volume1' : size 4.9 GiB in 1250 objects order 22 (4 MiB objects) snapshot_count: 0 id: 11586d5ffd28 block_name_prefix: rbd_data.11586d5ffd28 format: 2 features: layering, exclusive- lock , object -map, fast-diff, deep-flatten op_features: flags: create_timestamp: Thu Aug 6 17:45:49 2020 access_timestamp: Thu Aug 6 17:45:49 2020 modify_timestamp: Thu Aug 6 17:45:49 2020 |
将创建的卷映射成块设备
因为rbd镜像的一些特性,OS kernel并不支持,所以映射报错
1 2 3 4 5 | # rbd map rbd_pool/volume1 rbd: sysfs write failed RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable rbd_pool/volume1 object-map fast-diff deep-flatten" . In some cases useful info is found in syslog - try "dmesg | tail" . rbd: map failed: (6) No such device or address |
解决办法:disable掉相关特性
1 | rbd feature disable rbd_pool/volume1 exclusive- lock object -map fast-diff deep-flatten |
再次映射
1 2 | # rbd map rbd_pool/volume1 /dev/rbd0 |
查看映射
1 2 3 | # rbd showmapped id pool namespace image snap device 0 rbd_pool volume1 - /dev/rbd0 |
格式化挂载
1 2 | mkfs.xfs /dev/rbd0 mount /dev/rbd0 /mnt |
查看
1 2 | # df -h |tail -1 /dev/rbd0 4.9G 33M 4.9G 1% /mnt |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步