《存儲技術之Lun相關知識》要點:
本文介紹了存儲技術之Lun相關知識,希望對您有用。如果有疑問,可以聯系我們。
LUN的全稱是Logical Unit Number,也就是邏輯單元號.我們知道SCSI總線上可掛接的設備數量是有限的,一般為6個或者15個,我們可以用Target ID(也有稱為SCSI ID的)來描述這些設備,設備只要一加入系統,就有一個代號,我們在區別設備的時候,只要說幾號幾號就ok了.
而實際上我們需要用來描述的對象,是遠遠超過該數字的,于是我們引進了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 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的概念的時候,我們就要將分為兩個層面.一個層面就是在陣列這個機器的OS識別到的范圍,另一個層面就是服務器的OS識別到的范圍.這兩個層面是相對獨立的,因為如果我們把存儲當作一個主機來看,那么它自然有自己的Device、Target、LUN之說,而服務器也有自己的Device、Target、LUN之說;另外一方面,這兩個層面又是相互關聯的,一個陣列的控制系統,大多都有虛擬化的功能,陣列想讓主機看到什么樣的東西,主機才能看到相應的東西.當然,服務器識別到的最小的存儲資源,就是LUN級別的.那么主機的HBA 卡看到的存儲上的存儲資源就靠主要兩個東西來定位,一個就是存儲系統的控制器(Target),一個就是LUN ID,這個LUN是由存儲的控制系統給定的,是存儲系統的某部分存儲資源.
我們有了獨立的磁盤陣列用了之后,服務器只要看到存儲的控制系統,就有可能使用磁盤陣列的磁盤資源,但是磁盤陣列不可能只為某一個服務器來使用,所以它必須管制主機使用某部分磁盤資源.這個管制分為兩個部分:一部分就是LUN mapping,類似于綠色通道,就是保證服務器能看到某部分存儲資源,一部分就是LUN masking,類似于警戒線,就是保證服務器只可訪問給它分配的存儲資源,而沒分配給服務器的資源,就不要染指了.
實現LUN masking和LUN mapping有三種方法:一個是基于存儲控制系統來設置,一個是基于存儲交換系統來設置,一個是基于服務器OS來設置.
基于存儲控制系統的設置,是比較常見的設置,比如很多磁盤陣列的控制系統,本身就能設置LUN被某服務器看到.比如FastT的partition功能.
基于存儲交換系統的設置,也是一種常用的方法,比如常說的zoning.
基于服務器OS的設置,比較少采用,一般采用安裝某些操作系統上安裝某些軟件來實現,因為這個方法全靠服務器自覺,所以比較少用,呵呵.
現在,存儲網絡越來越發達了,一個LUN有多條通路可以訪問也不是新鮮事了.
服務器使用多個HBA連接到存儲網絡,存儲網絡又可能是由多個交換設備組成,而存儲系統又可能有多個控制器和鏈路,LUN到服務器的存儲網絡鏈路又可能存在著多條不同的邏輯鏈路.那么,必然的,同一個physical LUN在服務器上必然被識別為多個設備.因為OS區別設備無非用的是總線、Target ID、LUN ID來,只要號碼不同,就認為是不同的設備.
由于上面的情況,多路徑管理軟件應運而生了,比如emc的powerpath,這個軟件的作用就是讓操作系統知道那些操作系統識別到LUN實際上是一個真正的physical LUN,具體的做法,就是生成一個特別的設備文件,操作系統操作這個特殊的設備文件.而我們知道,設備文件+driver+firmware的一個作用,就是告訴操作系統該怎么使用這個設備.那么就是說,多路徑管理軟件從driver和設備文件著手,告訴了操作系統怎么來處理這些身份復雜的LUN.
LUN 邏輯單元編號企業級磁盤陣列可容納許許多多的處理器、主機端口、磁盤和緩存器件,其主要作用是為了給相連的服務器分配邏輯單元號(LUN).服務器可以直接與磁盤陣列連接在一起,也可以通過交換設備與之相連.磁盤陣列的LUN掩碼和交換設備的分區功能,都屬于某種形式的安全保障屏蔽,用來控制服務器訪問LUN的權限.一旦服務器與LUN連接上,就可以通過當前的網絡接口將數據傳輸到磁盤陣列上.值得一提的是,典型的企業級磁盤陣列一般都可以支持多種接口標準.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4693.html