Ceph命令集

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

 

你可能感兴趣的:(Ceph)