LUN

1概念

LUN的全稱是Logical Unit Number,也就是邏輯單元號。咱們知道SCSI總線上可掛接的設備數量是有限的,通常爲8個或者16個,咱們能夠用Target ID(也有稱爲SCSI ID的)來描述這些設備,設備只要一加入系統,就有一個代號,咱們在區別設備的時候,只要說幾號幾號就能夠了。緩存

而實際上咱們須要用來描述的對象,是遠遠超過該數字的,因而咱們引進了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 (收)app

因此咱們能夠總結一下,LUN就是咱們爲了使用和描述更多設備及對象而引進的一個方法而已,一點也沒什麼特別的地方。操作系統

2介紹

LUN ID不等於某個設備,只是個號碼而已,不表明任何實體屬性,在咱們的實際環境裏,咱們碰到的LUN多是磁盤空間,多是磁帶機,或者是media changer等等。設計

LUN的神祕之處(相對於一些新手來講)在於,它不少時候不是什麼可見的實體,而是一些虛擬的對象。好比一個陣列櫃,主機那邊看做是一個Target Device,那爲了某些特殊須要,咱們要將磁盤陣列櫃的磁盤空間劃分紅若干個小的單元給主機來用,因而就產生了一些什麼邏輯驅動器的說法,也就是比Target Device級別更低的邏輯對象,咱們習慣於把這些更小的磁盤資源稱之爲LUN0、LUN一、LUN2…什麼的。而操做系統的機制使然,操做系統識別的最小存儲對象級別就是LUN Device,這是一個邏輯對象,因此不少時候被稱爲Logical Device。htm

有人說,個人Windows裏,就認到一個磁盤呀,沒看到什麼LUN的說法,是否是LUN=Physical Disk呢?回答是否認的,只要你注意,磁盤的屬性裏就能夠看到有一個LUN的值,只是由於你的Disk沒有被劃分爲多個存儲資源對象,而將整個磁盤看成 一個LUN來用,LUN ID默認爲零,如此而已。對象

咱們曾經碰到過這樣的問題,好比有人問,咱們有一個磁盤陣列,連到了兩個主機上,咱們劃分了一個LUN給兩個主機認到,而後咱們想,先在操做系統將磁盤分爲兩個分區,讓兩個主機分別使用兩個分區,而後再出現某一臺主機宕機以後,使用集羣軟件將該分區切換到另一個主機上去,這樣可行嗎?答案也是否認的,集羣軟件操做的磁盤單元是LUN,而不是分區,因此該操做是不可行的。固然,在一些環境,通常也是一些要求比較低的環境,能夠在多個主機上掛載不一樣的磁盤分區,可是這種狀況下,其實是沒有涉及到磁盤的切換的,因此在一些高要求的環境裏,這種狀況根本就不容許存在。接口

還要說明的地方是,在有些廠商和有些產品的概念裏,LUN ID被綁定到了具體的Device上,好比IBM的一些帶庫,整個帶庫只有一個Target ID,而後changer,tape drive被分別分配爲LUN0、LUN一、LUN2…,可是咱們要注意到,這只是產品作了特別設計,也是少數狀況。

3區別

還有不少新手老是把陣列裏面的磁盤和主機的內部磁盤的一些概念搞混淆了。

磁盤陣列磁帶庫大行其道的時代,存儲愈來愈智能化,愈來愈像一個獨立的機器,實際上存儲和主機的電氣獨立原本就是一個必然趨勢,俗話說得好,兒大要分家嘛。在存儲愈來愈重要的時代,存儲要自立門戶是必然的事。

若是咱們把存儲看成一個獨立的主機來看,理解起來就很簡單了。咱們說到LUN的概念的時候,咱們就要將分爲兩個層面。一個層面就是在陣列這個機器的OS識別到的範圍,另外一個層面就是服務器的OS識別到的範圍。這兩個層面是相對獨立的,由於若是咱們把存儲看成一個主機來看,那麼它天然有本身的Device、Target、LUN之說,而服務器也有本身的Device、Target、LUN之說;另一方面,這兩個層面又是相互關聯的,一個陣列的控制系統,大多都有虛擬化的功能,陣列想讓主機看到什麼樣的東西,主機才能看到相應的東西。固然,服務器識別到的最小的存儲資源,就是LUN級別的。那麼主機的HBA 卡看到的存儲上的存儲資源就靠主要兩個東西來定位,一個就是存儲系統的控制器(Target),一個就是LUN ID,這個LUN是由存儲的控制系統給定的,是存儲系統的某部分存儲資源。

4磁盤管制

咱們有了獨立的磁盤陣列用了以後,服務器只要看到存儲的控制系統,就有可能使用磁盤陣列的磁盤資源,可是磁盤陣列不可能只爲某一個服務器來使用,因此它必須管制主機使用某部分磁盤資源。這個管制分爲兩個部分:一部分就是LUN mapping,相似於綠色通道,就是保證服務器能看到某部分存儲資源,一部分就是LUN masking,相似於警惕線,就是保證服務器只可訪問給它分配的存儲資源,而沒分配給服務器的資源,就不要染指了。

實現LUN masking和LUN mapping有三種方法:一個是基於存儲控制系統來設置,一個是基於存儲交換系統來設置,一個是基於服務器OS來設置。

基於存儲控制系統的設置,是比較常見的設置,好比不少磁盤陣列的控制系統,自己就能設置LUN被某服務器看到。好比FastT的partition功能。

基於存儲交換系統的設置,也是一種經常使用的方法,好比常說的zoning。

基於服務器OS的設置,比較少採用,通常採用安裝某些操做系統上安裝某些軟件來實現,由於這個方法全靠服務器自覺,因此比較少用,呵呵。

5多訪問

如今,存儲網絡愈來愈發達了,一個LUN有多條通路能夠訪問也不是新鮮事了。

服務器使用多個HBA鏈接到存儲網絡,存儲網絡又多是由多個交換設備組成,而存儲系統又可能有多個控制器和鏈路,LUN到服務器的存儲網絡鏈路又可能存在着多條不一樣的邏輯鏈路。那麼,必然的,同一個physical LUN在服務器上必然被識別爲多個設備。由於OS區別設備無非用的是總線、Target ID、LUN ID來,只要號碼不一樣,就認爲是不一樣的設備。

因爲上面的狀況,多路徑管理軟件應運而生了,好比emc的powerpath,這個軟件的做用就是讓操做系統知道那些操做系統識別到LUN其實是一個真正的physical LUN,具體的作法,就是生成一個特別的設備文件,操做系統操做這個特殊的設備文件。而咱們知道,設備文件+driver+firmware的一個做用, 就是告訴操做系統該怎麼使用這個設備。那麼就是說,多路徑管理軟件從driver和設備文件着手,告訴了操做系統怎麼來處理這些身份複雜的LUN。

LUN 邏輯單元編號企業級磁盤陣列可容納許許多多的處理器、主機端口、磁盤和緩存器件,其主要做用是爲了給相連的服務器分配邏輯單元號(LUN)。服務器能夠直接與磁盤陣列鏈接在一塊兒,也能夠經過交換設備與之相連。磁盤陣列的LUN掩碼和交換設備的分區功能,都屬於某種形式的安全保障屏蔽,用來控制服務器訪問LUN的權限。一旦服務器與LUN鏈接上,就能夠經過當前的網絡接口將數據傳輸到磁盤陣列上。值得一提的是,典型的企業級磁盤陣列通常均可以支持多種接口標準。

相關文章
相關標籤/搜索