1、ceph pool配置
(1)创建pool
ceph osd pool create {pool-name} {pg-num} [{pgp-num}]
(2)查看pool
ceph osdlspools
(3)设置pool的指标(pool池中最大存储对象数或最大存储字节数 有其一即可)
ceph osd pool set-quota {pool-name} [max_objects{obj-count}] [max_bytes {bytes}]
(4)重命名pool
cephosd pool rename {current-pool-name} {new-pool-name}
(5)查看pool的状态
rsdosdf
(6)给pool制作快照
cephosd pool mksnap {pool-name} {snap-name}
(7)删除pool的快照
cephosd pool rmsnap {pool-name} {snap-name}
(8)删除一个pool
cephosd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
2、ceph pg配置
(1)设置pool 中 pgs 的大小
ceph osd poolset {pool-name} pg_num
(2)获得 pool 中 pgs 的大小
ceph osd pool get {pool-name} pg_num
(3)设置 pool 中 pgs 组的大小
ceph osd poolset {pool-name} pgp_num
(4)获得 pool 中 pgs 组的大小
ceph osd poolget {pool-name} pgp_num
(5)查看集群中 pgs 的状态
ceph pg dump
(6)查看指定pg 的 map
ceph pg map{pg-id}
(7)查看指定pg 的状态
ceph pg {pg-id}query
(8)清除一个 pg
ceph pg scrub{pg-id}
3、ceph镜像配置
(1)查看更新Linux内核版本,
需相应Linux内核支持modproberbd 查看:uname –r
若不支持:
执行下述操作:
1) $ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2)$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
3)$sudo yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel
4)修改为新内核:
$ sudo grub2-set-default 'CentOS Linux (4.4.0-1.el7.elrepo.x86_64) 7 (Core)'
$ grub2-editenv list 查看修改
5) 最终更新设置内核:
$sudo grub2-mkconfig -o /boot/grub2/grub.cfg
(2)创建一个设备的镜像,size以M为单位
rbd create{image-name} --size {megabytes} –pool {pool-name}
如:
rbd createtestImage --size 512 --pool testPool
(3)列出一个 pool 里面的块设备,即创建的镜像
rbd list{pool-name}
(4)读出一个镜像里面的信息
rbd --image{image-name} -p {pool-name} info
(5)重新修改镜像的大小
rbd resize--image {image-name} –p {pool-name} --size 1024
(6)将块设备映射到本地
1)sudomodprobe rbd
2)sudo rbd map{image-name} --pool {pool-name}
(7)显示映射的模块
rbd showmapped
(8)从一个具体的 pool 中删除一个块设备
rbd rm {image-name} -p{pool-name}
(9)取消块设备的映射
sudo rbdunmap /dev/rbd/{poolname}/{imagename}
4、ceph快照配置
(1)创建快照
1)给镜像创建一个快照
$ rbd snap create {pool-name}/{image-name}@{snap-name}
2)列出一个镜像的所有快照
$ rbd snap ls {pool-name}/{image-name}
3)快照回滚
$ rbd snap rollback {pool-name}/{image-name}@{snap-name}
4)删除快照
$ rbd snap rm {pool-name}/{image-name}@{snap-name}
5)删除一个镜像的全部快照
rbd snap purge{pool-name}/{image-name}
(2)分层快照
1)首先创建一个特殊格式的的镜像,格式要求:format 2
rbd create --image-format 2 {image-name}--size { megabytes } --pool {pool-name}
2) 创建快照
rbd snap create {pool-name}/{image-name}@{snap-name}
3) 克隆品访问父快照。父快照,所有克隆品都会损坏。为防止数据丢失,必须先保护、然后再克隆快照。
rbd snap protect {pool-name}/{image-name}@{snapshot-name}
$ rbd clone rbd/testImage2@test2Snap rbd/testImage3
4) 克隆快照,将一个存储池中的镜像的快照克隆到另一存储池中,成为一个镜像
rbd clone {pool-name}/{parent-image}@{snap-name} {pool-name}/{child-image-name}
5) 删除快照
1] 删除方式一:
删除所有快照 取消快照保护 删除快照
2] 删除方式二:
首先将克隆品压缩 解除保护 删除快照
6) 取消快照保护
rbd snapunprotect {pool-name}/{image-name}@{snapshot-name}
7) 列出一块镜像的子孙
rbd children {pool-name}/{image-name}@{snapshot-name}
8) 克隆镜像压缩,进而消除父快照的引用
rbd flatten {pool-name}/{imag
5、ceph qemu配置
(1)使用 qemu 创建镜像
qemu-img create-f raw rbd:{pool-name}/{image-name} {size}
例如: qemu-img create -f raw rbd:testPool/testImage0 1G
(2)调整 qemu 镜像的大小
qemu-img resizerbd:{pool-name}/{image-name} {size}
(3)查看一个 qemu 镜像属性信息
qemu-img inforbd:{pool-name}/{image-name}
(4)转换 qemu 其他格式的镜像为块设备镜像
qemu-img convert-p -f 源镜像-O 目标镜像格式文件
rbd:poolname/imagename(转换后的文件)
(5)运行镜像中的虚拟机
qemu -m 内存大小 -driveformat=raw,file=rbd:poolname/imagename
(6)qemu 的带缓存控制
1) qemu -m1024 -drive format=rbd,file=rbd:poolname/imagename,cache=writeback
2) qemu –m 1024 \
-driveformat=raw,file=rbd:poolname/imagename:rbd_cache=true,cache=writeback
注:如若设置了rbd_cache=ture那么必须设置cache=writeback或者risk data loss 否则的话,qemu将不会发送请求给librbd如果qemu没有在配置文件中指定清楚,那么基于rbd的上层文件系统可能能被损坏
(7)qemu 缓冲操作
回写:
rbd_cache = true
直写:
rbd_cache = ture
rbd_cache_max_dirty = 0
无:
rbd_cache = false