LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
下面是创建LVM逻辑卷实验:
1.系统中新插入硬盘设备前查看系统中已有的设备
[root@localhost ~]# ls -l /dev/sd*
brw-r----- 1 root disk 8, 0 09-14 17:23 /dev/sda
brw-r----- 1 root disk 8, 1 09-14 17:23 /dev/sda1
brw-r----- 1 root disk 8, 2 09-14 17:23 /dev/sda2
brw-r----- 1 root disk 8, 3 09-14 17:23 /dev/sda3
2.插入3块硬盘设备后,再次查看系统中的设备(我这边添加的3块为sdc/sdd/sde)
[root@localhost ~]# ls -l /dev/sd*
brw-r----- 1 root disk 8, 0 09-14 17:23 /dev/sda
brw-r----- 1 root disk 8, 1 09-14 17:23 /dev/sda1
brw-r----- 1 root disk 8, 2 09-14 17:23 /dev/sda2
brw-r----- 1 root disk 8, 3 09-14 17:23 /dev/sda3
brw-r----- 1 root disk 8, 32 09-14 17:23/dev/sdc
brw-r----- 1 root disk 8, 48 09-14 17:23/dev/sdd
brw-r----- 1 root disk 8, 64 09-14 17:23/dev/sde
3.我们先用两块硬盘建立LVM,然后在LVM上写入文件后,再添加一块硬盘
1)先创建pv(创建物理卷)
[root@localhost ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
[root@localhost ~]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created
[root@localhost ~]# pvscan
PV/dev/sdc lvm2 [1.00GB]
PV/dev/sdd lvm2 [1.00 GB]
Total: 2 [2.00 GB] / in use: 0 [0 ] / in no VG: 2 [2.00 GB]
2)在pv上建立vg(创建卷组)
[root@localhost ~]# vgcreate vg1/dev/{sdc,sdd}
Volume group "vg1" successfully created
[root@localhost ~]# pvscan
PV/dev/sdc VG vg1 lvm2[1020.00 MB / 1020.00 MB free]
PV/dev/sdd VG vg1 lvm2 [1020.00 MB / 1020.00 MB free]
Total: 2 [1.99 GB] / in use: 2 [1.99 GB] / in no VG: 0 [0 ]
3)在vg上建立lv(创建逻辑卷)
[root@localhost ~]# lvcreate -L 1500M -nlv1 vg1 //-L 指定大小 -n 指定创建的名字(从卷组vg1中创建lv1,大小为1500M)
Logical volume "lv1" created
[root@localhost ~]# lvscan
ACTIVE '/dev/vg1/lv1'[1.46 GB] inherit
4)创建文件系统,格式为ext3
[root@localhost ~]# mkfs.ext3 /dev/vg1/lv1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
192000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the superuser
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments pergroup
16000 inodes per group
Superblock backups stored on blocks:
32768,98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystemaccounting information: done
This filesystem will be automaticallychecked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
5)挂载lv到/lvm
[root@localhost ~]# mkdir /lvm
[root@localhost ~]# mount /dev/vg1/lv1/lvm/
6)查看挂载设备(上面挂载时临时的,如果要让系统启动时就挂载,需要写入/etc/fstab)
[root@localhost ~]# df -h
文件系统 容量 已用可用已用% 挂载点
/dev/sda3 18G 3.3G 14G 20% /
/dev/sda1 190M 12M 169M 7% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/mapper/vg1-lv1 1.5G 35M 1.4G 3% /lvm
7)在逻辑卷中创建文件,查看磁盘发现现在挂载的逻辑卷空间已经不够用了,下面我们添加一块硬盘
[root@localhost ~]# yes > /lvm/test.txt
yes: 标准输出: 设备上没有空间
yes: 写入错误
[root@localhost ~]# df -h
文件系统 容量 已用可用已用% 挂载点
/dev/sda3 18G 3.3G 14G 20% /
/dev/sda1 190M 12M 169M 7% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/mapper/vg1-lv1 1.5G 1.5G 0 100% /lvm
4.添加第三块硬盘到逻辑卷中
1)创建pv
[root@localhost ~]# pvcreate /dev/sde
Physical volume "/dev/sde" successfully created
[root@localhost ~]# pvscan
PV/dev/sdc VG vg1 lvm2 [1020.00 MB / 0 free]
PV/dev/sdd VG vg1 lvm2 [1020.00 MB / 540.00 MB free]
PV/dev/sde lvm2 [1.00GB]
Total: 3 [2.99 GB] / in use: 2 [1.99 GB] / in no VG: 1 [1.00 GB]
2)将sde添加到vg1中
[root@localhost ~]# vgextend vg1 /dev/sde
Volume group "vg1" successfully extended
[root@localhost ~]# pvscan
PV/dev/sdc VG vg1 lvm2 [1020.00 MB / 0 free]
PV/dev/sdd VG vg1 lvm2 [1020.00 MB / 540.00 MB free]
PV/dev/sde VG vg1 lvm2 [1020.00 MB / 1020.00 MB free]
Total: 3 [2.99 GB] / in use: 3 [2.99 GB] / in no VG: 0 [0 ]
3)扩增lv容量
[root@localhost ~]# lvextend -L +1.2G/dev/vg1/lv1 //添加1.2G容量
Rounding up size to full physical extent 1.20 GB
Extending logical volume lv1 to 2.67 GB
Logical volume lv1 successfully resized
[root@localhost ~]# lvscan
ACTIVE '/dev/vg1/lv1'[2.67 GB] inherit
[root@localhost ~]# df -h //虽然lv已经扩容,但是实际还未生效
文件系统 容量 已用可用已用% 挂载点
/dev/sda3 18G 3.3G 14G 20% /
/dev/sda1 190M 12M 169M 7% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/mapper/vg1-lv1 1.5G 1.5G 0 100% /lvm
[root@localhost ~]# resize2fs -f/dev/vg1/lv1 //使lv扩容立即生效,也可以在lvextend扩增时添加-r来直接生效
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg1/lv1 is mounted on/lvm; on-line resizing required
Performing an on-line resize of/dev/vg1/lv1 to 699392 (4k) blocks.
The filesystem on /dev/vg1/lv1 is now699392 blocks long.
[root@localhost ~]# df -h //现在lv扩容已经生效
文件系统 容量 已用可用已用% 挂载点
/dev/sda3 18G 3.3G 14G 20% /
/dev/sda1 190M 12M 169M 7% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/mapper/vg1-lv1 2.7G 1.5G 1.1G 58% /lvm