LVM全稱爲邏輯卷管理,是目前紅帽主推的一種磁盤管理機制,普通的磁盤分區管理方式在邏輯分區劃分好之後就無法再改變其大小,而LVM則可以解決這個問題,它主要通過將塊設備(磁盤分區)設置爲PV(物理卷),再將一個或多個PV組建成一個VG(邏輯卷組),再從VG中創建LV(邏輯卷),而VG中的PV數量可以增減,同樣LV的大小也可以根據需求來增減。
在centos6中的示例:
1、創建一個大小爲10G的邏輯卷並掛載使用。
(1)創建一個大小爲20G的磁盤分區,並將此磁盤分區類型ID設置爲8e(Linux LVM)。
[root@localhost ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6527, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +20G
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
(2)將/dev/sdb1設置爲PV。
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
(3)創建一個VG,並使/dev/sdb1成爲其成員。
[root@localhost ~]# vgcreate myvg /dev/sdb1
Volume group "myvg" successfully created
*可使用-s 選項指定PE大小,創建後如果再要修改則只能重新創建VG;如果LVM版本號爲1,則默認4M的PE將導致LV最大隻能到256G,LVM2則沒有這個限制。
(4)在myvg中創建一個大小爲10G的LV。
[root@localhost ~]# lvcreate -L 10G -n lvtest myvg
Logical volume "lvtest" created.
(5)格式化並掛載此LV。
[root@localhost ~]# mkfs.ext4 /dev/myvg/lvtest
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/myvg/lvtest /test
2、擴展LV的大小至30G。
(1)擴展VG的大小
[root@localhost ~]# vgextend myvg /dev/sdb2
Volume group "myvg" successfully extended
(2)擴展LV的大小
[root@localhost ~]# lvextend -L +20 /dev/myvg/lvtest
Size of logical volume myvg/lvtest changed from 10.00 GiB (2560 extents) to 10.02 GiB (2565 extents).
Logical volume lvtest successfully resized
(3)擴展此LV文件系統的大小
[root@localhost ~]# resize2fs /dev/myvg/lvtest
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/lvtest is mounted on /test; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/lvtest to 2626560 (4k) blocks.
The filesystem on /dev/myvg/lvtest is now 2626560 blocks long.
3、縮減此LV的大小至5G
(1)卸載此LV
[root@localhost ~]# umount /dev/myvg/lvtest
(2)強制檢測此LV
[root@localhost ~]# fsck.ext4 -f /dev/myvg/lvtest
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/myvg/lvtest: 11/663552 files (0.0% non-contiguous), 80177/2626560 blocks
(3)縮減此LV中文件系統大小至5G
[root@localhost ~]# resize2fs /dev/myvg/lvtest 5G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/lvtest to 1310720 (4k) blocks.
The filesystem on /dev/myvg/lvtest is now 1310720 blocks long.
(4)縮減此LV的大小至5G
[root@localhost ~]# lvreduce -L 5G /dev/myvg/lvtest
WARNING: Reducing active logical volume to 5.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvtest? [y/n]: y
Size of logical volume myvg/lvtest changed from 10.02 GiB (2565 extents) to 5.00 GiB (1280 extents).
Logical volume lvtest successfully resized
(5)重新掛載此LV
[root@localhost ~]# mount /dev/myvg/lvtest /test
(6)查看此LV的目前的大小
[root@localhost ~]# lvdisplay /dev/myvg/lvtest
--- Logical volume ---
LV Path /dev/myvg/lvtest
LV Name lvtest
VG Name myvg
LV UUID ovpqxD-lLjJ-lNAk-Ga5a-AV2y-gaVS-h8PpyQ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-01-08 10:26:40 +0800
LV Status available
# open 1
LV Size 5.00 GiB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
*縮減LV後的空間大小不能小於文件系統已使用的空間大小