在OpenStack中混合Ceph和LVM卷

loic

Ceph池被定义为在OpenStack Havana将卷和实例共置。对于不需要Ceph提供的弹性功能的卷,在/etc/cinder/cinder.conf中定义了一个LVM cinder后端

[lvm] volume_group=cinder-volumes volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver volume_backend_name=LVM

并将其附加到现有后端列表中

enabled_backends=rbd-default,rbd-ovh,rbd-hetzner,rbd-cloudwatt,lvm

创建一个cinder卷类型并将其关联

# cinder type-create lvm +--------------------------------------+------+ | ID | 名称 | +--------------------------------------+------+ | c77552ff-e513-4851-a5e6-2c83d0acb998 | lvm | +--------------------------------------+------+

cinder type-key lvm set volume_backend_name=LVM

cinder extra-specs-list

+--------------------------------------+-----------+--------------------------------------------+ | ID | 名称 | extra_specs | +--------------------------------------+-----------+--------------------------------------------+ ... | c77552ff-e513-4851-a5e6-2c83d0acb998 | lvm | {u'volume_backend_name': u'LVM'} | ... +--------------------------------------+-----------+--------------------------------------------+

为了减少网络开销,为每个裸机定义一个后端可用区,方法是在/etc/cinder/cinder.conf中添加

storage_availability_zone=bm0015

并重启cinder-volume

# restart cinder-volume

sleep 5

cinder-manage host list

host zone ... bm0015.the.re@lvm bm0015 ...

其中bm0015是机器的主机名。要创建一个位于bm0015上的LVM后端卷

cinder create --availability-zone bm0015 --volume-type lvm --display-name test 1

为了使RBD卷的分配在不指定可用区的情况下继续工作,必须至少有一个cinder卷在默认可用区(nova大概)中运行,并配置了预期的RBD后端。可以使用以下命令检查:

# cinder-manage host list | grep nova ... bm0017.the.re@rbd-cloudwatt nova bm0017.the.re@rbd-ovh nova bm0017.the.re@lvm nova bm0017.the.re@rbd-default nova bm0017.the.re@rbd-hetzner nova ...

在上述示例中,lvm卷类型也可用在nova可用区中,当需要LVM卷但将它与实例共置并不重要时,它被用作一个兜底方案。