LVM 的概念
我想出一個比喻。有些宴會餐廳的隔間是彈性的,用很多片活動式的木板來隔間,隨時可以隔出不同的大小。假設有兩對新人要結婚,其中一對親友比較多,隔了一個可以容納 40 桌大小的宴會廳,另一對親友比較少,隔了20桌的宴會廳。一個宴會廳是一個 vg ,一張方桌是一個 pv 。(餐廳通常是圓桌,這裡為了比喻方便用方桌,假設一個方桌坐4個人)。
兩個方桌合併成一個新的桌子,可以坐6個人。合併後的桌子就是 lv 。從外觀來看,桌子要有多大,拉多少方桌過來合併就可以了。反正桌布蓋上之後,看不出來分別,只看到的一張大桌子。再假設 3 張方桌併成一個 8 人座的桌子,這8人桌也是一個 lv 。所以從外觀上來看,一個桌子就是一個 lv 。
回到 LVM,從使用觀點來看,一個 lv 對應一個分割區。但是從實體觀點來看,pv 才是真正的實體分割區。 vg 是一個大容器,是 pv 的集合,也是 lv 的集合。
還有另一個比喻。vg 視為倉庫。一個好幾層的貨架是 pv。每一層空間就是各別的 lv。 把兩個貨架(pv)並排在一起,同一層(lv)的空間就變大了。
新增可使用的 lv 分割區
建立一個傳統的分割區,並且把磁碟類型改成 8e
[root@server01 ~]# fdisk /dev/sda
讓分割區立即生效
[root@server01 ~]# sleep 5; partx -a /dev/sda
新增 pv
[root@server01 ~]# pvcreate /dev/sda3
新增 vg (設定 vg 名稱,然後設定一個 pv 分割區給它)
[root@server01 ~]# vgcreate myvg0 /dev/sda3
查詢 pv
[root@server01 ~]# pvs
新增 lv
[root@server01 ~]# lvcreate -L 80M -n mylv0 myvg0
查詢 lv
[root@server01 ~]# lvs
格式化 lv
[root@server01 ~]# mke2fs -j /dev/myvg0/mylv0
新增目錄
[root@server01 ~]# mkdir /lvm
掛載指令。把剛新增的lv掛載成這個目錄。
[root@server01 ~]# mount /dev/myvg0/mylv0 /lvm
查詢分割區
[root@server01 ~]# df -h
修改fstab (系統路徑、掛載路徑、分割區類型, defauls 1 2)
[root@server01 ~]# vi /etc/fstab
/dev/myvg0/mylv0 /lvm ext4 defaults 1 2
把掛載指令寫到開機會執行的批次檔(本項跟 fstab 擇一即可)
[root@server01 ~]# vi /etc/rc.d/rc.local
加大 lv 容量
新增 pv
[root@server01 ~]# pvcreate /dev/sda5
將 pv 加入已存在的 vg
[root@server01 ~]# vgextend myvg0 /dev/sda5
增加空間
[root@server01 ~]# lvextend -L +512M /dev/myvg0/mylv0
增加之後要重新整理檔案系統的容量
[root@server01 ~]# resize2fs -p /dev/myvg0/mylv0
* 如果 vg 還有剩餘空間,不需要新增 pv。直接加大 lv 即可。
縮小 lv 容量
(假 lvtest 是由 /dev/sda5、/de)
將掛載的目錄卸載
[root@server01 ~]# umount /mnt/lvtest
調整大小 - 使用 lvreduce
[root@server01 ~]# lvreduce -L 512M /dev/vg0/lvtest
調整大小 - 使用 resize2fs
[root@server01 ~]# resize2fs -p /dev/vg0/lvtest
磁碟檢查
[root@server01 ~]# e2fsck -f /dev/vg0/lvtest
再調整一次大小
[root@server01 ~]# resize2fs /dev/vg0/lvtest 512M
* 接下來要做搬移 pv 。先說明一下 lv 跟 pv 應該是不相干,因為 lv 是跟 vg 要空間,而 vg 由哪些 pv 組成,是 vg 跟 pv 之間的事。但是既然 lv 縮小了,就有空間釋放出來,還是可以把 pv 分割區移出 vg 之外,另做它用。
搬移 pv (假設要把 sda6 移除,因此要把資料移到 sda5)
[root@server01 ~]# pvmove /dev/sda6 /dev/sda
確認 PE 是否都是 FREE (Total PE = Free PE)
[root@server01 ~]# pvdisplay
將 pv 從 vg 移除
[root@server01 ~]# vgreduce vg0 /dev/sda6
將 pv 分割區還原為一般分割區
[root@server01 ~]# pvremove /dev/sda6
刪除分割區
[root@server01 ~]# fdisk /dev/sda
其他相關操作
移除 lv
[root@server01 ~]# lvremove /dev/vg0/lvtest
移除 vg
[root@server01 ~]# vgremove vg1
移除 pv
[root@server01 ~]# pvremove /dev/sda6
調整 swap
卸載 swap
[root@server01 ~]# swapoff -a
[執行增加或縮小,參考上面步驟]
將 lv 分割區設為 swap
[root@server01 ~]# mkswap /dev/vg0/lvswap
掛載 swap
[root@server01 ~]# swapon /dev/vg0/lvswap
沒有留言:
張貼留言