linux基础之lvm基本操作流程
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
LVM模型
LVM模型
前言
每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。
LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
基本术语
前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。首先我们讨论以下几个LVM术语:
物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
逻辑块(Logical Extent,LE)
LVM抽象模型
LVM抽象模型
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
图所示LVM抽象模型,展示了PV、VG、LV三者之间关系:
和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。
系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。
安装
首先确定系统中是否安装了lvm工具:
[root@wwwroot]#rpm –qa | grep lvm
lvm-1.0.3-4
如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVMrpm工具包。
创建lvm逻辑卷
一、准备分区或硬盘
fdisk 进行分区 并更改system ID(t -L) 8e(mbr分区表上的lvm) 15(gpt分区表上lvm)
二、.创建物理卷(pv)
pvcreate /dev/sd{b,c1}
可以通过查看命令查看是否创建成功
pvs 查看
pvdisplay 查看详细信息
blkid
三、创建卷组
vgcreate vg0 -s 16M /dev/sd{b,c1}
pvdisplay 查看详细信息
vgs 查看卷组信息
ll /dev/vg0 是没有这个设备的
四、创建逻辑卷
lvcreate -n lv0 -l 1000 vg0
-n 指定逻辑卷名称
-l 多少个pe个数
-L 直接指定容量大小
lvs 查看逻辑卷
五、格式化 创建文件系统
mkfs.xfs /dev/vgo/lv0 格式化并创建为xfs文件系统
mkfs.ext4 /dev/vgo/lv0 格式化并创建为ext4文件系统
六.手动挂载
mkdir /mnt/lv0
mount /dev/vgho/lv0 /mnt/lv0
七、配置成开机自动挂载
vim /etc/fstab
UUID=”07a34e17-7833-4ec8-8846-c6b590e36fba” /mnt/lv0 xfs defaults 0 0
mount -o remount /mnt/lv0
mount
扩展逻辑卷
一、扩展逻辑卷容量大小
lvextend -L 5G /dev/vg0/lv0
lvextend -r -L 5G /dev/vg0/lv0 同时扩展容量并更新扩展文件系统
5G 增加到5G 也就是算上原有的容量到5G
+5G 就是在原有的基础上再增加5G
-l 多少个pe个数
-L 直接指定容量大小
lvextend /dev/vg0/lv0 -l +100%FREE 剩余空闲空间全部用完
df -h 查看分区信息
二、卷容量扩展后需要更新ext4文件系统的大小信息
resize2fs /dev/vg0/lv0
resize2fs 同步ext系列文件系统
如果是xfs文件系统:卷容量扩展后需要更新xfs文件系统的大小信息
xfs_growfs /dev/vg0/lv0
xfs_growfs 同步xfs文件系统
卷组扩展
1.磁盘变成物理卷
pvcreate /dev/sdd
pvs
2.扩展卷组
vgextend vg0 /dev/sdd
缩减逻辑卷
缩减不支持在线,必须离线
ext4可以缩减
xfs 只能增长不能缩减
1.)因为缩减只能离线,所以必须把需要缩减的逻辑卷取消挂载
umount /mnt/lv0 卸载(取消挂载)
2.)缩减逻辑卷上的文件系统大小(lvm上的文件系统)
resize2fs /dev/vgo/lv0 5G (操作这个步骤后会出现报错提示,提示你需要先校验文件系统后,再进行这一步操作)
5G 缩减到5G 也就是在原有的空间熔炼上缩减到5G
+5G 在原有的容量基础基础直接减去5G
e2fsck -f /dev/vg0/lv0
校验文件系统
resize2fs /dev/vgo/lv0 5G
执行缩减文件系统操作
3.)缩减逻辑卷(lvm)
lvreduce -L 5G /dev/vg0/lv1
注意:逻辑卷(lvm)缩减的大小要与文件系统上缩减的大小一致
在做缩减前,做好把需要缩减的逻辑卷的数据做一下备份,避免导致文件丢失
4.)缩减完成后再进行挂载
mount -a (如果挂载信息已经写入到/etc/fstab文件中了,可以使用该命令,反之就手动挂载)
mount /dev/vg0/lv1 /mnt/lv1 (手动挂载)
5.)查看缩减后的容量信息
df -h
从卷组(vg)中移除单个物理卷pv(硬盘或者分区)
1)移动pv sdb的空间,到其他卷组上去(空间搬移过去,数据也是一并移动过去)
pvmove /dev/sdb
pvmove 是表示移动某个pv上的空间到同一个卷组中其他成员上面去,至于其他成员是谁,这个系统会自动分配。 (pvmove 移动 迁移)
2)显示迁移过后的物理卷信息
pvdisplay
3) 把sdb从vg0卷组中移除
vgreduce vg0 /dev/sdb
4)把物理卷(pv) sdb删除
pvremove /dev/sdb
5) 显示其他物理卷信息
pvdisplay
逻辑卷删除
1) 取消逻辑卷(lvm)的挂载
umount /mnt/lv1 或者 umount /dev/vg0/lv1
2)删除取消挂载的逻辑卷(lvm)
lvremove /dev/vg0/lv1
3)显示移除逻辑卷后的逻辑卷信息
lvdisplay
13.卷组删除
1) 取消挂载该卷组上所有的逻辑卷lvm
umount /dev/vg0/lv#
2)删除该卷组上所有取消的挂载逻辑卷(lvm)
lvremove /dev/vg0/lv#
3)删除卷组
vgremove vg0
4)显示删除卷组后其他的未删除的卷组信息
vgdisplay 或 vgs
原创文章,作者:花火,如若转载,请注明出处:http://www.178linux.com/71382