邏輯卷管理器(LVM)
允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小
允許在多個物理設備間重新組織文件系統
將設備指定為物理卷
用一個或者多個物理卷來創建一個卷組
物理卷是用固定大小的物理區域(Physical Extent,PE )來定義的
在物理卷上創建的邏輯卷是由物理區域(PE )組成
可以在邏輯卷上創建文件系統
LVM: Logical Volume Manager,Version:2
dm: device mapper:將一個或多個底層塊設備組織成一個邏輯設備的模塊
設備名:/dev/dm-#
軟鏈接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
LVM可以彈性的更改LVM的容量
通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量
pv管理工具:
pvs:簡要pv信息顯示
pvdisplay:顯示pv的詳細信息
pvcreate /dev/DEVICE:創建pv或增加pv磁盤
pvmove /dev/DEVICE:把某塊磁盤中使用的PE數據塊,搬到其他磁盤中去
pvremove /dev/DEVICE…:將磁盤pv屬性移除,不具有pv屬性
vg管理工具:
vgs:簡要vg信息顯示
vgdisplay:顯示vg的詳細信息
vgcreate [-s #[kKmMgG]] VolumeGroupName /dev/DEVICE….:創建vg
-s:指定LVM中塊(PE)的大小
vgextend VGName /dev/DEVICE….:擴展vg
vgreduce VGName /dev/DEVICE….:從vg中移除某塊磁盤設備
注意:vgreduce移除磁盤空間需要先移動該磁盤空間中被使用的PE塊,使用pvmove命令
vgremove VGName:將磁盤vg屬性移除,不具有vg屬性
lv管理工具:
lvs:簡要lv信息顯示
lvdisplay:顯示lv的詳細信息
lvcreate -L #[mMgGtT] -n LVName VGName :創建lv
-L:指定lv空間的大小
-n:指定lv的名字,在磁盤上表示為/dev/VGName/LVName
lvextend -L [+]#[mMgGtT] /dev/DEVICE….:擴展vg
+表示在當前系統的基礎上增加#的空間
不寫+表示把當前系統擴展成#的空間
lvreduce -L [-]#[mMgGtT] /dev/VGName/LVName:縮減lv磁盤空間
-表示在當前系統的基礎上減少#的空間
不寫-表示把當前系統縮減成#的空間
注意:要縮減lv的磁盤空間,要先縮減文件系統的空間
lvremove LVName:將磁盤vg屬性移除,不具有vg屬性
重設文件系統大?。?/span>
resize2fs device
當前lv有多大,擴展到多大
resize2fs device #[mMgGtT]
當前文件系統改變成#的空間大小
擴展邏輯卷:
# lvextend -L [+]#[mMgGtT] /dev/VGName/LVName
# resizefs /dev/VGName/LVName
擴展邏輯卷需要先擴展lv的空間,在擴展文件系統大小,可以在線擴展
百分百使用vg空間:
# lvextend -r -l +100%FREE /dev/VGName/LVName
縮減邏輯卷:
# umount /dev/VGName/LVName
# e2fsck -f /dev/VGName/LVName
# resizefs /dev/VGName/LVName #[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VGName/LVName
# mount /dev/VGName/LVName
注意:縮減有可能導致文件數據丟失,且原文件已經占用20G空間,則縮減不能低于20G
文件系統階段:
要想真正使用lvm,必須對新建立的lv進行格式化掛載
# mke2fs -t ext4 /dev/VAName/LVName
# mount /dev/VAName/LVName /DIR
邏輯卷管理器快照:
快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝
對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇
快照只有在它們和原來的邏輯卷不同時才會消耗空間
在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間
當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中
快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據
建立快照的卷大小只需要原始邏輯卷的15% ~20%就夠了,也可以使用lvextend放大快照
為現有邏輯卷創建快照:
注意:快照卷和原卷是在同一目錄下
# lvcreate -L #[mMgGtT] -s -n snap-data -p r /dev/VGName/snap-data
-L:大小
-n:快照卷
-s:原卷
-p:快照卷數據(-r 只讀)
掛載快照:
# mkdir -p /mnt/snap
# mount -o ro /dev/VGName/snap-data /mnt/snap
刪除快照:
# umount /mnt/databackup
# lvremove /dev/VGName/snap-data
移除快照要使用設備名
作業:1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG ;要求PE大小為16MB,而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
[root@CentOS6 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom /media/CentOS_6.8_Final sda 8:0 0 100G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 97.8G 0 part / └─sda3 8:3 0 2G 0 part [SWAP] sdb 8:16 0 10G 0 disk sdc 8:32 0 10G 0 disk sdd 8:48 0 10G 0 disk [root@CentOS6 ~]# pvs [root@CentOS6 ~]# pvcreate /dev/sd{b,c} Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created [root@CentOS6 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 ---- 10.00g 10.00g /dev/sdc lvm2 ---- 10.00g 10.00g [root@CentOS6 ~]# vgcreate -s 16MB testvg /dev/sd{b,c} Volume group "testvg" successfully created [root@CentOS6 ~]# vgs VG #PV #LV #SN Attr VSize VFree testvg 2 0 0 wz--n- 19.97g 19.97g [root@CentOS6 ~]# vgdisplay --- Volume group --- VG Name testvg ...... VG Size 19.97 GiB PE Size 16.00 MiB ...... Free PE / Size 1278 / 19.97 GiB VG UUID pqeXTx-cqR6-MVCv-JhFK-V14f-U2kn-3i3y7y [root@CentOS6 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb testvg lvm2 a--u 9.98g 9.98g /dev/sdc testvg lvm2 a--u 9.98g 9.98g [root@CentOS6 ~]# lvcreate -L 5G -n testlv testvg Logical volume "testlv" created. [root@CentOS6 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert testlv testvg -wi-a----- 5.00g [root@CentOS6 ~]# mkfs.ext4 /dev/testvg/testlv .... [root@CentOS6 ~]# mkdir /users [root@CentOS6 ~]# mount /dev/testvg/testlv /users [root@CentOS6 ~]# cd /users [root@CentOS6 users]# ls lost+found [root@CentOS6 users]# cp /etc/fstab /etc/issue /etc/rc.d -r ./ [root@CentOS6 users]# ls fstab issue lost+found rc.d
2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su 切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
[root@CentOS6 users]# useradd -d /users/archlinux archlinux [root@CentOS6 users]# su - archlinux [archlinux@CentOS6 ~]$ pwd /users/archlinux [archlinux@CentOS6 ~]$ cp /etc/pam.d -r ./ [archlinux@CentOS6 ~]$ ls pam.d [archlinux@CentOS6 ~]$ ls ../ archlinux fstab issue lost+found rc.d
3、擴展testlv至7G
[root@CentOS6 users]# lvextend -L 7G /dev/testvg/testlv Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents). Logical volume testlv successfully resized. [root@CentOS6 users]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 97G 3.1G 89G 4% / tmpfs 491M 224K 491M 1% /dev/shm /dev/sda1 283M 34M 234M 13% /boot /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final /dev/mapper/testvg-testlv 4.8G 11M 4.6G 1% /users [root@CentOS6 users]# resize2fs /dev/testvg/testlv resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/testvg/testlv is mounted on /users; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/testvg/testlv to 1835008 (4k) blocks. The filesystem on /dev/testvg/testlv is now 1835008 blocks long. [root@CentOS6 users]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 97G 3.1G 89G 4% / tmpfs 491M 224K 491M 1% /dev/shm /dev/sda1 283M 34M 234M 13% /boot /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final /dev/mapper/testvg-testlv 6.8G 12M 6.5G 1% /users
4、收縮testlv至3G
[root@CentOS6 ~]# umount /users [root@CentOS6 ~]# e2fsck -f /dev/testvg/testlv e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/testvg/testlv: 533/458752 files (0.0% non-contiguous), 64627/1835008 blocks [root@CentOS6 ~]# resize2fs /dev/testvg/testlv 3G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks. The filesystem on /dev/testvg/testlv is now 786432 blocks long. [root@CentOS6 ~]# lvreduce -L -4G /dev/testvg/testlv WARNING: Reducing active logical volume to 3.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce testvg/testlv? [y/n]: y Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents). Logical volume testlv successfully resized. [root@CentOS6 ~]# mount /dev/testvg/testlv /users [root@CentOS6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 97G 3.1G 89G 4% / tmpfs 491M 224K 491M 1% /dev/shm /dev/sda1 283M 34M 234M 13% /boot /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final /dev/mapper/testvg-testlv 2.9G 8.3M 2.7G 1% /users [root@CentOS6 ~]# ls /users/ archlinux fstab issue lost+found rc.d [root@CentOS6 ~]# ls /users/archlinux/ pam.d
5 、對testlv 創建快照,并嘗試基于快照備份數據,驗正快照的功能
[root@CentOS6 ~]# cd /users [root@CentOS6 users]# lvcreate -L 500M -s -n snap_lv -p r /dev/testvg/testlv //創建快照卷 Rounding up size to full physical extent 512.00 MiB Logical volume "snap_lv" created. [root@CentOS6 users]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert snap_lv testvg sri-a-s--- 512.00m testlv 0.00 testlv testvg owi-aos--- 3.00g [root@CentOS6 users]# mount /dev/testvg/snap_lv /mnt //快照卷和原卷在同一磁盤中,掛載快照卷到/mnt目錄下 mount: block device /dev/mapper/testvg-snap_lv is write-protected, mounting read-only [root@CentOS6 users]# pwd /users [root@CentOS6 users]# ls archlinux fstab issue lost+found rc.d [root@CentOS6 users]# ls /mnt archlinux fstab issue lost+found rc.d [root@CentOS6 users]# echo xxx > /users/issue //以下為驗證快照卷功能 [root@CentOS6 users]# cat /users/issue xxx [root@CentOS6 users]# cat /mnt/issue CentOS release 6.8 (Final) Kernel \r on an \m [root@CentOS6 users]# rm /users/fstab rm: remove regular file `/users/fstab'? y [root@CentOS6 users]# ls archlinux issue lost+found rc.d [root@CentOS6 users]# ls /mnt/ archlinux fstab issue lost+found rc.d
原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/41122