Ceph + OpenStack :: Part-2

转载

配置 OpenStack

OpenStack 的两部分与 Ceph 的块设备集成

  • 镜像: OpenStack Glance 管理 VM 的镜像。
  • 卷: 卷是块设备。OpenStack 使用卷来启动 VM,或将卷附加到正在运行的 VM。OpenStack 使用 Cinder 服务来管理卷。
    • 为卷和镜像创建池

ceph osd pool create volumes 128
ceph osd pool create images 128

  • 配置 OpenStack Ceph 客户端 - 运行 glance-api 和 cinder-volume 的节点充当 Ceph 客户端。每个节点都需要 ceph.conf 文件

[root@ceph-mon1 ceph]# scp ceph.conf openstack:/etc/ceph

  • 在 openstack 节点上安装 ceph 客户端包
    • 首先安装 librbd 的 Python 绑定

yum install python-ceph

    • 安装 ceph

[root@ceph-mon1 ceph]# ceph-deploy install openstack

  • 为两个池以及密钥环设置 Ceph 客户端身份验证
    • 为 Nova/Cinder 和 Glance 创建一个新用户。

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

    • 将这些密钥环添加到 glance-api 和 cinder-volume 节点。

ceph auth get-or-create client.images | ssh openstack tee /etc/ceph/ceph.client.images.keyring
ssh openstack chown glance:glance /etc/ceph/ceph.client.images.keyring
ceph auth get-or-create client.volumes | ssh openstack tee /etc/ceph/ceph.client.volumes.keyring
ssh openstack chown cinder:cinder /etc/ceph/ceph.client.volumes.keyring

    • 运行 nova-compute 的主机不需要密钥环。相反,它们将密钥存储在 libvirt 中。要创建 libvirt 密钥,您需要 client.volumes 的密钥。

ceph auth get-key client.volumes | ssh openstack tee client.volumes.key

    • 在计算节点上,将密钥添加到 libvirt create a secret.xml file

cat > secret.xml < <EOF


client.volumes secret

EOF

    • 从创建的 secret.xml 文件生成密钥,记下密钥输出的 uuid

# virsh secret-define --file secret.xml

    • 使用上述密钥设置 libvirt 密钥

# virsh secret-set-value --secret {uuid of secret} --base64 $(cat client.volumes.key) && rm client.volumes.key secret.xml

  • 配置 OpenStack-Glance 以使用 CEPH
    • Glance 可以使用多个后端来存储镜像。要默认使用 Ceph 块设备,请编辑 /etc/glance/glance-api.conf 并添加

default_store=rbd
rbd_store_user=images
rbd_store_pool=images

    • 如果想要启用镜像到卷的复制写入克隆,还添加

show_image_direct_url=True

  • 配置 OpenStack - Cinder 以使用 CEPH
    • OpenStack 需要一个驱动程序来与 Ceph 块设备交互。您必须指定块设备的池名称。在您的 OpenStack 节点上,编辑 /etc/cinder/cinder.conf 并添加

volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_pool=volumes
glance_api_version=2

  • 如果您正在使用 cephx 身份验证,还配置用户和添加到 libvirt 的密钥的 uuid

rbd_user=volumes
rbd_secret_uuid={uuid of secret}

  • 重启 Openstack

service glance-api restart
service nova-compute restart
service cinder-volume restart

  • 一旦 OpenStack 启动并运行,您应该能够使用 OpenStack 在 Ceph 块设备上创建一个卷。
  • 注意: 确保 /etc/ceph/ceph.conf 文件具有足够的权限,以便 cinder 和 glance 用户读取。

请参阅 Ceph + OpenStack :: Part-3 以获取安装的下一步骤