邏輯卷管理器(LVM)
允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小
允許在多個物理設備間重新組織文件系統
? 將設備指定為物理卷
? 用一個或者多個物理卷來創建一個卷組
? 物理卷是用固定大小的物理區域(Physical Extent,PE )來定義的
? 在物理卷上創建的邏輯卷是由物理區域(PE )組成
? 可以在邏輯卷上創建文件系統
LVM介紹
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更改文件系統容量
LVM 可以彈性的更改LVM的容量
通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量
pv管理工具
顯示pv 信息
pvs :簡要pv 信息顯示
pvdisplay
創建pv
pvcreate /dev/DEVICE
這個表示已經創建過了
用pvdisplay命令查看下其詳細信息
vg 管理工具
顯示卷組
vgs
vgdisplay
創建卷組
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
創建卷組 指定vg0為卷組名字 添加/dev/sda6進卷組,然后pvdisplay命令查看下 成功
管理卷組
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
刪除卷組
先做pvmove ,再做vgremove
lv 管理工具
顯示邏輯卷
lvs
Lvdisplay
創建邏輯卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
刪除邏輯卷
lvremove /dev/VG_NAME/LV_NAME
重設文件系統大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
創建邏輯卷 查看其詳細信息
然后mkfs格式化一下 vi /etc/fstab寫入配置文件 mkdir /mnt/lv0創建文件夾 mount -a掛載 然后就可以正常使用了
擴展和縮減邏輯卷
擴展邏輯卷: 前提是卷組必須有空間
# lvextend -L [+]#[mMgGtT]
/dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
如果沒空間了 可以加硬盤 比如:pvcreate /dev/sdc vgextend vg0 /dev/sdc 就可以加進去了
縮減邏輯卷:
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
#[mMgGtT]
# lvreduce -L [-]#[mMgGtT]
/dev/VG_NAME/LV_NAME
#mount
邏輯卷的一些相關命令:
創建邏輯卷
1、分區
fdisk /dev/sda
partx -a /dev/sda
lsblk
2、pvcreate /dev/sd{a7,b}
pvs
pvdisplay
3、vgcreate vg0 /dev/sd{a7,b}
vgs;pvs;pvdisplay;vgdisplay
4、lvcreate -n lv0 -L 10G vg0
5、mkfs.ext4 /dev/vg0/lv0
6、vi /etc/fstab
mkdir /mnt/lv0;mount -a
擴展lv
lvextend -L +10G /dev/vg0/lv0
resize2fs /dev/vg0/lv0
df -h
擴展卷組
1、pvcreate /dev/sdc
2、vgextend vg0 /dev/s
縮減邏輯卷
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
#[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount
創建邏輯卷實例
·創建物理卷
pvcreate /dev/sda3
·為卷組分配物理卷
vgcreate vg0 /dev/sda3
·從卷組創建邏輯卷
lvcreate -L 256M -n data vg0
mke2fs -j /dev/vg0/data
·掛載
mount /dev/vg0/data /mnt/data
邏輯卷管理器快照
·快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝
·對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇。
·快照只有在它們和原來的邏輯卷不同時才會消耗空間。
*在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間
*當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。
*快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據
*建立快照的卷大小只需要原始邏輯卷的15% ~20% 就夠了。也可以使用lvextend 放大快照。
邏輯卷的原理:
快照就是將當時的系統信息記錄下來,就好像照相一般,若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享
由于快照區與原本的LV公用很多PE的區塊,因此快照去與被快照的LV必須要在同一個VG上,系統恢復的時候的文件數量不能高于快照區的實際容量
使用lvm快照
為現有邏輯卷創建快照
#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data
掛載快照
#mkdir -p /mnt/snap #mount -o ro /dev/vg0/snap-data /mnt/snap
刪除快照
#umount /mnt/databackup #lvremove /dev/vg0/databackup
練習:
·創建一個至少有兩個PV 組成的大小為20G的名為testvg的VG ;要求PE 大小為16MB, 而后在卷組中創建大小為5G 的邏輯卷testlv ;掛載至/users 目錄
pvcreate /dev/sd{b,c,e}{1,2} vgcreate testvg -s 16M /dev/sd{b,c,e}{1,2} lvcreate -n testlv -L 5G testvg mkfs.ext4 /dev/testvg/testlv mkdir /users vim /etc/fstab mount -a
·新建用戶archlinux ,要求其家目錄為/users/archlinux,而后su切換至archlinux 用戶,復制/etc/pam.d目錄至自己的家目錄
useradd -d /users/archlinux archlinux su - archlinux cp -a /etc/pam.d/* . exit
·擴展testlv 至7G ,要求archlinux 用戶的文件不能丟失
·收縮testlv 至3G ,要求archlinux
lvextend -L 7G /dev/testvg/testlv resize2fs /dev/testvg/testlv umount /users e2fsck -f /dev/testvg/testlv lvreduce -L 3G /dev/testvg/testlv mount -a
·對testlv 創建快照,并嘗試基于快照備份數據,驗正快照的功能
lvcreate -s -L 500M -n testlvsnap -p r /dev/testvg/testlv mkdir /mnt/testlvsnap mount /dev/testvg/testlvsnap /mnt/testlvsnap/
原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/43878