




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、什么是 multipath 普通的電腦主機都是一個硬盤掛接到一個總線上,這里是一對一的關(guān)系。而到了有光纖組 成的SA環(huán)境,由于主機和存儲通過了光纖交換機連接,這樣的話,就構(gòu)成了多對多的關(guān)系。也就是說,主機到存儲可以有多條路徑可以選擇。主機到存儲之間的10由多條路徑可以選擇。既然,每個主機到所對應(yīng)的存儲可以經(jīng)過幾條不同的路徑,如果是同時使用的話,I/0 流量如何分配?其中一條路徑壞掉了,如何處理?還有在操作系統(tǒng)的角度來看,每條路徑,操 作系統(tǒng)會認為是一個實際存在的物理盤, 但實際上只是通向同一個物理盤的不同路徑而已, 這樣是在使用的時候,就給用戶帶來了困惑。多路徑軟件就是為了解決上面的問題應(yīng)
2、運而 生的。多路徑的主要功能就是和存儲設(shè)備一起配合實現(xiàn)如下功能:1. 故障的切換和恢復(fù)2. I0 流量的負載均衡3. 磁盤的虛擬化二、為什么使用 multipath 由于多路徑軟件是需要和存儲在一起配合使用的,不同的廠商基于不同的操作系統(tǒng),都提 供了不同的版本。并且有的廠商,軟件和硬件也不是一起賣的,如果要使用多路徑軟件的 話,可能還需要向廠商購買license才行。比如EMC公司基于linux下的多路徑軟件,就需要 單獨的購買 license 。其中,EMC提供的就是PowerPath,HDSI供的就是HDLM更多的存儲廠商提供的軟件,可參 考這里。當然,使用系統(tǒng)自帶的免費多路徑軟件包,同時
3、也是一個比較通用的包,可以支持大多數(shù) 存儲廠商的設(shè)備,即使是一些不是出名的廠商,通過對配置文件進行稍作修改,也是可以 支持并運行的很好的。% 請與IBM的RDAC Qlogic的failover驅(qū)動區(qū)分開,它們都僅提供了 Failover的功能,不 支持Load Bala nee負載均衡 方式。但multipath根據(jù)選擇的策略不同,可支持多種方式,如: Failover 、Multipath 等。Failover 的功能解釋:通俗地說,即當 A 無法為客戶服務(wù)時,系統(tǒng)能夠自動地切換,使B 能夠及時地頂上繼續(xù)為客戶提供服務(wù),且客戶感覺不到這個為他提供服務(wù)的對象已經(jīng)更換。這里的A和B可以存在于各
4、種領(lǐng)域,但一般 fail-over 特指計算機領(lǐng)域的數(shù)據(jù)庫、應(yīng)用服務(wù)、硬件設(shè) 備等的失效轉(zhuǎn)移。三、multipath 的組成我這里以紅帽x86_64為例,雖然版本比較老,但下面的配置方式基本適用后面的所有版本。引用# cat /etc/redflag-releaseRed Flag DC Server release 5.0 (Trinity SP2)# uname -aLinux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009x86_64 x86_64 x86_64 GNU/Linux# rpm
5、 -qa|grep devicedevice-mapper-event-1.02.32-1.el5device-mapper-1.02.32-1.el5device-mapper-multipath-0.4.7-30.el5device-mapper-1.02.32-1.el5 這些是需要安裝的安裝包,如果沒有安裝需要到安裝光盤中# rpm -ivh device-mapper-*將以上這些包全部安裝# chkconfig -list |grep multipathmultipathd0:關(guān)閉 1:關(guān)閉 2:關(guān)閉 3:關(guān)閉 4:關(guān)閉5:關(guān)閉 6:關(guān)閉# chkconfig multipathd
6、 on可見,一套完整的 multipath 由下面幾部分組成:1. device-mapper-multipath提供 multipathd 和 multipath 等工具和 multipath.conf 等配置文件。這些工具通過 device mapper的ioctr的接口創(chuàng)建和配置 multipath 設(shè)備(調(diào)用device-mapper的用戶空間庫。創(chuàng)建 的多路徑設(shè)備會在 /dev/mapper 中);2. device-mapperdevice-mapper 包括兩大部分:內(nèi)核部分和用戶部分。內(nèi)核部分由 device-mapper 核心( multipath.ko )和一些 targe
7、t driver ( dm-multipath.ko ) 構(gòu)成。dm-mod.ko是實現(xiàn)multipath 的基礎(chǔ),dm-multipath 其實是dm的個target驅(qū)動。核心完成設(shè)備的映射,而 target 根據(jù)映射關(guān)系和自身特點具體處理從 mappered device 下來 的i/o。同時,在核心部分,提供了一個接口,用戶通過ioctr可和內(nèi)核部分通信,以指導(dǎo)內(nèi)核驅(qū)動的行為,比如如何創(chuàng)建mappered device,這些device的屬性等。用戶空間部分包括device-mapper這個包。其中包括dmsetup工具和一些幫助創(chuàng)建和配置 mappered device 的庫。這些庫主
8、要抽象,封裝了與 ioctr 通信的接口,以便方便創(chuàng)建和配 置mappered device。device-mapper-multipath的程序中就需要調(diào)用這些庫;3. scsi_id其包含在udev程序包中,可以在 multipath.conf中配置該程序來獲取scsi設(shè)備的序號。通過序號,便可以判斷多個路徑對應(yīng)了同一設(shè)備。這個是多路徑實現(xiàn)的關(guān)鍵。scsi_id 是通過sg驅(qū)動,向設(shè)備發(fā)送 EVPDpage80或page83的in query命令來查詢scsi設(shè)備的標識。但一些 設(shè)備并不支持EVPD的in query命令,所以他們無法被用來生成 multipath設(shè)備。但可以改寫 scsi
9、_id ,為不能提供 scsi 設(shè)備標識的設(shè)備虛擬一個標識符,并輸出到標準輸出。multipath 程序在創(chuàng)建 multipath 設(shè)備時,會調(diào)用 scsi_id ,從其標準輸出中獲得該設(shè)備的 scsi id 。在改寫時,需要修改 scsi_id 程序的返回值為 0。因為在 multipath 程序中,會檢 查該直來確定 scsi id 是否已經(jīng)成功得到。四、配置 multipath原理看了一堆,實際配置還是比較簡單的。配置文件只有一個: /etc/multipath.conf 。 配置前,請用fdisk -l確認已可正確識別盤柜的所有 LUN邏輯單元號,HD支持多鏈路負載均衡,因此每條鏈路都
10、是正常的;而如果是類似EMCCX30C這樣僅支持負載均衡的設(shè)備,則冗余的鏈路會出現(xiàn) I/O Error 的錯誤。multipath.conf 的配置參數(shù)、默認值,可參考:1、編輯黑名單默認情況下, multipath 會把所有設(shè)備都加入到黑名單( devnode "*" ),也就是禁止使用。 所以,我們首先需要取消該設(shè)置,把配置文件修改為類似下面的內(nèi)容:# vim /etc/multipath.confdevnode_blacklist #dev node "*"用#將此行注釋掉devnode "hda"wwid 3600508e00
11、0000000dc7200032e08af0b 這里禁止使用hda,也就是光驅(qū)。另外,還限制使用本地的sda設(shè)備,這個wwid,可通過下面的命令獲得:# scsi_id -g -u -s /block/sda3600508e000000000dc7200032e08af0b2、編輯默認規(guī)則不同的device-mapper-multipath或操作系統(tǒng)發(fā)行版,其默認的規(guī)則都有點不同,以RedHatx86_64為例,其path_grouping_policy默認為failover 失效轉(zhuǎn)移,也就是主備的方式。這明顯不符合我們的要求。(HD支持多路徑負載均衡,EMC CX30等只支持Failover
12、 )。 所以,我們需要修改默認的規(guī)則:defaults udev_dir/devpath_group in g_policy multibusfailbackimmediaten o_path_retry failuser_frie ndly_ nameyes關(guān)鍵是path_grouping_policy 項,其他選項可參考說明文檔。3、啟動服務(wù)及生成映射# modprobe dm-multipath# service multipathd restart# multipath -v04、查看復(fù)合后的設(shè)備# multipath -ll會看到類似下面的信息:mpath0 (360060e8005
13、8e980000008e9800000007)size=20 GBfeatures="0"hwhandler="0"_ round-robin 0 prio=1active_ 3:0:0:7 sdaa 65:160 activeready_ round-robin 0 prio=1enabled_ 4:0:0:7 sdas 66:192 activeready_ round-robin 0 prio=1enabled_ 5:0:0:7 sdbk 67:224 activeready_ round-robin 0 prio=1enabled_ 2:0:0:
14、7 sdi 8:128 activeready這說明,已由四條鏈路 sdaa/sdas/sdbk/sdi 復(fù)合成一條鏈路,設(shè)備名為 mpath0 狀態(tài)正常的話,把 multipathd 設(shè)置為自啟動:# chkconfig multipathd on# mkdir /oradata# mkfs.ext3 /dev/mapper/mpath0# mkfs.ext3 /dev/mapper/mpath1# blkid /dev/mapper/mpath0 生成該存儲設(shè)備的 UUID# blkid /dev/mapper/mpath1# vim /etc/fstab( 修改該配置文件并添加如下 )U
15、UID=47931c90-140b-45fe-9dfa-5a0f56810db3 /oradata ext3 defaults 0 0 保存退出# mount -a注意:要使用哪塊存儲設(shè)備就在 fastab 里面掛載就可以了5、使用mpath設(shè)備用multipath生成映射后,會在/dev目錄下產(chǎn)生多個指向同一條鏈路的設(shè)備:/dev/mapper/mpath n/dev/mpath/mpath n /dev/dm-n/dev/mpath/mpath n是udev設(shè)備管理器創(chuàng)建的,實際上就是指向下面的dm-n設(shè)備,僅為了方便,不能用來掛載;/dev/dm-n是軟件內(nèi)部自身使用的,不能被軟件以外使
16、用,不可掛載。簡單來說,就是我們應(yīng)該使用/dev/mapper/下的設(shè)備符。對該設(shè)備即可用fdisk進行分區(qū),或創(chuàng)建為pv。6、分區(qū)或創(chuàng)建lvm以前,我考慮到從系統(tǒng)iostat看到的都是dm-n的設(shè)備,所以一直都是直接對 dm-n操作。但 這會產(chǎn)生一個問題,就是沒法分區(qū)。而對/dev/mapper/mpathn設(shè)備操作就沒有這問題。只要要注意,用fdisk分區(qū)并保存后,必須刷新 multipath的映射表,以便其創(chuàng)建分區(qū)對應(yīng)的 設(shè)備符,例如:# fdisk -l /dev/mapper/mpathODisk /dev/mapper/mpath0: 214.7 GB, 214748364800
17、bytes255 heads, 63 sectors/track, 26108 cyli ndersUnits = cyli nders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/mapper/mpath0p1126108 209712478+ 83 Linux# multipath -F#刪除現(xiàn)有路徑兩個新的路徑就會被刪除# multipath -v0#格式化路徑# ll /dev/mapper/mpath0p1brw-rw- 1 root disk 253, 2 5月 7 07:40 /
18、dev/mapper/mpath0p1同樣的,mpath n或其分區(qū)都可用來做pv使用:# pvcreate /dev/mapper/mpath0p1# vgcreate test /dev/mapper/mpath0p1# lvcreate -L 1g -n lv1 test# lvdisplay # mkfs.ext3 /dev/test/lv1 注意: 根據(jù)網(wǎng)上的資料,有部分 multipath 版本存在與 lvm 兼容的問題。具體表現(xiàn)是,使用 device-mapper設(shè)備創(chuàng)建lvm完成,重啟后,雖然lvm仍存在,但/dev/mapper下的設(shè)備丟失。 為了防止可能的意外,建議還是修改
19、一下lvm的配置文件/etc/lvm/lvm.conf,加入:types="device-mapper", 17、其他最簡單的測試方法,是用dd往磁盤讀寫數(shù)據(jù),然后用iostat觀察各通道的流量和狀態(tài),以 判斷 Failover 失效轉(zhuǎn)移 或負載均衡方式是否正常:# dd if=/dev/zero of=/dev/mapper/mpath0# iostat -k 2另外,如果是在由多臺服務(wù)器構(gòu)建集群環(huán)境中,為了讓每臺服務(wù)器識別的mpathn設(shè)備順序一致,需進行wwid的綁定工作,請參考后面 自定義設(shè)備名稱"中的內(nèi)容。五、答疑1、為什么黑名單中不直接使用 devno
20、de "sda" 呢?因為按Linux對設(shè)備的編號,當設(shè)備從 sda到sdz時,后一個設(shè)備應(yīng)該是sdaa。而multipath 對黑名單的設(shè)置是以匹配的方式進行的,也就是說,如果你設(shè)置為 devnode "sda" ,那么除 了sda為,sdaa、sdab等的設(shè)備(通道)都會被加入到黑名單中,而禁止使用。當然,你也 可以參考配置文件中的樣式,以正規(guī)表達式的形式進行描述:dev node "Asda$"。但考慮到每次重啟后,udev分配的盤符可能都不同(沒有做 udev綁定的情況),所以,我 覺得以wwid的方式處理更可靠。2、為存儲定
21、制特定的策略在前面的配置中,我們已經(jīng)在 /etc/mulitpah.conf 中配置了多路徑的默認path_grouping_policy 為multibus。但有時候,同一臺機器上如果連接了一個以上的存儲 時,可能默認規(guī)則并不完全適用。這時,我們可以給特定的存儲定制多路徑符合的策略。 a、 mulipath 命令 該命令提供了一個 -p 的參數(shù),可以修改默認策略,參數(shù)有: -p policy force all maps to specified policy :failover 1 path per priority group multibusall paths in 1 priorit
22、y groupgroup_by_serial 1 priority group per serial group_by_prio1 priority group per priority lvlgroup_by_node_name 1 priority group per target node例如,執(zhí)行:# multipath -F# multipath -p failover -v0 有如下結(jié)果:引用mpath18 (360060e8010463ef004f2b79f00000006) size=320 GBfeatures="0"hwhandler="0&q
23、uot;_ round-robin 0 prio=2active_ 5:0:0:6 sdaf 65:240 activeready_ 4:0:0:6 sdv 65:80 activeready_ round-robin 0 enabled_ 2:0:0:6 sdb 8:16 activeready_ 3:0:0:6 sdl 8:176 activeready這說明,當你對mpath18設(shè)備讀寫時,sdaf、sdv會處于active狀態(tài),都有數(shù)據(jù)流,但sdb、 sdl 組成的鏈路是 enabled ,作為 ready 情況。這為 Failover (主備)情況,僅當 sdaf 、 sdv 組成的
24、鏈路出現(xiàn)問題時,才會切換到 sdb、 sdl 的鏈路上。b、修改配置文件看看存儲的可以在配置文件中為指定的存儲定義策略。首先,可以用multipath -v3 -ll信息,例如,我這里的機器就同時連接了兩個不同的存儲:= path info sdaa (mask 0x5) = bus = 1 dev_t = 65:160 size = 10487040 vendor = HITACHI product = OPEN-V rev = 6006 h:b:t:l = 2:0:1:24 tgt_node_name = 0x50060e80058e9800 path checker = readsect
25、or0 (internal default) state = 2 uid = 360060e80058e980000008e9800000058 (cache) = path info sdaf (mask 0x5) = bus = 1 dev_t = 65:240 size = 671088640 vendor = HITACHI product = DF600F rev = 0000 h:b:t:l = 3:0:0:6 tgt_node_name = 0x50060e8010463ef1 path checker = readsector0 (internal default) state
26、 = 2 uid = 360060e8010463ef004f2b79f00000006 (cache)默認情況下, multipath 已經(jīng)支持大部分常見的存儲型號 (可見 multipath.conf.defaults ), 但不同的 multipath 版本可能都有些不同。這時,建議參考存儲的官方文檔: devices device vendor"HITACHI"/product "OPEN-V" / path_grouping_policy group_by_prio /getuid_callout "/sbin/scsi_id -p
27、0x80 -g -u -s /block/%n" /一設(shè)備號使用的默認程序path_checker readsector0 /path_selector "round-robin 0" prio_callout "/sbin/mpath_prio_alua 程序failback immediate /hardware_handler"0"/特定的操作的模塊。no_path_retryqueue/效路徑的次數(shù)的數(shù)值rr_min_io 100 / 路徑之前的 IO 請求的數(shù)目 千萬不要寫錯 path_checker (可能值有:廠商名稱產(chǎn)品型號默認的路徑組策略獲得唯決定路徑狀態(tài)的方法/選擇那條路徑進行下一個10操作的方法/dev/%n" / 獲取有限級數(shù)值使用的默認故障恢復(fù)的模式確認用來在路徑切換和10錯誤時,執(zhí)行在 disable queue 之前系統(tǒng)嘗試使用失在當前的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國供應(yīng)用儀表行業(yè)市場全景評估及發(fā)展前景預(yù)測報告
- 三廢檢測報告測試項目一覽(二)2024
- 2021-2026年中國電船市場深度評估及行業(yè)投資前景咨詢報告
- 2025年不銹鋼臭氧殺菌器行業(yè)深度研究分析報告
- 福建省2024中考道德與法治課前小測第3課時師長情誼
- 短片在愛國主義教育中的價值和影響研究分析報告
- 2024中國木片加工行業(yè)分析報告
- 單面印刷制板行業(yè)深度研究分析報告(2024-2030版)
- 2024年廈門市政水務(wù)集團有限公司管培生招聘考試真題
- 2025年白片厚度分選機項目投資可行性研究分析報告
- 北師大版八年級下冊生物教案全冊
- 穩(wěn)定性冠心病診斷與治療指南
- DL-T5704-2014火力發(fā)電廠熱力設(shè)備及管道保溫防腐施工質(zhì)量驗收規(guī)程
- JT-T-610-2004公路隧道火災(zāi)報警系統(tǒng)技術(shù)條件
- 初中英語比較級和最高級專項練習(xí)題含答案
- 大壩安全監(jiān)測系統(tǒng)驗收規(guī)范
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 校園超市經(jīng)營投標方案(技術(shù)方案)
- 康復(fù)醫(yī)院建筑設(shè)計標準
- 社會穩(wěn)定風(fēng)險評估 投標方案(技術(shù)方案)
- 高層建筑火災(zāi)撲救面臨問題及對策
評論
0/150
提交評論