Ceph块设备快速入门

  要实践本手册,需要完成集群存储快速入门安装,并确保Ceph集群处于active状态,才能使用块设备

Note Ceph 块设备也叫 RBD 或 RADOS 块设备。

 

 

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

  安装Ceph

   1,确认你使用了合适的内核版本,详情见操作系统推荐

lsb_release -a #Ubuntu    
uname -r  #CentOS

   2,在管理节点上,通过ceph-deploy安装ceph

ceph-deploy install ceph-client

   注意:ceph-client为可以连接的主机名或者IP地址,最好设置好ssh免密,否则需要输入密码才能进行安装

      最好在对应节点设置好yum源使用以下命令安装,否则安装很慢或者安装失败

yum -y update && yum -y install ceph-radosgw 

   3,在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client 。

  ceph-deploy 工具会把密钥环复制到 /etc/ceph 目录,要确保此密钥环文件有读权限

  配置块设备

  1,创建存储池

  要创建一个存储池,执行

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}

  描述:存储池拥有的归置组总数。

确定 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

  例如创建一个存储池

[root@client ~]# ceph osd pool create rbd_pool 128
pool 'rbd_pool' created

   初始化存储池(没有返回)

[root@client ~]# rbd pool init rbd_pool

   2,创建一个存储卷

  创建存储卷卷名为volume1 使用存储卷为rbd_pool 大小问5000M

rbd create volume1 --pool rbd_pool --size 5000

   查看

[root@ceph-client]# rbd ls rbd_pool
volume1

 

# 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并不支持,所以映射报错

# 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掉相关特性

rbd feature disable rbd_pool/volume1 exclusive-lock object-map fast-diff deep-flatten

   再次映射

# rbd map rbd_pool/volume1
/dev/rbd0

   查看映射

# rbd showmapped
id pool     namespace image   snap device    
0  rbd_pool           volume1 -    /dev/rbd0 

   格式化挂载

mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt

   查看

# df -h |tail -1
/dev/rbd0                        4.9G   33M  4.9G    1% /mnt

 

posted @ 2020-08-06 17:13  minseo  阅读(452)  评论(0编辑  收藏  举报