zoukankan      html  css  js  c++  java
  • 使用Multipath进行多链路聚合并对聚合后的设备固定命名

    使用Multipath进行多链路聚合并对聚合后的设备固定命名

    1、启用Multipath:

    (1)启动multipathd服务
    #service multipathd start 或者 #/etc/init.d/multipathd start

    (2)修改multipath配置文件/etc/multipath.conf:
    a 默认情况下所以的设备都在multipath的黑名单中,所以即使启动了multipathd服务并加在了内核模块,multipath也不会对链路进行聚合,找到下面的3行并注释掉(在行首加上#号)
    #devnode_blacklist {
    # devnode "*"
    #}
    b 默认情况下multipath生成dm设备之后,会同时在/dev/mapper/下生成以磁盘wwid为名的符号链接指向对应的dm设备。如果想生成mpath设备,则需要打开user_friendly_names选项,将配置文件中下面3行的注释取消(去掉行首的#号)
    defaults {
    user_friendly_names yes
    }

    (3)重启multipathd服务(修改multipath.conf文件之后都应该重启multipath服务)

    (4)扫描磁盘
    #multipath -v2
    使用上面命令之后,系统中会出现链路聚合之后的dm设备,同时也会在/dev/mapper/、/dev/mpath/目录下生成相应的设备。
    查看multipath拓扑结构
    #multipath -ll
    另外一个重要的文件是/var/lib/multipath/bindings,这个文件中是磁盘的别名和wwid的对应关系,典型的例子是:
    mpath0 3600508b4000c3af700008000002d0000

    (5)需要注意的问题,multipath也会为本地的磁盘生成相应的dm设备,所以需要在multipath.conf中将本地磁盘加入到黑名单,配置的方法可以参考下面的示例
    devnode_blacklist {
    wwid 36005076b08164f4011ae88b23efb95fe
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^hd[a-z]"
    }
    如上例所示,可以通过wwid或者设备名将本地磁盘加入到黑名单中。


    2、固定multipath设备的命名:
    通过wwid和设备别名一一对应的方式固定multipath设备的名称,这些和别名对应的设备会被创建到/dev/mapper/目录下,使用时直接使用这个目录的的设备。

    (1)通过/var/lib/multipath/bindings可以获取所有磁盘的wwid,确定每个磁盘的别名之后,在/etc/multipath.conf中的multipaths段中加入相应的配置,如将wwid为3600508b4000c3b910000c00000330000的磁盘命名为etl01,wwid为3600508b4000c3b910000c00000390000的磁盘命名为etl02,配置文件如下所示
    multipaths {
    multipath {
    wwid 3600508b4000c3b910000c00000330000
    alias etl01
    }
    multipath {
    wwid 3600508b4000c3b910000c00000390000
    alias etl02
    }
    }

    (2)配置完成之后,重启multipathd服务,使用下面的命令清空已有的multipath记录
    #multipath -F
    然后使用multipath -v2重新扫描设备,这时会在/dev/mapper/目录下生成和别名对应的设备文件。
    #ls /dev/mapper/
    control etl01 eth02

    (3)如果多台服务器的存储链路完全相同,并希望各服务器上同一磁盘的设备名相同,可以在一台服务器上配置好别名绑定之后,将multipaths { }中间的配置复制到其他服务器,这样各台服务器/dev/mapper/下面的设备将会保持一致。

  • 相关阅读:
    wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败
    【原创】Linux PCI驱动框架分析(三)
    JavaScript 的灵异事件之一
    javascript 对http的get请求参数编码encodeURIComponent、encodeURI 和Java 解码
    Docker 容器逃逸漏洞 (CVE-2020-15257)
    如何关掉页面版知乎的登录模态框
    一个让java程序员有杀人的冲动的Xerces冲突问题
    双十一 大促 云服务器哪家好 哪家强(价格最低)
    git 拉取指定目录
    nginx 剔除 $args 变量中任意指定参数之万金油
  • 原文地址:https://www.cnblogs.com/timlong/p/6096273.html
Copyright © 2011-2022 走看看