Linux磁盘文件管理——LVM学习(一)
LVM逻辑卷管理
- 逻辑卷:将多个物理磁盘逻辑组成一个逻辑组,把逻辑组分为若干个
分区(划掉),这里叫逻辑卷,我们只关心逻辑卷大小即可,实际上它里面的数据可能存储在组成逻辑组的物理磁盘的各个角落。在逻辑卷上可以创建文件系统。 - 逻辑卷管理:针对磁盘分区而言的手段;允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小;允许在多个物理设备间重新组织文件系统。
相关命令我放在下面了,先看栗子
- 看图说话,在Linux里,将若干块设备贴上物理设备的标签来组成逻辑组,逻辑组分为若干逻辑卷。
创建逻辑卷示例
1. 这里先准备用一个分区和一个硬盘来组成逻辑组
- fdisk /dev/sdc,这里我用sdc创建分区,另外准备sdd硬盘
- n
- p
- enter
- enter
- +2G
- w
2. 开始创建逻辑卷
- pvcreate /dev/sd{c1,d},创建物理卷。可以看到VG里没有信息,说明这两个物理卷还不属于任何卷组
- vgcreate vg0 -s 16M /dev/sd{c1,d},创建逻辑卷组。vg0是卷组名,- s 16M是在指定PE的大小,并且-s要求大小是扇区的指数倍,也就是2的n次方,最小为128K。
- 详细看一下信息,pvdisplay。以上面的物理卷为例,一个pe16M,一共127个,总共2G。整个卷组大小为2+1=3G。
- lvcreate -n lv0 -L 1.5G vg0创建逻辑卷,-n指定名字为lv0,-L 1.5G vg0指定从vg0中分配1.5G大小的空间给lv0。下图可以看到分配1.5G用了96个LE(PE)。
- 此时再pvdisplay看看物理卷
- 继续创建逻辑卷,这次将剩余的空间全部用上。lvcreate -n lv1 -l 100%FREE vg0。-l 100%FREE意思是将剩余空间都用上。此时逻辑卷信息如下图。
- 对比一下物理卷信息pvdisplay,此时PE都用光了。
- 此时的逻辑卷还不能用,因为没有文件系统。
- 创建文件系统,既然是做实验,那就创建两个不同的文件系统。
- mkfs.ext4 /dev/vg0/lv0
- mkfs.xfs /dev/vg0/lv1
- 创建两个文件夹,把lv0和lv1挂上去
- touch /mnt/lv0
- touch /mnt/lv1
- vim /etc/fstab
- !blkid
- !blkid
- mount -a
- df看一下,已经可以使用了。
扩展逻辑卷
- 首先,要知道想要扩展逻辑卷,卷组要有空间,得有PE。
- 扩展过程:新建一个物理卷,并加到之前的卷组里,用卷组扩展命令扩展卷组空间,继续用逻辑卷扩展命令扩展逻辑卷。
- 开始操作,继续看图说话,先放一张没扩展前的逻辑卷信息。lv0是1.5G,lv1也差不多有1.5G
- pvcreate /dev/sde,虽然我用的是sde,但是读者你可以用别的。
- vgextend vg0 /dev/sde,将物理卷sde的加到逻辑卷组vg0
- lvextend -L 3G /dev/vg0/lv0 和 lvextend -L +3G /dev/vg0/lv0。扩展逻辑卷lv0的大小。前者是扩展到3G大小,后者是在原来的基础上再加3G大小。如图
- 空间是加上去了,但是别忘记同步文件系统。判断一下是什么类型的文件系统
- ext4:resize2fs /dev/vg0/lv0
- xfs:xfs_growfs /mnt/lv1(用相同操作我又扩展了lv1的空间而lv1是xfs类型的文件系统)
- 扩展完成
- 其实不用判断也可以(捂脸),直接用lvextend -r -L 3G /dev/vg0/lv0,-r选项自动判断
缩减
- 还是首先,缩减不支持xfs文件系统,只支持ext4的。其次,缩减不是压缩,可能会造成数据丢失,万一有1G的内容,缩成了500M肯定丢失。所以缩减前先备份。
- 步骤:
- 取消挂载umount /mnt/lv0
- 检查系统完整性 e2fsck -f /dev/vg0/lv0(不检查不能继续执行后面的cmd)
- 缩减文件系统,resize2fs /dev/vg0/lv0 4G,缩到4G
- 缩减逻辑卷,lvreduce -L 4G /dev/vg0/lv0,出现提示,y确认
- 缩减完毕,重新挂载,mount -a,df -h看到已经缩减了。
LVM逻辑卷管理
- 逻辑卷:将多个物理磁盘逻辑组成一个逻辑组,把逻辑组分为若干个
分区(划掉),这里叫逻辑卷,我们只关心逻辑卷大小即可,实际上它里面的数据可能存储在组成逻辑组的物理磁盘的各个角落。在逻辑卷上可以创建文件系统。 - 逻辑卷管理系统:针对磁盘分区而言的手段;允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小;允许在多个物理设备间重新组织文件系统。
- lvm介绍
- LVM: Logical Volume Manager
- dm: device mapper: 将一个或多个底层块设备组织成一个逻辑设备的模块
- 设备名(真名): /dev/dm-#
- 软链接(真名不容识别,软链接的显示就很清晰):
- /dev/mapper/VG_NAME-LV_NAME
- /dev/mapper/vol0-root
- /dev/VG_NAME/LV_NAME
- /dev/vol0/root
- LVM更改文件系统的容量
- LVM可以弹性更改LV的容量,通过PE(扩展或缩减LVM的单位)实现,通过交换PE来进行资料的转换,将原来LV内的PE转移到其它设备中以降低LV的容量,或将其它设备中的PE加到LV中以加大容量。加一句,逻辑卷的LE跟物理卷的PE是一回事。
- pv(物理卷)管理工具
- 显示pv信息(物理卷)
- pvdisplay
- pvs简要显示
- 创建pv
- pvcreate /dev/device
- 显示pv信息(物理卷)
- vg(卷组)管理
- 显示卷组
- vgs
- vgdisplay
- 创建卷组
- vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
- 管理卷组
- vgextend VolumeGroupName PhysicalDevicePath
- vgreduce VolumeGroupName PhysicalDevicePath
- 删除卷组
- 现将物理卷里的内容移除pvremove,再做vgremove
- 显示卷组
- lv(逻辑卷)管理
- 显示逻辑卷
- lvs 简单显示
- lvdisplay 详细显示
- 创建逻辑卷
- lvcreate -L #[mMgGtT] -n NAME VolumeGroup,-L后面接要创建的逻辑卷大小,后面是逻辑卷的名字,之后接逻辑组名
- 举个栗子
- lvcreate -l 60%VG -n mylv testvg,小写的-l 60%VG意思是创建相当于逻辑组60%大小的逻辑卷
- lvcreate -l 100%FREE -n yourlv testvg,把逻辑组剩下的空间全用来创建逻辑卷
- 删除逻辑卷
- lvremove /dev/逻辑组名/逻辑卷名
- 重设文件系统大小
- fsadm [options] resize device [new_size[BKMGTEP]]
- resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
- resize2fs命令被用来增大或者收缩未加载的ext文件系统的大小
- 扩展逻辑卷
- lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
- resize2fs /dev/VG_NAME/LV_NAME
- lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
- 缩减逻辑卷
- umount /dev/VG_NAME/LV_NAME
- e2fsck -f /dev/VG_NAME/LV_NAME
- resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
- lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
先这么多吧,Thanks♪(・ω・)ノ