文档章节

使用Ceph作为OpenStack的后端存储

Jerry_Baby
 Jerry_Baby
发布于 2015/02/09 22:43
字数 889
阅读 12656
收藏 62
点赞 3
评论 3

概述

        libvirt配置了librbdQEMU接口,通过它可以在OpenStack中使用Ceph块存储。Ceph块存储是集群对象,这意味着它比独立的服务器有更好的性能。
        在OpenStack中使用Ceph块设备,必须首先安装QEMUlibvirtOpenStack,下图描述了 OpenStackCeph技术层次结构:


http://my.oschina.net/JerryBaby/blog/376580 我翻译的官方文档,仅供参考 ^ ^

系统规划

OpenStack集群:
         控制节点:openstackcontroller192.168.1.131
         计算节点:compute                      192.168.1.132
         存储节点:storage                        192.168.1.133

Ceph集群:
       monitormdsosd0 节点:openstackcontroller192.168.1.131
       osd1compute       192.168.1.132
       osd2storage         192.168.1.133

系统架构:


配置过程

Important:由于这里将两套集群服务部署在了同一组节点上,所以配置过程中省略了一些关于Ceph集群的配置。

创建存储池

# ceph osd pool create volumes 128
# ceph osd pool create images 128
# ceph osd pool create vms 128

设置Ceph客户端认证

OpenStack节点执行如下命令:

# ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'
# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'

client.cinderclient.glance添加密钥文件来访问节点并改变属主:

# ceph auth get-or-create client.glance | ssh openstack sudo tee /etc/ceph/ceph.client.glance.keyring
# ssh openstack sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring
# ceph auth get-or-create client.glance | ssh compute sudo tee /etc/ceph/ceph.client.glance.keyring
# ssh compute sudo chown nova:nova /etc/ceph/ceph.client.glance.keyring
# ceph auth get-or-create client.cinder | ssh compute sudo tee /etc/ceph/ceph.client.cinder.keyring
# ssh compute sudo chown nova:nova /etc/ceph/ceph.client.cinder.keyring
# ceph auth get-or-create client.cinder | ssh storage sudo tee /etc/ceph/ceph.client.cinde.keyring
# ssh storage sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring

运行nova-compute的节点nova-compute进程需要密钥文件。它们也存储client.cinder用户的密钥在libvirtlibvirt进程在Cinder中绑定块设备时需要用到它来访问集群。
nova-compute节点创建一个临时的密钥副本:

# uuidgen
457eb676-33da-42ec-9a8c-9293d545c337

# cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
  <uuid>457eb676-33da-42ec-9a8c-9293d545c337</uuid>
  <usage type='ceph'>
    <name>client.cinder secret</name>
  </usage>
</secret>
EOF
# sudo virsh secret-define --file secret.xml 
# sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml

配置Glance

编辑 /etc/glance/glance-api.conf并添加如下内容:

[DEFAULT]
default_store = rbd
...
[glance_store]
stores = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8

如果要启动镜像的写时复制功能,添加下面的 [DEFAULT] 部分:

show_image_direct_url = True

配置Cinder

openstack节点和storage节点编辑 /etc/cinder/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
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2

如果使用cephx验证,需要配置useruuid

rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337

配置Nova

为了挂载Cinder设备(普通设备或可引导卷),必须指明使用的用户及UUIDlibvirt将使用期在Ceph集群中进行连接和验证:

rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337

编辑 /etc/nova/nova.conf并添加如下内容:

[libvirt]
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
libvirt_live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST"

禁用文件注入。当启动一个实例的时候,nova通常会尝试打开rootfs。这时,nova注入一些数据,如密码、ssh 密钥,配置文件等到文件系统中。然而,这最好依靠元数据服务和cloud-init来完成。

在每个计算节点,编辑 /etc/nova/nova.conf [libvirt] 标签添加:

libvirt_inject_password = false
libvirt_inject_key = false
libvirt_inject_partition = -2

重启服务

# sudo glance-control api restart
# sudo service nova-compute restart
# sudo service cinder-volume restart
# sudo service cinder-backup restar

从块设备引导

Ceph后端存储状况:

Ceph不支持从qcow2格式的镜像引导,所以创建一个raw格式的镜像:

创建一个可引导卷:


从可引导卷创建一个实例:

查看Ceph存储状况:

© 著作权归作者所有

共有 人打赏支持
Jerry_Baby
粉丝 24
博文 33
码字总数 35098
作品 0
海淀
系统管理员
加载中

评论(3)

g
geek666
hao0
天空冰雨
天空冰雨

引用来自“霡霂”的评论

@红薯 咩,你们的ceph的架构是机密咩?
貌似他们已经没用ceph了,已经迁移了。
霡霂
霡霂
@红薯 咩,你们的ceph的架构是机密咩?
Openstack 之使用外部ceph存储

上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。 继上篇《Ceph 之 块设备、文件系统、对象存储的使用》,可以独立于opensta...

余伟兵 ⋅ 06/05 ⋅ 0

red hat openstack 12配置要求

安装 openstack 之前,一般要规划整个系统中,到底要多少台机器来参与openstack, 根据rhosp12的官方文档: 最低要求是3台物理机,1台作为director,一台作为 controller ,一台作为computer....

tututu_jiang ⋅ 06/20 ⋅ 0

EasyStack获评2016年度制造行业OpenStack最佳实践

近日,由工业和信息化部信息化和软件服务业司指导,中国信息通信研究院和中国通信标准化协会共同主办,云计算开源产业联盟承办的“云计算开源产业联盟第一次成果发布会”在京召开。 工信部信...

玄学酱 ⋅ 05/18 ⋅ 0

Ceph 之 块设备、文件系统、对象存储的使用

上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。 继上篇《Ceph 之 使用ceph-deploy部署ceph集群》,ceph集群搭建完成之后,接...

余伟兵 ⋅ 06/03 ⋅ 0

Openstack 之 相对于VMWare的劣势

上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。 前期写了两篇博文《Openstack 干掉 VMWare(1)》、《Openstack 干掉 VMWa...

余伟兵 ⋅ 04/24 ⋅ 0

白皮书:OpenStack与容器的相遇相知(上)

导 读 本文由OpenStack基金会官方发布,来自基金会、用户、厂商的16位专家作者联合撰写,原文请访问:https://www.openstack.org/containers/whitepaper 想象一下,你的任务是从头开始构建整...

lq1ns259ej3okyvk4jf ⋅ 05/28 ⋅ 0

知行合一新华三借OpenStack乘“云”而上

云计算时代,企业如何搭上OpenStack的列车实现“云”路通途?7月14日~15日,首次登录中国大陆的OpenStack Days China峰会上,新华三集团旗下杭州华三通信云计算产品线总裁吴健指出,新华三基...

玄学酱 ⋅ 05/21 ⋅ 0

开放基础架构新浪潮:互联网巨头背后的OpenStack

2018年5月21-24日,第十七届OpenStack峰会在温哥华盛大开幕,今年峰会的主题为“Open Infrastructure”。凸显出OpenStack基金会积极拥抱变化,主动求变的态度更加清晰,也是OpenStack基金会开...

云科技时代 ⋅ 05/25 ⋅ 0

浅谈OpenStack平台的安全问题及措施

OpenStack的优势与劣势 Openstack具有三大特点:免费开源、强大的兼客性以及开放性。 Openstack 本身是一个开源、免费的软件,同商业软件相比它给了客户足够的自由度,可以在任何场合使用,O...

凌洛 ⋅ 05/12 ⋅ 0

OpenStack波士顿峰会召开: 借助远程托管私有云、边缘计算及组合型基础设施,赢得新客户、实现新增长

主旨发言、现场演示,OpenStack借助成本效益双赢组合型开放基础设施来展示其在推动创新方面的强大实力 日前,来自六十多个国家数以千计的与会者齐聚OpenStack波士顿峰会,共同讨探讨如何实现...

玄学酱 ⋅ 04/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 31分钟前 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 32分钟前 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 44分钟前 ⋅ 0

VCS仿真生成vpd文件(verilog)

VCS仿真生成vpd文件(verilog): https://www.cnblogs.com/OneFri/p/5987673.html SYNOPSYS VCS常用命令使用详解 https://blog.csdn.net/hemmingway/article/details/49382551 DVE是synopsys公......

whoisliang ⋅ 50分钟前 ⋅ 0

Spring Boot启动配置原理

几个重要的事件回调机制 配置在META-INF/spring.factories ApplicationContextInitializer SpringApplicationRunListener 只需要放在ioc容器中 ApplicationRunner CommandLineRunner 启动流程......

小致dad ⋅ 58分钟前 ⋅ 0

Java集合类总结笔记

一、集合类的层次关系 主要容器集合类的特点: ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除的有序序列 ArrayDeque 一种用循环数组实现的...

edwardGe ⋅ 今天 ⋅ 0

spring RMI远程调用

RMI https://www.cnblogs.com/wdh1995/p/6792407.html

BobwithB ⋅ 今天 ⋅ 0

Jenkins实践2 之基本配置

1 插件管理 系统管理->插件管理 在可选插件中可以自主安装插件 2 管理用户 系统管理->管理用户->新建用户 3 安全配置 系统管理->全局安全配置 授权策略 选择安全矩阵 然后添加现有的用户,赋...

晨猫 ⋅ 今天 ⋅ 0

c++智能指针

1、是一种泛型类,针对指针类型的泛型类,会保存指针 2、重载了符号 *和-> 对智能指针使用这两个符号,相当于对保存的泛型使用这两个符号 3、当智能指针引用计数为0时,会去释放指针指向的资...

国仔饼 ⋅ 今天 ⋅ 0

ftp连接不上的终极办法 SFTP

假如FTP由于各种原因就是连不上,那么用SFTP协议吧,使用登录服务器的账号密码。

sskill ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部