複製鏈接
請複製以下鏈接發送給好友

lun

鎖定
LUN是英文Logical Unit Number的縮寫,指邏輯單元號。LUN ID的作用就是擴充了Target ID。每個Target下都可以有多個LUN Device,我們通常簡稱LUN Device為LUN。
中文名
邏輯單元號
外文名
Logical Unit Number
簡    稱
LUN
作    用
描述設備的能力增強

lun概念釋義

LUN的全稱是Logical Unit Number,也就是邏輯單元號。我們知道SCSI總線上可掛接的設備數量是有限的,一般為8個或者16個,我們可以用Target ID(也有稱為SCSI ID的)來描述這些設備,設備只要一加入系統,就有一個代號,我們在區別設備的時候,只要説幾號幾號就可以了。
SCSI(小型計算機系統接口)是一個並行接口,它可以通過一條電纜同時連接八個設備;電纜和主機(電腦)適配器組成了SCSI總線。總線允許兩個設備之間不通過主機直接交換數據。在SCSI程序中每個設備都分配了一個數字,其中8位(窄)帶是0-7之間任意一個數,16位(寬)帶是8-16位中任意一個數。這些設備申請輸入輸出操作,他們是驅動者,設備執行的這些操作是目標。每一個目標有通過設備自身的控制器連接八個附加設備的能力;這些設備是邏輯單元,其中的每個都分配有用於識別SCSI控制命令過程的識別號。 [1] 
而實際上我們需要用來描述的對象,是遠遠超過該數字的,於是我們引進了LUN的概念,也就是説LUN ID的作用就是擴充了Target ID。每個Target下都可以有多個LUN Device,我們通常簡稱LUN Device為LUN,這樣就可以説每個設備的描述就由原來的Target x變成Target x LUN y了,那麼顯而易見的,我們描述設備的能力增強了。就好比,以前你給別人郵寄東西,寫地址的時候,可以寫:
xx市人民大街54號 xxx(收)
但是自從高樓大廈越來越多,你不得不這麼寫:
xx市人民大街54號xx大廈518室 xxx (收)
所以我們可以總結一下,LUN就是我們為了使用和描述更多設備及對象而引進的一個方法而已,一點也沒什麼特別的地方。

lun概念簡介

LUN ID不等於某個設備,只是個號碼而已,不代表任何實體屬性,在我們的實際環境裏,我們碰到的LUN可能是磁盤空間,可能是磁帶機,或者是media changer等等。
LUN的神秘之處(相對於一些新手來説)在於,它很多時候不是什麼可見的實體,而是一些虛擬的對象。比如一個陣列櫃,主機那邊看作是一個Target Device,那為了某些特殊需要,我們要將磁盤陣列櫃的磁盤空間劃分成若干個小的單元給主機來用,於是就產生了一些什麼邏輯驅動器的説法,也就是比Target Device級別更低的邏輯對象,我們習慣於把這些更小的磁盤資源稱之為LUN0、LUN1、LUN2…什麼的。而操作系統的機制使然,操作系統識別的最小存儲對象級別就是LUN Device,這是一個邏輯對象,所以很多時候被稱為Logical Device。
有人説,我的Windows裏,就認到一個磁盤呀,沒看到什麼LUN的説法,是不是LUN=Physical Disk呢?回答是否定的,只要你注意,磁盤的屬性裏就可以看到有一個LUN的值,只是因為你的Disk沒有被劃分為多個存儲資源對象,而將整個磁盤當作 一個LUN來用,LUN ID默認為零,如此而已。
我們曾經碰到過這樣的問題,比如有人問,我們有一個磁盤陣列,連到了兩個主機上,我們劃分了一個LUN給兩個主機認到,然後我們想,先在操作系統將磁盤分為兩個分區,讓兩個主機分別使用兩個分區,然後再出現某一台主機宕機之後,使用集羣軟件將該分區切換到另外一個主機上去,這樣可行嗎?答案也是否定的,集羣軟件操作的磁盤單元是LUN,而不是分區,所以該操作是不可行的。當然,在一些環境,一般也是一些要求比較低的環境,可以在多個主機上掛載不同的磁盤分區,但是這種情況下,實際上是沒有涉及到磁盤的切換的,所以在一些高要求的環境裏,這種情況根本就不允許存在。
還要説明的地方是,在有些廠商和有些產品的概念裏,LUN ID被綁定到了具體的Device上,比如IBM的一些帶庫,整個帶庫只有一個Target ID,然後changer,tape drive被分別分配為LUN0、LUN1、LUN2…,但是我們要注意到,這只是產品做了特別設計,也是少數情況。

lun區別

還有很多新手總是把陣列裏面的磁盤和主機的內部磁盤的一些概念搞混淆了。
磁盤陣列磁帶庫大行其道的時代,存儲越來越智能化,越來越像一個獨立的機器,實際上存儲和主機的電氣獨立本來就是一個必然趨勢,俗話説得好,兒大要分家嘛。在存儲越來越重要的時代,存儲要自立門户是必然的事。
如果我們把存儲當作一個獨立的主機來看,理解起來就很簡單了。我們説到LUN的概念的時候,我們就要將分為兩個層面。一個層面就是在陣列這個機器的OS識別到的範圍,另一個層面就是服務器的OS識別到的範圍。這兩個層面是相對獨立的,因為如果我們把存儲當作一個主機來看,那麼它自然有自己的Device、Target、LUN之説,而服務器也有自己的Device、Target、LUN之説;另外一方面,這兩個層面又是相互關聯的,一個陣列的控制系統,大多都有虛擬化的功能,陣列想讓主機看到什麼樣的東西,主機才能看到相應的東西。當然,服務器識別到的最小的存儲資源,就是LUN級別的。那麼主機的HBA 卡看到的存儲上的存儲資源就靠主要兩個東西來定位,一個就是存儲系統的控制器(Target),一個就是LUN ID,這個LUN是由存儲的控制系統給定的,是存儲系統的某部分存儲資源。

lun磁盤管制

我們有了獨立的磁盤陣列用了之後,服務器只要看到存儲的控制系統,就有可能使用磁盤陣列的磁盤資源,但是磁盤陣列不可能只為某一個服務器來使用,所以它必須管制主機使用某部分磁盤資源。這個管制分為兩個部分:一部分就是LUN mapping,類似於綠色通道,就是保證服務器能看到某部分存儲資源,一部分就是LUN masking,類似於警戒線,就是保證服務器只可訪問給它分配的存儲資源,而沒分配給服務器的資源,就不要染指了。
實現LUN masking和LUN mapping有三種方法:一個是基於存儲控制系統來設置,一個是基於存儲交換系統來設置,一個是基於服務器OS來設置。
基於存儲控制系統的設置,是比較常見的設置,比如很多磁盤陣列的控制系統,本身就能設置LUN被某服務器看到。比如FastT的partition功能。
基於存儲交換系統的設置,也是一種常用的方法,比如常説的zoning。
基於服務器OS的設置,比較少採用,一般採用安裝某些操作系統上安裝某些軟件來實現,因為這個方法全靠服務器自覺,所以比較少用。

lun多訪問

現在,存儲網絡越來越發達了,一個LUN有多條通路可以訪問也不是新鮮事了。
服務器使用多個HBA連接到存儲網絡,存儲網絡又可能是由多個交換設備組成,而存儲系統又可能有多個控制器和鏈路,LUN到服務器的存儲網絡鏈路又可能存在着多條不同的邏輯鏈路。那麼,必然的,同一個physical LUN在服務器上必然被識別為多個設備。因為OS區別設備無非用的是總線、Target ID、LUN ID來,只要號碼不同,就認為是不同的設備。
由於上面的情況,多路徑管理軟件應運而生了,比如emc的powerpath,這個軟件的作用就是讓操作系統知道那些操作系統識別到LUN實際上是一個真正的physical LUN,具體的做法,就是生成一個特別的設備文件,操作系統操作這個特殊的設備文件。而我們知道,設備文件+driver+firmware的一個作用, 就是告訴操作系統該怎麼使用這個設備。那麼就是説,多路徑管理軟件從driver和設備文件着手,告訴了操作系統怎麼來處理這些身份複雜的LUN。
LUN 邏輯單元編號企業級磁盤陣列可容納許許多多的處理器、主機端口、磁盤和緩存器件,其主要作用是為了給相連的服務器分配邏輯單元號(LUN)。服務器可以直接與磁盤陣列連接在一起,也可以通過交換設備與之相連。磁盤陣列的LUN掩碼和交換設備的分區功能,都屬於某種形式的安全保障屏蔽,用來控制服務器訪問LUN的權限。一旦服務器與LUN連接上,就可以通過當前的網絡接口數據傳輸到磁盤陣列上。值得一提的是,典型的企業級磁盤陣列一般都可以支持多種接口標準

lun技巧

在我們的IBMShark上,我可以在整個RAID集之上創建一個LUN,其在主機計算機上顯示為一個磁盤,我還可以創建幾個小的LUN並且在主機計算機上有幾個磁盤。哪個做法更好?曾經有人告訴我,多個小的LUN要比一個大的LUN更好,因為多個小的LUN將允許更多的來自操作系統(OS)的併發I / O。
多個較小的LUN的優點在於你可以把它們分散在許多陣列組並且使用邏輯卷管理器(Logical Volume Manager,LVM)來創建卷組(串接或者RAID 0)。這將會給後端帶來最佳的潛在性能。不過,這不是LUN的大小的問題。這是向多個陣列組分佈I/O的能力的問題。在Shark上,我建議一個陣列組在同一RAID 0卷組的LUN數量不超過4個。
多個小的LUN的缺點在於消耗了內部地址。如果LUN的大小為2 GB,那麼無論你使用哪種大小的物理磁盤,Shark的最大容量都是8 TB (4096 x 2 GB)。 [2] 

lun前景

作為一個抽象的單元的存儲LUN即邏輯卷的概念應該摒棄,基於LUN的概念已經過時了。
Marks在專業網絡媒體公司TechTarget舉辦的存儲決策會議上説,是時候基於虛擬機(VM)來管理負載。虛擬機是因為應用的目的而存在的,而不僅僅像LUN那樣僅為存儲目的而存在”。在虛擬化環境中,隨着集成和集羣化的負載的增加,作為存儲抽象單元的LUN已經不再滿足應用的需求。
在使用備份功能,比如快照的情況下,這種轉變尤為重要。在大的數據池中,採用基於虛擬機的方式遠遠比基於LUN進行快照的方式更加高效,因為基於虛擬機的快照恰好包含了一個有用的虛擬機。目的是提供應用級一致性的靜默快照。用較有深度的技術觀點來看vSphere快照性能很差。 [3] 

lun展現形式

對於塊設備,LUN一般通過使用光纖通道以太網光纖通道FCoE)或者iSCSI等來呈現。光纖通道和FCoE通過使用特定的主機總線適配器(HBA)或CNA(聚合網絡適配器),能夠更容易的將主機IP流量從存儲網絡流量中隔離開來。但即使一個特定的存儲網絡可用,仍有一些重要的設計問題需要考慮。
首先,為保證存儲的彈性和高性能,可以通過多個光纖通道接口來提供LUN。我們把存儲彈性作為給定的,因為這一般是存儲系統管理員的標準實踐。就性能而言,多個HBA(或雙口HBA)通過面向性能的分層技術允許vSphereHyper-V進行物理分段。 [4] 
參考資料