Linux下多路徑multipath配置文檔和相關概念_第1頁
Linux下多路徑multipath配置文檔和相關概念_第2頁
Linux下多路徑multipath配置文檔和相關概念_第3頁
Linux下多路徑multipath配置文檔和相關概念_第4頁
Linux下多路徑multipath配置文檔和相關概念_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Linux下多路徑multipath配置文檔和有關觀點Linux下多路徑multipath配置文檔和有關觀點12/12Linux下多路徑multipath配置文檔和有關觀點一、什么是multipath一般的電腦主機都是一個硬盤掛接到一個總線上,這里是一對一的關系。而到了有光纖組成的SAN環(huán)境,因為主機和儲存經過了光纖互換機連結,這樣的話,就構成了多對多的關系。也就是說,主機到儲存能夠有多條路徑能夠選擇。主機到儲存之間的IO由多條路徑能夠選擇。既然,每個主機到所對應的儲存能夠經過幾條不一樣的路徑,假如是同時使用的話,I/O流量怎樣分派?此中一條路徑壞掉了,怎樣辦理?還有在操作系統的角度來看,每條

2、路徑,操作系統會認為是一個實質存在的物理盤,但實質上不過通向同一個物理盤的不一樣路徑而已,這樣是在使用的時候,就給用戶帶來了疑惑。多路徑軟件就是為認識決上邊的問題應運而生的。多路徑的主要功能就是和儲存設施一同配合實現以下功能:故障的切換和恢復IO流量的負載平衡磁盤的虛構化二、為何使用multipath因為多路徑軟件是需要和儲存在一同配合使用的,不一樣的廠商鑒于不一樣的操作系統,都提供了不一樣的版本。而且有的廠商,軟件和硬件也不是一同賣的,假如要使用多路徑軟件的話,可能還需要向廠商購置license才行。比方EMC企業(yè)鑒于linux下的多路徑軟件,就需要獨自的購置license。此中,EMC供給

3、的就是PowerPath,HDS供給的就是HDLM,更多的儲存廠商供給的軟件,可參考這里。自然,使用系統自帶的免費多路徑軟件包,同時也是一個比較通用的包,能夠支持大多半儲存廠商的設施,即便是一些不是有名的廠商,經過對配置文件進行稍作改正,也是能夠支持并運轉的很好的。請與IBM的RDAC、Qlogic的failover驅動劃分開,它們都僅供給了Failover的功能,不支持LoadBalance負載平衡方式。但multipath依據選擇的策略不一樣,可支持多種方式,如:Failover、Multipath等。Failover的功能解說:平常地說,即當A無法為客戶服務時,系統能夠自動地切換,使B能

4、夠實時地頂上持續(xù)為客戶供給服務,且客戶感覺不到這個為他供給服務的對象已經改換。這里的A和B能夠存在于各樣領域,但一般fail-over特指計算機領域的數據庫、應用服務、硬件設施等的無效轉移。三、multipath的構成我這里以紅帽x86_64為例,固然版本比較老,但下邊的配置方式基本合用后邊的所有版本。引用#cat/etc/redflag-releaseRedFlagDCServerrelease5.0(TrinitySP2)#uname-aLinuxlocalhost.localdomain2.6.18-164.el5#1SMPTueAug1815:51:48EDT2009x86_64x86

5、_64x86_64GNU/Linux#rpm-qa|grepdevice這些是需要安裝的安裝包,假如沒有安裝需要到安裝光盤中rpm-ivhdevice-mapper-*將以上這些包所有安裝chkconfig-list|grepmultipathmultipathd0:封閉1:封閉2:封閉3:封閉4:封閉5:封閉6:封閉#chkconfigmultipathdon可見,一套完好的multipath由下邊幾部分構成:1.device-mapper-multipath供給multipathd和multipath等工具和multipath.conf等配置文件。這些工具經過devicemapper的io

6、ctr的接口創(chuàng)立和配置multipath設施(調用device-mapper的用戶空間庫。創(chuàng)立的多路徑設施會在/dev/mapper中);2.device-mapperdevice-mapper包含兩大多半:內核部分和用戶部分。內核部分由device-mapper核心(multipath.ko)和一些targetdriver(dm-multipath.ko)構成。dm-mod.ko是實現multipath的基礎,dm-multipath實質上是dm的一個target驅動。核心達成設施的映照,而target依據映照關系和自己特色詳細辦理從mappereddevice下來的i/o。同時,在核心部分

7、,供給了一個接口,用戶經過ioctr可和內核部分通訊,以指導內核驅動的行為,比方怎樣創(chuàng)立mappereddevice,這些device的屬性等。用戶空間部分包含device-mapper這個包。此中包含dmsetup工具和一些幫助創(chuàng)立和配置mappereddevice的庫。這些庫主要抽象,封裝了與ioctr通訊的接口,以便方便創(chuàng)立和配置mappereddevice。device-mapper-multipath的程序中就需要調用這些庫;3.scsi_id其包含在udev程序包中,能夠在multipath.conf中配置該程序來獲取scsi設施的序號。通過序號,便能夠判斷多個路徑對應了同一設施。

8、這個是多路徑實現的重點。scsi_id是經過sg驅動,向設施發(fā)送EVPDpage80或page83的inquery命令來查問scsi設施的表記。但一些設施其實不支持EVPD的inquery命令,所以他們無法被用來生成multipath設施。但能夠改寫scsi_id,為不可以供給scsi設施表記的設施虛構一個表記符,并輸出到標準輸出。multipath程序在創(chuàng)立multipath設施時,會調用scsi_id,從其標準輸出中獲取該設施的scsiid。在改寫時,需要改正scsi_id程序的返回值為0。因為在multipath程序中,會檢查該直來確立scsiid能否已經成功獲取。四、配置multipa

9、th原理看了一堆,實質配置仍是比較簡單的。配置文件只有一個:/etc/multipath.conf。配置前,請用fdisk-l確認已可正確辨別盤柜的所有LUN邏輯單元號,HDS支持多鏈路負載平衡,所以每條鏈路都是正常的;而假如是近似EMCCX300這樣僅支持負載平衡的設施,則冗余的鏈路會出現I/OError的錯誤。multipath.conf的配置參數、默認值,可參照:1、編寫黑名單默認狀況下,multipath會把所有設施都加入到黑名單(devnode*),也就是嚴禁使用。所以,我們第一需要撤消該設置,把配置文件改正為近似下邊的內容:vim/etc/multipath.confdevnode

10、_blacklist#devnode*用#將此行說明掉devnodehdawwid3600508e000000000dc7200032e08af0b這里嚴禁使用hda,也就是光驅。此外,還限制使用當地的sda設施,這個wwid,可經過下邊的命令獲取:scsi_id-g-u-s/block/sda3600508e000000000dc7200032e08af0b2、編寫默認規(guī)則不一樣的device-mapper-multipath或操作系統刊行版,其默認的規(guī)則都有點不一樣,以RedHatx86_64為例,其path_grouping_policy默認為failover無效轉移,也就是主備的方式。

11、這顯然不切合我們的要求。(HDS支持多路徑負載平衡,EMCCX300等只支持Failover)。所以,我們需要改正默認的規(guī)則:defaultsudev_dir/devpath_grouping_policymultibusfailbackimmediateno_path_retryfailuser_friendly_nameyes重點是path_grouping_policy一項,其余選項可參照說明文檔。3、啟動服務及生成映照modprobedm-multipathservicemultipathdrestartmultipath-v04、查察復合后的設施#multipath-ll會看到近似下

12、邊的信息:mpath0(360060e80058e980000008e9800000007)size=20GBfeatures=0hwhandler=0_round-robin0prio=1active_3:0:0:7sdaa65:160activeready_round-robin0prio=1enabled_4:0:0:7sdas66:192activeready_round-robin0prio=1enabled_5:0:0:7sdbk67:224activeready_round-robin0prio=1enabled_2:0:0:7sdi8:128activeready這說明,已由四

13、條鏈路sdaa/sdas/sdbk/sdi復合成一條鏈路,設施名為mpath0。狀態(tài)正常的話,把multipathd設置為自啟動:chkconfigmultipathdonmkdir/oradatamkfs.ext3/dev/mapper/mpath0mkfs.ext3/dev/mapper/mpath1#blkid/dev/mapper/mpath0生成該儲存設施的UUID#blkid/dev/mapper/mpath1#vim/etc/fstab(改正該配置文件并增添以下)UUID=47931c90-140b-45fe-9dfa-5a0f56810db3/oradataext3defaul

14、ts00保留退出#mount-a注意:要使用哪塊儲存設施就在fastab里面掛載就能夠了5、使用mpath設施用multipath生成映照后,會在/dev目錄下產生多個指向同一條鏈路的設施:/dev/mapper/mpathn/dev/mpath/mpathn/dev/dm-n但它們的根源是完好不一樣的:/dev/mapper/mpathn/dev/mpath/mpathn是multipath虛構出來的多路徑設施,我們應當使用這個設施;是udev設施管理器創(chuàng)立的,實質上就是指向下邊的dm-n設施,僅為了方便,不可以用來掛載;/dev/dm-n是軟件內部自己使用的,不可以被軟件之外使用,不行掛載

15、。簡單來說,就是我們應當使用/dev/mapper/下的設施符。對該設施即可用fdisk進行分區(qū),或創(chuàng)立為pv。6、分區(qū)或創(chuàng)立lvm從前,我考慮到從系統iostat看到的都是dm-n的設施,所以向來都是直接對dm-n操作。但這會產生一個問題,就是無法分區(qū)。而對/dev/mapper/mpathn設施操作就沒有這問題。只需要注意,用fdisk分區(qū)并保留后,一定刷新multipath的映照表,以便其創(chuàng)立分區(qū)對應的設施符,比如:#fdisk-l/dev/mapper/mpath0255heads,63sectors/track,26108cylindersUnits=cylindersof16065

16、*512=8225280bytesDeviceBootStartEndBlocksIdSystem/dev/mapper/mpath0p1126108209712478+83Linux#multipath-F#刪除現有路徑兩個新的路徑就會被刪除#multipath-v0#格式化路徑#ll/dev/mapper/mpath0p1brw-rw1rootdisk253,25月707:40/dev/mapper/mpath0p1相同的,mpathn或其分區(qū)都可用來做pv使用:pvcreate/dev/mapper/mpath0p1vgcreatetest/dev/mapper/mpath0p1lvcr

17、eate-L1g-nlv1testlvdisplaymkfs.ext3/dev/test/lv1注意:依據網上的資料,有部分multipath版本存在與lvm兼容的問題。詳細表現是,使用device-mapper設施創(chuàng)立lvm達成,重啟后,固然lvm仍存在,但/dev/mapper下的設施丟掉。為了防備可能的不測,建議仍是改正一下lvm的配置文件/etc/lvm/lvm.conf,加入:types=device-mapper,17、其余最簡單的測試方法,是用dd往磁盤讀寫數據,而后用iostat察看各通道的流量和狀態(tài),以判斷Failover無效轉移或負載平衡方式能否正常:ddif=/dev/z

18、eroof=/dev/mapper/mpath0iostat-k2此外,假如是在由多臺服務器建立集群環(huán)境中,為了讓每臺服務器識其余mpathn設施次序一致,需進行wwid的綁定工作,請參照后邊“自定義設施名稱”中的內容。五、答疑1、為何黑名單中不直接使用devnodesda呢?因為按Linux對設施的編號,當設施從sda到sdz時,后一個設施應當是sdaa。而multipath對黑名單的設置是以般配的方式進行的,也就是說,假如你設置為devnodesda,那么除了sda為,sdaa、sdab等的設施(通道)都會被加入到黑名單中,而嚴禁使用。自然,你也能夠參照配置文件中的款式,以正規(guī)表達式的形式

19、進行描繪:devnodesda$。但考慮到每次重啟后,udev分派的盤符可能都不一樣(沒有做udev綁定的狀況),所以,我感覺以wwid的方式辦理更靠譜。2、為儲存定制特定的策略在前面的配置中,我們已經在/etc/mulitpah.conf中配置了多路徑的默認path_grouping_policy為multibus。但有時,同一臺機器上假如連結了一個以上的儲存時,可能默認規(guī)則其實不完好合用。這時,我們能夠給特定的儲存定制多路徑切合的策略。a、mulipath命令該命令供給了一個-p的參數,能夠改正默認策略,參數有:-ppolicyforceallmapstospecifiedpolicy:f

20、ailover1pathperprioritygroupmultibusallpathsin1prioritygroupgroup_by_serial1prioritygroupperserialgroup_by_prio1prioritygroupperprioritylvlgroup_by_node_name1prioritygrouppertargetnode比如,履行:multipath-Fmultipath-pfailover-v0有以下結果:引用mpath18(360060e8010463ef004f2b79f00000006)size=320GBfeatures=0hwhandl

21、er=0_round-robin0prio=2active_5:0:0:6sdaf65:240activeready_4:0:0:6sdv65:80activeready_round-robin0enabled_2:0:0:6sdb8:16activeready_3:0:0:6sdl8:176activeready這說明,當你對mpath18設施讀寫時,sdaf、sdv會處于active狀態(tài),都有數據流,但sdb、sdl構成的鏈路是enabled,作為ready狀況。這為Failover(主備)狀況,僅當sdaf、sdv構成的鏈路出現問題時,才會切換到sdb、sdl的鏈路上。b、改正配置文件能

22、夠在配置文件中為指定的儲存定義策略。第一,能夠用multipath-v3-ll看看儲存的信息,比如,我這里的機器就同時連結了兩個不一樣的儲存:=pathinfosdaa(mask0 x5)=bus=1dev_t=65:160size=10487040vendor=HITACHIproduct=OPEN-Vrev=6006h:b:t:l=2:0:1:24tgt_node_name=0 x50060e80058e9800pathchecker=readsector0(internaldefault)state=2uid=360060e80058e980000008e9800000058(cache

23、)=pathinfosdaf(mask0 x5)=bus=1dev_t=65:240size=671088640vendor=HITACHIproduct=DF600Frev=0000h:b:t:l=3:0:0:6tgt_node_name=0 x50060e8010463ef1pathchecker=readsector0(internaldefault)state=2uid=360060e8010463ef004f2b79f00000006(cache)默認狀況下,multipath已經支持大多半常有的儲存型號(可見),但不一樣的multipath版本可能都有些不一樣。這時,建議參照儲存的

24、官方文檔:devicesdevicevendorHITACHI/廠商名稱productOPEN-V/產品型號path_grouping_policygroup_by_prio/默認的路徑組策略getuid_callout/sbin/scsi_id-p0 x80-g-u-s/block/%n/獲取唯一設施號使用的默認程序path_checkerpath_selectorprio_calloutreadsector0/round-robin/sbin/mpath_prio_alua0/決定路徑狀態(tài)的方法選擇那條路徑進行下一個IO操作的方法/dev/%n/獲取有限級數值使用的默認程序failbackimmediatehardware_handler0/故障恢復的模式確認用來在路徑切換和IO錯誤時,履行特定的操作的模塊。no_path_retryqueue/在disablequeue從前系統試試使用失效路徑的次數的數值rr_min_io100/在目前的用戶組中,在切換到此外一條路徑從前的IO懇求的數量千萬不要寫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論