openstack ceph 创建 虚机 在 _base 生成 镜像 问题 分析

问题分析

openstack与ceph集成后,openstack里上传的镜像文件、创建的虚机磁盘文件、以及卷文件全部存储在ceph及群里。在openstack的任何节点都不应该存储上述文件。如果出现有文件,那说明有部分配置错误。

问题解决

glance-api节点的配置

1
2
3
4
[default]
....
show_image_direct_url = True
..

cinder-volume 节点的配置

1
2
3
4
[ceph]
...
glance_api_version = 2
...

ceph集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ceph auth list
client.cinder
key: AQDdbK1X3bVIGxAAxpPesLmcy9dz77LtVs/PAw==
caps: [mon] allow r
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images
client.cinder-backup
key: AQCwda1XJH2SHBAAMegLvXlyUXoI22ZJx1XZag==
client.cinder-backup-allow r
key: AQCNda1XWXnGJRAA+mVm4Sav85/Imnm0jeEeBg==
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=images
client.glance
key: AQDdbK1XP0BgLRAAJ7Y+mOH+6DNuG2w4khCA/w==
caps: [mon] allow r
caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=images

需要注意上述配置里的pool的名称要与nova-compute、glance-api、cinder-volume配置里的对应pool名称一致,不然仍会有问题

修改ceph auth 命令

1
ceph auth caps 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'
client.cinder为auth名称,后面为具体的功能 

ceph进程的权限参考