一LVM简介
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制。
二LVM作用:
LVM是将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
三LVM术语
- 物理卷physical volume (PV)
典型的物理卷是硬盘分区,但也可以是整个硬盘或已创建的Software RAID 卷。 - 物理块physical extent (PE)
物理卷按大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同。 - 卷组(volume group (VG)
卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池。 - 逻辑块logical extent (LE)
逻辑卷按“块”为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。 - 逻辑卷logical volume (LV)
逻辑卷相当于非LVM系统中的分区,它在卷组上建立,是一个标准的块设备,可以在其上建立文件系统
四安装LVM
首先确定系统中是否安装了lvm工具:
[[email protected] ~]# rpm -qa|grep lvm
mesa-private-llvm-3.3-0.3.rc3.el6.x86_64
lvm2-libs-2.02.100-8.el6.x86_64
lvm2-2.02.100-8.el6.x86_64
如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。
五创建LVM并管理
- 创建分区
[[email protected]~]# fdisk -l /dev/sdb
Disk /dev/sdb:107.4 GB, 107374182400 bytes
255 heads, 63sectors/track, 13054 cylinders
Units =cylinders of 16065 * 512 = 8225280 bytes
Sector size(logical/physical): 512 bytes / 512 bytes
I/O size(minimum/optimal): 512 bytes / 512 bytes
Diskidentifier: 0x96023bd2
Device Boot Start End Blocks Id System
/dev/sdb1 1 393 3156741 8e Linux LVM
/dev/sdb2 394 786 3156772+ 8e Linux LVM
/dev/sdb3 787 1179 3156772+ 8e Linux LVM
/dev/sdb4 1180 13054 95385937+ 5 Extended
2 初始化物理卷为PV
创建PV,添加几个文件系统
命令:pvcreate /dev/sdb{1,2,3} ———— 添加文件系统到PV
pvs,pvdisplay ———— 查看系统现有PV
[[email protected] ~]#pvcreate /dev/sdb{1,2,3}
Physical volume "/dev/sdb1"successfully created
Physical volume "/dev/sdb2"successfully created
Physical volume "/dev/sdb3"successfully created
[[email protected] ~]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 a-- 3.01g 3.01g
/dev/sdb2 lvm2 a-- 3.01g 3.01g
/dev/sdb3 lvm2 a-- 3.01g 3.01g
3 创建卷组VG
[[email protected] ~]# vgcreate myvg /dev/sdb1 创建myvg卷组
Volume group "myvg" successfullycreated
[email protected] ~]#vgcreate myvg1 /dev/sdb2 创建myvg1卷组
Volume group "myvg1" successfullycreated
[[email protected] ~]#vgextend myvg /dev/sdb3 增加myvg的容量
Volume group "myvg" successfullyextended
[[email protected] ~]#vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 6.02g 6.02g
myvg1 1 0 0 wz--n- 3.01g 3.01g
vg0 1 4 0 wz--n- 59.99g 7.99g
4 创建LV
[[email protected] ~]# lvcreate -L 2G -n mylv myvg
Logical volume "mylv" created
[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 2.00g
root vg0 -wi-ao---- 20.00g
swap vg0 -wi-ao---- 2.00g
usr vg0 -wi-ao---- 10.00g
var vg0 -wi-ao---- 20.00g
5 格式化
[[email protected]~]# mkfs -t ext4 /dev/myvg/mylv
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
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the superuser
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments pergroup
8192 inodes per group
Superblock backups stored on blocks:
32768,98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystemaccounting information: done
This filesystem will be automaticallychecked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override
6,挂载
[[email protected] ~]#mount /dev/myvg/mylv /tmp/mnt/
六扩展逻辑卷
1 先确定扩展的目标大小,并确保对应的卷组中有足够的空闲空间可用
2 扩展物理边界
3 扩展逻辑边界
[[email protected] mnt]# lvextend -L 4G /dev/myvg/mylv
Extendinglogical volume mylv to 4.00 GiB
Logicalvolume mylv successfully resized
[[email protected] mnt]# resize2fs /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /tmp/mnt;on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to1048576 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1048576blocks long.
[[email protected] mnt]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg-wi-ao---- 4.00g
rootvg0 -wi-ao---- 20.00g
swapvg0 -wi-ao---- 2.00g
usr vg0 -wi-ao---- 10.00g
var vg0 -wi-ao---- 20.00g
七 缩减逻辑卷
缩减很危险,缩减需谨慎!
缩减需要离线
1 先确定缩减后的目标大小,并确保对应的目标逻辑卷大小中有足够的空间可够容纳原有数据。
2 先制裁文件系统,并强制执行检测
3 缩减逻辑边界
4缩小物理边界
[[email protected]]# fuser -km /tmp/mnt/ 如果卸载不掉,用此命令卸载,用后会退出,并从新登陆。
/tmp/mnt/: 2747c
Connectionclosed.
[[email protected]~]# umount /tmp/mnt/
[[email protected]~]# e2fsck -f /dev/myvg/mylv 强制检测文件系统
e2fsck1.41.12 (17-May-2010)
Pass1: Checking inodes, blocks, and sizes
Pass2: Checking directory structure
Pass3: Checking directory connectivity
Pass4: Checking reference counts
Pass5: Checking group summary information
/dev/myvg/mylv:11/262144 files (0.0% non-contiguous), 33870/1048576 blocks
[[email protected]~]# resize2fs /dev/myvg/mylv 3G 离线缩减为逻辑卷为3G
resize2fs1.41.12 (17-May-2010)
Resizingthe filesystem on /dev/myvg/mylv to 786432 (4k) blocks.
Thefilesystem on /dev/myvg/mylv is now 786432 blocks long.
[[email protected] ~]# lvreduce -L 3G/dev/myvg/mylv 缩减物理边界为3G
WARNING: Reducing active logical volume to3.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Doyou really want to reduce mylv? [y/n]: y
Reducing logical volume mylv to 3.00 GiB
Logical volume mylv successfully resized
[[email protected]~]# lvs 查看缩减后信息
LV VG Attr LSize Pool Origin Data% Move Log Cpy%SyncConvert
mylv myvg -wi-a----- 3.00g
root vg0 -wi-ao---- 20.00g
swap vg0 -wi-ao---- 2.00g
usr vg0 -wi-ao---- 10.00g
var vg0 -wi-ao---- 20.00g
八,快照卷
快照就是将当时的系统信息记录下来,将来如果有数据更新,则原始数据会被移到快照区,没有更新的部分则由快照区与文件系统共享.
一个例子
lvcreate -L 512M -s -p r -n mysnap /dev/myvol/mylv
-L 512M 制定快照卷的大小
-s 说明创建的快照卷
-p r 创建的快照卷是只读的,
-n mysnap 给快照卷气的名字
/dev/myvol/mylv1 对哪个逻辑卷创建快照卷,此处在卷组myvol下的逻辑卷mylv1创建
创建完可以挂载了
mount -o ro /dev/myvol/mysnap /snap
快照卷和逻辑卷在同一目录下
-o ro 只读方式挂载
创建完成后卸载
unmount /snap
删除快照卷 lvremove /dev/myvol/mysnap