linux lun是指邏輯單元號,其英文全稱是「Logical Unit Number」,它實際上是在SCSI-3中定義的,而並非單用於儲存範疇,也可以指使用SCSI協定的一切外圍裝置,如磁帶機、SCSI印表機等。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
linux 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了,那麼顯而易見的,我們描述裝置的能力增強了。
正如我們的電腦中有一塊物理上的硬碟,我們要給它進行分割區,分為邏輯盤:如C槽、D槽、E槽..
所以我們可以總結一下,LUN就是我們為了使用和描述更多裝置及物件而引進的一個方法而已,一點也沒什麼特別的地方。
LUN ID不等於某個裝置,只是個號碼而已,不代表任何實體屬性,在我們的實際環境裡,我們碰到的LUN可能是磁碟空間,可能是磁帶機,或者是media changer等等。
二、到底什麼是LUN?
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有什麼區別,然後爭論不休。由上邊我們可以知道什麼是LUN。LUN就是英文 Logical unit number的縮寫,即邏輯單元號,它實際上是在SCSI-3中定義的,而並非單用於儲存範疇,也可以指使用SCSI協定的一切外圍裝置,如磁帶機、SCSI印表機等等。從SCSI-3的SAM模型中我們知道,SCSI-3(或者之後的版本)的協定層規定,對於16位元寬的SCSI匯流排,其定址範圍只有16個,即只能掛載16個外圍裝置,每個裝置稱為一個target。為了提高匯流排的定址能力,於是又引入了一層,它規定在每個target上,還可以虛擬(也可以實際連線)出多個裝置,例如某個target上可能接了一個磁帶機,一個印表機,他們共用一個target地址,但為了區分他們,於是就用LUN加以區別,磁帶機假設為LUN0,印表機假設為LUN2,這樣就解決了多裝置的定址問題。
這是實際裝置連線的例子,儲存陣列(比如:HP leftHand P4000 SAN)是最好的虛擬裝置的例子。一個儲存磁碟陣列在SCSI匯流排看來是一個Target,佔用一個SCSI的Target地址,但儲存陣列的儲存空間太大,我們需要將其分成不同的部分,以供不同的應用,達到集中儲存,集中管理的目的。所以在分割出來的每個儲存部分(或區域)我們就用Lun來區別,如LUN1代表地址塊0-1023,LUN2代表地址塊1024-65535等等。從上面可以看出,計算機在使用SCSI標準(注意我這裡用的標準一詞,代表了統含SAM模型中的4層,而並不使用介面,協定或者命令等詞語)接外掛儲存時,使用的是匯流排(BUS)-目標(Target)-LUN三元定址方案,匯流排指的是你的計算機上有幾條SCSI匯流排,有幾塊SCSI卡?目標指的是在該匯流排上,裝置的目標地址即常說的SCSI地址是多少?LUN指的是裝置在一個Target上分配的邏輯地址,邏輯單元號。這種定址方案和裝置的連線方式,類似於物理上星形連線,邏輯上匯流排連線的一種網路拓撲。
那麼什麼又是儲存卷呢?這要從儲存的卷管理器說起。儲存卷管理器是作業系統中的一個物件,他主要負責儲存塊裝置的線上管理。當我們的一個儲存LUN接入計算機後,計算機發現這個裝置的存在,就需要在卷管理器上註冊,卷管理器為儲存卷提供註冊的虛擬介面,獲取儲存LUN的基礎資訊,如空間大小,三元地址,塊大小,起止地址,健康情況等,再為其建立一個對應的資料結構的抽象,這樣計算機通過卷管理器,就能夠動態的撲捉被註冊的儲存LUN的實時資訊,實現動態管理。一個儲存LUN被卷管理器進行註冊抽象之後,就被卷管理器認為是一個可被魚肉的直接下屬,它可以再次被分割成更小區域,當然也可以不分割,再對分割後或者沒分割後的儲存空間進行資料抽象,建立相關的資料結構,供檔案系統層呼叫。 因此,儲存LUN和卷在物理上可能是同一個東西,只是從不同的角度,不同的層次去看它,去理解它。當然,對計算機來說,這些不同確實資料處理過程的需要,也有必要弄清楚的。
推薦學習:《》
以上就是linux lun是什麼的詳細內容,更多請關注TW511.COM其它相關文章!