Linux磁盤管理系列 — LVM和RAID

一、邏輯卷管理器(LVM)

  1、什麼是邏輯卷管理器(LVM)

    LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對捲進行操作的抽象層。

    LVM是建立在硬盤和分區之上的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,從而提高磁盤分區管理的靈活性。

    LVM允許在多個物理設備間重新組織文件系統,包括重新設定文件系統的大小。

  2、LVM結構圖

    

  3、LVM術語

  1)物理卷

    物理卷(physical volume, PV)在LVM系統中處理最底層;

    物理卷可以是整個硬盤、硬盤上的分區或從邏輯上一磁盤分區具有同樣功能的設備(如:RIAD);

    物理卷是LVM的基本存儲邏輯塊,單核基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

  2)物理區域

    每個物理卷被劃分爲基本單元(稱爲Physical Extent,PE),具有唯一編號的PE是可以被LVM尋址的最小存儲單元,實際的數據都是存儲在PE中的;

    PE的大小可根據實際情況在創建物理卷時指定,默認爲4MB;

    PE的大小一旦確定將布恩那個改變,同一個卷組中的所有物理卷的PE的大小需要一致。

  3)卷組

    卷組(Volume Group,VG)建立在物理卷之上,它由一個或多個物理卷組成;

    卷組創建之後,可以動態添加物理捲到卷組中,在卷組上可以創建一個或多個“LVM分區”(邏輯卷);

    一個LVM系統中可以只有一個卷組,也可以包含多個卷組

    LVM的卷組類似於非LVM系統中的物理硬盤。

  4)邏輯卷

    邏輯卷(Logical Volume,LV)建立在卷組之上,邏輯卷相當於分區,只不過給分區時通過卷組劃分,卷組中可以存在很多物理區域,可以指定多少物理區域劃分給一個邏輯卷,也可以之間指定大小來劃分,劃分爲邏輯卷後就相當於劃分了分區,僅需要對LV進行格式化文件系統即可。

  5)邏輯區域

    邏輯卷也被劃分爲可被尋址的基本單元(稱爲 Logical Extent,LE);

    在同一個卷組中,LE的大小和PE時相同的,並且一一對應。

  4、LVM與文件系統之間的關係

    /boot 分區不能位於卷組中,因爲引導裝載程序無法從邏輯卷中讀取;

    如果你想把 / 分區放在邏輯捲上,必須創建一個與卷組分離的 /boot 分區

    

  5、LVM的存儲機制

    LV時從VG中劃分出來的,因此LV中的PE可能來自多個PV。因此LV存儲數據時,主要有兩種機制:

    1)線性模式(Linear):先將數據存儲在屬於同一個PV的PE,然後再向下一個PV中的PE;

    2)條帶模式(Striped):將一份數據拆分爲多份,分別寫入該LV對應的每個PV中,類似於RAID 0,因此讀寫性能會優於線性模式。

  儘管條帶模式讀寫性能會比較好,但是LVM的重點時擴展容量二非性能,如果要實現讀寫性能還是推薦採用RAID方式實現。

  6、PV - VG - LV 的設備名

  含義 設備名
PV 物理卷:磁盤或分區 /dev/sda?
VG 卷組:一組磁盤和 / 或 分區 /dev/<VG name>/(目錄)
LV 邏輯卷:LVM 分區 /dev/<VG name>/<LV name>

  7、LVM 常用命令集

任務 PV VG LV
創建 pvcreate vgcreate lvcreate
刪除 pvremove vgremove lvremove
顯示信息 pvs vgs lvs
掃描列表 pvscan vgscan lvscan
顯示屬性 pvdisplay vgdisplay lvdisplay
更改屬性 pvchange vgchange lvchange
擴展   vgextend lvextend / lvresize
縮減   vgreduce lvreduce / lvresize

  8、創建LVM系統的步驟

  第一步:對新硬盤分區----創建LVM類型的分區

  新硬盤分區參考:https://www.cnblogs.com/qiuyu666/p/11843634.html

  使用 lsblk 命令查看需要測試的磁盤 sdb5、sdc5、sdd5、sde5:

  

  第二步:對創建好的LVM類型分區----創建物理卷

  創建物理卷(Physical Volume,PV):

  指  令:pvcreate

  語  法:pvcreate [選項] [參數]

  功能介紹:pvcreate指令用於將物理硬盤分區初始化爲物理卷,以便被LVM使用

  主要參數:  -f   強制創建物理卷,不需要用戶確認

         -u   指定設備的UUID

         -y   所有的問題都回答“yes”

         -Z   是否利用前4個扇區

  

  

  查看新建好的物理卷:

  指令:pvs、pvscan、pvdiplay

   

  第三步:將新創建的物理卷添加到卷組

  將物理卷添加到卷組(Volume Group,VG):

  指    令:vgcreate

  語       法:vgcreate [選項] [參數]

  功能介紹:vgcreate指令用於創建LVM卷組。

  主要參數:-l    卷組上允許創建的最大邏輯卷數

       -p   卷組中允許添加的最大物理卷數

       -s   卷組上的物理卷的PE大小

  

   查看添加好的卷組:

  指令:vgs、vgscan、vgdisplay

  

  第四步:在卷組中創建邏輯卷

  創建邏輯卷(Logical Volume,LV):

  指      令:lvcreate

  語      法:lvcreate [選項] [參數]

  功能介紹:lvcreate指令用於創建LVM的邏輯卷。

  主要參數:-L   指定邏輯卷的大小,單位爲“kKmMgGtT”字節

       -l    指定邏輯卷的大小(LE數)

       -n   後面跟邏輯卷名 

       -s    創建快照

  

  查看創建好的邏輯卷:lvs、lvscan、lvdisplay

   

  對邏輯捲進行擴展:lvextend / lvresize

  指      令:lvextend

  語      法:lvextend [選項] [參數]

  功能介紹:lvextend指令用於在線擴展邏輯卷的空間大小,而不中斷應用程序對邏輯卷的訪問。

  主要參數:-L  指定邏輯卷的大小,單位爲“kKmMgGtT”字節

       -l    指定邏輯卷的大小(LE數)

  

  第五步:在邏輯卷中創建文件系統----格式化操作

  指       令:mkfs

  使用權限:超級使用者

  使用方式:mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable]

  說       明: 建立 linux 檔案系統在特定的 partition 上

  參       數:device : 預備檢查的硬盤 partition,例如:/dev/sda1

       -V : 詳細顯示模式

       -t : 給定檔案系統的型式,Linux 的預設值爲 ext2

       -c : 在製做檔案系統前,檢查該partition 是否有壞軌

       -l bad_blocks_file : 將有壞軌的block資料加到 bad_blocks_file 裏面

       block : 給定 block 的大小

       -L:建立lable

  補充說明:mkfs本身並不執行建立文件系統的工作,而是去調用相關的程序來執行。例如,若在"-t" 參數中指定ext2,則mkfs會調用mke2fs來建立文件系統.使用時如省略指定【塊數】參數,mkfs會自動設置適當的塊數。

  

  第六步:創建掛載點(必須爲空目錄),對格式化的文件系統----進行掛載操作

  

   添加開機自動掛載: echo '/dev/testvg/testlv1  /testlv  ext4 defaults 0 0 ' >> /etc/fstab

  第七步:檢查掛載是否成功----使用mount命令檢查

   

  

  

  9、刪除LVM系統的操作

  第一步:先卸載掛載點並刪除 /etc/fstab 中的掛載記錄

    指  令:umount

    功能說明:卸除文件系統。

    語  法:umount [-ahnrvV][-t <文件系統類型>][文件系統]

    補充說明:umount可卸除目前掛在Linux目錄中的文件系統。

    參  數:  -a   卸除/etc/mtab中記錄的所有文件系統。

           -h   顯示幫助。

           -n   卸除時不要將信息存入/etc/mtab文件中。

           -r   若無法成功卸除,則嘗試以只讀的方式重新掛入文件系統。

           -t<文件系統類型>   僅卸除選項中所指定的文件系統。

           -v   執行時顯示詳細的信息。

           -V   顯示版本信息。

           -l   懶惰的卸載。從文件系統層次分離文件系統,在不繁忙的情況下清理所有對文件系統的引用

      [文件系統]   除了直接指定文件系統外,也可以用設備名稱或掛入點來表示文件系統。

    

  第二步:刪除邏輯卷(LV)

    指  令:lvremove

    語  法:lvremove [選項] [參數]

    功能介紹:lvremove指令用於刪除指定LVM邏輯卷。

    參  數:-f 強制刪除

  

  第三步:刪除卷組(VG)

    指  令:刪除卷組

    語  法:vgremove [選項] [參數]

    功能介紹:vgremove指令用戶刪除LVM卷組。

    參  數:-f   強制刪除

  

  第四步:刪除物理卷(PV)

    指  令:刪除指定物理卷

    語  法:pvremove [選項] [參數]

    功能介紹:pvremove指令用於刪除一個存在的物理卷。

    主要參數:-d  調試模式

         -f  強制刪除

         -y  對提問回答“yes”

   

二、磁盤陣列(Redundant Arrays of Inexpensive Disks,RAID)

  RAID(Redundant Arrays of Inexpensive Disks)容錯式廉價磁盤陣列。RAID技術可以通過軟件或硬件實現,將多個磁盤整合成爲一個較大的磁盤裝置,該裝置不僅有存儲功能,還具有數據保護的功能。RAID具有多個不同的等級,每個等級的對整合後的磁盤實現不同的功能。常用等級有RAID5。

  1、磁盤陣列(RAID)的功能

    1)整合現有的磁盤空間

    2)提高磁盤讀取效率

    3)提供容錯性

  2、磁盤陣列的種類

    1)硬件磁盤陣列:使用磁盤陣列控制卡或使用dmraid工具管理。

    2)軟件磁盤陣列:由Linux的內核仿真磁盤陣列的功能或使用mdadm工具管理。

    在Linux中常用的是使用mdadm工具管理來實現軟件RAID

  3、磁盤陣列的級別

    

    1)RAID 0:RAID 0又稱爲Stripe或Striping,他代表了所有RAID級別中存儲性能最高的。RAID 0提高存儲性能的原理是把連續的數據分散到多個磁盤上存取,這樣系統有數據請求就可以被多個磁盤並行的執行,每個磁盤執行屬於它自己的那部分數據請求。這種數據上的並行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能。同時RAID 0的安全行最低,如果一個磁盤失效,將影響整個數據。因此RAID 0不可應有於需要數據高可用行的關鍵應用。

    2)RAID 1:RAID 1又稱Mirrored,通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據。當原始數據損損毀時,可直接從鏡像拷貝中讀取數據,因此RAID 1安全性高。但RAID 1是磁盤陣列中應用成本最高的。特點是當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。

    3)RAID 5:RAID 5是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。RAID 5可以理解爲是RAID 0和RAID 1的折中方案。RAID 5可以爲系統提供數據安全保障,但保障程度要比Mirror低,而磁盤空間利用率要比Mirror高。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶效驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。同時由於多個數據對應一個奇偶效驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較低,是目前運用較多的一種解決方案。

  4、創建軟RAID

    1)確認操作系統是否安裝mdadm包

      

      對於沒有安裝的,自行安裝mdadm包。

    2)對進行需要創建軟件的硬盤進行分區並設置分區類型爲RAID

      硬盤分區詳見:https://www.cnblogs.com/qiuyu666/p/11843634.html

     

      

    fdisk 命令只適合小於2T的硬盤,如大於2T則需要使用parted。

    3)使用mdadm創建RAID

      命 令:mdadm 用於建設,管理和監控RAID陣列

      用 法:mdadm --create device options...   用未使用的設備,創建raid選項,

          mdadm --assemble device options...    合併先前創建的raid陣列。

          mdadm --build device options...    創建或合並沒有元數據的一個raid。

          mdadm --manage device options...    對現有陣列進行更改

          mdadm --misc options... devices    報告或修改各種MD相關設備的。

          mdadm --grow options device    調整以激活的raid陣列

          mdadm --incremental device    從一個raid中,添加/刪除設備

          mdadm --monitor options...    監視一個或多個raid陣列的變化

          mdadm device options...    --manage的簡寫

          mdadm   --create 主要參數

                  --auto=yes :決定建立後面接的軟體磁盤陣列設備,亦即/ dev/md0的,/ dev/md1上...

                  --raid-devices=N :使用幾個磁盤 (partition) 作爲磁盤陣列的設備

                  --spare-devices=N :使用幾個磁盤作用磁盤陣列的備用設備

                  --level=[015] :設置磁盤陣列的等級,常用0,1,5

          mdadm      --manage 主要參數

                  --add    :會將後面的設備加入到這個MD中!

                  --remove :會將後面的設備由這個MD中移除

                  --fail   :會將後面的設備設定成爲出錯的狀態

    

    該命令中各參數說明:

      -C/--create:新建陣列

      -a/--auto:允許mdadm創建設備文件,一般常用參數-a yes一次性創建

      -l/--levle:RAID模式,支持RAID0/1/4/5/6/10等

      -n/--raid-devices=:創建陣列中活動磁盤的數量

      /dev/md0:陣列的設備名稱

      /dev/sd{b,c,d}1:創建陣列中的物理磁盤分區信息

    創建完後,查看陣列狀態:
         
       

    4)創建md0配置文件

      

    5)格式化RAID分區

      

    6)添加開機自動掛載

      

  5、刪除軟RAID

    1)卸載掛載點

      

    2)停止軟件RAID設備

      

    3)刪除RAID中的磁盤

      

    4)刪除mdadm配置文件

      

    5) 刪除/etc/fstab中的掛載信息

      

  注:如果取消掛載設備的時候,顯示設備正忙,可以使用 fuser  -mv  /mnt/xxx   看看是哪個進程在使用這個掛載點,然後殺死這個進程即可。

      

       

   以上即是在Linux中常見的兩種將多個磁盤合併容量的方法,僅供爲參考。在顯示環境還是推薦使用硬件RAID,數據無價。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章