Ubuntu系統下的多路徑軟件 DM Multipath 配置。


Ubuntu系統下的多路徑軟件是操作系統自帶的 DM Multipath工具。
------------------------------------------------------------------------------------------------------------------
DM-Multipath 組件介紹:
dm_multipath :   內核模塊 為路徑和路徑組群重新指定 I/O 並支持出錯冗余。
multipath-tools: 程序 配置並啟用設備映射器多路徑
multipath :      命令 列出並配置 multipath 設備。通常使用 /etc/rc.sysinit 啟動,還可以在添加塊設備時使用 udev 程序啟動。
multipathd :     守護進程 監視器路徑,如果路徑故障並返回,它可能會啟動路徑組群切換。可為多路徑設備提供互動修改。
                              對 /etc/multipath.conf 文件的任何修改都必須啟動它。
kpartx : 命令 為設備中的分區生成設備映射器設備。這個命令對帶 DM-MP 的 DOS 分區
                 是很必要的。kpartx 在其自身軟件包中就存在,但 devicemapper-multipath 軟件包要依賴它。
-------------------------------------------------------------------------------------------------------------------
一、首先檢查系統是否已安裝了 Multipath 軟件包,如果沒有從系統安裝光盤上找到並且安裝相應軟件包。
root@ubuntu:~# dpkg -l | grep multipath-tools
root@ubuntu:~#                                   #沒有返回值說明沒有安裝

二、安裝multipath-tools 和multipath-tools-boot 軟件包
通過apt源安裝,如果操作系統可以連接外網通過網絡apt源最方便,如果不能連外網,可以通過DVD光驅掛載系統iso鏡像文件實現本地apt源安裝,
掛載DVD源的方法Ubuntu源的文章已經介紹這里不再介紹了。

1、搜索軟件包
root@ubuntu:~# apt-cache search multipath-tool           
kpartx - create device mappings for partitions
multipath-tools - maintain multipath block device access
multipath-tools-boot - Support booting from multipath devices
root@ubuntu:~#

2、安裝軟件包
root@ubuntu:~# apt-get install multipath-tools          

如果需要從SAN引導,則還需要multipath-tools-boot軟件包,不需要可以不安裝。
root@ubuntu:~# apt-get install multipath-tools-boot

三、查看服務的開機狀態。

root@ubuntu:~# systemctl list-unit-files  | grep multipath
multipath-tools-boot.service               masked  
multipath-tools.service                    enabled          #開機已啟動
multipathd.service                         enabled          #開機已啟動
multipathd.socket                          static  
root@ubuntu:~#

如果服務沒有啟動,通過下面的命令啟動
root@ubuntu:~# systemctl enable multipath-tools.service


四、Multipath 需要建立一個配置文件/etc/multipath.conf,默認情況下是沒有的。安裝完軟件
會在:/usr/share/doc/multipath-tools/examples 目錄下生成 multipath.conf.synthetic 模板文件
可以將這個文件復制到/etc目錄下並從命名為multipath.conf 命令如下

root@ubuntu:~# cp -v /usr/share/doc/multipath-tools/examples/multipath.conf.synthetic /etc/multipath.conf

這個文件的內容都被注釋掉了,可以取消與您環境相關的行的注釋符


五、修改配置文件/etc/multipath.conf添加下面的內容,這里不取消注釋的行,直接添加內容
-----------------------------------------------------------------------------------
defaults {
        user_friendly_names yes                    #如果是集群環境yes最好改成no,下面有解釋。
        path_grouping_policy  multibus
}

blacklist {                                        #把本地磁盤加入黑名單,下面會解釋
      wwid 3630001575acb87f022c3c81a046db3e4       #本地磁盤的WWid號
}
------------------------------------------------------------------------------------

可以通過下面的命令查看所以磁盤的wwid號。
root@ubuntu:~# ll /dev/disk/by-id/

如果您在啟動 multipath 守護進程后發現需要編輯 multipath 配置文件,則必須執行如下命令方可使更改生效。

root@ubuntu:~# systemctl reload multipathd.service  


六、啟勱 multipathd 服務,守護進程。
[root@pipci ~]# systemctl start multipathd.service


七、檢查 multipath 模塊是否正常加載

root@ubuntu:~# lsmod |grep dm_multipath
dm_multipath           24576  2 dm_round_robin
root@ubuntu:~#

八、安裝配置成功后,可以查看到 multipath 管理了一個名稱為 mpathn 的多路徑設備,此設備包含有兩個 路徑。
              
root@ubuntu:~# multipath -ll           #user_friendly_names yes(別名設置)

mpatha (36505dac1002fc54b1ee508f200000048) dm-0 HUAWEI,XSG1
size=200G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 12:0:0:1 sdb 8:16 active ready running
  `- 13:0:0:1 sdc 8:32 active ready running

               
root@ubuntu:~# multipath -ll           #user_friendly_names no(未別名設置)

36505dac1002fc54b1ee508f200000048 dm-0 HUAWEI,XSG1
size=200G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 12:0:0:1 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 13:0:0:1 sdc 8:32 active ready running


九、使用 fdisk 查看硬盤會多出存儲設備Disk /dev/mapper/mpatha(用別名),這個是多路徑軟件生成的設備,在分區或其他針對硬盤的操作時請 使用這個設備,不要使用/dev/sdb 和/dev/sdc等設備,除非是服務器本地磁盤(sda)。
root@ubuntu:~# fdisk -l

Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdc: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/mpatha: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@ubuntu:~#



十、對修改配置文件multipath.conf添加下面的內容說明
-----------------------------------------------------------------------------------------
1、user_friendly_names yes
每個多路徑設備都有一個全球識別符(WWID),它是一個全球唯一的無法更改的號碼。默認情況下會將
多路徑設備的名稱設定為它的 WWID。另外,您還可以在多路徑配置文件中設置
user_friendly_names 選項,該選項可將別名設為格式為 mpathn 的節點唯一名稱
當在 DM-Multipath中添加新設備時,這些新設備會位於 /dev 目錄的兩個不同位
置:/dev/mapper/mpathn 和 /dev/dm-n。
/dev/mapper 中的設備是在引導過程中生成的。可使用這些設備訪問多路徑設備,例如在生成
邏輯卷時。
所有 /dev/dm-n 格式的設備都只能是作為內部使用,請不要使用它們。
*在集群中保持多路徑設備名稱一致(重點)
當將 user_friendly_names 配置選項設為 yes 時,該多路徑設備的名稱對於節點來說是唯一的,但不
保證對使用多路徑設備的所有節點都一致。同樣,如果您為 multipath.conf 配置文件的 multipaths
部分中的設備設定 alias 選項,該名稱不會自動在集群的所有節點中保持一致。如果您使用 LVM 在多路
徑設備中創建邏輯設備,這不應是問題。但如果您需要將您的多路徑設備名稱在集群中的每個節點上都保
持一致,請不要將 user_friendly_names 選項設定為 yes,且不要為那些設備配置別名。默認情況
下,如果您不將 user_friendly_names 設定為 yes,或者為某個設備配置別名,則設備名稱將是該設
備的 WWID,它是不會變的。
如果您要系統定義的用戶友好名稱在集群的所有節點中都一致,您可按照以下步驟操作:
1. 在一台機器中設定所有多路徑設備。
2. 運行以下命令在其他機器中禁用所有 multipath 設備:
# systemctl stop multipath-tools.service
# multipath -F
3. 將第一台機器中的 /etc/multipath/bindings 文件復制到集群中的其它所有機器中。
4. 使用以下命令在集群的其他機器中重新 multipathd 守護進程:
設備映射多路徑
 
# systemctl start multipath-tools.service
如果您添加新設備,您將需要重復這個過程。
同樣,如果您為某個設備配置別名以便在集群的節點中使其保持一致,您應確定
/etc/multipath.conf 文件對於集群中的每個節點都是一樣的,步驟如下:
1. 為機器 multipath.conf 文件中的多路基功能設備配置別名。
2. 運行以下命令在其他機器中禁用所有 multipath 設備:
# systemctl stop multipath-tools.service
# multipath -F
3. 將第一台機器中的 /etc/multipath.conf 文件復制到集群中的其它所有機器中。
4. 使用以下命令在集群的其他機器中重新 multipathd 守護進程:
# systemctl start multipath-tools.service
當您添加新設備時,您將需要重復這個過程。
-----------------------------------------------------------------------------------------------

2、path_grouping_policy  multibus

DM-Multipath 可在主動/被動配置中提供出錯冗余。在主動/被動配置中,只有一半的路徑在每次
I/O 時都使用。如果 I/O 路徑的任意元素(電纜、交換機或者控制器)出現故障,就會將 DMMultipath 切換到備用路徑。
也可將 DM-Multipath 配置為主動/主動模式,其中將 I/O 以輪叫調度算法方式分布到所有路徑中。
在有些配置中,DM-Multipath 可在 I/O 路徑中檢測負載並動態重新平衡負載
默認配置path_grouping_policy  failover  主備模式
配置成  path_grouping_policy  multibus  負載模式

3、生成多路徑設備時忽略本地磁盤
有些機器的內部磁盤有本地SCSI卡。DM-Multipath不推薦用於這些設備。以下過程說明如何在配置多路徑時修改多路徑配置文件以忽略本地磁盤。
確定哪些磁盤是內部磁盤,並將它們標記為要列入黑名單的磁盤。一般情況下,/ dev / sda是內部磁盤。
為了防止設備映射器在其多路徑映射中映射/ dev / sda,請編輯/etc/multipath.conf文件的黑名單部分以包含此設備。
雖然您可以使用devnode類型將sda設備列入黑名單,但這不是安全的過程,因為/ dev / sda不能保證在重新啟動時相同。
要將單個設備列入黑名單,您可以使用該設備的WWID將其列入黑名單。

十一、常用命令

# multipath -ll     #顯示現有多路徑配置
# multipath -F      #刪除全部路徑  
# multipath -v2     #格式化路徑,格式化后會生成新路徑







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM