赞
踩
Ceph作为Linux PB级分布式文件系统,因其灵活智能可配置,在软件定义存储的大潮中,越来越受到IaaS方案提供商的注意。我们知道OpenStack中围绕虚拟机主要的存储需求来自于nova中的 disk,glance中的image,cinder中的虚拟硬盘,本文中,我们将全部采用ceph作为这些存储的后端,摆脱现有部署中各搞一套的现状。本文主要是对Ceph使用的总结,因个人环境不同,可能存在各种环境与包依赖等问题。集成逻辑图如下。
CEPH底层为RADOS块设备,提供访问RADOS的是librados 库,librad的调用就是基于librados,Nova只要是通过libvirt->qemu来调用librbd,所以我们知道暂时只有 libvirtDriver支持,Cinder与Glance直接调用librbd。
CEPH存储集群中的层次结构也可见上图,主要是先文件条带化为obj, obj通过hash函数映射到PG(上图中Pool就是PG的容器),PG通过CRUSH算法均匀映射到OSD,OSD基于文件系统,比如xfs,ext4等等。
本文中将只使用三个osd(官方推荐是至少两个, 一个无法应对故障), 三个监视器(主要负责接受数据上报, 提供cluster map, 至少要三个, 一个不好容灾,奇数个可确保PAXOS算法能确定一批监视器里哪个版本的集群运行图是最新的) , 只放了一个mds, 这样的搭配基本是测试环境下最小的配置了,ceph很强调它的扩展性, 所以越多越好, 越能体现其优势
本文使用的系统环境: redhat6.5 四台机器 规划如下:
第二步:配置管理节点无密码访问其他节点,这个是方便我们使用ceph-deploy部署安装ceph
第三步:在client上添加yum源文件ceph.repo 使用最新版本 firefly, 本地环境是redhat 6.5, 所以baseurl中用rhel6, 本机为64位系统,后面的目录也使用的x86_64, 如下
第四步: 安装ceph
第五步: 整合到nova,glance 和cinder的使用上
一定要加上,不然glance image upload的时候会报如下错
Requestreturned failure status.
500Internal Server Error
GL-F9EE247Failed to upload image 1c3d2523-9752-4644-89c2-b066428144fd
(HTTP500)
本文中安装的qemu,libvirt均为新版本,版本过低可能存在rbd的支持问题。编译安装的方法为qemu安装libvirt安装
【问题: qemu版本问题,必须能支持rbd格式的,因为libvirt就是通过qemu相关命令与ceph存储交互,可通过"qemu-img–help”察看。
qemu-img version 0.12.1,
Supported formats: raw cow qcow vdi vmdk cloop dmg bochs vpc vvfat qcow2 qedvhdx parallels nbd blkdebug host_cdrom host_floppy host_device filegluster gluster gluster gluster
可以看到0.12.1不支持rbd,要装0.15以上的】
为了集成nova, 先做如下给libvirt创建密钥的操作,这个密钥在qemu执行创建image命令时会使用到,应在nova-compute服务运行的节点上执行如下操作。本文使用all-in-one,所以直接在client节点执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。