LVM可以在无需重建整个文件系统的情况下管理磁盘空间。硬盘分区  ->  一个分区对应一个物理券  ->  多个物理券组成券组  ->  一个券组可分成多个逻辑券。

15330240523162_upload.jpg

        物理券合并成券组,券组上划分逻辑券。先创建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

在vcenter中为虚拟机添加磁盘 lvm2



扩展逻辑券命令

查看现有磁盘:

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