歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> LVM 邏輯卷的擴容/縮容

LVM 邏輯卷的擴容/縮容

日期:2017/2/28 14:43:00   编辑:Linux教程

LVM 邏輯卷的擴容/縮容

[1] 創建邏輯卷
[root@hyperStor ~]# vgs //查看當前卷組
VG #PV #LV #SN Attr VSize VFree
vg0 2 2 0 wz--n- 698.38g 98.29g
[root@hyperStor ~]# lvcreate -L 2GB -n lv1 vg0 //在卷組vg0上建立2GB的邏輯卷lv1
Logical volume "lv1"created
[root@hyperStor ~]# lvs |grep lv1
lv1 vg0 -wi-a- 2.00g
[root@hyperStor ~]# mkfs.ext4 /dev/vg0/lv1 > /dev/null 2>& 1 //格式化lv1
[root@hyperStor ~]# mkdir /lv1
[root@hyperStor ~]# mount /dev/vg0/lv1 /lv1 //掛載lv1到/lv1目錄下
[root@hyperStor ~]# df -H |grep lv1 //查看掛載狀態
/dev/mapper/vg0-lv12.2G 71M 2.0G 4% /lv1
[root@hyperStor ~]# mount |grep lv1
/dev/mapper/vg0-lv1on /lv1typeext4 (rw)
[root@hyperStor ~]# dd if=/dev/zero of=/lv1/test1 bs=100M count=5 //想/lv1中寫入500M數據
5+0 records in
5+0 records out
524288000 bytes (524 MB) copied, 1.92862 s, 272 MB/s
[root@hyperStor ~]# du -sh /lv1/* //查看文件狀態
16K/lv1/lost+found
500M/lv1/test1

[2] lvextend命令擴容lv1到3GB
//將lv1擴到3GB,如果是從2GB到5GB,則為lvextend -L +3GB
[root@hyperStor ~]# lvextend -L 3GB -n /dev/vg0/lv1
Extending logical volume lv1 to 3.00 GiB
Logical volume lv1 successfully resized
[root@hyperStor ~]# lvs |grep lv1 //查看當前邏輯卷大小,已經為3GB
lv1 vg0 -wi-ao 3.00g
[root@hyperStor ~]# df -H |grep lv1 //查看文件系統狀態,發現文件系統仍沒有擴容
/dev/mapper/vg0-lv1 2.2G 595M 1.5G 30% /lv1
[root@hyperStor ~]# resize2fs /dev/vg0/lv1 //調整文件系統大小
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg0/lv1 is mounted on /lv1; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg0/lv1 to 786432 (4k) blocks.
The filesystem on /dev/vg0/lv1 is now 786432 blocks long.
[root@hyperStor ~]# df -H |grep lv1 //重新查看文件系統大小,成功在線擴容到3GB
/dev/mapper/vg0-lv1 3.2G 595M 2.5G 20% /lv1
[root@hyperStor ~]# lvs |grep lv1
lv1 vg0 -wi-ao 3.00g
[root@hyperStor ~]# du -sh /lv1/* //查看數據是否完整
16K/lv1/lost+found
501M/lv1/test1

[3] lvreduce 縮容,不可“在線”操作 lv1:3GB-->1GB
[root@hyperStor ~]# umount /lv1/ //卸載文件系統
[root@hyperStor ~]# mount |grep lv1|wc -l //查看是否成功卸載
0
[root@hyperStor ~]# lvs |grep lv1 //查看當前lv1 狀態
lv1 vg0 -wi-a- 3.00g
[root@hyperStor ~]# e2fsck -f /dev/vg0/lv1 //進行磁盤檢查
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/vg0/lv1: 12/196608 files (0.0% non-contiguous), 157501/786432 blocks
[root@hyperStor ~]# resize2fs /dev/vg0/lv1 1G //調整文件系統
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/lv1 to 262144 (4k) blocks.
The filesystem on /dev/vg0/lv1 is now 262144 blocks long.
[root@hyperStor ~]# lvs |grep lv1 //查看lv1 大小,未變
lv1 vg0 -wi-a- 3.00g
[root@hyperStor ~]# lvreduce -L 1GB /dev/vg0/lv1 //通過lvduce命令進行縮容
WARNING: Reducing active logical volume to 1.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv1? [y/n]: y
Reducing logical volume lv1 to 1.00 GiB
Logical volume lv1 successfully resized
[root@hyperStor ~]# lvs |grep lv1 //再次查看lv1大小,減少
lv1 vg0 -wi-a- 1.00g
[root@hyperStor ~]# mount /dev/vg0/lv1 /lv1/ //重新掛載
[root@hyperStor ~]# df -H |grep lv1 //查看當前狀態
/dev/mapper/vg0-lv1 1.1G 595M 410M 60% /lv1
[root@hyperStor ~]# du -sh /lv1/* //查看數據情況
16K/lv1/lost+found
501M/lv1/test1

注意:在進行擴容,縮容之後進行原有文件完整性校驗的時候最好通過比較文件的md5值是否保持不變以判斷操作對原有文件沒有造成影響
如:
【1】擴容:兩次/lv1/test1 的md5值均為d8b61b2c0025919d5321461045c8226f
[root@hyperStor ~]# md5sum /lv1/test1
d8b61b2c0025919d5321461045c8226f /lv1/test1
[root@hyperStor ~]# lvextend -L 2GB /dev/vg0/lv1
Extending logical volume lv1 to 2.00 GiB
Logical volume lv1 successfully resized
r[root@hyperStor ~]# resize2fs /dev/vg0/lv1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg0/lv1 is mounted on /lv1; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg0/lv1 to 524288 (4k) blocks.
The filesystem on /dev/vg0/lv1 is now 524288 blocks long.
[root@hyperStor ~]# df -H |grep lv1
/dev/mapper/vg0-lv1 2.2G 595M 1.5G 30% /lv1
[root@hyperStor ~]# md5sum /lv1/test1
d8b61b2c0025919d5321461045c8226f /lv1/test1

【2】縮容
[root@hyperStor ~]# md5sum /lv1/test1
d8b61b2c0025919d5321461045c8226f /lv1/test1
[root@hyperStor ~]# umount /lv1/
[root@hyperStor ~]# e2fsck -f /dev/vg0/lv1
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/vg0/lv1: 12/131072 files (0.0% non-contiguous), 153389/524288 blocks
[root@hyperStor ~]# resize2fs /dev/vg0/lv1 800M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/lv1 to 204800 (4k) blocks.
The filesystem on /dev/vg0/lv1 is now 204800 blocks long.
[root@hyperStor ~]# lvreduce -L 800M /dev/vg0/lv1
WARNING: Reducing active logical volume to 800.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv1? [y/n]: y
Reducing logical volume lv1 to 800.00 MiB
Logical volume lv1 successfully resized
[root@hyperStor ~]# mount /dev/vg0/lv1 /lv1
[root@hyperStor ~]# md5sum /lv1/test1
d8b61b2c0025919d5321461045c8226f /lv1/test1

拓展:LVM 卷組“擴容/縮容”
上面說了如果對LVM 邏輯卷進行擴容以及縮容,這邊說下如何對卷組進行所謂的擴容跟縮容,大家都知道卷組由物理卷組成,物理卷是卷組的最小組成單位,那麼卷組的擴容跟縮容無非就是物理卷加入卷組以及移除卷組的過程。
vgextend vg0 new_pv //將新的pv設備加入vg0
vgreduce vg0 old_pv //將pv從vg0中刪除,注意:是vgreduce 不是vgremove

Copyright © Linux教程網 All Rights Reserved