linux LVM 逻辑卷组管理
LVM逻辑卷组管理
LVM实现硬盘容量自由扩展,提高可用性。
实验部分:
1、创建3个100M的分区。
[root@zhaoyun ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3916 31455238+ 83 Linux
/dev/sda1 * 1 3916 31455238+ 83 Linux
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
[root@zhaoyun ~]# fdisk /dev/sdb
[root@zhaoyun ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610):
Using default value 2610
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610):
Using default value 2610
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +100M
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +100M
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (14-2610, default 14):
Using default value 14
Last cylinder or +size or +sizeM or +sizeK (14-2610, default 2610): +100M
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (14-2610, default 14):
Using default value 14
Last cylinder or +size or +sizeM or +sizeK (14-2610, default 2610): +100M
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (27-2610, default 27):
Last cylinder or +size or +sizeM or +sizeK (27-2610, default 2610): +100M
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (27-2610, default 27):
Last cylinder or +size or +sizeM or +sizeK (27-2610, default 2610): +100M
Command (m for help): p
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 2610 20964793+ 5 Extended
/dev/sdb5 1 13 104359+ 83 Linux
/dev/sdb6 14 26 104391 83 Linux
/dev/sdb7 27 39 104391 83 Linux
/dev/sdb1 1 2610 20964793+ 5 Extended
/dev/sdb5 1 13 104359+ 83 Linux
/dev/sdb6 14 26 104391 83 Linux
/dev/sdb7 27 39 104391 83 Linux
Command (m for help): w
The partition table has been altered!
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@zhaoyun ~]#
[root@zhaoyun ~]# fdisk -l
[root@zhaoyun ~]#
[root@zhaoyun ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3916 31455238+ 83 Linux
/dev/sda1 * 1 3916 31455238+ 83 Linux
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 2610 20964793+ 5 Extended
/dev/sdb5 1 13 104359+ 83 Linux
/dev/sdb6 14 26 104391 83 Linux
/dev/sdb7 27 39 104391 83 Linux
[root@zhaoyun ~]#
/dev/sdb1 1 2610 20964793+ 5 Extended
/dev/sdb5 1 13 104359+ 83 Linux
/dev/sdb6 14 26 104391 83 Linux
/dev/sdb7 27 39 104391 83 Linux
[root@zhaoyun ~]#
使用pvcreate命令创建物理卷。pvs可以查看已经创建好的物理卷。
[root@zhaoyun ~]# pvcreate /dev/sdb5
Physical volume "/dev/sdb5" successfully created
[root@zhaoyun ~]# pvs 还有一个pvdisplay命令也可以查看
PV VG Fmt Attr PSize PFree
/dev/sdb5 lvm2 -- 101.91M 101.91M
Physical volume "/dev/sdb5" successfully created
[root@zhaoyun ~]# pvs 还有一个pvdisplay命令也可以查看
PV VG Fmt Attr PSize PFree
/dev/sdb5 lvm2 -- 101.91M 101.91M
使用vgcreate命令创建卷组。vgs可以查看到已经创建好的卷组
[root@zhaoyun ~]# vgcreate vg0 /dev/sdb5
Volume group "vg0" successfully created
[root@zhaoyun ~]# vgs 还有一个vgdisplay命令也可以查看
VG #PV #LV #SN Attr VSize VFree
vg0 1 0 0 wz--n- 100.00M 100.00M
Volume group "vg0" successfully created
[root@zhaoyun ~]# vgs 还有一个vgdisplay命令也可以查看
VG #PV #LV #SN Attr VSize VFree
vg0 1 0 0 wz--n- 100.00M 100.00M
使用lvcreate命令创建逻辑卷,使用lvs可以查看以创建好的逻辑卷
[root@zhaoyun ~]# lvcreate -L 100M -n lv0 vg0
Logical volume "lv0" created
[root@zhaoyun ~]# lvs 还有一个lvdisplay命令也可以查看
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-a- 100.00M
5、格式化逻辑卷,并挂载使用。
Logical volume "lv0" created
[root@zhaoyun ~]# lvs 还有一个lvdisplay命令也可以查看
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-a- 100.00M
使用格式化命令,格式或逻辑卷。
mkfs.ext3 /dev/vg0/lv0
[root@zhaoyun ~]# mkfs.ext3 /dev/vg0/lv0
#将逻辑卷挂载使用。
[root@zhaoyun ~]# mount /dev/vg0/lv0 /mnt
[root@zhaoyun ~]# cd /mnt
[root@zhaoyun mnt]# ls
lost+found
[root@zhaoyun mnt]# touch file
[root@zhaoyun mnt]# ls
file lost+found
[root@zhaoyun mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 97M 5.6M 87M 7% /mnt #看到挂载的卷。
[root@zhaoyun ~]# cd /mnt
[root@zhaoyun mnt]# ls
lost+found
[root@zhaoyun mnt]# touch file
[root@zhaoyun mnt]# ls
file lost+found
[root@zhaoyun mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 97M 5.6M 87M 7% /mnt #看到挂载的卷。
现在一个逻辑卷就可以正常工作了,现在要把这个卷的空间扩大,比如增加100M。
因为刚才创建的物理卷和逻辑组只有100M都已经分配至逻辑卷了。已经没有可用空间来扩展,那么就需要重新创建一个物理卷,然后扩大卷组,再分配给逻辑卷。
扩展是在线扩展的,就是不需要将已经过载的逻辑卷卸载掉。
1、创建一个新的物理卷。
[root@zhaoyun ~]# pvcreate /dev/sdb6
Physical volume "/dev/sdb6" successfully created
[root@zhaoyun ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb5 vg0 lvm2 a- 100.00M 0
/dev/sdb6 lvm2 -- 101.94M 101.94M 现在可以看到物理卷有俩块磁盘了。
Physical volume "/dev/sdb6" successfully created
[root@zhaoyun ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb5 vg0 lvm2 a- 100.00M 0
/dev/sdb6 lvm2 -- 101.94M 101.94M 现在可以看到物理卷有俩块磁盘了。
[root@zhaoyun ~]# vgextend vg0 /dev/sdb6
Volume group "vg0" successfully extended
[root@zhaoyun ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 200.00M 100.00M
Volume group "vg0" successfully extended
[root@zhaoyun ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 200.00M 100.00M
先看下之前lv0的大小
[root@zhaoyun ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-ao 100.00M
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-ao 100.00M
扩展lv0
[root@zhaoyun ~]# lvextend -L +100M /dev/vg0/lv0
Extending logical volume lv0 to 200.00 MB
Logical volume lv0 successfully resized
[root@zhaoyun ~]# lvextend -L +100M /dev/vg0/lv0
Extending logical volume lv0 to 200.00 MB
Logical volume lv0 successfully resized
可以看到说是已经扩展到200M了,在看下系统挂载使用的情况,发现还是97M,没有扩大。
[root@zhaoyun ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 97M 5.6M 87M 7% /mnt
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 97M 5.6M 87M 7% /mnt
执行resize2fs命令使扩展生效
[root@zhaoyun ~]# resize2fs /dev/vg0/lv0
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg0/lv0 is mounted on /mnt; on-line resizing required
Performing an on-line resize of /dev/vg0/lv0 to 204800 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 204800 blocks long.
[root@zhaoyun ~]# resize2fs /dev/vg0/lv0
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg0/lv0 is mounted on /mnt; on-line resizing required
Performing an on-line resize of /dev/vg0/lv0 to 204800 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 204800 blocks long.
再看的话已经将分区成功扩展了。。
[root@zhaoyun ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 194M 5.6M 179M 4% /mnt
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 194M 5.6M 179M 4% /mnt
LVM还可以实现缩小操作,,不建议做缩小操作,只不过看看现象就行了。
将刚才194M的逻辑卷缩小到150M。
缩小不支持在线,需要先卸载掉已经挂载的逻辑卷。
1、先卸载挂载的卷
[root@zhaoyun ~]# umount /dev/vg0/lv0
2、执行检查
[root@zhaoyun ~]# e2fsck -f /dev/vg0/lv0
e2fsck 1.39 (29-May-2006)
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/lv0: 12/49400 files (8.3% non-contiguous), 11903/204800 blocks
e2fsck 1.39 (29-May-2006)
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/lv0: 12/49400 files (8.3% non-contiguous), 11903/204800 blocks
[root@zhaoyun ~]# resize2fs /dev/vg0/lv0 150M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg0/lv0 to 153600 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 153600 blocks long.
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg0/lv0 to 153600 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 153600 blocks long.
[root@zhaoyun ~]# lvreduce -L 150M /dev/vg0/lv0
Rounding up size to full physical extent 152.00 MB
WARNING: Reducing active logical volume to 152.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 152.00 MB
Logical volume lv0 successfully resized
Rounding up size to full physical extent 152.00 MB
WARNING: Reducing active logical volume to 152.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 152.00 MB
Logical volume lv0 successfully resized
[root@zhaoyun ~]# mount /dev/vg0/lv0 /mnt
[root@zhaoyun ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 146M 5.6M 134M 4% /mnt
[root@zhaoyun ~]#
[root@zhaoyun ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 146M 5.6M 134M 4% /mnt
[root@zhaoyun ~]#
LVM快照功能,通过快照功能可以理解为备份,,就想VM虚拟机一样有一个快照的功能。
[root@zhaoyun ~]# lvcreate -L 40M -s -n lv0bak /dev/vg0/lv0
Logical volume "lv0bak" created
[root@zhaoyun ~]# ll /dev/vg0/lv0
lv0 lv0bak
[root@zhaoyun ~]# ll /dev/vg0/lv0bak
lrwxrwxrwx 1 root root 22 11-29 08:29 /dev/vg0/lv0bak -> /dev/mapper/vg0-lv0bak
[root@zhaoyun ~]#
[root@zhaoyun ~]# mount /dev/vg0/lv0bak /media
[root@zhaoyun ~]# cd /media
[root@zhaoyun media]# ls
file lost+found
[root@zhaoyun media]# touch file2
[root@zhaoyun media]# ls
file file2 lost+found
[root@zhaoyun media]# cd /mnt
[root@zhaoyun mnt]# ls
file lost+found
[root@zhaoyun mnt]#
Logical volume "lv0bak" created
[root@zhaoyun ~]# ll /dev/vg0/lv0
lv0 lv0bak
[root@zhaoyun ~]# ll /dev/vg0/lv0bak
lrwxrwxrwx 1 root root 22 11-29 08:29 /dev/vg0/lv0bak -> /dev/mapper/vg0-lv0bak
[root@zhaoyun ~]#
[root@zhaoyun ~]# mount /dev/vg0/lv0bak /media
[root@zhaoyun ~]# cd /media
[root@zhaoyun media]# ls
file lost+found
[root@zhaoyun media]# touch file2
[root@zhaoyun media]# ls
file file2 lost+found
[root@zhaoyun media]# cd /mnt
[root@zhaoyun mnt]# ls
file lost+found
[root@zhaoyun mnt]#
删除卷组。
[root@zhaoyun ~]# umount /dev/vg0/lv0
[root@zhaoyun ~]# umount /dev/vg0/lv0bak
[root@zhaoyun ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0bak? [y/n]: y
Logical volume "lv0bak" successfully removed
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@zhaoyun ~]# lvremove /dev/
Display all 197 possibilities? (y or n)
[root@zhaoyun ~]# lvs
[root@zhaoyun ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 2 0 0 wz--n- 200.00M 200.00M
[root@zhaoyun ~]# vgremove vg0
Volume group "vg0" successfully removed
[root@zhaoyun ~]# vgs
[root@zhaoyun ~]# umount /dev/vg0/lv0bak
[root@zhaoyun ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0bak? [y/n]: y
Logical volume "lv0bak" successfully removed
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@zhaoyun ~]# lvremove /dev/
Display all 197 possibilities? (y or n)
[root@zhaoyun ~]# lvs
[root@zhaoyun ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 2 0 0 wz--n- 200.00M 200.00M
[root@zhaoyun ~]# vgremove vg0
Volume group "vg0" successfully removed
[root@zhaoyun ~]# vgs
[root@zhaoyun ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb5 lvm2 -- 101.91M 101.91M
/dev/sdb6 lvm2 -- 101.94M 101.94M
[root@zhaoyun ~]# pvremove /dev/sdb5 /dev/sdb6
Labels on physical volume "/dev/sdb6" successfully wiped
[root@zhaoyun ~]# pvs
查看已经没有信息了
本文转自zhaoyun00 51CTO博客,原文链接:http://blog.51cto.com/zhaoyun/729244