• Failed to remove multipath map 320b508ca45022b80


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

    devices {
            filter = [ "a/sda/", "r/.*/" ]
    }
    allocation {
           volume_list = ["klas"]
           auto_activation_volume_list = ["klas"]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    重启服务:

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

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    重启服务cinder-volume服务,其他略,可参考“参考方案”


    3. 解决方案

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

    devices {
            filter = [ "a/sda/", "r/.*/" ]
    }
    allocation {
           volume_list = ["klas"]
           auto_activation_volume_list = ["klas"]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    重启服务:

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

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


    4. 参考方案

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

  • 相关阅读:
    【云原生之kubernetes实战】在k8s环境下部署Heimdall导航页
    高斯滤波算法及例程
    Redis(一)安装与配置
    js中this的指向
    解决下载中文文件名乱码问题
    数据库与身份认证
    基于springboot的旅游景点管理系统
    三篇学会MySQL数据库【查询详解】
    多维评测指标解读2022MSU世界编码器大赛结果
    jQuery
  • 原文地址:https://blog.csdn.net/nanhai_happy/article/details/126057338