linux--lvm2學習


內核模塊dm可以實現以下功能

快照:保留數據當時狀態,提供數據另外訪問路徑。如果訪問快照里面的數據沒改變,那么會使用原來路徑,如果發生改變則訪問快照數據。可以用來進行備份。

多路徑:每條路徑,操作系統會認為是一個實際存在的物理盤,但實際上只是通向同一個物理盤的不同路徑而已

LVM2:

  物理卷(PV):

  物理盤區(PE):邏輯存儲單位

  邏輯卷組(VG):為LV提供統一接口容器。鏡像功能:在不同物理卷中都存放一份相同數據

  邏輯卷(LV):動態擴展縮減的文件系統

  邏輯分區(LE):指定多個PE為一個LE

  快照卷:為邏輯卷預留空間創建快照

 

LVM操作:

pv:pvcreate,pvremove,pvscan,pvdisplay,pvmove

vg:vgcreate,vgremove,vgextend,vgreduce,vgs,vgscan

lv:lvcreate,lvremove,lvextend,lvreduce,lvresize,lvs,lvdisplay

 

[root@localhost ~]# pvcreate /dev/sdd{1,2}
Physical volume "/dev/sdd1" successfully created.
Physical volume "/dev/sdd2" successfully created.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 lvm2 --- 1.41g 1.41g
/dev/sdd2 lvm2 --- 599.00m 599.00m

詳細信息查看pvdisplay 

[root@localhost ~]# pvscan
PV /dev/sda2 VG rhel lvm2 [<93.82 GiB / 4.00 MiB free]
PV /dev/sde2 lvm2 [699.00 MiB]
PV /dev/sdf1 lvm2 [600.00 MiB]
PV /dev/sdd2 lvm2 [599.00 MiB]
PV /dev/sdf2 lvm2 [1.41 GiB]
PV /dev/sde1 lvm2 [<1.32 GiB]
PV /dev/sdd1 lvm2 [1.41 GiB]
Total: 7 [99.81 GiB] / in use: 1 [<93.82 GiB] / in no VG: 6 [<6.00 GiB]

 

 

 vg操作:

vgcreate  vgname   path_to_pv  -s指定pe大小默認4M

[root@localhost ~]# vgs                                                                       -------------------查看vg
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <93.82g 4.00m
[root@localhost ~]# vgcreate yellow /dev/sd{d,e,f}{1,2}                      -------------------創建vg
Volume group "yellow" successfully created
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 6 0 0 wz--n- <5.98g <5.98g
[root@localhost ~]# vgdisplay yellow
--- Volume group ---
VG Name yellow
System ID 
Format lvm2
Metadata Areas 6
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 6
Act PV 6
VG Size <5.98 GiB
PE Size 4.00 MiB
Total PE 1530
Alloc PE / Size 0 / 0 
Free PE / Size 1530 / <5.98 GiB
VG UUID u5fZZK-BWLN-RtSt-kvL9-cyfr-oJUW-F0e52L

[root@localhost ~]# vgremove yellow                         --------------刪除vg
Volume group "yellow" successfully removed

  

從vg中刪除pv:

[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 yellow lvm2 a-- 1.41g 1.41g
/dev/sdd2 yellow lvm2 a-- 596.00m 596.00m
/dev/sde1 yellow lvm2 a-- 1.31g 1.31g
/dev/sde2 yellow lvm2 a-- 696.00m 696.00m
/dev/sdf1 yellow lvm2 a-- 596.00m 596.00m
/dev/sdf2 yellow lvm2 a-- 1.41g 1.41g
[root@localhost ~]# pvmove /dev/sdf2                                 -----------------先把pv數據移動到其他vg
No data to move for yellow.
[root@localhost ~]# vgreduce yellow /dev/sdf2                    -----------------從vg中刪除vg
Removed "/dev/sdf2" from volume group "yellow"
[root@localhost ~]# vgs                            
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 5 0 0 wz--n- <4.57g <4.57g
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 yellow lvm2 a-- 1.41g 1.41g
/dev/sdd2 yellow lvm2 a-- 596.00m 596.00m
/dev/sde1 yellow lvm2 a-- 1.31g 1.31g
/dev/sde2 yellow lvm2 a-- 696.00m 696.00m
/dev/sdf1 yellow lvm2 a-- 596.00m 596.00m
/dev/sdf2 lvm2 --- 1.41g 1.41g
[root@localhost ~]# pvremove /dev/sdf2                             --------------------刪除pv
Labels on physical volume "/dev/sdf2" successfully wiped.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree 
/dev/sda2 rhel lvm2 a-- <93.82g 4.00m
/dev/sdd1 yellow lvm2 a-- 1.41g 1.41g
/dev/sdd2 yellow lvm2 a-- 596.00m 596.00m
/dev/sde1 yellow lvm2 a-- 1.31g 1.31g
/dev/sde2 yellow lvm2 a-- 696.00m 696.00m
/dev/sdf1 yellow lvm2 a-- 596.00m 596.00m

 加入一個vg

[root@localhost ~]# pvcreate /dev/sdf2
Physical volume "/dev/sdf2" successfully created.
[root@localhost ~]# vgextend yellow /dev/sdf2
Volume group "yellow" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 6 0 0 wz--n- <5.98g <5.98g

 

 lv操作:

創建lv:

lvcreate -n  lv_name  -L (大小KMG)[-l  多少個盤區]  vg_name

[root@localhost ~]# lvcreate -L 80M -n testlv yellow 
Logical volume "testlv" created.

 

[root@localhost ~]# lvdisplay /dev/yellow/testlv 
--- Logical volume ---
LV Path /dev/yellow/testlv
LV Name testlv
VG Name yellow
LV UUID 1zCsL4-YEZt-Nh1P-RTAw-dH7R-LG7B-1cVx5D
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-05-30 23:47:15 +0800
LV Status available
# open 0
LV Size 80.00 MiB
Current LE 20
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2

 

[root@localhost ~]# mkfs.ext4 -j /dev/yellow/testlv   -------------創建文件系統
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=1024 (log=0)
分塊大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
20480 inodes, 81920 blocks
4096 blocks (5.00%) reserved for the super user
第一個數據塊=1
Maximum filesystem blocks=33685504
10 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成 
正在寫入inode表: 完成 
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@localhost ~]# mount /dev/yellow/testlv /mnt/             --------掛在到相關目錄

 

 

邏輯卷移除:

移除前確認掛載點已經umount

[root@localhost ~]# lvremove /dev/mapper/yellow-testlv 
Logical volume yellow/testlv contains a filesystem in use.
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvremove /dev/mapper/yellow-testlv 
Do you really want to remove active logical volume yellow/testlv? [y/n]: y
Logical volume "testlv" successfully removed

 

 

 

擴展邏輯卷:

lvextend -L [+]#(加號表示擴展多少,#表示擴展到多少)

[root@localhost mapper]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/rhel-root 90G 33G 58G 37% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 9.4M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 287M 28K 287M 1% /run/user/0
/dev/mapper/yellow-qq 477M 2.3M 445M 1% /uuu
[root@localhost mapper]# vgs                                           ---------------------擴展前查看vg free有足夠大小
VG #PV #LV #SN Attr VSize VFree 
rhel 1 2 0 wz--n- <93.82g 4.00m
yellow 6 1 0 wz--n- <5.98g <5.49g
[root@localhost mapper]# lvextend -L 2G /dev/yellow/qq 
Size of logical volume yellow/qq changed from 500.00 MiB (125 extents) to 2.00 GiB (512 extents).
Logical volume yellow/qq successfully resized.
[root@localhost mapper]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/rhel-root 90G 33G 58G 37% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 9.4M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 287M 28K 287M 1% /run/user/0
/dev/mapper/yellow-qq 477M 2.3M 445M 1% /uuu

 

 

縮減邏輯卷:

1、不能在線縮減,得先卸載。

2、確保縮減后大小能承載原有數據

3、縮減之前強行檢查文件,確保文件系統處於一致性檢查

[root@localhost mapper]# umount /uuu

[root@localhost mapper]# e2fsck -f /dev/mapper/yellow-qq 
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/mapper/yellow-qq: 11/128016 files (0.0% non-contiguous), 26684/512000 blocks

[root@localhost mapper]# lvreduce -L 1G /dev/yellow/qq
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce yellow/qq? [y/n]: y
Size of logical volume yellow/qq changed from 2.00 GiB (512 extents) to 1.00 GiB (256 extents).
Logical volume yellow/qq successfully resized.

[root@localhost mapper]# mount /dev/yellow/qq /uuu
[root@localhost mapper]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/rhel-root 90G 33G 58G 37% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 9.4M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 287M 28K 287M 1% /run/user/0
/dev/mapper/yellow-qq 477M 2.3M 445M 1% /uuu

 

 

快照卷:


1、生命周期內數據增長量不能超過快照卷大小(可以指定lv中數據量大小)

2、快照卷是只讀的

3、跟原卷在同一個卷組

lvcreate  -L(大小)   -s(快照卷) -p r|w   lv_name 

[root@localhost mapper]# lvcreate -L 10M -n testlv_snap -s /dev/yellow/qq -p r
Rounding up size to full physical extent 12.00 MiB
Logical volume "testlv_snap" created.

 

鏡像卷:

[root@localhost mapper]# lvcreate -L 1G -m1 -n bbq yellow /dev/sdf1 /dev/sdf2 /dev/sde1
Logical volume "bbq" created.
[root@localhost mapper]# lvs -a -o +devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
root rhel -wi-ao---- 90.00g /dev/sda2(976)
swap rhel -wi-ao---- 3.81g /dev/sda2(0)
bbq yellow rwi-a-r--- 1.00g 100.00 bbq_rimage_0(0),bbq_rimage_1(0)
[bbq_rimage_0] yellow iwi-aor--- 1.00g /dev/sdf2(1)
[bbq_rimage_1] yellow iwi-aor--- 1.00g /dev/sde1(1)
[bbq_rmeta_0] yellow ewi-aor--- 4.00m /dev/sdf2(0)
[bbq_rmeta_1] yellow ewi-aor--- 4.00m /dev/sde1(0)
qq yellow owi-aos--- 1.00g /dev/sdd1(0)
testlv_snap yellow sri-aos--- 12.00m qq 0.10 /dev/sdd1(256)

[root@localhost mapper]# lvdisplay /dev/yellow/bbq
--- Logical volume ---
LV Path /dev/yellow/bbq
LV Name bbq
VG Name yellow
LV UUID mVwhvG-djHj-0jdM-6MlR-T4iG-0vNx-PHz8s4
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-05-31 01:25:13 +0800
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:10

[root@localhost ~]# lvextend bbq /dev/sde1

[root@localhost ~]# lvconvert -m1 /dev/yellow/bbq /dev/sde1 /dev/sdf1 /dev/sdf2

 

 

參考:

https://blog.csdn.net/cybertan/article/details/7623356

https://blog.csdn.net/yanggd1987/article/details/48676347


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM