Linux邏輯卷LVM實現
背景:
在學習Linux中,學習到了邏輯卷LVM,發現LVM是個十分好用的一個技術,可以多個硬盤合併在一起使用,同時還可以動態的增加和減少。在這裏將Linux邏輯卷的具體實現記錄下來。
介紹:
邏輯卷LVM:Logica Volum Manager,它是Linux環境下對磁盤分區進行管理的一種機制,普通的磁盤分區管理方式在邏輯分區劃分好之後就無法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件因爲受上層文件系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁盤上。而LVM解決了這個問題,它可以動態的改變邏輯卷大小,以及跨分區使用。
實現LVM:
在實現LVM前,需要準備一些磁盤,當然一個磁盤的多個分區也可以做,不過那沒什麼意義,這裏我準備了4個磁盤來做這個實驗,分別是每個磁盤分出10個G的分區來做實驗,其中一個使用整個磁盤做分區。在做分區時要,注意要將分區類型改爲8e類型,最後要記得輸入w保存退出,不然分區不會生效,如果保存退出出現warning,記得同步分區,命令是:partx -a /dev/sdc 。如圖:
使用同樣的方法分了4個分區,結果如圖:
準備好分區後,開始製作LVM,第一步就是將這些分區或者磁盤做成物理卷,命令:pvcreate /dev/sd{b,c1,d1,e1}
然後使用pvs命令或者pvdisplay來查看物理卷列表。
然後開始創建卷組,使用命令vgcreate 卷組名(自己取) 物理卷(需要加入到卷組的物理卷),使用vgs可以產看卷組列表
使用vgdisplay查看卷組詳細信息
創建好卷組後就可以在卷組上創建邏輯卷,命令:/lvcreate -n 邏輯卷名 -L 10G 卷組名
在配置大小時,可以用 -l 或者 -L 選項,-l 表示用PE個數做單位,-L 可以指定大小爲多大,還可以用百分比:50%vg 卷組名
使用lvdisplay查看邏輯卷詳細信息
這樣我們的邏輯卷就創建成功了,現在爲這個邏輯卷做一個文件系統,如果你做xfs文件系統,這個邏輯卷是不可用減少的,只能增加,如果是ext4就可以增加和減少。命令:mkfs.ext4 /dev/vg0/lv0
在創建一個掛載點將這個卷掛載就可以使用了,如果需要開機知道掛載,需要寫配置文件/etc/fstab。
如果我們要增加邏輯卷的大小用命令:lvextend -r -L +10G /dev/vg0/lv0
-r 可以爲增加的空間同步文件系統,如果沒加-r ,增加的空間是沒有文件系統的,所以並不能使用,也可以用resize2fs /dev/vg0/lv0 30G 來同步,後面的30g爲增加後整個空間的大小
如果卷組的空間不夠,也可以擴展。命令爲:vgextend vg0 /dev/sdf1 ;在sdf1也需要像之前創建分區時那樣操作。
這樣就實現了LVM的增加,這時如果我們不需要這麼大的空間還可以減少LVM空間。
首先取消掛載:umount /mnt/lv0
再檢查文件系統:fsck -f /dev/vg0/lv0 這個步驟是必須的,而且必須加 -f 強制檢查,不然後面會報錯。
再減少文件系統空間:resize2fs /dev/vg0/lv0 10G 減少到10G大小
再減少邏輯卷空間:lvreduce -L 10G /dev/vg0/lv0 減少到10G大小
最後在掛載:mount -a
確認邏輯卷大小變爲10G
從邏輯卷中刪除正在使用的物理分區。
如果這個物理分區上有數據或者空間被分配出去了,可以使用pvmove /dev/sdc1 將上面的數據或者空間,轉移到其他分區,具體轉到哪個分區系統自己分配。
先將需要移除的分區從卷組裏移除,命令:vgreduce vg0 /dev/sdb
再從物理分區中移除,命令:pvremove /dev/sdb