块设备简介
Ceph 块设备把一个设备映像条带化到集群内的多个对象,其中各对象映射到一个归置组并分布出去,这些归置组会分散到整个集群的 ceph-osd 守护进程上。条带化会使 RBD 块设备比单台服务器运行的更好!
精简的、可快照的 Ceph 块设备对虚拟化和云计算很有吸引力。
在虚拟机场景中,人们一般会用 Qemu/KVM 中的 rbd 网络存储驱动部署 Ceph 块设备,其中宿主机用 librbd 向客户机提供块设备服务;很多云计算堆栈用 libvirt 和管理程序集成。
你可以用精简的 Ceph 块设备搭配 Qemu 和 libvirt 来支持 OpenStack 和 CloudStack ,一起构成完整的方案。
安装客户端
# apt-get -y install ceph-common
准备集群配置文件和keyring访问凭证
/etc/ceph/ceph.client.admin.keyring
/etc/ceph/ceph.conf
创建块设备
# rbd create --pool rbd --image test --image-format 2 --image-feature layering --size 2G
# rbd ls rbd
test
# rbd info rbd/test
rbd image 'test':
size 2048 MB in 512 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.241ad42ae8944a
format: 2
features: layering
flags:
映射块设备
# rbd map rbd/test
/dev/rbd0
# rbd showmapped
id pool image snap device
0 rbd test - /dev/rbd0
格式化
# mkfs.ext4 -q /dev/rbd0
挂载使用
# mkdir -p /mnt/ceph-block-device
# mount /dev/rbd0 /mnt/ceph-block-device
查看挂载
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 46G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 4G 0 part [SWAP]
sdb 8:16 0 8G 0 disk
rbd0 254:0 0 2G 0 disk /mnt/ceph-block-device
编辑/etc/ceph/rbdmap文件,设置自动map
rbd/test id=admin,keyring=/etc/ceph/ceph.client.admin.keyring
修改fstab,设置开机挂载
/dev/rbd0 /mnt/ceph-block-device ext4 defaults,noatime,_netdev 0 0
rbdmap服务默认开机自启动,无须配置。
重启主机,测试开机是否自动map并挂载设备成功
块设备扩容
# rbd resize rbd/test --size 10G
# resize2fs /dev/rbd0