linux邏輯卷管理(LVM)


特殊的filesystem:LVM

如果在安裝初期,沒有做好整個硬盤的規划,那么未來要新增磁盤空間,會很麻煩。這個問題在LVM面前,似乎影響不大,因LVM可以整合多個實體partition在一起,讓這些partitions看起來就像是一個磁盤一樣,而且,還可以在未來新增其它的實體partition到這個LVM管理的磁盤中,如此一來,整個磁盤空間的使用上,具有彈性。

 

1、PV(Physical Volume)物理卷

  (1) 實體磁盤,必須要將原本的磁盤,例:/dev/hda5, /dev/hda6等分區,利用fdisk命令,將他們的ID改為LVM(8e),並且修改磁盤的相關信息,稱為LVM可使用的磁盤。ID定義:當使用fdisk -l看到

  的數據,ID83是Linux的partition,82則是Swap的代號,8e是LV代號 

2、VG(Volume Group)卷組

  (1) LVM主要目的就是建立VG,作用就是將剛剛一個或多個PV組合成為一個大磁盤,此最大容量與底下PE有關,如完全使用LVM默認參數,那么最大的LVM磁盤可達到256G

3、PE(Physical Extend)物理擴展

  (1) 默認大小4M,當PE為4M時,BG最大容量為256G,PE大小會影響到VG的最大值,如VG默認大於256G時,需改PE值

  (2) 注:一個VG最大可容65534個PE

4、LV(Logical Volume)LV 邏輯卷

  (1) LV最后被掛載到文件系統的parition,LV有VG分割,他會建立一個裝置代號, 例:/dev/vgname/lvname

 

LV如何把數據寫入硬盤中: 

1、線性模式(linear):假如我將 /dev/hda1, /dev/hdb1 這兩個partition加入到VG中,並且整個VG只有一個LV時,那么所謂的線性模式就是:當 /dev/hda1的容量用完之后 /dev/hdb1的硬盤才會被使用到

2、交錯模式(triped):就是我將一筆數據拆分成兩部,分別寫入 /dev/hda1 與 /dev/hdb1的意思,如此,一份數據用兩顆硬盤來寫入,理論上,讀寫的效能會比較好 

 注:LVM主要的用處是制造一個大磁盤,不是建立一個效能為主的磁盤,我們應該利用的是LVM可以彈性管理整個partition大小的用途上。一般使用線性模式,如使用交錯模式,需注意,當任何一個partition【掛掉】時,所有的數據都會【損壞】。如強調備份與效能,直接使用RAID即可,不使用LVM

  

好了上面講了這么多理論,下面來實踐一下

1、我們先准備已經分好區硬盤,分別如下,磁盤分區可參考:https://www.cnblogs.com/xiangbing123/p/13680103.html

修改Id為8e,這里的Id上面已經說明,哈哈,就不啰嗦了

我想要制作一個LVM的磁盤出來,首先將 /dev/hdb1, hdb2這個兩個partition加入到LVM中。

 

2、建立PV 

PV相關命令: 

 (1)pvcreate:將實體partition建立為PV

 (2)pvscan:搜尋目前系統里面任何具有PV的磁盤

 (3)pvdisplay:顯示出目前系統上面的PV狀態

 (4)pvremove:將PV屬性移除,讓改partition不具有PV屬性

 (5)partprobe:這個命令可以讓核心立刻讀入最新的partition table而不需reboot

這里我們建立了兩個PV,可以通過pvscan 與 pvdisplay查看

  

3、建立VG

相關命令:

(1)vgcreate:建立VG命令

(2)vgsan:搜尋系統上面是否有VG

(3)vgdisplay:顯示目前系統上面的VG狀態

(4)vgextend:在VG內增加額外的PV

(5)vgreduce:在VG內移除PV

(6)vgchange:設定VG是否啟動(active)

(7)vgremove:刪除一個VG

注:VG名稱可自己取,PV名稱就是partition的裝置代號

  

4、建立LV

定義:

將創造出VG大磁盤后,在建立分割區,這個分割區就是所謂的LV

相關命令:

(1)lvcreate:建立LV

(2)lvscan:查詢系統上面的LV

(3)lvdisplay:顯示系統上面的LV狀態

(4)lvextend:在LV里添加容量

(5)lvreduce:在LV里減少容量

(6)lvremove:刪除一個LV

(7)lvresize:對LV進行容量大小的調整

將整個vbirdvg分配給vbirdlv

格式:lvcreate -L [sizeMG] -n [LVname] VGname

參數:

-L:后面接容量,容量的單位可以是M,G等

-n:后面接的就是LV的名稱

現在整個partition准備好了,只需格式化,掛載就可使用啦

 

5、partition格式化與掛載

格式化為 ext4格式

mkfs -t ext4 /dev/vbirdvg/vbirdlv

mkdir /mnt/lvm

mount -t ext4 /dev/vbirdvg/vbirdlv /mnt/lvm

哈哈,上面做了這么多,終於可以驗收成果了,快使用以下命令查看吧

df :查看磁盤使用情況

fdisk -l /dev/hdb:查看/dev/hdb分區

 

6、增加邏輯卷

如果中途需要增加分區怎么辦呢,步驟基本一致,創建好之后。細心的會發現 lv 已經增加了,但是 /dev/vbirdvg/vbirdlv 卻沒有加大。這是因為我們的ext4主要信息在最初規划時,就已經寫入super block,同時 inode 與 block 數量優勢固定的,所以沒有變化。我們可以通過 resize2fs命令處理

格式:resize2fs [-f] [device] [size]

參數:

-f:強制進行 resize 的動作

[device]:裝置代號

[size]:可加可不加,如加上需要給一個單位,M 或 G ,如不加默認【整個分區partition】的容量來處理

 

7、刪除步驟:

上面講了這么多創建與增加邏輯卷,假如某一天我們不使用了怎么刪除呢,其實刪除很簡單,我們按照創建順序倒着刪除即可。

1、取消掛載

2、使用lvremove移除LV

3、使用vgchange -a n VGname 讓 VGname 這個 VG 不具有Active標志

4、使用vgremove移除VG

5、使用pvremove移除PV

6、最后,使用fdisk修改ID即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM