標簽:LVM 創建 擴容 縮減
一、LVM
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性。
看圖識LV
LVM重要的概念
物理卷(Physical Volume,PV)
指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
卷組(Volume Group,VG)
類似于非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成??梢栽诰斫M上創建一個或多個LV(邏輯卷)。
邏輯卷(Logical Volume,LV)
類似于非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。
物理塊(Physical Extent,PE)
每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,(對應物理磁盤上的扇區還是柱面)具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成。
二、創建LVM
創建步驟基本如同圖示一樣,一:建好倉庫,二:然后搭建一套管理人員把倉庫劃分管理好并對外宣傳我有一個大的倉庫歡迎來租賃,三:打廣告稿促銷尋找客戶來租你的倉庫。
換成咱們LVM的概念就是先有PV才有VG最后劃分LV使用。
PV相關命令
pvcreate #創建一個PV物理卷 pvchange #修改PV的屬性 pvresize #調整一個PV的大小 pvremove #刪除一個PV pvmove #移動PE到指定物理卷 pvscan #搜索所有磁盤上的物理卷 pvs #顯示PV的簡要信息 pvdisplay #顯示PV的屬性信息
VG相關命令
vgcreate #創建卷組 -l:設置此卷組可容納的LV最大數,默認為255 -p:設置此卷組包含PV的最大數,默認為255 -s:設置此卷組PE大小,默認為4M vgextend #擴展VG大小 vgchange #修改VG屬性信息 vgreduce #縮減VG大小 vgremove #刪除VG vgscan #搜索所有磁盤上的卷組 vgs #顯示VG簡要信息 vgdisplay #顯示VG屬性信息 vgck #檢查VG元數據
LV相關命令
lvcreate #創建LV分區 -l:設置LV大小,以PE為單位 -L:設置LV大小,以字節為單位 -n:設置LV名稱 -p:設置LV權限讀寫權限,默認為可讀可寫 -s:設置一個快照卷,對一個已存在的LV做快照 lvextend #擴展LV大小 lvreduce #縮減LV大小 lvchange #修改LV屬性信息 -ay:標記LV為可用狀態 -an:標記LV為不可用狀態 lvremove #刪除LV lvscan #搜索所有磁盤上的邏輯卷 lvs #顯示LV簡要信息 lvdisplay #顯示LV屬性信息
創建LVM的簡要操作步驟
[root@zhuzw-centos6 ~]# ls /dev/sd* #查看分區文件 /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 #我們事先準備好的/dev/sdb1和/dev/sdc1 [root@zhuzw-centos6 ~]# pvcreate /dev/sdb1 /dev/sdc1 #將/dev/sdb1和/dev/sdc1創建為PV Physical volume "/dev/sdb1" successfully created #創建成功的輸出 Physical volume "/dev/sdc1" successfully created [root@zhuzw-centos6 ~]# pvs #查看PV的簡要信息 PV VG Fmt Attr PSize PFree /dev/sda2 vg_zhuzwcentos6 lvm2 a-- 29.51g 0 /dev/sdb1 lvm2 a-- 120.00g 120.00g # /dev/sdc1 lvm2 a-- 80.00g 80.00g # [root@zhuzw-centos6 ~]# vgcreate -s 8M Mylab /dev/sdb1 /dev/sdc1 #創建vg卷組 -s將PE大小修改稿為8M 卷組名稱為Mylab No physical volume label read from /dev/sdb1 Physical volume /dev/sdb1 not found No physical volume label read from /dev/sdc1 Physical volume /dev/sdc1 not found #上面四行提示是卷標沒有找到 Physical volume "/dev/sdb1" successfully created #創建成功的輸出 Physical volume "/dev/sdc1" successfully created Volume group "Mylab" successfully created [root@zhuzw-centos6 ~]# vgs #查看VG的簡要信息 VG #PV #LV #SN Attr VSize VFree Mylab 2 0 0 wz--n- 199.98g 199.98g vg_zhuzwcentos6 1 2 0 wz--n- 29.51g 0 [root@zhuzw-centos6 ~]# lvcreate -l 200 -n lab_tmp Mylab #創建一個LV 大小為200個PE 名稱為lab_tmp Logical volume "lab_tmp" created [root@zhuzw-centos6 ~]# lvs #查看LV的簡要信息 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lab_tmp Mylab -wi-a----- 1.56g lv_root vg_zhuzwcentos6 -wi-ao---- 27.57g lv_swap vg_zhuzwcentos6 -wi-ao---- 1.94g [root@zhuzw-centos6 ~]# mkfs -t ext4 /dev/Mylab/lab_tmp #格式化創建的LV分區,默認文件存放地址為/dev/VG_NAME/LV_NAME [root@zhuzw-centos6 ~]# mount /dev/Mylab/lab_tmp /mnt/zhuzw #掛載至文件目錄 [root@zhuzw-centos6 ~]# mount #查看掛載信息 /dev/mapper/vg_zhuzwcentos6-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) /dev/mapper/Mylab-lab_tmp on /mnt/zhuzw type ext4 (rw) #創建的LV的掛載信息
三、在線擴展根分區容量
我們首先把之前劃分給Mylab卷組的/dev/sdb1這個PV從卸載下來(新創建的額PV直接跳過);然后將這個PV加入到根系統所在的卷組內,調整根lv分區大小容量,最后跟新文件系統。
在做操作前一定要仔細查看LVM卷信息。防止誤操作。
擴容LVM的步驟是增加PV-增加VG-擴容LV-更新文件系統。
[root@zhuzw-centos6 zhuzw]# pvmove /dev/sdb1 /dev/sdc1 #卸載前一定要先把里面的文件移動到其他的PV上 /dev/sdb1: Moved: 1.0% /dev/sdb1: Moved: 100.0% [root@zhuzw-centos6 zhuzw]# vgreduce Mylab /dev/sdb1 #將/dev/sdb1從Mylan卷組內刪除 Removed "/dev/sdb1" from volume group "Mylab" [root@zhuzw-centos6 zhuzw]# pvs #查看PV簡要信息 PV VG Fmt Attr PSize PFree /dev/sda2 vg_zhuzwcentos6 lvm2 a-- 29.51g 0 /dev/sdb1 lvm2 a-- 120.00g 120.00g #確保/dev/sdb1的vg項為空 /dev/sdc1 Mylab lvm2 a-- 79.99g 78.43g [root@zhuzw-centos6 ~]# pvremove /dev/sdb1 #這是刪除PV的命令 Labels on physical volume "/dev/sdb1" successfully wiped #刪除PV的輸出 [root@zhuzw-centos6 ~]# pvcreate /dev/sdb1 #我們是要用這個PV的,再把它創建成PV [root@zhuzw-centos6 zhuzw]# vgextend vg_zhuzwcentos6 /dev/sdb1 #將/dev/sdb1加入到根分區所在的卷組內 Volume group "vg_zhuzwcentos6" successfully extended [root@zhuzw-centos6 zhuzw]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_zhuzwcentos6 lvm2 a-- 29.51g 0 /dev/sdb1 vg_zhuzwcentos6 lvm2 a-- 120.00g 120.00g /dev/sdc1 Mylab lvm2 a-- 79.99g 78.43g [root@zhuzw-centos6 tmp]# lvextend -L +30G /dev/vg_zhuzwcentos6/lv_root #調整根所在LV大小,增加30G空間 Extending logical volume lv_root to 57.57 GiB Logical volume lv_root successfully resized [root@zhuzw-centos6 mapper]# resize2fs /dev/vg_zhuzwcentos6/lv_root #在線擴容文件系統大小,掛載的情況下只吃菜擴容,卸載后支持擴容與縮減 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg_zhuzwcentos6/lv_root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 4 Performing an on-line resize of /dev/dm-0 to 15091712 (4k) blocks. The filesystem on /dev/dm-0 is now 15091712 blocks long. [root@zhuzw-centos6 mapper]# df -h #查看文件系統空閑空間情況 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 57G 3.3G 51G 6% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot
四、離線縮減空間
步驟卸載掛載–強制修復文件系統–縮減文件系統空間–縮減LV空間–重新掛載。
[root@zhuzw-centos6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 57G 3.3G 51G 6% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_zhuzwcentos6-labdata 44G 77M 41G 1% /data #目標將/data空間刪減為20G [root@zhuzw-centos6 ~]# umount /data #卸載/data的掛載 [root@zhuzw-centos6 ~]# resize2fs /dev/dm-3 20G #縮減文件系統 resize2fs 1.41.12 (17-May-2010) 請先運行 'e2fsck -f /dev/dm-3'. #提示請先強制修復文件系統,看來縮減文件系統時必須對文件系統進行修復 [root@zhuzw-centos6 ~]# e2fsck -f /dev/dm-3 #強制修復文件系統 e2fsck 1.41.12 (17-May-2010) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄連接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/dm-3: 11/2816000 files (0.0% non-contiguous), 196357/11509760 blocks [root@zhuzw-centos6 ~]# resize2fs /dev/dm-3 20G #修復完成后再次縮減文件系統 resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/dm-3 to 5242880 (4k) blocks. The filesystem on /dev/dm-3 is now 5242880 blocks long. #縮減文件系統完成 [root@zhuzw-centos6 ~]# lvreduce -L 20G /dev/vg_zhuzwcentos6/labdata #縮減LV分區空間 WARNING: Reducing active logical volume to 20.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce labdata? [y/n]: y Reducing logical volume labdata to 20.00 GiB Logical volume labdata successfully resized #縮減完成 [root@zhuzw-centos6 ~]# mount /dev/dm-3 /data #重新掛載 [root@zhuzw-centos6 ~]# df -h #查看文件系統空間 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 57G 3.3G 51G 6% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_zhuzwcentos6-labdata 20G 75M 19G 1% /data #縮減成功
最后數據無價操作需謹慎啊。
原創文章,作者:東郭先生,如若轉載,請注明出處:http://www.www58058.com/4452