设为首页 收藏本站
查看: 1097|回复: 0

[经验分享] Ceph块设备管理与Openstack配置(上)

[复制链接]
发表于 2018-5-31 12:15:20 | 显示全部楼层 |阅读模式
Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分:

  •   《Ceph简介》
  •   《Ceph集群操作》
  •   《Ceph块设备管理与Openstack配置》
  •   《深入Ceph》
  •   《ceph优化与性能测试》
注意:此文对应ceph版本为10.1.2
#ceph -v
ceph version 10.1.2(4a2a6f72640d6b74a3bbd92798bb913ed380dcd4)前言
  目前接触到的Mitaka版本Openstack中,ceph主要用来提供块设备作为cinder、nova、glance的存储端。本篇也是讲述的块设备的相关概念及管理,以及在Openstack中虚拟机不同的启动方式对应ceph中不同的存储结构。本篇分为两个部分:块设备的特性与rbd命令;Openstack中ceph块设备使用。
Ceph块设备
  Ceph块设备即RBD(RADOS Block Device),RBD通过librbd将数据条带化的存在ceph集群的OSD上。同时RBD是建立RADOS层之上,这样每一个块设备都会分布在多个ceph节点上。目前RBD驱动已经完美集成在linux内核中,提供了多种企业特性,如完整和增量快照(full and incremental snapshot)、自动精简配置(thin provision)、写时复制克隆(copy on write clone)、动态调整大小(dynamic resizing)、内存内缓存(In-memory caching)。
RBD的读写方式有下面两种:
DSC0000.jpg


  •   1、在虚拟化引擎支持下,通过Hypervisor控制librbd库来对块设备读写。在对接上Openstack后,可以很好的利用RBD写时复制特性来快速启动多台虚拟机,后面会进一步介绍相关内容。
  •   2、在映射完块设备后,本地文件系统通过内核KRBD驱动直接访问。
一、RBD命令操作
  创建块设备
~~~bash
rbd create  -p  volumes  --size 1024   rbd_test
-p 参数指定存储池,--size 指定大小,默认以M为单位,可以自己加单位如10G,最后rbd_test为创建的镜像名。
rbd ls|list   -p volumes
查看volumes池下的images即块设备
rbd  du   -p volumes
查看volumes的使用情况。可以观察到使用了精简配置。
rbd info  -p volumes   rbd_test
查看rbd_test的相关信息,如大小,objects数量,order,format id和features。
~~~  

Tips:
  1、-p 参数有时候可省略,使用pool/image_name的方式,如rbd info volumes/rbd_test
2、 创建块设备时默认object层为2,即带上了 –image-format 2的参数,会有许多高级性能,默认有features: layering, exclusive-lock, object-map, fast-diff, deep-flatten。


  映射块设备
rbd map volumes/rbd_test
映射rbd_test到本地
rbd showmapped  
查看映射的设备,有点问题,默认只能查看rbd池的块设备,其他池的只能看上一条命令的输出结果。默认从/dev/rbd0开始
mkfs.xfs  /dev/rbd0;mkdir  -p /mnt/rbd_test; mount /dev/rbd0   /mnt/rbd_test
格式化并挂载。  

Tips:
  1、map是报错”rbd: sysfs write failed
rbd: map failed: (6) No such device or address“,这是因为上面创建的object特性引起的,在我当前Ubuntu1610上,map命令不支持exclusive-lock之后等相关特性,需要手动指定layering特性,或者将image-format值设为1

rbd create -p volumes --size 10  rbd_test1 --image-format 2 --image-feature layering  

  
  调整RBD镜像大小

  在上面的映射完块设备格式化挂载后,使用resize命令调整RBD,然后用XFS在线调整特性扩容文件系统。
rbd resize  volume/rbd_test  --size 20
xfs_growfs -d /mnt/rbd_test二、RBD快照与克隆
为了深入了解Openstack中nova、cinder、glance之前的存储关
系,需要学习RBD的快照与克隆。
快照是某时间点上生成的只读RBD镜像的副本。

  1、RBD快照操作
echo "hello ,This is a file ready to delete!" >>/mnt/rbd_test/snap_test_file
在块设备的挂载目录创建一个文件。
rbd snap create volumes/rbd_test@snapshot1
创建一个snapshot1的镜像。
rbd snap ls  volumes/rbd_test
查看volumes池中rbd_test镜像所拥有的快照
##测试快照功能
rm  -rf /mnt/rbd_test/*
rbd snap rollback   volumes/rbd_test@snapshot1
将volumes/rbd_test的快照snapshot1回滚
umount  /dev/rbd0
mount /dev/rbd0 /mnt/rbd_test
ls  /mnt/rbd_test
观察到文件恢复
## 快照的删除
rbd snap  rm volumes/rbd_test@snapshot1
rbd snap purge volumes/rbd_test
批量删除rbd_test上的镜像。  

Tips:
  1、快照和被快照的镜像是同等的,具有相同大小和特性,都是池中的一个镜像。
2、新建的快照通过”rbd ls”查看不到,需要用”rbd du”


  2、RBD克隆操作
  Ceph一个非常好的特性,即以COW(写时复制)的方式从RBD快照创建克隆(clone),在ceph中也称为快照分层(snapshow layering)。
  在云平台中通常以创建快照来保护RBD镜像(rbd du -p images查看)。然后再从快照上来启动实例。启动的实例是COW克隆镜像。每一个克隆镜像都需要读取父镜像的数据,因此父镜像需要设置保护。当新的数据写入克隆镜像时会存在本身,克隆镜像与RBD镜像具有相同功能,如创建快照等。
DSC0001.jpg
rbd snap create volumes/rbd_test@snapshot_for_clone
创建一个名为snapshot_for_clone的镜像
rbd snap protect  volumes/rbd_test@snapshot_for_clone
对此镜像设置保护
rbd clone  volumes/rbd_test@snapshot_for_clone   volumes/clone_rbd
创建克隆镜像
rbd info  volumes/clone_rbd
查看克隆镜像
##将克隆镜像独立出来,完全拥有父镜像数据,中断依赖关系
rbd flatten  volumes/clone_rbdTips:
1、一个快照需要有分层特性(layering)才能创建COW克隆。在旧版本创建镜像默认为format-1类型,不具有此特性。
Ending:Ceph块设备管理与Openstack配置上篇结束,下篇将开始记录RBD在Openstack中的不同表现方式~
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-484648-1-1.html 上篇帖子: Openstack之Ceph集群操作 下篇帖子: openstack mitaka之二:搭建控制节点数据库和消息队列
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表