多路徑軟體介紹
多路徑軟體作用
1)冗餘。為了保證儲存訪問的可靠性,一般至少要用2塊光纖卡,透過2個FC switch,接在磁碟陣列的兩個控制器上。這樣,當一條path出問題,還有另一條path可訪問。但是,從OS的角度看來,陣列上的某一個LUN,會有兩個裝置檔名與之對應(例如solaris上/dev/dsk/c5t0d0和/dev/dsk/c6t0d0)。MultiPathing軟體的主要功能就是將2個裝置檔案虛擬成一個,OS訪問時,這個裝置名是2個path的。當一條path故障時,OS可以不中斷地繼續訪問這個LUN。
2)負載均衡。既然有2個path,那麼如果某一個path只是備用就浪費了。所以MultiPathing的軟體的另一個功能就是load balance(也稱為Active/Active)。但這個功能不僅僅由MultiPathing軟體實現,磁碟陣列本身也必需支援,否則,MultiPathing只能實現主備方式(Active/Passive)。
1)冗餘。為了保證儲存訪問的可靠性,一般至少要用2塊光纖卡,透過2個FC switch,接在磁碟陣列的兩個控制器上。這樣,當一條path出問題,還有另一條path可訪問。但是,從OS的角度看來,陣列上的某一個LUN,會有兩個裝置檔名與之對應(例如solaris上/dev/dsk/c5t0d0和/dev/dsk/c6t0d0)。MultiPathing軟體的主要功能就是將2個裝置檔案虛擬成一個,OS訪問時,這個裝置名是2個path的。當一條path故障時,OS可以不中斷地繼續訪問這個LUN。
2)負載均衡。既然有2個path,那麼如果某一個path只是備用就浪費了。所以MultiPathing的軟體的另一個功能就是load balance(也稱為Active/Active)。但這個功能不僅僅由MultiPathing軟體實現,磁碟陣列本身也必需支援,否則,MultiPathing只能實現主備方式(Active/Passive)。
多路徑(multi-path)軟體的介紹
普通的電腦主機都是一個硬碟掛接到一個匯流排上,這裡是一對一的關係。而到了有光纖組成的SAN環境,由於主機和儲存透過了光纖交換機連線,這樣的話,就構成了多對多的關係。也就是說,主機到儲存可以有多條路徑可以選擇。主機到儲存之間的IO由多條路徑可以選擇,如下圖:
根據上圖所示,每個主機到所對應的儲存可以經過幾條不同的路徑,如果是同時使用的話,I/O流量如何分配?其中一條路徑壞掉了,如何處理?還有在作業系統的角度來看,每條路徑,作業系統會認為是一個實際存在的物理盤,但實際上只是通向同一個物理盤的不同路徑而已,這樣是在使用的時候,就給使用者帶來了困惑。多路徑軟體就是為了解決上面的問題應運而生的。多路徑的主要功能就是和儲存裝置一起配合實現如下功能:
1. 故障的切換和恢復
2. IO流量的負載均衡
3. 磁碟的虛擬化
由於多路徑軟體是需要和儲存在一起配合使用的,不同的廠商基於不同的作業系統,都提供了不同的版本。並且有的廠商,軟體和硬體也不是一起賣的,如果要使用多路徑軟體的話,可能還需要向廠商購買license才行。比如EMC公司基於linux下的多路徑軟體,就需要單獨的購買license。好在, RedHat和Suse的2.6的核心中都自帶了免費的多路徑軟體包,並且可以免費使用,同時也是一個比較通用的包,可以支援大多數儲存廠商的裝置,即使是一些不是出名的廠商,透過對配置檔案進行稍作修改,也是可以支援並執行的很好的。
本文一下的部分將專門針對Linux下多路徑軟體的配置安裝,以及一些結合實際的操作進行詳細的介紹(以下操作均在Suse10 SP1下進行)
多路徑軟體包的構成
device-mapper-1.02.13-6.9.i586.rpm
該軟體執行在底層,主要進行裝置虛擬化和對映。
multipath-tools-0.4.7-34.18.i586.rpm,這個軟體包可以在
多路徑的管理和監控工具,主要進行路徑狀態的檢測,管理工作
多路徑軟體包的安裝
Rpm –ivh device-mapper-1.02.13-6.9.i586.rpm
Rpm –ivh multipath-tools-0.4.7-34.18.i586.rpm
安裝完成後,使用命令modprobe dm_multipath來載入相應的模組,可以使用lsmod |grep dm_multipath來檢查安裝是否正常。
配置檔案的修改及建立
接下來的工作就是要建立一個multipath.conf的配置檔案,該檔案在安裝後不會自動建立。不過有一個模板可以使用,使用如下命令可以建立一個multipath.conf的檔案了
cp /usr/share/doc/packages/multipath-tools/multipath.conf.synthetic /etc/multipath.conf
然後再該檔案的最後一段加上如下配置:
devices {
device {
vendor "EMC" //廠商名稱
product "CaXXXXX" //產品型號
path_grouping_policy group_by_prio //預設的路徑組策略
getuid_callout "/sbin/scsi_id -p 0x80 -g -u -s /block/%n" //獲得唯一裝置號使用的預設程式
prio_callout "/sbin/acs_prio_alua %d" //獲取有限級數值使用的預設程式
hardware_handler "1 acs" //確認用來在路徑切換和IO錯誤時,執行特定的操作的模組。
path_checker hp_sw //決定路徑狀態的方法
path_selector "round-robin 0" //選擇那條路徑進行下一個IO操作的方法
failback immediate //故障恢復的模式
no_path_retry queue //在disable queue之前系統嘗試使用失效路徑的次數的數值
rr_min_io 100 //在當前的使用者組中,在切換到另外一條路徑之前的IO請求的數目
}
}
編輯modprobe.conf檔案,用來設定驅動程式的引數。
/etc/modprobe.conf.local
增加一行 "options scsi_mod dev_flags=Accusys:ACS92102:0x1000"
重新編譯引導檔案
"cp -f /boot/initrd-2.6.[kernel_version].img ./initrd-2.6.[k_v].img.bak"
"mkinitrd"
做完上述操作後,注意要將作業系統重新啟動
磁碟的分割槽及使用
建立多路徑裝置的分割槽,這裡主要一下,多路徑的分割槽只適合使用kpartx工具,不要使用fdisk進行分割槽。
---------------------------------
Step2, kpartx -l /dev/dm-0 //lists all partitions on this device
Step3, kpartx -a /dev/dm-0 //create all device node on this device
kpartx -a /dev/mapper/ //多路徑的裝置不可以使用fdisk進行分割槽,必須使用kpartx -a進行分割槽後,再進行格式化。
檢視對映關係
Suse3:/sbin # ls -la /dev/disk/by-name/
total 0
drwxr-xr-x 2 root root 200 Aug 1 09:01 .
drwxr-xr-x 7 root root 140 Jul 31 18:05 ..
lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_010c3b973ffbc469ce11eb4d2db9d677 -> ../../dm-5
lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_010c3b973ffbc469ce11eb4d2db9d677-part1 -> ../../dm-7
lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_1fbdf62d63e62b625aaea9eb8c7e45cf -> ../../dm-4
lrwxrwxrwx 1 root root 10 Aug 1 09:01 SAccusys_ACS92102_1fbdf62d63e62b625aaea9eb8c7e45cf-part1 -> ../../dm-6
lrwxrwxrwx 1 root root 10 Aug 1 08:46 SAccusys_ACS92102_6d71358b45505925b5bd17ff49d554f3 -> ../../dm-0
lrwxrwxrwx 1 root root 10 Aug 1 08:46 SAccusys_ACS92102_6d71358b45505925b5bd17ff49d554f3-part1 -> ../../dm-1
lrwxrwxrwx 1 root root 10 Jul 31 18:08 SAccusys_ACS92102_f0ade6db4a8d13de2c30fd5efae7b91c -> ../../dm-2
lrwxrwxrwx 1 root root 10 Jul 31 18:10 SAccusys_ACS92102_f0ade6db4a8d13de2c30fd5efae7b91c-part1 -> ../../dm-3
幾個比較有用的命令
1.start/stop multipathd process "service multipathd start/stop"
2.display the multipath topology "multipath -ll" //非常有用的命令。
3.display the multipath debug info "multipath -v3"
4.Scan the HD "fdisk -l"
5.view the FC wwn " cat /sys/class/fc_host/host1/node_name "
下面是舉例:
multipath -ll
Successful info:
SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102
[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]
\_ round-robin 0 [prio=400][active]----//表示當前的正在使用控制器
\_ 1:0:1:0 sdc 8:32 [active][ready]
\_ 1:0:2:0 sdd 8:48 [active][ready]
\_ 2:0:1:0 sdg 8:96 [active][ready]
\_ 2:0:2:0 sdh 8:112 [active][ready] ----//c,d,g,h可以理解為路徑
\_ round-robin 0 [prio=0][enabled]-----//備份控制器
\_ 1:0:0:0 sdb 8:16 [active][ghost]
\_ 1:0:3:0 sde 8:64 [active][ghost]
\_ 2:0:0:0 sdf 8:80 [active][ghost]
\_ 2:0:3:0 sdi 8:128 [active][ghost] //
faulty info:
sdc: checker msg is "hp_sw checker reports path is down" //路徑出現故障
sdd: checker msg is "hp_sw checker reports path is down" //路徑出現故障
sdh: checker msg is "hp_sw checker reports path is down" //路徑出現故障
SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102
[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]
\_ round-robin 0 [prio=0][enabled] ---- //兩個都是enabled狀態,一控制器故障,另外一個控制器沒有failover。
\_ 1:0:1:0 sdc 8:32 [failed][faulty]
\_ 1:0:2:0 sdd 8:48 [failed][faulty]
\_ 2:0:1:0 sdg 8:96 [failed][faulty]
\_ 2:0:2:0 sdh 8:112 [failed][faulty]
\_ round-robin 0 [prio=0][enabled] ----
\_ 1:0:0:0 sdb 8:16 [active][ghost]
\_ 1:0:3:0 sde 8:64 [active][ghost]
\_ 2:0:0:0 sdf 8:80 [active][ghost]
\_ 2:0:3:0 sdi 8:128 [active][ghost]
控制器重新啟動後,Suse有時候需要重新啟動才可以使用。
multipath -ll
SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102
[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]
\_ round-robin 0 [prio=200][active]
\_ 1:0:0:0 sdb 8:16 [active][ready]
\_ 1:0:1:0 sdc 8:32 [active][ready]
\_ 2:0:0:0 sdd 8:48 [active][ready]
\_ 2:0:1:0 sde 8:64 [active][ready]
multipath的所有的相關的檔案
-rwxr--r-- 1 root root 2554 Jun 30 16:26 /etc/init.d/boot.multipath
-rwxr--r-- 1 root root 3700 Jun 30 16:26 /etc/init.d/multipathd
drwxr-xr-x 2 root root 0 Jun 30 16:26 /etc/udev
drwxr-xr-x 2 root root 0 Jun 30 16:26 /etc/udev/rules.d
-rw-r--r-- 1 root root 1185 Jun 30 16:26 /etc/udev/rules.d/71-multipath.rules
-rw-r--r-- 1 root root 262 Jun 30 16:26 /etc/udev/rules.d/72-multipath-compat.rules
-rwxr-xr-x 1 root root 4872 Jun 30 16:26 /sbin/devmap_name
-rwxr-xr-x 1 root root 22824 Jun 30 16:26 /sbin/kpartx
-rwxr-xr-x 1 root root 1114 Jun 30 16:26 /sbin/kpartx_id
-rwxr-xr-x 1 root root 296 Jun 30 16:26 /sbin/mpath_id
-rwxr-xr-x 1 root root 8404 Jun 30 16:26 /sbin/mpath_prio_alua
-rwxr-xr-x 1 root root 7852 Jun 30 16:26 /sbin/mpath_prio_balance_units
-rwxr-xr-x 1 root root 4208 Jun 30 16:26 /sbin/mpath_prio_emc
-rwxr-xr-x 1 root root 5492 Jun 30 16:26 /sbin/mpath_prio_hds_modular
-rwxr-xr-x 1 root root 5984 Jun 30 16:26 /sbin/mpath_prio_netapp
-rwxr-xr-x 1 root root 3284 Jun 30 16:26 /sbin/mpath_prio_random
-rwxr-xr-x 1 root root 4184 Jun 30 16:26 /sbin/mpath_prio_tpc
-rwxr-xr-x 1 root root 121888 Jun 30 16:26 /sbin/multipath
-rwxr-xr-x 1 root root 146996 Jun 30 16:26 /sbin/multipathd
drwxr-xr-x 2 root root 0 Jun 30 16:26 /usr/share/doc/packages/multipath-tools
-rw-r--r-- 1 root root 49 Nov 11 2005 /usr/share/doc/packages/multipath-tools/AUTHOR
-rw-r--r-- 1 root root 25284 Nov 11 2005 /usr/share/doc/packages/multipath-tools/COPYING
-rw-r--r-- 1 root root 195 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/ChangeLog
-rw-r--r-- 1 root root 15 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/README
-rw-r--r-- 1 root root 9238 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/multipath.conf.annotated
-rw-r--r-- 1 root root 1499 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/multipath.conf.synthetic
-rw-r--r-- 1 root root 424 Jun 30 16:26 /usr/share/man/man8/devmap_name.8.gz
-rw-r--r-- 1 root root 544 Jun 30 16:26 /usr/share/man/man8/kpartx.8.gz
-rw-r--r-- 1 root root 2048 Jun 30 16:26 /usr/share/man/man8/mpath_prio_alua.8.gz
-rw-r--r-- 1 root root 979 Jun 30 16:26 /usr/share/man/man8/multipath.8.gz
-rw-r--r-- 1 root root 489 Jun 30 16:26 /usr/share/man/man8/multipathd.8.gz
drwx------ 2 root root 0 Jun 30 16:26 /var/cache/multipath
小技巧
儲存新增對映或者做了修改,主機不用重新啟動的方法
echo 1 > /sys/class/fc_host/host1/issue_lip
echo 1 > /sys/class/fc_host/host2/issue_lip
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
重啟服務,讓配置檔案生效的方法:
1. Stop the multipathd service.
2. Clear old multipath bindings by entering
/sbin/multipath -F
3. Create new multipath bindings by entering
/sbin/multipath -v2 -l
Start the multipathd service. //更改配置檔案後需要做上面的操作才可以讓配置檔案的更改生效。
如果連線一切都正常,但是suse在作業系統下看不到磁碟。這時可能需要重新啟動儲存系統。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27767315/viewspace-2107569/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【多路徑】EMC儲存多路徑軟體配置
- IBM儲存多路徑軟體IBM
- linux 儲存多路徑軟體Linux
- 多路徑軟體安裝使用方法
- hds 多路徑軟體failover,failback測試AI
- Oracle ASM和多路徑軟體的相容性【轉】OracleASM
- 軟體介紹使用
- Linux平臺的多路徑軟體multipath的使用案例Linux
- 軟體測試--中介軟體介紹
- django中介軟體介紹Django
- 軟體版本控制介紹
- multipath多路徑配置
- VSCode軟體介紹VSCode
- Altium designer軟體介紹
- 華為儲存多路徑
- 儲存-配置多路徑
- LINUX LOG(多路徑)Linux
- redhat multipath多路徑 DMRedhat
- 軟體系統介紹文件模板
- Mac OS X常用軟體介紹Mac
- 同步阻塞、同步非阻塞、多路複用的介紹
- 軟體測試面試如何自我介紹面試
- 介紹一個軟體開發工具
- Altair SimSolid軟體特點介紹AISolid
- BI報表軟體選型介紹
- 簡單介紹redux的中介軟體Redux
- linux之 multipath 多路徑Linux
- linux多路徑multipath配置Linux
- Linux 下配置多路徑Linux
- js cookie路徑簡單介紹JSCookie
- 軟體測試學習教程——JDBC介紹JDBC
- 移動OA軟體重要功能介紹
- Django-中介軟體的介紹及使用Django
- 工控機的軟體的簡單介紹
- 動態惡意軟體分析工具介紹
- 介紹 10 個有用的 Flutter 軟體包Flutter
- 軟體定義汽車之SOME/IP介紹
- Linux常用的監控軟體介紹!Linux