首页 OpenStack-Train云平台部署之“nova对接ceph存储”

OpenStack-Train云平台部署之“nova对接ceph存储”

技术张儿 2020-7-25 0 32
标签: OpenStack


5.6.1 创建虚机启动池

为虚拟机启动创建一个池
[root@controller ceph]# ceph osd pool create vms 128
pool 'vms' created

5.6.2 授权

# 授权所有的池,需要用到镜像、虚拟机的池所以授权所有
[root@controller ceph]# ceph auth get-or-create client.nova 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.nova.keyring

5.6.3 分发密钥环

为nova创建密钥环(ceph节点操作)将key拷贝到计算节点
[root@controller ceph]# cd /etc/ceph/
[root@controller ceph]# scp ceph.client.nova.keyring compute01:/etc/ceph/
[root@controller ceph]# scp ceph.client.nova.keyring compute02:/etc/ceph/

5.6.4 分发key
在openstack计算节点创建密钥文件(ceph节点操作)
[root@controller ceph]# ceph auth get-key client.nova |ssh controller tee /etc/ceph/client.nova.key
root@10.0.0.11's password: 123456
AQDYrWtdk+/jCBAAt+09vgaZsjp52yFRIfeOyw==
[root@controller ceph]# ceph auth get-key client.nova |ssh compute01 tee /etc/ceph/client.nova.key
[root@controller ceph]# ceph auth get-key client.nova |ssh compute02 tee /etc/ceph/client.nova.key

5.6.5 授权

在所有节点上设置密钥环文件的权限,以便nova服务可以访问(计算节点操作)
chgrp nova /etc/ceph/ceph.client.nova.keyring 
chmod 0640 /etc/ceph/ceph.client.nova.keyring

5.6.6 修改ceph配置文件

在所有节点更新ceph配置(新加配置)
[root@controller ceph]# vim /etc/ceph/ceph.conf 
[client.nova]
keyring = /etc/ceph/ceph.client.nova.keyring

拷贝到其他节点
scp /etc/ceph/ceph.conf compute01:/etc/ceph/
scp /etc/ceph/ceph.conf compute02:/etc/ceph/

5.6.7 设置uuid

在所有节点上添加,让kvm可以访问ceph
[root@controller ~]# vim /etc/ceph/nova.uuid.txt
7e37262c-a2cd-4a06-82a2-9e4681616c0e

scp /etc/ceph/nova.uuid.txt compute01:/etc/ceph/
scp /etc/ceph/nova.uuid.txt compute02:/etc/ceph/

5.6.8 创建密钥

在virsh中创建一个密钥,这样kvm可以访问cinder卷的ceph池(nova和kvm做对接)
[root@controller ~]# vim /etc/ceph/nova.xml
<secret ephemeral='no' private='no'>
  <uuid>7e37262c-a2cd-4a06-82a2-9e4681616c0e</uuid>
  <usage type='ceph'>
    <name>client.nova secret</name>
  </usage>
</secret>

拷贝到其他节点
scp /etc/ceph/nova.xml compute01:/etc/ceph/
scp /etc/ceph/nova.xml compute02:/etc/ceph/


5.6.9 插入

# 所有节点插入
[root@controller ceph]# virsh secret-define --file /etc/ceph/nova.xml
Secret 7e37262c-a2cd-4a06-82a2-9e4681616c0e created

[root@controller ceph]# virsh secret-set-value --secret 7e37262c-a2cd-4a06-82a2-9e4681616c0e --base64 $(cat /etc/ceph/client.nova.key)
Secret value set


[root@compute01 ~]# virsh secret-define --file /etc/ceph/nova.xml
Secret 7e37262c-a2cd-4a06-82a2-9e4681616c0e created

[root@compute01 ~]# virsh secret-set-value --secret 7e37262c-a2cd-4a06-82a2-9e4681616c0e --base64 $(cat /etc/ceph/client.nova.key)
Secret value set


[root@compute02 ~]# virsh secret-define --file /etc/ceph/nova.xml
Secret 7e37262c-a2cd-4a06-82a2-9e4681616c0e created

[root@compute02 ~]# virsh secret-set-value --secret 7e37262c-a2cd-4a06-82a2-9e4681616c0e --base64 $(cat /etc/ceph/client.nova.key)
Secret value set

5.6.10 更新nova配置文件

# 在所有计算节点更新nova配置以使用ceph后端(只在compute节点配置)
[root@compute01 ~]# vim /etc/nova/nova.conf
[DEFAULT]
force_raw_images = True
disk_cachemodes = writeback

[libvirt]
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = nova
rbd_secret_uuid = 7e37262c-a2cd-4a06-82a2-9e4681616c0e

# 在计算节点重启nova服务
[root@compute01 ~]# systemctl restart openstack-nova-compute
[root@compute02 ~]# systemctl restart openstack-nova-compute

5.6.11 测试启动实例

5.6.11.1 创建实例

在web界面创建虚拟机等待启动之后查看
1.png

# 设置实例名称及选择可用域以及创建实例的数量
# 可用域:也就是在哪一个compute节点上创建虚拟机
2.png

# 掉用镜像的时候也选择存储在ceph的镜像测试
# 选择需要创建虚拟机的镜像
3.png

# 选择匹配镜像的实例类型后直接点击创建实例就行
4.png


# 网络选择admin网络
5.png


6.png


在ceph虚拟机池中列出镜像,能看到镜像存储在ceph中
[root@controller ~]# rbd -p vms ls
a9bcd13e-4725-4b0b-9b5f-764e8cd4bbbb_disk

5.6.11.2 连接ceph卷测试存储

1.png

2.png

3.png

[root@controller ~]# ssh cirros@172.16.0.153
cirros@172.16.0.153's password: gocubsgo
$ sudo su - root
# ls -l /dev/vdb 
brw-------    1 root     root      253,  16 Feb 24 14:04 /dev/vdb
# mkfs.ext4 /dev/vdb #格式化
# mount /dev/vdb /mnt/	#挂载
# df -h /mnt/
Filesystem                Size      Used Available Use% Mounted on
/dev/vdb                  9.7G     22.5M      9.2G   0% /mnt

写入文件测试
# cd /mnt/
# mkdir 1 2 3 4 5
# touch a.txt
# echo 1234567890 >a.txt

卸载
# umount /mnt/

# 注意
还可以把卷分离连接到其他的设备上。
一定要先分离卷:依次点击:编剧卷—管理连接—分离卷


作者: 技术张儿 本文发布于2020-7-25 01:59:05
免责声明:本文仅代表作者个人观点。