OpenStack 对接 Ceph

前言

Ceph 集群可以作为 OpenStack 的后端存储,分别向 Glance、Nova、Cinder 组件提供块设备服务。——《Ceph 设计原理与实现》
根据官方文档,OpenStack 里有三个地方可以和 Ceph 块设备结合:

Images:OpenStack 的 Glance 管理着 VM 的 image 。Image 相对恒定,OpenStack 把它们当作二进制文件、并以此格式下载。
Volumes:OpenStack 用 Cinder 服务管理 Volumes 。Volume 是块设备,OpenStack 用它们引导虚拟机、或挂载到运行中的虚拟机上。
Guest Disks: Guest disks 是装有客户操作系统的磁盘。默认情况下,启动一台虚拟机时,它的系统盘表现为 hypervisor 文件系统的一个文件(通常位于 /var/lib/nova/instances/${uuid}/)。

测试环境

openstack 测试环境

节点名称IP组件对应存储池
controller192.168.100.10Glacneimages
compute1192.168.100.20Novavms
compute2192.168.100.30Cindervolumes

openstack搭建过程请参考我这一篇博客:多节点安装OpenStack R版
ceph测试环境

节点名称IP
controller192.168.100.10
compute1192.168.100.20
compute2192.168.100.30

注:Ceph集群是搭建在OpenStack环境中的

ceph集群的构建

[root@controller ~]# mkdir ceph  创建工作目录
[root@controller ceph]# yum install -y ceph-deploy   只在控制节点安装下载批量部署工具
所有节点安装ceph
yum install -y ceph

进入ceph目录
[root@controller ceph]# ceph-deploy new controller compute1 compute2   //创建一个新的集群 并把相应节点加入到集群中
[root@controller ceph]# iptables -F   所有节点先执行这个
[root@controller ceph]# ceph-deploy mon create-initial  初始化认证文件

创建osd
[root@controller ceph]# ceph-deploy osd create --data /dev/sdb controller
[root@controller ceph]# ceph-deploy osd create --data /dev/sdb compute1
[root@controller ceph]# ceph-deploy osd create --data /dev/sdb compute2
[root@controller ceph]# ceph-deploy admin controller compute1 compute2  下载认证文件

在compute1和compute2执行如下命令
[root@compute1 ~]# cd /etc/ceph/
[root@compute1 ceph]# chmod a+x ceph.client.admin.keyring 

接下来我们将节点加入到mgr 里面
[root@controller ceph]# ceph-deploy mgr create controller compute1 compute2 

启动dashboard界面
[root@controller ceph]# ceph mgr module enable dashboard 
[root@controller ceph]# ceph dashboard create-self-signed-cert 
Self-signed certificate created
[root@controller ceph]# ceph mgr services
{
    "dashboard": "https://controller:8443/"
}
[root@controller ceph]# ceph dashboard set-login-credentials admin 123 
Username and password updated

浏览器访问测试
在这里插入图片描述

对接前基础环境构建

创建资源池

[root@controller ~]# ceph osd pool create volumes 64
pool 'volumes' created
[root@controller ~]# ceph osd pool create vms 64
pool 'vms' created
[root@controller ~]# ceph osd pool create images 64
pool 'images' created

在控制节点创建 Ceph 客户端及存储池的鉴权,生成相应的 key 文件

[root@controller ceph]# pwd   进入这个目录
/etc/ceph
[root@controller ceph]# 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' -o /etc/ceph/ceph.client.cinder.keyring
[root@controller ceph]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images' -o /etc/ceph/ceph.client.glance.keyring

将生成的 key 文件拷贝到其他所有 OpenStack节点

[root@controller ceph]# scp ceph.client.glance.keyring compute1:/etc/ceph/
[root@controller ceph]# scp ceph.client.cinder.keyring compute1:/etc/ceph/ 
[root@controller ceph]# scp ceph.client.glance.keyring compute2:/etc/ceph/
[root@controller ceph]# scp ceph.client.cinder.keyring compute2:/etc/ceph/

任何进入控制节点修改以下文件的权限
[root@controller ceph]# chown glance:glance /etc/ceph/ceph.client.glance.keyring
[root@controller ceph]# chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring

在compute1、compute2上进行如下操作

[root@compute1 ceph]# ceph auth get-key client.cinder | tee client.cinder.key
AQCmPppg9++EKxAAeFb5gd5GpabgThKcGwtP8w==
[root@compute1 ceph]# uuidgen    每一台的uuidgen都不一样注意
58de3642-3bc2-49a2-913b-678795339875
--------------
cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
  <uuid>58de3642-3bc2-49a2-913b-678795339875</uuid>
  <usage type='ceph'>
    <name>client.cinder secret</name>
  </usage>
</secret>
EOF
[root@compute1 ceph]# virsh secret-define --file secret.xml
Secret 58de3642-3bc2-49a2-913b-678795339875 created
[root@compute1 ceph]# virsh secret-set-value --secret 58de3642-3bc2-49a2-913b-678795339875 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml     
Secret value set

rm: remove regular file ‘client.cinder.key’? y
rm: remove regular file ‘secret.xml’? y

注:两台操作一致,就是uuid注意区分以及改写

对接Glance镜像服务

控制节点修改如下文件

[root@controller ~]# vi /etc/glance/glance-api.conf 
343 show_image_direct_url = false
2054 stores=glance.store.filesystem.Store, glance.store.http.Store, glance.store.rbd.Store
2108 default_store=rbd
2645 rbd_store_user = glance
2626 rbd_store_pool = images
4443 flavor=keystone

重启glance服务
[root@controller ~]# systemctl restart openstack-glance*

验证是否对接成功
[root@controller ~]# source keystonerc_admin 
[root@controller ~(keystone_admin)]# glance image-create --name cirros --disk-format qcow2 --container-format bare < cirros-0.3.4-x86_64-disk.img 
[root@controller ~(keystone_admin)]# ceph df 
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED 
    220 GiB     217 GiB      3.0 GiB          1.39 
POOLS:
    NAME        ID     USED       %USED     MAX AVAIL     OBJECTS 
    volumes     1         0 B         0        66 GiB           0 
    vms         2         0 B         0        66 GiB           0 
    images      3      13 MiB      0.02        66 GiB           8 

images存在大小为13MIB 对接成功!!!!!!!!!

对接Cinder卷服务

控制节点修改如下文件

[root@controller ~]# vi /etc/cinder/cinder.conf 
409 enabled_backends=ceph,lvm
410 glance_api_version = 2   自行添加
在最后添加即可  复制即可
5270 [ceph]
5271 glance_api_version = 2
5272 volume_driver = cinder.volume.drivers.rbd.RBDDriver
5273 volume_backend_name = ceph
5274 rbd_pool = volumes
5275 rbd_ceph_conf = /etc/ceph/ceph.conf
5276 rbd_flatten_volume_from_snapshot = false
5277 rbd_max_clone_depth = 5
5278 rbd_store_chunk_size = 4
5279 rados_connect_timeout = -1
5280 rbd_user = cinder
5281 rbd_secret_uuid = 58de3642-3bc2-49a2-913b-678795339875  
uuid填compute1的uuid

重启cinder服务
[root@controller ~]# systemctl restart openstack-cinder*

验证是否对接成功
[root@controller ~]# source keystonerc_admin 
[root@controller ~(keystone_admin)]# openstack volume type create lvm 
[root@controller ~(keystone_admin)]# openstack volume create --type lvm --size 10 test 
[root@controller ~(keystone_admin)]# ceph df 
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED 
    220 GiB     217 GiB      3.0 GiB          1.39 
POOLS:
    NAME        ID     USED       %USED     MAX AVAIL     OBJECTS 
    volumes     1       709 B         0        66 GiB           5 
    vms         2         0 B         0        66 GiB           0 
    images      3      13 MiB      0.02        66 GiB           8 

volumes出现 数值709B 代表成功!!!!!!!

对接Nova计算服务

在compute1、compute2节点修改如下文件

[root@compute1 ~]# vi /etc/nova/nova.conf 
6425 inject_password=False
6450 inject_key=False
6484 inject_partition=-2
6936 disk_cachemodes = "network=writeback"
7077 images_type=rbd
7101 images_rbd_pool=vms
7104 images_rbd_ceph_conf =/etc/ceph/ceph.conf
7118 hw_disk_discard=unmap
7261 rbd_user=cinder
7266 rbd_secret_uuid=58de3642-3bc2-49a2-913b-678795339875
6284 live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"

修改完成以后保存退出重启nova-compute服务即可
[root@compute1 nova]# systemctl restart openstack-nova*

任何将配置文件发送到compute2节点上即可
[root@compute1 nova]# scp /etc/nova/nova.conf compute2:/etc/nova/nova.conf

进入compute2节点进行如下修改
[root@compute2 ~]# vi /etc/nova/nova.conf 
10982 vncserver_proxyclient_address=compute2   修改为compute2即可
[root@compute2 ~]# systemctl restart openstack-nova*

创建云主机验证
在这里插入图片描述
ceph集群查看

[root@controller neutron]# ceph df 
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED 
    220 GiB     217 GiB      3.1 GiB          1.40 
POOLS:
    NAME        ID     USED       %USED     MAX AVAIL     OBJECTS 
    volumes     1         0 B         0        66 GiB           0 
    vms         2      28 MiB      0.04        66 GiB          13 
    images      3         0 B         0        66 GiB           0 

vms资源池存在数据  云主机创建在资源池成功
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
回答: Kolla对接Ceph的过程包括以下几个步骤。首先,在全局配置文件中关闭Ceph组件,可以通过编辑/etc/kolla/globals.yml文件来配置。将enable_ceph设置为"no",同时将glance_backend_ceph、cinder_backend_ceph和nova_backend_ceph都设置为"yes"。\[1\]接下来,需要创建软连接将glance的ceph.conf文件链接到nova和cinder的配置目录中。可以使用以下命令来创建软连接:mkdir -p /etc/kolla/config/nova/ && ln -s /etc/kolla/config/glance/ceph.conf /etc/kolla/config/nova/ceph.conf和mkdir -p /etc/kolla/config/cinder && ln -s /etc/kolla/config/glance/ceph.conf /etc/kolla/config/cinder/ceph.conf。这样,nova和cinder就可以共享相同的ceph.conf文件了。\[2\]\[3\]最后,需要复制Ceph的密钥环文件。具体的复制方法可以根据实际情况进行操作。 #### 引用[.reference_title] - *1* [Kolla集成外接ceph存储](https://blog.csdn.net/dylloveyou/article/details/79114741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [OpenStack Kolla-Ansible部署Cinder块存储 对接Ceph,Proxmox](https://blog.csdn.net/qq_35485875/article/details/128901696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ball-4444

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值