Linux邏輯卷LVM實現

Linux邏輯卷LVM實現

背景:

在學習Linux中,學習到了邏輯卷LVM,發現LVM是個十分好用的一個技術,可以多個硬盤合併在一起使用,同時還可以動態的增加和減少。在這裏將Linux邏輯卷的具體實現記錄下來。

介紹:

邏輯卷LVM:Logica Volum Manager,它是Linux環境下對磁盤分區進行管理的一種機制,普通的磁盤分區管理方式在邏輯分區劃分好之後就無法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件因爲受上層文件系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁盤上。而LVM解決了這個問題,它可以動態的改變邏輯卷大小,以及跨分區使用。

實現LVM:

在實現LVM前,需要準備一些磁盤,當然一個磁盤的多個分區也可以做,不過那沒什麼意義,這裏我準備了4個磁盤來做這個實驗,分別是每個磁盤分出10個G的分區來做實驗,其中一個使用整個磁盤做分區。在做分區時要,注意要將分區類型改爲8e類型,最後要記得輸入w保存退出,不然分區不會生效,如果保存退出出現warning,記得同步分區,命令是:partx -a /dev/sdc 。如圖:

abcebd1f55aa71e996c40a663f7687e2.png

使用同樣的方法分了4個分區,結果如圖:

41d36aeb5185b8d91baf2542db6982c1.png

準備好分區後,開始製作LVM,第一步就是將這些分區或者磁盤做成物理卷,命令:pvcreate /dev/sd{b,c1,d1,e1}

a470098f012c46a3094f99987d40eb81.png

然後使用pvs命令或者pvdisplay來查看物理卷列表。

495b6fec578d6b19ba6b488c1c94acc0.png

然後開始創建卷組,使用命令vgcreate 卷組名(自己取) 物理卷(需要加入到卷組的物理卷),使用vgs可以產看卷組列表

371b2589683b84d103fe74dad9dee403.png

使用vgdisplay查看卷組詳細信息

3e3ee0f768c8b0b0ed191243b982842f.png

創建好卷組後就可以在卷組上創建邏輯卷,命令:/lvcreate -n 邏輯卷名 -L 10G 卷組名

在配置大小時,可以用 -l 或者 -L 選項,-l 表示用PE個數做單位,-L 可以指定大小爲多大,還可以用百分比:50%vg 卷組名

cf0c972127f7e3ee347b04038db20083.png

使用lvdisplay查看邏輯卷詳細信息

1aac445985d84bc0e3e36491c0e93af7.png

這樣我們的邏輯卷就創建成功了,現在爲這個邏輯卷做一個文件系統,如果你做xfs文件系統,這個邏輯卷是不可用減少的,只能增加,如果是ext4就可以增加和減少。命令:mkfs.ext4 /dev/vg0/lv0

b6d8c5d98d316dc5bd0a6d50c19efae0.png

在創建一個掛載點將這個卷掛載就可以使用了,如果需要開機知道掛載,需要寫配置文件/etc/fstab。

456eac0c61c5ea353c525f86af45ffde.png

如果我們要增加邏輯卷的大小用命令:lvextend -r -L +10G /dev/vg0/lv0

-r 可以爲增加的空間同步文件系統,如果沒加-r ,增加的空間是沒有文件系統的,所以並不能使用,也可以用resize2fs /dev/vg0/lv0 30G 來同步,後面的30g爲增加後整個空間的大小

fc332e487e4c77a2d1826f3213bb090e.png

如果卷組的空間不夠,也可以擴展。命令爲:vgextend vg0 /dev/sdf1 ;在sdf1也需要像之前創建分區時那樣操作。

a2f684aea1dceb5eff077526595224c2.png

這樣就實現了LVM的增加,這時如果我們不需要這麼大的空間還可以減少LVM空間。

首先取消掛載:umount /mnt/lv0

f64717325ec58268367e408f0a001bc6.png

再檢查文件系統:fsck -f /dev/vg0/lv0  這個步驟是必須的,而且必須加 -f 強制檢查,不然後面會報錯。

再減少文件系統空間:resize2fs /dev/vg0/lv0 10G  減少到10G大小

再減少邏輯卷空間:lvreduce -L 10G /dev/vg0/lv0  減少到10G大小

最後在掛載:mount -a 

283711dd98925ea9f167b8482e08ec3f.png

確認邏輯卷大小變爲10G

2c9bca7c9acca81b5020521734a97383.png

從邏輯卷中刪除正在使用的物理分區。

如果這個物理分區上有數據或者空間被分配出去了,可以使用pvmove /dev/sdc1 將上面的數據或者空間,轉移到其他分區,具體轉到哪個分區系統自己分配。

59ceaef67b30ada7e6b99a88ca125ffe.png

先將需要移除的分區從卷組裏移除,命令:vgreduce vg0 /dev/sdb

再從物理分區中移除,命令:pvremove /dev/sdb

a20231605b0c0a99b4ab9effe7aeeb02.png



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