host os:Kylin-Server-10-SP1-Release-Build02-20210518-arm64
docker: docker-ce-18.09.7
cloud: openstack queens
storage: 同有 Acs5000
vm os: Kylin-Server-10-SP1-Release-Build02-20210518-arm64
同有 Acs5000 cinder-volume参考2.2章节存储配置。
基于卷的虚拟机可以正常创建,但重启虚拟机后错误,查看nova-compute的日志,发现报ProcessExecutionError:unexpected error while running command. Command: multipah -f 320b508ca45022b80失败,map in use, failed to remove multipath map 320b508ca45022b80。
手动执行multipah -f 320b508ca45022b80,确实是报in use的状态,怀疑有进程在使用该卷,通过lvdisplay、vgdisplay和lsblk发现有相同的卷组名称被激活,怀疑是虚拟机和物理机的采用了相同的卷组名等,且虚拟机启动后的卷组名被激活了,重启过程中取消激活卷组中所有逻辑卷失败,导致multipath -f失败。故我们需要针对lvm配置下,仅仅激活系统的逻辑卷即可,通过lsblk查看系统卷,然后进行相应配置,编辑/etc/lvm/lvm.conf,修改以下内容
devices {
filter = [ "a/sda/", "r/.*/" ]
}
allocation {
volume_list = ["klas"]
auto_activation_volume_list = ["klas"]
}
重启服务:
systemctl restart lvm2-lvmetad.service lvm2-lvmetad.socket
重新创建虚拟机,然后重启就能正常了。同时建议虚拟机采用其他卷组名称
采用同有提供的驱动版本zeus-driver-3.1.2.000106,将驱动拷贝至cinder_volume容器/usr/lib/python2.7/site-packages/cinder/volume/drivers/目录中及cinder_backup容器/usr/lib/python2.7/site-packages/cinder/backup/drivers/目录中,重启相关服务。
vim /etc/kolla/cinder-volume/cinder.conf
[DEFAULT]
enabled_backends=toyou_ssd
[toyou_ssd]
volume_driver = cinder.volume.drivers.zeus.Acs5000_iscsi.Acs5000ISCSIDriver
san_ip = x.x.x.x
use_mutipath_for_image_xfer = True
image_volume_cache_enabled = True
san_login = cliuser
san_password = ******
acs5000_volpool_name = toyou_ssd
acs5000_target = 0
volume_backend_name = toyou_ssd
重启服务cinder-volume服务,其他略,可参考“参考方案”
通过lsblk查看采用的系统盘,然后编辑/etc/lvm/lvm.conf,修改以下内容
devices {
filter = [ "a/sda/", "r/.*/" ]
}
allocation {
volume_list = ["klas"]
auto_activation_volume_list = ["klas"]
}
重启服务:
systemctl restart lvm2-lvmetad.service lvm2-lvmetad.socket
注意,主要是filter,filter里面的盘符根据lsblk识别出来的系统盘决定,有可能是sdb或者nvme等