Failed to remove multipath map 320b508ca45022b80

(23) 2024-05-12 14:01:03

1. 项目场景

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


2. 问题描述及原因分析

2.1 问题描述

同有 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,修改以下内容

# Configuration option devices/global_filter.
# Limit the block devices that are used by LVM system compents.
devices {
        global_filter = [ "r|/dev/mapper/.*|" ]
}
allocation {
       volume_list = ["klas"]
       auto_activation_volume_list = ["klas"]
}

重启服务:

systemctl restart lvm2-lvmetad.service lvm2-lvmetad.socket

重新创建虚拟机,然后重启就能正常了。同时建议虚拟机采用其他卷组名称

2.2存储配置

2.2.1 驱动

采用同有提供的驱动版本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/目录中,重启相关服务。

2.2.2 配置cinder-volume

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服务,其他略,可参考“参考方案”


3. 解决方案

通过lsblk查看采用的系统盘,然后编辑/etc/lvm/lvm.conf,修改以下内容

devices {
        global_filter = [ "r|/dev/mapper/.*|" ]
}
allocation {
       volume_list = ["klas"]
       auto_activation_volume_list = ["klas"]
}

重启服务:

systemctl restart lvm2-lvmetad.service lvm2-lvmetad.socket

注意,主要是filter,filter里面的盘符根据lsblk识别出来的系统盘决定,有可能是sdb或者nvme等


4. 参考方案

openstack victoria 对接华为存储OceanStor 5110 v5(Kunpeng)

THE END

发表回复