解析多路徑管理軟件功能與架構

存儲系統(tǒng)為了保證業(yè)務運行的穩(wěn)定性和連續(xù)性,一般會配置兩個或者多個控制器,實現(xiàn)部件冗余。存儲系統(tǒng)中每個LUN都有一一對應的所屬控制器,所屬控制器是存儲系統(tǒng)為LUN指定的一個特定控制器,用來避免兩個或多個控制器同時對同一個LUN進行操作,防止寫沖突損壞存放的數(shù)據(jù)。

本文來自微信公眾“twt企業(yè)IT社區(qū)”,作者/張鵬,某金融科技公司高級技術主管。

多路徑管理軟件的主要功能

屏蔽冗余LUN

存儲通過Fabric網(wǎng)絡的Zone和存儲的LUNMasking/LUN Mapping建立與服務器的關系,服務器上就可以識別存儲的LUN。在多路徑組網(wǎng)的存儲區(qū)域網(wǎng)絡中,當未安裝多路徑管理軟件的服務器通過每條路徑都會發(fā)現(xiàn)一個LUN,此時存儲上同一個LUN,在服務器端會被認為是兩個或多個不同的LUN,即出現(xiàn)了冗余LUN。服務器端上顯示的LUN實際上僅是路徑不同。當安裝了多路徑管理軟件之后,冗余的LUN會被聚合為虛擬LUN,操作系統(tǒng)識別虛擬LUN,并直接對虛擬LUN進行I/O操作,I/O數(shù)據(jù)流經(jīng)過多路徑管理軟件后,按照多路徑管理軟件設置的策略與存儲進行I/O操作。

選擇最優(yōu)路徑

存儲系統(tǒng)為了保證業(yè)務運行的穩(wěn)定性和連續(xù)性,一般會配置兩個或者多個控制器,實現(xiàn)部件冗余。存儲系統(tǒng)中每個LUN都有一一對應的所屬控制器,所屬控制器是存儲系統(tǒng)為LUN指定的一個特定控制器,用來避免兩個或多個控制器同時對同一個LUN進行操作,防止寫沖突損壞存放的數(shù)據(jù)。在日常運行過程中,如果服務器通過非所屬控制器來訪問LUN,最終需要轉(zhuǎn)給LUN的所屬控制器進行處理,直接通過所屬控制器訪問對應的LUN可獲得最快的I/O速率。在多路徑組網(wǎng)環(huán)境下,服務器上虛擬LUN對應的存儲系統(tǒng)上LUN的所屬控制器,稱為該LUN的優(yōu)選控制器。因此,安裝多路徑管理軟件的服務器會優(yōu)先選擇通過優(yōu)選控制器來訪問存儲系統(tǒng)上的LUN,獲得最快的I/O速率。連接到優(yōu)選控制器的路徑就是最優(yōu)I/O訪問路徑。多路徑管理軟件能夠獲取LUN的優(yōu)選控制器信息,能夠自動為數(shù)據(jù)流選擇優(yōu)選控制器上的一條或多條路徑進行訪問以獲得最佳的I/O速率。

故障切換和故障恢復

通常多路徑管理軟件在路徑故障時可以自動將I/O轉(zhuǎn)移到其他可用路徑,例如:當服務器上的應用通過多路徑管理軟件管理的虛擬LUN進行I/O操作,多路徑管理軟件選擇一條最優(yōu)路徑,向存儲提交I/O請求,如果這條路徑故障,導致下發(fā)到存儲的I/O請求失敗,多路徑管理軟件會得到失敗的返回值,此時多路徑管理軟件會重新選擇另一條路徑,再次向存儲提交I/O請求,如果路徑正常,I/O下發(fā)到存儲成功,多路徑管理軟件會接收到成功的返回值,并且把相應的狀態(tài)信息反饋給操作系統(tǒng)和應用。請注意,多路徑管理軟件在發(fā)現(xiàn)路徑故障時通常會多次重新嘗試和等待,這樣會消耗一定的時間,會造成一定的I/O阻塞。

多路徑管理軟件在檢測到路徑故障恢復后,會自動把I/O重新下發(fā)到該路徑。路徑故障恢復有兩種方式:對于支持熱拔插的操作系統(tǒng)(如Windows),服務器與存儲系統(tǒng)之間的鏈路斷開會導致SCSI設備被刪除,相應的鏈路在恢復后會觸發(fā)重新創(chuàng)建SCSI設備,對于這種場景的多路徑管理軟件需要立即感知到路徑恢復。對于不支持熱拔插的操作系統(tǒng)(如AIX、低版本的Linux),多路徑管理軟件通過周期測試感知路徑恢復。

負載均衡

談到負載均衡,需要先了解一下存儲控制器的多路徑機制,存儲連接服務器的控制器,通常稱為前端控制器,多路徑機制大概分為三類:

主主模式(A/A):Symmetric Active/Active,對于特定的LUN來說,在它的路徑中,兩個(或多個)存儲前端控制器(下面簡稱控制器)的目標端口均處于主動/優(yōu)化(active/optimized)狀態(tài)。兩個控制器之間實現(xiàn)高速互聯(lián)的通訊,一個I/O發(fā)到控制器端,兩個控制器可同時參與處理。當路徑出現(xiàn)故障,將離線(offline)故障路徑并重定向I/O到其他路徑,I/O重定向期間,存儲控制器會充分考慮負載平衡等因素并選擇最合適的路徑。對于應用程序,路徑切換過程是透明的的,幾乎不會有延遲(延遲時間一般為幾秒)。

ALUA模式:Asymmetric Active/Active,ALUA是Asymmetric Logical Unit Access(異步邏輯單元訪問)的縮寫,對于特定的LUN來說,在它的路徑中,一個存儲前端控制器(下面簡稱控制器)的目標端口處于主動/優(yōu)化(active/optimized)狀態(tài),另一個控制器的目標端口處于主動/非優(yōu)化(active/unoptimized)狀態(tài)。在某一個時刻,某個LUN只是屬于某一個控制器,要想實現(xiàn)兩邊的負載均衡,就是將任務A交給控制器A,將任務B交給控制器B,對于同一個任務來說,任何時候只有一個控制器在控制。多路徑管理軟件和控制器共同配合指定每個LUN的優(yōu)選控制器,如果路徑發(fā)生故障,將重新分配I/O流量到其他可用的路徑,同時,停止故障路徑上的I/O,此時優(yōu)選控制器是否切換,多數(shù)取決于存儲廠商的設計。

主從模式(A/P):Active/Passive,對于特定的LUN來說,在它的路徑中,一個存儲前端控制器(下面簡稱控制器)的目標端口處于主動/優(yōu)化(active/optimized)狀態(tài),另一個控制器的目標端口處于備用(standby)狀態(tài)。控制器會指定每個LUN的優(yōu)選控制器,如果路徑發(fā)生故障,將重新分配I/O流量到其他可用的路徑,同時,停止故障路徑上的I/O,此時通常會發(fā)生優(yōu)選控制器的切換。

多路徑管理軟件配合存儲前端控制器,有多種選路算法。例如輪詢算法(round_robin),如果多路徑管理軟件管理四條路徑,服務器第一次向存儲系統(tǒng)發(fā)送I/O時,多路徑管理軟件將通過第一條路徑傳輸,第二次發(fā)送時采用第二條路徑,以此類推第三條,第四條。當?shù)谖宕伟l(fā)送時又回到第一條路徑傳輸,路徑采用輪流使用的方式進行,保證了每條路徑的充分利用。最小隊列深度算法(min_queuedepth),服務器向存儲系統(tǒng)發(fā)送I/O時,實時統(tǒng)計各路徑的排隊I/O數(shù),并將I/O下發(fā)到當前排隊I/O數(shù)最小的路徑,即I/O隊列最小的將擁有I/O發(fā)送的優(yōu)先權。最小任務算法(min_task),服務器向存儲系統(tǒng)發(fā)送I/O時,在最小隊列深度算法的基礎上,根據(jù)每個I/O請求的塊大小計算出各路徑的總體負載數(shù)據(jù)量,將I/O下發(fā)到當前負載數(shù)據(jù)量最小的路徑。即最小的I/O數(shù)據(jù)量將擁有I/O發(fā)送的優(yōu)先權。經(jīng)過試驗驗證,最小隊列深度選路算法在性能方面與其他的選路算法相比更優(yōu)或者相當,在可靠性方面比其他選路算法更優(yōu),這三種對比更推薦使用最小隊列深度算法。

進行路徑周期性測試

一些廠商的多路徑管理軟件會對故障路徑和空閑可用路徑進行周期性的探測,通過故障路徑的探測可以及時發(fā)現(xiàn)故障,及早恢復路徑,通過對空閑路徑的測試也可以提前發(fā)現(xiàn)路徑故障,避免當需要做路徑切換時,造成無謂的I/O失敗重發(fā),測試通常不會對業(yè)務I/O有影響。

多路徑管理軟件的典型部署架構

服務器在存儲區(qū)域網(wǎng)中有多種互聯(lián)架構,這里討論幾種典型的架構,不做過多窮舉示例是因為,很多架構原理相似,實現(xiàn)效果接近,或者在實際環(huán)境中應用較少。

多路徑管理軟件安裝在服務器上,能夠支持不同組網(wǎng)應用,保證數(shù)據(jù)傳輸快速、暢通、可靠。下面討論幾種多路徑管理軟件的典型部署架構。

服務器雙鏈路直連架構

服務器通過雙鏈路直連存儲區(qū)域網(wǎng)絡是最簡單、最節(jié)約的連接方式,如圖2所示。

360截圖16251112669372.png

圖2雙鏈路直連架構

服務器的HBA卡分別連接一套存儲不同的前端控制器。服務器連接到LUN優(yōu)選控制器的路徑是最優(yōu)路徑;連接到非優(yōu)選控制器的路徑是備選路徑。正常情況下,多路徑管理軟件選擇最優(yōu)路徑進行數(shù)據(jù)傳輸。當最優(yōu)路徑故障時,多路徑管理軟件選擇備選路徑進行數(shù)據(jù)傳輸。最優(yōu)路徑恢復后,多路徑管理軟件將切換回最優(yōu)路徑進行數(shù)據(jù)傳輸。這種架構HBA卡的端口和存儲前端控制器端口都被獨占了,不夠靈活,在企業(yè)的復雜IT環(huán)境中較少使用。

服務器雙鏈路與單交換機互聯(lián)架構

服務器雙鏈路通過一臺光纖通道交換機連接存儲區(qū)域網(wǎng),如圖3所示。服務器到存儲系統(tǒng)之間有4條路徑。從服務器到LUN的優(yōu)選控制器的2條路徑是最優(yōu)路徑,剩余2條路徑是備選路徑。

360截圖16251112669372.png

圖3單交換機互聯(lián)架構

交換機能夠擴展主機端口的數(shù)量,提升存儲系統(tǒng)的接入能力。交換機還能夠延長數(shù)據(jù)傳輸?shù)木嚯x,使遠處的服務器也能夠連接到存儲系統(tǒng)上。但是這種互聯(lián)架構只有1個交換機,存在單點故障風險,對于高可用性要求高的企業(yè)這種架構不適用。

服務器雙鏈路與雙交換機互聯(lián)架構

服務器雙鏈路通過兩臺光纖通道交換機連接存儲區(qū)域網(wǎng),形成雙交換機轉(zhuǎn)發(fā)能力,如圖4所示。

360截圖16251112669372.png

圖4雙交換機互聯(lián)架構

雙交換機的加入避免了交換機成為單點故障的隱患,增強了存儲區(qū)域網(wǎng)絡的高可用性。這種架構是企業(yè)中,單數(shù)據(jù)中心內(nèi)部存儲區(qū)域網(wǎng)絡的典型互聯(lián)架構,應用廣泛。

集群服務器雙鏈路與雙交換機互聯(lián)架構

在服務器雙鏈路雙交換機互聯(lián)的基礎上增加了1個或者多個服務器,組成集群環(huán)境,如圖5所示。這是企業(yè)IT環(huán)境中常用的部署架構,增強服務器側的高可用性和處理能力。

360截圖16251112669372.png

圖5雙交換機集群服務器

服務器與存儲網(wǎng)關在存儲區(qū)域網(wǎng)環(huán)境下互聯(lián)架構

存儲網(wǎng)關作為存儲功能的補充,可以增加存儲網(wǎng)絡架構的靈活性,也可以增加一些特色功能,在一定時期也是應用比較廣泛的產(chǎn)品。存儲網(wǎng)關在存儲區(qū)域網(wǎng)中的位置比較特殊,如圖6所示。可以抽象的理解,服務器側可以把存儲網(wǎng)關看做存儲,存儲側可以把存儲網(wǎng)關看作服務器。所以存儲網(wǎng)關其實既是存儲的角色,又是服務器的角色,存儲網(wǎng)關內(nèi)部需要多路徑管理軟件來分別實現(xiàn)前端端口和后端端口的路徑冗余和性能負載。需要說明的,存儲網(wǎng)關這種類似聯(lián)邦的互聯(lián)機制,內(nèi)部還需要有互聯(lián)機制。在雙數(shù)據(jù)中心雙活架構中通常還需要考慮第三方仲裁的設計,暫時不在本文中分析。

360截圖16251112669372.png

360截圖16251112669372.png

圖6存儲網(wǎng)關

集群服務器在雙數(shù)據(jù)中心的雙活架構

雙活數(shù)據(jù)中心的設計思想是兩個數(shù)據(jù)中心資源的充分利用,從架構上看,物理距離分割較遠(通常光纖距離小于30公里,超過距離的網(wǎng)絡延時受到物理定律的限制無法縮小)的兩個數(shù)據(jù)中心,邏輯上作為一個數(shù)據(jù)中心進行管理。如圖7所示,兩個數(shù)據(jù)中心的服務器分別通過光纖通道鏈路連接本中心和遠端數(shù)據(jù)中心的存儲區(qū)域網(wǎng)絡(光纖通過長波模塊直連或者通過波分設備互聯(lián)遠端的網(wǎng)絡)。這種架構基本消除了單點故障的風險,服務器,網(wǎng)絡,存儲,各個層面都實現(xiàn)了冗余,同時配合應用程序也能更好地實現(xiàn)負載均衡,是比較理想的高可用性容災架構。需要說明的是,圖示中沒有第三方仲裁,實際應用中要充分考慮第三方仲裁,本文主要討論多路徑管理軟件,此內(nèi)容沒有過多描述。

360截圖16251112669372.png

圖7雙活架構

雙活架構中,多路徑管理軟件起到非常重要的作用,本地的路徑高可用需要多路徑管理軟件來實現(xiàn),跨兩個數(shù)據(jù)中心的冗余路徑也需要多路徑管理軟件來管理。由于長距離可能出現(xiàn)的鏈路質(zhì)量(延遲、抖動)問題,所以在配置多路徑調(diào)度策略中要特別注意,例如需要多路徑管理軟件具有對遠距離路徑上進行讀寫控制的能力,建議服務器平時優(yōu)選本地存儲區(qū)域網(wǎng)的路徑進行讀寫I/O,對于遠距離存儲區(qū)域網(wǎng)絡的路徑可以控制寫I/O,當故障發(fā)生需要路徑切換的時候,優(yōu)先本地多路徑間的路徑切換,本地路徑均失效的情況下,切換到遠程路徑。

存儲雙活通常需要多路徑管理軟件和存儲的復制技術相結合來實現(xiàn),存儲網(wǎng)關雙活的解決方案中存儲網(wǎng)關作為中間層來管理兩個數(shù)據(jù)中心存儲的數(shù)據(jù)同步,可以通過復制技術也可以通過鏡像技術來實現(xiàn),同時也需要多路徑管理軟件來配合。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論