一文读懂Linux运维常用命令之 LVM逻辑卷管理
一文读懂Linux运维常用命令之 LVM逻辑卷管理
目录
更多精彩博文详见:
一、LVM概要
LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘进行管理的一种机制。LVM通过将底层的一块或者多块磁盘、分区层层抽象封装,最后以逻辑卷的方式供上层应用。其最大的特点是可以对磁盘进行动态管理,根据实际情况灵活地对逻辑卷进行扩容或者缩容。
LVM的组成主要包括物理存储介质、物理卷、逻辑卷组、逻辑卷。
- 物理存储介质(PhysicalStorageMedia)
指物理存储设备,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
- 物理卷(Physical Volume,PV)
物理卷是LVM的基本存储逻辑块,它在逻辑卷管理中处于最底层,可以是整个物理硬盘、物理硬盘上的分区或者是raid设备。
- 逻辑卷组(Volume Group,VG)
逻辑卷组(VG)由一个或多个物理卷(PV)组成,可以在逻辑卷组(VG)上创建一个或多个逻辑卷(LV)。
- 逻辑卷(Logical Volume,LV)
逻辑卷(LV)建立在逻辑卷组(VG)之上。逻辑卷(LV)上可以挂载文件系统(例如/home、/usr、/data等)。
LVM简易示意图如下:
二、LVM核心管理命令
(一)、物理卷(PV)核心命令
1、pvcreate
pvcreate命令用于创建物理卷。
(1)、使用一个磁盘创建物理卷
此处使用磁盘/dev/sdb来创建物理卷。
[root@dataTest ~]# pvcreate /dev/sdb
(2)、使用一个磁盘分区创建物理卷
此处使用磁盘/dev/sdc下的分区/dev/sdc1来创建物理卷。
[root@dataTest ~]# pvcreate /dev/sdc1
2、pvs
pvs命令用于显示物理卷信息。
[root@dataTest ~]# pvs
由上可见,当前有三个物理卷/dev/sda2、/dev/sdb、/dev/sdc1
3、pvscan
pvscan命令用于列出所有物理卷的使用情况。
[root@dataTest ~]# pvscan
4、pvdisplay
pvdisplay命令用于显示所有物理卷的详细信息。
[root@dataTest ~]# pvdisplay
5、pvremove
pvremove命令用于删除物理卷。
此处删除物理卷/dev/sdc1。
[root@dataTest ~]# pvremove /dev/sdc1
6、pvresize
调整物理卷大小
将物理卷/dev/sdb的大小由5G调整为10G。
[root@dataTest ~]# pvresize --setphysicalvolumesize 10G /dev/sdb
(二)、逻辑卷组(VG)核心命令
1、vgcreate
vgcreate命令用于创建逻辑卷组。
(1)、使用单个物理卷创建逻辑卷组
此处使用物理卷/dev/sdc2来创建逻辑卷组first_vg。
[root@dataTest ~]# vgcreate first_vg /dev/sdc2
(2)、使用多个物理卷创建逻辑卷组
此处使用物理卷/dev/sdb、/dev/sdc1来创建逻辑卷组second_vg。
[root@dataTest ~]# vgcreate second_vg /dev/sdb /dev/sdc1
2、vgs
vgs命令用于显示所有逻辑卷组的使用情况信息。
[root@dataTest ~]# vgs
3、vgscan
vgscan命令用于列出所有逻辑卷组。
[root@dataTest ~]# vgscan
4、vgdisplay
vgdisplay命令用于显示逻辑卷组的详细信息
[root@dataTest ~]# vgdisplay
5、vgremove
vgremove命令用于删除逻辑卷组。
此处删除逻辑卷组second_vg。
[root@dataTest ~]# vgremove second_vg
6、vgextend
vgextend命令用于扩容逻辑卷组,即将新的物理卷添加到逻辑卷组。
此处将物理卷/dev/sdc1添加至逻辑卷组first_vg
[root@dataTest ~]# vgextend first_vg /dev/sdc1
由上可见,物理卷/dev/sdc1的大小为2G,添加至逻辑卷组first_vg后,逻辑卷组first_vg的容量由4G扩容至5.99G。
7、vgreduce
vgreduce命令用于从逻辑卷组中删除物理卷。
此处从逻辑卷组first_vg中将物理卷/dev/sdc1删除。
[root@dataTest ~]# vgreduce first_vg /dev/sdc1
由上可见,从逻辑卷组first_vg中将物理卷/dev/sdc1删除后,逻辑卷组first_vg的容量由5.99G缩减为4G。
(三)、逻辑卷(LV)核心命令
1、lvcreate
lvcreate命令用于创建逻辑卷。
此处创建逻辑卷first_lv。
- 创建逻辑卷first_lv
[root@dataTest ~]# lvcreate -L 2G -n first_lv first_vg
-L:表示逻辑卷的大小;
-n:表示逻辑卷的名称;
first_vg:表示从逻辑卷组first_vg中分配2G的空间给逻辑卷first_lv。
- 查看逻辑卷组first_vg
[root@dataTest ~]# vgs
查看逻辑卷组first_vg,可用空间由5.99G减少至3.99G,减少的2G空间分配给了逻辑卷first_lv。
2、lvs
lvs命令用于显示所有逻辑卷的信息。
[root@dataTest ~]# lvs
3、lvscan
lvscan命令用于列出所有逻辑卷的状态信息。
[root@dataTest ~]# lvscan
4、lvdisplay
lvdisplay命令用于显示所有逻辑卷的详细信息。
[root@dataTest ~]# lvdisplay
5、lvremove
lvremove命令用于删除逻辑卷。
此处删除逻辑卷组first_vg中的逻辑卷first_lv。
- 删除逻辑卷first_lv
[root@dataTest ~]# lvremove /dev/first_vg/first_lv
- 查看逻辑卷组first_vg
[root@dataTest ~]# vgs
查看逻辑卷组first_vg,可用空间由3.99G增加到5.99G,增加的2G空间是删除逻辑卷first_lv的空间。
6、lvextend
lvextend命令用于扩展逻辑卷的大小。
此处扩展逻辑卷first_lv的大小,由原来的2G扩展为3G。
- 扩展逻辑卷first_lv
[root@dataTest ~]# lvextend -L +1G /dev/first_vg/first_lv
-L:+1G,表示扩展1G空间;
由上可见,逻辑卷first_lv的大小已经由2G扩展至3G。
- 查看逻辑卷组first_vg
[root@dataTest ~]# vgs
查看逻辑卷组first_vg,可用空间由3.99G减少至2.99G,减少的1G空间分配给了逻辑卷first_lv。
7、lvreduce
lvreduce命令用于缩减逻辑卷的大小。
此处将逻辑卷first_lv的大小由3G缩减为2G。
- 缩减逻辑卷first_lv
[root@dataTest ~]# lvreduce /dev/first_vg/first_lv -L -1G
-L:-1G,表示缩减1G空间;
由上可见,逻辑卷first_lv的大小已经由3G缩减至2G。
- 查看逻辑卷组first_vg
[root@dataTest ~]# vgs
查看逻辑卷组first_vg,可用空间由2.99G增加至3.99G,增加的1G空间是逻辑卷first_lv缩减空间而来。
8、lvresize
lvresize命令用于调整逻辑卷的大小。
此处将逻辑卷组first_vg中的逻辑卷first_lv的大小调整为3G。
[root@dataTest ~]# lvresize -L 3G /dev/first_vg/first_lv
由上可见,逻辑卷first_lv的大小已经由2G调整为3G。
9、lvrename
lvrename命令用于重命名逻辑卷。
此处将逻辑卷first_lv重命名为first_lv_change。
[root@dataTest ~]# lvrename /dev/first_vg/first_lv /dev/first_vg/first_lv_change
由上可见,逻辑卷first_lv已经重命名为first_lv_change。
三、应用实例
(一)、使用新增磁盘创建逻辑卷并挂载使用。
此处演示新增了一块磁盘/dev/sdb,将其创建逻辑卷后,挂载到路径/data/soft/oracle/flash_recovery_area下使用。
1、创建物理卷PV
此处创建物理卷/dev/sdb。
- 查看当前的磁盘
[root@Oracle ~]# fdisk -l
- 查看当前物理卷PV
[root@Oracle ~]# pvs
或者
[root@Oracle ~]# pvdisplay
- 创建物理卷PV
[root@Oracle ~]# pvcreate /dev/sdb
查看是否创建成功
[root@Oracle ~]# pvs
或者
[root@Oracle ~]# pvdisplay
2、创建逻辑卷组VG
此处创建逻辑卷组new_vg。
- 查看当前逻辑卷组
[root@Oracle ~]# vgs
或者
[root@Oracle ~]# vgdisplay
- 创建逻辑卷组new_vg
[root@Oracle ~]# vgcreate new_vg /dev/sdb
查看是否创建成功
[root@Oracle ~]# vgs
[root@Oracle ~]# vgdisplay new_vg
3、创建逻辑卷LV
在卷组new_vg上创建名称为new_lv且容量为19G的逻辑卷。
- 创建逻辑卷
[root@Oracle ~]# lvcreate -L 19G -n new_lv new_vg
-n:指定lv名称
-L:指定大小
- 查看是否创建成功
[root@Oracle ~]# lvs
[root@Oracle ~]# lvdisplay /dev/new_vg/new_lv
4、格式化逻辑卷
此处格式化逻辑卷/dev/new_vg/new_lv
[root@Oracle ~]# mke2fs -j /dev/new_vg/new_lv
也可以选择格式化的文件类型,使用参数-t
或者直接使用其他命令
mkfs.ext2
mkfs.ext3
mkfs.xfs
等,根据实际的文件系统类型选择对应命令
5、挂载使用逻辑卷
此处将逻辑卷/dev/new_vg/new_lv挂载到路径/data/soft/oracle/flash_recovery_area使用。
(1)、临时挂载
临时挂载会在服务器重启后失效。
[root@Oracle ~]# mount /dev/new_vg/new_lv /data/soft/oracle/flash_recovery_area
[root@Oracle ~]# df -h
(2)、永久挂载(建议使用该方式)
编辑/etc/fstab文件,将逻辑卷/dev/new_vg/new_lv永久挂载到/data/soft/oracle/flash_recovery_area路径下。
[root@Oracle ~]# cat /etc/fstab | grep -v "#"
[root@Oracle ~]# echo "/dev/new_vg/new_lv /data/soft/oracle/flash_recovery_area ext4 defaults 0 0" >> /etc/fstab
(二)、根路径扩容
新增了一块5GB的磁盘/dev/sdb,用于扩容根路径。
1、查询磁盘情况
- 查询当前根路径使用情况
[root@dataTest ~]# df -h
由上可见,根路径分配总空间17G,当前使用率为51%。
注意:在/dev/mapper/centos-root中,centos-root表示逻辑卷组为centos,逻辑卷为root。
- 查询新增的磁盘信息
[root@dataTest ~]# fdisk -l
由上可见,新增的磁盘为/dev/sdb,容量为5G。
2、查询逻辑卷组及逻辑卷情况
- 查询逻辑卷信息
[root@dataTest ~]# lvdisplay
由上可见,根路径的逻辑卷属于逻辑卷组centos。
- 查询逻辑卷组centos使用信息
[root@dataTest ~]# vgs
由上可见,逻辑卷组centos可分配空间已经为0,需要扩容逻辑卷组。
3、逻辑卷组centos扩容
- 使用新增磁盘/dev/sdb创建物理卷
[root@dataTest ~]# pvcreate /dev/sdb
[root@dataTest ~]# pvs
- 使用物理卷/dev/sdb对逻辑卷组centos进行扩容
[root@dataTest ~]# vgextend centos /dev/sdb
由上可见,扩容后的逻辑卷组centos可分配空间增加到5G。
4、根路径逻辑卷扩容
- 根路径逻辑卷扩容
[root@dataTest ~]# lvextend -L +4G /dev/mapper/centos-root
- 同步文件系统
[root@dataTest ~]# xfs_growfs /dev/mapper/centos-root
- 查看根路径使用情况
[root@dataTest ~]# df -h
由上可见,根路径分配总空间由17G上升为21G,可用空间已经由8.4G增长至13G,使用率由51%下降为42%。
根路径扩容成功!
(三)、逻辑卷缩容
逻辑卷组first_vg的逻辑卷first_lv挂载在路径/lvm下,由于空间使用率较低,将其由9G缩容为5G。
[root@dataTest ~]# df -h
1、卸载文件系统
将逻辑卷/dev/first_vg/first_lv从/lvm路径卸载。
[root@dataTest ~]# umount /lvm/
由上可见,/lvm已经不在列表,说明卸载成功。
2、缩减文件系统
缩减文件系统的大小至5G。
- 执行磁盘检查操作
[root@dataTest ~]# e2fsck -f /dev/first_vg/first_lv
- 缩减文件系统的大小至5G
[root@dataTest ~]# resize2fs /dev/first_vg/first_lv 5G
3、缩减逻辑卷
缩减逻辑卷/dev/first_vg/first_lv的大小至5G。
[root@dataTest ~]# lvreduce /dev/first_vg/first_lv -L 5G
4、重新挂载文件系统
将逻辑卷/dev/first_vg/first_lv重新挂载在/lvm路径下。
[root@dataTest ~]# mount /dev/first_vg/first_lv /lvm
由上可见,逻辑卷/dev/first_vg/first_lv已经成功挂载在/lvm路径下,且路径/lvm下的文件内容正常。
逻辑卷缩容成功!
(四)、逻辑卷组缩容
1、卸载文件系统
将逻辑卷/dev/first_vg/first_lv从/lvm路径卸载。
[root@dataTest ~]# umount /lvm
由上可见,/lvm已经不在列表,说明卸载成功。
2、缩减逻辑卷组
将物理卷/dev/sdc1从逻辑卷组first_vg中移除。
[root@dataTest ~]# vgreduce first_vg /dev/sdc1
由上可见,物理卷/dev/sdc1的大小为2G,从逻辑卷组first_vg中移除物理卷/dev/sdc1后,逻辑卷组first_vg的大小由9.99G缩减至7.99G。
3、重新挂载文件系统
将逻辑卷/dev/first_vg/first_lv重新挂载在/lvm路径下。
[root@dataTest ~]# mount /dev/first_vg/first_lv /lvm
由上可见,逻辑卷/dev/first_vg/first_lv已经成功挂载在/lvm路径下,且路径/lvm下的文件内容正常。
逻辑卷组缩容成功!
更多精彩博文详见:
更多推荐
所有评论(0)