创建一个新brb的存储池(有多个类型存储或者需要按区域分组时,注意参考建立osd分组优快云):
###创建存储池,指定pg和pgp数量,pg或pgp数量可后期根据需求调整:
# ceph osd pool create {pool} {pg_num} {pgp_num}
ceph osd pool create testpool 64 64
###作为rbd存储池使用:
ceph osd pool application enable testpool rbd
在指定存储池创建指定大小的rbd磁盘image
###在testpool存储池中创建一个名为testimge、磁盘大小为1G的磁盘:
rbd create testpool/testimage --size 1024
客户端挂载条件及优化:
###客户端安装ceph-common或ceph-fuse:
#centos:
yum install ceph-common
#ubuntu
apt install ceph-common
###拷贝ceph.conf 文件:
scp monhost:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
#或
ssh {mon_host} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf
### 创建 ceph 用户client(指定用户名)权限(server),可直接使用admin的keyring:
ceph auth caps client.client mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=testpool'
### 获取client.client(指定用户名)的密钥keyring,
ceph auth get-or-create client.client | ssh {client_ip} sudo tee /etc/ceph/ceph.client.client.keyring
# 或直接生成keyring后复制到客户端
### 禁用不支持的模块(可忽略):
rbd feature disable testpool/testimage fast-diff
rbd feature disable testpool/testimage object-map
rbd feature disable testpool/testimage exclusive-lock
rbd磁盘映射,内核挂载:
###使用指定id和密钥挂载
rbd map testpool/testimage --id admin --keyring /etc/ceph/ceph.client.admin.keyring
#查看挂载磁盘:
lsblk
#一般第一个路径为/dev/rbd0;
#### 格式化磁盘并挂载
##查看不到map此盘或出现内核模块错误时:
modprobe rbd
#创建挂载点
mkdir /test
#格式化磁盘
mkfs.xfs /dev/rbd0
#挂载磁盘
mount /dev/rbd0 /test
查看和取消设备映射:
###查看已映射设备:
rbd showmapped
###取消设备映射:
rbd unmap /dev/rbd0
#或
rbd unmap testpool/testimage
rbd镜像容量调整:
###镜像进行扩容到5G
rbd resize --size 5G rbdpool/image
###缩容到2G
rbd resize --size 2G rbdpool/image --allow-shrink
###扩容格式化
resize2fs /dev/rbd0
###如果是 xfs 格式硬盘扩容格式化略有不同,命令如下:
xfs_growfs /dev/rbd0