标签搜索

目 录CONTENT

文章目录

如何扩容linux的磁盘

陈铭
2022-07-31 / 0 评论 / 0 点赞 / 201 阅读 / 852 字 / 正在检测是否收录...

在生产环境中,我们常常把一个分区/文件系统等挂载到一个特定目录,这个目录有时是存放制品或者代码的。这样就和其他目录隔离开了。但这个目录对应的物理磁盘空间吃紧,我们就需要对其扩容。

LVM介绍

每个物理磁盘接入linux后,可以进行分区(也可以不分区),最简单的做法是分区后直接格式化挂载到具体目录。这样不利于后期的维护和扩容。
所以,我们可以将多个物理磁盘分区创建为物理卷PV,来自不同物理磁盘的PV可以组成卷组。卷组VG这跨越了物理磁盘间的隔离,但本质上是个松散的集合,我们需要将卷组转为一个逻辑上是一体的设备,即逻辑卷LV。逻辑卷对操作系统来说就像是个完整的物理磁盘,但其本质是多个物理磁盘的不同分区组成的。下图展示了一个LVM创建和挂载的生动案例。
image

LVM基本操作

以磁盘/dev/sda(5G)为例

格式化并创建分区

# 格式化
mkfs.xfs /dev/sda
# 创建分区
fdisk /dev/sda
# 选择n,创建分区
# 选择t,指定新分区的类型为LVM(可以键入L查看所有的分区类型)
# 记得没错的话,LVM类型对应的编号是8e
# 选择w,保存创建结果

# 如果保存完出现仍使用旧分区表
# The partition table has been altered!
# WCalling ioctl() to re-read partition table.
# WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
# The kernel still uses the old table. The new table will be used at
# the next reboot or after you run partprobe(8) or kpartx(8)
# 正在同步磁盘。
# 可以自行如下刷新分区表,而不用重启主机
partprobe /dev/sdb

创建物理卷

随后我们便有了/dev/sda1和/dev/sda2

# 创建物理卷
pvcreate /dev/sda1 /dev/sda2
# 查看物理卷(三者都能查看)
pvs
pvscan
pvdisplay

创建卷组

# 创建卷组
# vgcreate <vg_name> <pv1> <pv2>
vgcreate vg1 /dev/sda1 /dev/sda2
# 查看卷组(三者都能查看)
vgs
vgscan
vgdisplay

创建逻辑卷

# 创建逻辑卷
# lvcreate -L <lv_size>  <vg_name> -n <lv_name>
# lvcreate -l +100%FREE  <vg_name> -n <lv_name> 所有vg空间都用来创建lv
lvcreate  -l +100%FREE <lv_size>  vg1 -n lv1
# 查看逻辑卷(三者都能查看)
lvs
lvscan
lvdisplay

挂载逻辑卷

创建好的逻辑卷会出现设备文件/dev/mapper/<vg_name>-<lv_name>和/dev/<vg_name>/<lv_name>

# 挂载到/test
mount /dev/mapper/vg1-lv1 /test

扩容LVM

卷组空间不足时

卷组空间不足时,需要创建新的物理卷,插入新的物理磁盘,格式化并分区,再创建物理卷,和上述操作一样的。

接着在扩容卷组

# vgextend <vg_name> <pv>
# 将物理卷/dev/sda3加入到卷组中
vgextend vg1 /dev/sda3

再扩容逻辑卷

# 扩容逻辑卷到9.9G
lvextend -L 9.9G /dev/vg1/lv1 
# 此时lv1已经被挂载了,使扩容生效
xfs_growfs /dev/mapper/vg1-lv1 
0

评论区