ALUA即“Asymmetric Logical Unit Access(異步邏輯單元訪問)”的縮寫,它是前端控制器多路徑機制之一。
前端控制器多路徑機制一定程度上決定存儲的讀寫性能和可靠性,現有的前端控制器多路徑機制可分為三大類:
A/A:Symmetric Active/Acivie,對於特定的LUN來說,在它的路勁中,兩個存儲控制器的目標端口均處於主動/優化(active/optimized)狀態。兩個控制器之間實現高速互聯的通訊,一個IO發到控制器端,兩個控制器可同時參與處理;當一個控制器繁忙,系統不需要主機端的負載均衡軟件參與就可以自動實現負載均衡。
ALUA:Asymmetric Active/Active,對於特定的LUN來說,在它的路徑中,一個控制器的目標端口處於主動/優化(active/optimized)狀態,另一個控制器的目標端口處於主動/非優化(active/unoptimized)狀態。在某一個時刻,某個LUN只是屬於某一個控制器,要想實現兩邊的負載均衡,就是將任務A扔給控制器A,將任務B扔給控制器B,對於同一個任務來說,任何時候只有一個控制器在控制。
A/P:Active/Passive,對於特定的LUN來說,在它的路徑中,一個控制器的目標端口處於主動/優化(active/optimized)狀態,另一個控制器的目標端口處於備用(standby)狀態。其負載均衡及任務處理方式與ALUA類似。
Active/optimized、Active/unoptimized、Standby和Unavailable是目標端口的四種訪問狀態,在相應訪問狀態下,設備服務器(即陣列控制器)只能回應相應的命令標准(命令標准由ISO/IEC 14776-453文件Part 453:SPC-3制定),這就決定了在某一時刻是否可以通過某個目標端口訪問邏輯單元。
目標端口的狀態可以轉換,目標端口從一個狀態轉換到另一個狀態的過程稱為過渡。
Active/optimized:目標端口有能力立即訪問邏輯單元。
Active/unoptimized:只能回應相應的命令標准,可以過渡到Active/optimized。
Standby:只能回應相應的命令標准,可以過渡到Active/optimized。
Unavailable:只能回應有限的命令集,不可以過渡到其他三種狀態。
在A/A陣列中,管理員無需指定每個LUN的默認所有者,當路徑出現故障,將離線故障路徑並重定向IO到其他路徑,IO重定向期間,存儲控制器會充分考慮負載平衡等因素並選擇最合適的路徑。對於應用程序,路徑切換過程是透明的的,幾乎不會有延遲(延遲時間一般為幾秒)。
在ALUA或A/P陣列中,管理員需指定每個LUN的默認所有者,設置一些LUN的默認所有者為控制器A,另外一些LUN的默認所有者為控制器 B, 人為在兩個控制器之間進行負載均衡;如果路徑發生故障,將重新分配IO流量到其他可用的路徑,同時,停止故障路徑上的IO。對於應用程序,路徑切換過程是透明的,然而,會有延遲(延遲時間一般為幾十秒)。
在制定負載平衡策略時,必須同時兼顧多路徑軟件功能及存儲陣列的多路徑機制(A/A-ALUA-A/P)。
MS3000/MS5000屬於ALUA陣列,H公司的IX3000屬於A/P陣列,HDS推出的AMS2000屬於A/A陣列。從理論上來說,對於不同的多路徑機制,最直觀的表現是路徑切換的延時不同,A/A機制最優且幾乎無延時,ALUA機制稍差且有延時,A/P機制最差且延時更大。
存儲設備有兩個I/O控制器,每個I/O控制器上有兩個連接主機的端口。存儲設備中還有n個磁盤,並假定每個磁盤對應一個LUN。對於存儲設備中的LUN,可以有幾種不同的多路徑訪問方式:
Active-Active(A/A):如果對於存儲設備的同一個LUN的I/O請求訪問可以同時在兩個I/O控制器,或者某一個控制器的兩個端口上同時進行,則稱之為active-active(A/A)型的存儲設備。
Active-Passive(A/P)。如果存儲設備只在一個(primary)I/O控制器(端口)上接受和執行對LUN的I/O請求,但是,它可以被切換,或者fail over,到從另一個(secondary)I/O控制器(端口)來訪問這個LUN,則它稱為active-passive(A/P)型的存儲設備。這種切換,稱為LUN failover,或者LUN trespass。
Active-Active型的存儲設備又進而分為兩種: 對稱型(A/A-S)和非對稱型(A/A-A):
在active-active存儲設備中,LUN可以同時通過兩個I/O控制器 或者端口來訪問,唯一的限制在於通過兩個控制器(端口)訪問LUN的性能是否有差別。如果通過secondary控制器或者端口對LUN進行I/O的性能要比通過primary控制器(端口)低得多,則為非對稱型;如果兩者性能相同,則為對稱型。
Active-Passive型的存儲設備又可分為不同的類型:隱式failover型和顯式failover型: