一、lvm存在意义及名词解释:
1、LVM的概念:
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
2、使用LVM的原因:
在日常工作或者学习中,随着电脑的不断使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
3、LVM的工作机制:
LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
4、关于 PV、VG、LV 的解释:
1>物理卷(PV, Physical Volume)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.
2>卷组(VG, Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
3>逻辑卷(LV, Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
二、LVM的建立:
1、用命令 watch -n 1 'pvs; echo ======; vgs; echo ======; lvs' 打开一个Shell监控设备信息:
2、创建三个物理分区并把分区id修改为8e:(其中 p 表示查看,n 表示新建,t 表示修改分区id)
3、用命令 pvcreate /dev/vdb{1..3} 创建物理卷:
4、 用命令 vgcreate westos /dev/vdb{1..3} 创建物理卷组:
5、用命令 lvcreate -n lv0 -L 1.5G westos 在物理卷组中提取一部分空间, 创建逻辑卷lv0。 -L指定逻辑卷的大小, -n指定逻辑卷的名称,并且在逻辑卷创建成功之后, 会产生虚拟设备文件,可由命令 ll /dev/mapper/westos-lv0 和 命令 ll /dev/westos/lv0 进行查看:
6、可由 Shell监控设备获得如下创建信息:
三、逻辑卷的应用:
1、用命令 mkfs.ext4 /dev/westos/lv0 格式化逻辑卷设备:
2、建立目录 mkdir /lvm,用命令 mount /dev/westos/lv0 /lvm/ 挂载设备到文件系统上:
3、编辑开机自动挂载:
用命令 vim /etc/fstab 打开编辑文件,添加 /dev/mapper/westos-lv0 /lvm ext4 defaults 0 0 后,退出保存,并输入命令 mount | tail -1 进行查看:
四、ext格式逻辑卷的拉伸与缩减:
LVM的强大之处在于支持在线扩容(拉伸), 但不支持在线缩减。ext2/ext3/ext4文件系统的调整命令是resize2fs,其既支持增大,又支持减小,常用命令为lvextend、resize2fs。
1、拉伸逻辑卷:
1>用命令 vgs 确定卷组是否有足够的空间可以拉伸;
2>用命令 lvextend -L 1.8G /dev/westos/lv0 或 lvextend -L +300M /dev/westos/lv0 拉伸逻辑卷;
3> 用命令 lvs 查看逻辑卷设备的大小是否拉伸成功,用命令 df -h 查看文件系统的大小是否拉伸成功;
4>用命令 resize2fs /dev/westos/lv0 更新文件系统;
5>用命令 df -h 查看更新后的文件系统。
2、拉伸物理卷组:
1>用命令 vgs 确定卷组是否有足够的空间可以拉伸;
2>用命令 pvcreate /dev/vdbx 创建一个物理卷;
3>用命令 vgextend westos /dev/vdb5 将新的物理卷添加/拉伸到物理卷组中;
4>用命令 vgs 查看拉伸后的物理卷组大小;
5>依次输入以下命令拉伸逻辑卷:
lvextend -L +100M /dev/westos/lv0 拉伸逻辑卷 df -h 查看文件系统的大小是否拉伸成功 resize2fs /dev/westos/lv0 更新文件系统 df -h 查看更新后的文件系统
3、 缩小逻辑卷:
1>用命令 umount /lvm 卸载正在挂载的逻辑卷;
2>用命令 e2fsck -fv /dev/westos/lv0 对文件系统进行校验;
3>用命令 resize2fs /dev/westos/lv0 1G 缩小文件系统到1G;
4>用命令 lvreduce -L 1G /dev/westos/lv0 缩小逻辑卷,并重新挂载设备, 查看缩减是否生效;
5>用命令 vgreduce westos /dev/vdb{3,5} 查看卷组中是否有空闲的分区,如果有,则用命令 pvremove /dev/vdb{3,5} 移除空闲分区。
4、 xfs格式逻辑卷的拉伸(不能缩减):
1>用命令 vgs 确定卷组是否有足够的空间可以拉伸;
2> 用命令 lvextend -L 1.8G /dev/westos/lv0 或命令 lvextend -L +300M /dev/westos/lv0 拉伸逻辑卷;
3>用命令 lvs 查看逻辑卷设备的大小是否拉伸成功,并用命令 df -h 查看文件系统的大小是否拉伸成功;
4>用命令 xfs_growfs /dev/westos/lv0 更新文件系统;
5>用命令 df -h 查看更新后的文件系统。