LVM Logical Volume Manager
LVM可以在无需重建整个文件系统的情况下管理磁盘空间。硬盘分区 -> 一个分区对应一个物理券 -> 多个物理券组成券组 -> 一个券组可分成多个逻辑券。
物理券合并成券组,券组上划分逻辑券。先创建pv,再在一个或多个pv上创建vg,然后在vg上lv,然后格式化挂载使用即可。
添加一个磁盘后先用 fdisk /dev/sdb 为磁盘分区,分区后如果是一般情况下就做文件系统挂载使用,但是要做成LVM就需要在分区后修改磁盘Id类型,改为8e的,改完后就可以保存然后创建pv了。
pv管理工具
显示pv命令:
pvs 简要显示
pvdisplay 详细显示,显示所有pv ,或显示某个pv ,pvdisplay /dev/sdb1
创建物理券:
pvcreate /dev/sda1
查看:pvs 或 pvdisplay
删除pv命令:
pvremove /dev/sdb1
vg管理工具
显示vg命令:
vgs 或 vgdisplay。
创建券组:
vgcreate vg_name /dev/sdb1
-s 指定大小
这个命令就创建了vg,创建完成后可以使用vgdisplay查看PE的大小等信息。当vg创建完成后pv中的PE大小也就确定了,因为PE大小是跟着vg来定的。
扩展券组:扩展vg,券组中添加物理券
vgextend vg_name /dev/sdb2
将已有的pv加入到某个vg中,这个/dev/sdb2事先要创建pv。
缩减vg命令:
如果要缩减vg要先将pv中的数据移动到其他的pv中,使用命令pvmove /dev/sdb2然后才可以。
pvmove /dev/sdb2
移除物理券:将已经加入券组的物理券移除
vgreduce vg_name /dev/sdb2
lv管理工具
显示lv命令:
lvs
lvdisplay 详细显示lv信息,lvdisplay /dev/vg0/root 显示单个lv信息。
创建逻辑券:
lvcreate -L 2G -n lv_name vg_name
使用100%空间:
lvcreate -l 100%VG -n lv_name vg_name
创建文件系统:格式化
CentOS6:
mke2fs -t ext4 /dev/mapper/vg_name-lv_name
CentOS7:
mkfs.xfs /dev/mapper/vg_name-lv_name
挂载使用:
mount -t ext4 /dev/mapper/vg_name-lv_name /mnt/
扩展逻辑卷
扩展lv命令:
lvextend -L [+][mMgGtT] /dev/vg_name-lv_name 使用加号“+”表示增加,直接写数字表示指定大小。
例:lvextend -L 5G /dev/vg_name-lv_name 不过此前要查看vg中是否有足够的空间,不够的话添加pv,再vgextend,然后再执行lvextend。
扩展到100%:
lvextend -l +100%FREE /dev/mapper/vg_name-lv_name
将某个券的所有空间划分给某个盘。
扩展文件系统空间:
完成后要使用命令resize2fs /dev/mapper/vg_test-lv_test 来扩展文件系统空间,就是拉大原来的文件系统的边界。resize2fs只适用于ext文件系统,xfs系统要用xfs工具。
注意:
resize2fs 针对的是ext2、ext3、ext4文件系统
resize2fs /dev/mapper/vg_name-lv_name
xfs_growfs 针对的是xfs文件系统
xfs_growfs /dev/mapper/vg_name-lv_name
缩减逻辑券
xfs文件系统只能缩减,ext2、ext3、ext4能缩减和扩展。
缩减前要先卸载:
umount /dev/vg_name-lv_name
文件系统检测:
e2fsck -f /dev/vg_name-lv_name
调整逻辑边界:调整到多少
resize2fs /dev/vg_name-lv_name 5G
缩减磁盘空间: 缩减到指定空间或减小指定空间。
lvreduce -L 5G /dev/vg_name-lv_name lvreduce -L -5G /dev/vg_name-lv_name
热扫描命令:
添加物理磁盘后,可以在不重启的情况下看到磁盘的大小,使用如下命令:
ls /sys/class/scsi_host/ echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
扩展逻辑券命令
查看现有磁盘:
fdisk -l
运行如下命令:作用是在不重启电脑的情况下看到新添加的次磁盘
echo "- - -" > /sys/class/scsi_host/host2/scan
再次查看:
fdisk -l
查看磁盘空间:查看是要加入到那个磁盘下
df -h
创建物理券:
pvcreate /dev/sdb2
加入券组:券组中添加物理券,vgs查看已有的券组
vgextend vg_name /dev/sdb2
扩展逻辑券:用lvs查看已有的逻辑券
lvextend -l +100%FREE /dev/mapper/vg_name-lv_name
扩展文件系统:
resize2fs /dev/mapper/vg_name-lv_name
centos7使用 xfs_growfs 替换 resize2fs
xfs_growfs /dev/mapper/vg_name-lv_name
扩展swap分区:swap分区使用mkswap、swapon命令。
swapoff -a mkswap /dev/mapper/centos-swap swapon /dev/mapper/centos-swap
创建新逻辑券命令
查看现有磁盘:
fdisk -l
在不重启的情况下就可以查看到新添加的磁盘:
echo "- - -" > /sys/class/scsi_host/host2/scan fdisk -l
创建物理券:
pvcreate /dev/sdc
创建券组:
vgcreate vg_name /dev/sdc
创建逻辑券:
lvcreate -l 100%VG -n lv_name vg_name
创建文件系统:
mke2fs -t ext4 /dev/mapper/vg_name-lv_name
挂载目录:
mount -t ext4 /dev/mapper/vg_name-lv_name /dirname
云磁盘扩展逻辑券
针对各种云磁盘包括exsi等虚拟磁盘可以调整磁盘的逻辑边界,调整完之后还需要进行如下操作。
查看磁盘概况:
lsblk
重置pv大小:
pvresize /dev/sdb
扩展逻辑券:
lvextend -l +100%FREE /dev/mapper/data-data
扩展文件系统:
ext4:
resize2fs /dev/mapper/vg_name-lv_name
xfs:
xfs_growfs /dev/mapper/vg_name-lv_name
开机自动挂载
查看磁盘ID号:
blkid /dev/mapper/vg_name-lv_name /dev/mapper/vg_name-lv_name: UUID="adda69bf-c76d-4484-9c0c-0989b98d7f37" TYPE="xfs"
追加配置:
vim /etc/fstab UUID=adda69bf-c76d-4484-9c0c-0989b98d7f37 /data xfs defaults 0 0
测试自动挂载:
umount /data mount -a mount | grep data
虚拟机lvm根分区扩容方法:
blog.51cto.com/u_11442747/2513898