linux (centos) 系統配置 邏輯盤卷管理 Logical Volume Manager 每個Linux使用者在安裝Linux時都會遇到這樣的困境:在為系統磁碟分割時,如何精確評估和分配各個硬碟分區的容量,因為系統管理員不但要考慮到當前某 個分區需要的容量,還要預見該分區以後可能需要的容量的最大值。因為如果估計不準確,當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬碟、重 新對硬碟分區,然後恢複資料到新分區。 lvm在真實的物理裝置與使用者可用的磁碟空間中做了一個中間適配層使用者不需要關心底層到底有幾個分區, 或者幾個硬碟他看到的就只有一個分區. 藉此來突破單個硬碟的儲存上限. 這才是lvm的優勢所在, 什麼是 PV, PE, VG, LV 的意義PV(physical volume): 物理卷在邏輯卷管理系統最底層,可為整個物理硬碟或實際物理硬碟上的分區。VG(volume group): 卷組建立在物理卷上,一卷組中至少要包括一物理卷,卷組建立後可動態添加卷到卷組中,一個邏輯卷管理系統工程中可有多個卷組。LV(logical volume): 邏輯卷建立在卷組基礎上,卷組中未配置的空間可用於建立新的邏輯卷,邏輯卷建立後可以動態擴充和縮小空間。PE(physical extent): 物理地區是物理卷中可用於分配的最小儲存單元,物理地區大小在建立卷組時指定,一旦確定不能更改,同一卷組所有物理卷的物理地區大小需一致,新的pv加入到vg後,pe的大小自動更改為vg中定義的pe大小。LE(logical extent): 邏輯地區是邏輯卷中可用於分配的最小儲存單元,邏輯地區的大小取決於邏輯卷所在卷組中的物理地區的大小。卷組描述地區:卷組描述地區存在於每個物理卷中,用於描述物理卷本身、物理卷所屬卷組、卷組中邏輯卷、邏輯卷中物理地區的分配等所有資訊,它是在使用pvcreate建立物理卷時建立的。 www.2cto.com 一,建立步驟: 1,通過fdisk工具將磁碟轉換為linux的分區 2,通過pvcreate命令將linux分區轉換為物理卷(pv) 3,通過vgcreate命令將建好的物理卷處理成組卷(vg) 4,通過lvcreate命令將卷組分成若干個邏輯卷(lv) 5,對邏輯卷進行格式化,掛載,動態調整邏輯卷的大小,不會影響邏輯卷的資料PV 階段 要建立 PV 其實很簡單,只要直接使用 pvcreate 即可!我們來談一談與 PV 有關的命令吧! pvcreate : 將實體 partition 建立成為 PV ; pvscan : 搜尋目前系統裡面任何具有 PV 的磁碟; pvdisplay : 顯示出目前系統上面的 PV 狀態; pvremove : 將 PV 屬性移除,讓該 partition 不具有 PV 屬性。 VG 階段 建立 VG 及 VG 相關的命令也不少,我們來看看: vgcreate : 就是主要建立 VG 的命令啦!他的參數比較多,等一下介紹。 vgscan : 搜尋系統上面是否有 VG 存在? vgdisplay : 顯示目前系統上面的 VG 狀態; vgextend : 在 VG 內添加額外的 PV ; vgreduce : 在 VG 內移除 PV; vgchange : 配置 VG 是否啟動 (active); vgremove : 刪除一個 VG 啊! www.2cto.com LV 階段 LVM的邏輯卷 lvcreate : 建立 LV 啦! lvscan : 查詢系統上面的 LV ; lvdisplay : 顯示系統上面的 LV 狀態啊! lvextend : 在 LV 裡面添加容量! lvreduce : 在 LV 裡面減少容量; lvremove : 刪除一個 LV ! lvresize : 對 LV 進行容量大小的調整! fdisk 分區 重複5次建立5個分區 硬碟為sdb 擴充分區時 [root@bogon ~]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): c DOS Compatibility flag is not set Command (m for help): n Command action e extended p primary partition (1-4)p 建立一個主要磁碟分割 多個邏輯分區()Partition number (1-4): 1First cylinder (1-1044, default 1):Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1000M 將新的分區表讀入記憶體,並格式化新划出的分區 [root@bogon ~]# partprobe 執行劃好的分區寫到記憶體中 -bash: partprobe: command not found[root@bogon ~]# yum -y install parted[root@bogon ~]# partprobe 執行劃好的分區寫到記憶體中[root@bogon ~]# fdisk -l 查看分區資訊 Device Boot Start End Blocks Id System/dev/sdb1 1 128 1028128+ 83 Linux LVM/dev/sdb2 129 256 1028160 83 Linux LVM/dev/sdb3 257 894 5124735 5 Extended/dev/sdb5 257 384 1028128+ 83 Linux LVM/dev/sdb6 385 512 1028128+ 83 Linux LVM/dev/sdb7 513 640 1028128+ 83 Linux LVM 建立和管理LVM www.2cto.com pv 階段 [root@bogon ~]# pvcreate /dev/sdb{1,2,5,6} -bash: partprobe: command not found [root@bogon ~]# yum install lvm2 安裝lvm支援 [root@bogon ~]# pvcreate /dev/sdb{1,2,5,6} 建立pv sdb(1.2.5.6)分區必須存在 [root@bogon ~]# pvscan 顯示pv詳細資料 PV /dev/sdb1 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb2 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb5 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb6 VG VolGroup lvm2 [992.00 MiB / 0 free] Total: 5 [4.84 GiB] / in use: 5 [3.84 GiB] / in no VG: 0 [0 ] vg 階段 [root@bogon ~]# vgcreate -s 16M VolGroup /dev/sdb{1,2,5,6} 建立vg [root@bogon ~]# vgdisplay 顯示vg詳細資料 --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 4 Act PV 4 VG Size 3.84 GiB PE Size 16.00 MiB Total PE 248 Alloc PE / Size 0 / 0 Free PE / Size 248 / 3.88 GiB VG UUID yGy2H6-dNUv-aVZS-R5si-OvN3-qN7n-CQpfSAlv 階段 [root@bogon ~]# lvcreate -l 248 -n alinelv VolGroup 將vg分給alinelv 上面顯示總共248個PE [root@bogon ~]# ls /dev/VolGroup/ 查看產生的alinelv alinelv [root@bogon ~]# mkfs.ext4 /dev/VolGroup/alinelv 格式化alinelv [root@bogon ~]# mkdir /mnt/lvm1 建立目錄 準備掛載 [root@bogon ~]# mount /dev/VolGroup/alinelv /mnt/lvm1 掛載目錄可以存放東西了 www.2cto.com /dev/sdb{1,2,5,6}硬碟有大多 lvm目錄就可以存放相對應大小的資料 [root@bogon ~]# lvscan 顯示lv詳細資料 ACTIVE '/dev/VolGroup/alinelv' [3.84 GiB] inherit [root@bogon ~]# cp -r /boot /mnt/lvm1 測試copy資料進去 [root@bogon ~]# df -hT 顯示系統掛載資訊 Filesystem Type Size Used Avail Use% Mounted on/dev/sda2 ext4 3.9G 590M 3.1G 16% /tmpfs tmpfs 514M 0 514M 0% /dev/shm/dev/sda1 ext4 194M 22M 163M 12% /boot/dev/sda3 ext4 2.0G 35M 1.8G 2% /home/dev/mapper/VolGroup-alinelv ext4 3.84G 143M 3.8G 5% /mnt/lvm1放大lvm容量 [root@bogon ~]# pvcreate /dev/sdb7 pv添加fdisk 已經劃分好的分區 [root@bogon ~]# pvscan 顯示pv詳細資料 PV /dev/sdb1 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb2 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb5 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb6 VG VolGroup lvm2 [992.00 MiB / 0 free] PV /dev/sdb7 VG VolGroup lvm2 [992.00 MiB / 0 free] 多了個sdb7的資訊 Total: 5 [4.84 GiB] / in use: 5 [4.84 GiB] / in no VG: 0 [0 ] www.2cto.com [root@bogon ~]# vgextend VolGroup /dev/sdb7 vg加入新的pv [root@bogon ~]# vgdisplay 顯示vg詳細資料 --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 5 Act PV 5 VG Size 4.84 GiB PE Size 16.00 MiB Total PE 310 Alloc PE / Size 248 / 3.88 GiB Free PE / Size 62 / 992.00 MiB 重點看這個資訊 這個剛新加還沒有使用的PE VG UUID yGy2H6-dNUv-aVZS-R5si-OvN3-qN7n-CQpfSA [root@bogon ~]# lvresize -l +62 /dev/VolGroup/alinelv 添加lv [root@bogon ~]# dumpe2fs /dev/VolGroup/alinelv 查看檔案狀態 [root@bogon ~]# resize2fs /dev/VolGroup/alinelv 把新加的用到lv上 e2fsck -f /dev/VolGroup/alinelv 提示要 [root@bogon ~]# e2fsck -f /dev/VolGroup/alinelv 執行 [root@bogon ~]# lvscan 顯示lv詳細資料 ACTIVE '/dev/VolGroup/alinelv' [4.84 GiB] inherit www.2cto.com 卸載LVM [root@bogon ~]# umount /mnt/lvm1 取消掛載 [root@bogon ~]# lvremove /dev/VolGroup/alinelv lv移除 [root@bogon ~]# vgremove VolGroup vg也移除 [root@bogon ~]# pvremove /dev/sdb1 /dev/sdb2 /dev/sdb5 /dev/sdb6 /dev/sdb7 pv移除 [root@bogon ~]# pvdisplay 查看是否已經刪除 根據上面的使用可以看到,LVM具有很好的延展性,使用起來非常方便。可以方便地對卷組、邏輯卷的大小進行調整,更進一步調整檔案系統的大小 作者 zhouxingfu520