Ceph提供统一、高性能、高可用的分布式存储服务。所谓统一存储即支持对象存储(OBS)、块存储(EBS)、文件存储。本章主要介绍块存储的环境搭建。块存储即ceph -rbd,如上图所示,rbd是基于librados提供块设备接口。有两种具体的实现:一是Linux kernel直接调用librados访问块设备,二是利用kvm/qemu调用librbd来访问块设备。两种方式都需要与rados集群通信,因此需要在client安装ceph。
客户端安装ceph
这里不做详细介绍,安装好后需要配置ceph.conf(主要配置集群id和mon地址)和创建keyring。可以直接把mon主机下的配置拷贝到 /etc/ceph/下
升级客户端内核
由于Linux kernel支持rbd的版本较高,一般需要升级到较高版本(建议升级到3.12.*)(具体过程见附录A)编译时间有点久,慢慢等待...升级完成后重启主机,执行下列命令:检查内核是否有rbd模块。
# lsmod |grep ceph
libceph 221759 1 rbd
libcrc32c 1220 1 libceph
ceph块设备快速体验
创建块设备镜像
块设备镜像默认放在在pool:rbd ,也可单独创建pool。
命令:rbd create pool-name/image-name --size xxM/G [-m {mon-ip}][-k /keyring-path]
例如:# rbd create rbd01 –size 1024M
查看pool中镜像: # rbd ls
将镜像映射到块设备
命令:rbd map pool-name/image-name [ --id admin --keyfile secretfile]
例如:# rbd map rbd01
查看映射结果:# rbd showmapped
格式化块设备
# mkfs.ext4 -m0 /dev/rbd/rbd/rbd01
挂载该设备
# mkdir /mnt/ceph-block
# mount -t ext4 /dev/rbd/rbd/rbd01 /mnt/ceph-block
# df -h
附录A linux内核源码编译
# tar –jxvf linux3.12.17.tar.bz //将linux内核源码包解压
# mv linux3.12.17 /usr/src/kernel(可选) //将源码移到/usr/src/kernel
# cd /usr/src/kernel/linux3.12.17
# make menuconfig //在菜单模式下选择需要编译的rbd内核模块
# make
# make modules
# make modules_install
# make install
若上述步骤没有错误,接着下面的命令
# vim /etc/grub.conf //将 default=1 改为 default=0
# reboot //重启系统,并查看内核
# uname –r //查看内核版本
参考文献
1: http://ceph.com/docs/master/rbd/rbd-ko/