RBD命令

检查Pool Ceph启动后默认创建rbd这个pool,使用rbd命令默认使用它,我们也可以创建新的pool。 rados lspools ceph osd pool create rbd_pool 1024

创建image 使用rbd命令创建image,创建后发现rbd这个pool会多一个rbd_directory的object。 rbd create test_image –size 1024 rbd ls rbd –image test_image info rados -p rbd ls 修改image大小

增加Image大小可以直接使用resize子命令,如果缩小就需要添加–allow-shrink参数保证安全。 rbd –image test_image resize –size 2000 rbd –image test_image resize –size 1000 –allow-shrink 使用Image

通过map子命令可以把镜像映射成本地块设备,然后就可以格式化和mount了。 rbd map test_image rbd showmapped mkfs.ext4 /dev/rbd0 mount /dev/rbd0 /mnt/

移除Image umount /dev/rbd0 rbd unmap /dev/rbd0 rbd showmapped 删除Image

删除和Linux类似使用rm命令即可。 rbd –image test_image rm RBD快照

创建快照

通过snap子命令可以创建和查看快照。 rbd snap create –image test_image –snap test_snap rbd snap ls –image test_image 快照回滚

使用snap rollback就可以回滚快照,由于快照命名是镜像名后面加@,我们还可以下面的简便写法。 rbd snap rollback –image test_image –snap test_snap rbd snap rollback rbd/test_image@test_snap

删除快照 删除快照也很简单,使用rm子命令,如果想清理所有快照可以使用purge子命令,注意Ceph删除是异步的不会立即释放空间。 rbd snap rm –image test_image –snap test_snap rbd snap purge –image test_image

保护快照 保护快照可以防止用户误删数据,这是clone前必须做的。 rbd snap protect –image test_image –snap test_snap 要想不保护快照也很容易,使用unprotect子命令即可。 rbd snap unprotect –image test_image –snap test_snap

RBD克隆

创建clone RBD克隆就是通过快照克隆出新的可读可写的Image,创建前需要创建format为2的镜像快照。 rbd create test_image2 –size 1024 –image-format 2 rbd snap create –image test_image2 –snap test_snap2 rbd snap protect –image test_image2 –snap test_snap2 通过clone子命令就可以创建clone了。 rbd clone –image test_image2 –snap test_snap2 test_clone 列举clone

通过children子命令可以列举这个快照的所有克隆。 rbd children –image test_image2 –snap test_snap2 填充克隆

填充克隆也就是把快照数据flatten到clone中,如果你想删除快照你需要flatten所有的子Image。 rbd flatten –image test_clone RBD和Qemu

使用Qemu

官方Qemu已经支持librbd,使用Qemu创建镜像前需要安装工具。 apt-get install -y qemu-utils 创建镜像

创建镜像非常简单,使用qemu-img命令,注意目前RBD只支持raw格式镜像。 qemu-img create -f raw rbd:rbd/test_image3 1G 修改镜像大小

修改镜像大小可以使用resize子命令。 qemu-img resize rbd:rbd/test_image3 2G 查看镜像信息

通过info可以获取Qemu镜像信息。 qemu-img info rbd:rbd/test_image3 RBD和Virsh

安装Virsh

Virsh是通用的虚拟化技术抽象层,可以统一管理Qemu/ KVM、Xen和LXC等,要结合Virsh和RBD使用,我们需要安装对应工具。 apt-get install -y virt-manager RBD和Openstack

OpenStack介绍

OpenStack开源的云平台,其中Nova提供虚拟机服务,Glance提供镜像服务,Cinder提供块设备服务。因为OpenStack是Python实现的,因此RBD与OpenStack集成需要安装下面的软件。 apt-get install -y python-ceph

Nova与RBD 修改nova.conf配置文件。 libvirt_images_type=rbd libvirt_images_rbd_pool=volumes libvirt_images_rbd_ceph_conf=/etc/ceph/ceph.conf rbd_user=cinder rbd_secret_uuid=457eb676-33da-42ec-9a8c-9293d545c337 libvirt_inject_password=false libvirt_inject_key=false libvirt_inject_partition=-2

Glance与RBD 修改glance-api.conf配置文件。 default_store=rbd rbd_store_user=glance rbd_store_pool=images show_image_direct_url=True Cinder与RBD

修改cinder.conf配置文件。 volume_driver=cinder.volume.drivers.rbd.RBDDriver rbd_pool=volumes rbd_ceph_conf=/etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot=false rbd_max_clone_depth=5 glance_api_version=2 backup_driver=cinder.backup.drivers.ceph backup_ceph_conf=/etc/ceph/ceph.conf backup_ceph_user=cinder-backup backup_ceph_chunk_size=134217728 backup_ceph_pool=backups backup_ceph_stripe_unit=0 backup_ceph_stripe_count=0 restore_discard_excess_bytes=true

  • storage/ceph/rbd命令.txt
  • 最后更改: 2019/04/16 18:31
  • (外部编辑)