文章目录
- 问题背景
- 基本概念
- 新增磁盘为指定目录扩容
- 查看现有磁盘使用情况
- 新增硬盘,并查看设备信息
- 创建逻辑卷
- 查看lv信息
- 扩容
- 确定扩容的信息
- 执行扩容命令
- 再次查看VG信息
- lv扩容
- 重置逻辑卷
- 注意事项
- 相关资料
问题背景
服务器(linux系统)磁盘空间不足,挂载了新硬盘之后,对普通用户透明的指定目录扩容(如/home)是最直接的方法,这样能够避免迁移数据(目录拷贝),不影响原分区,尽可能减小对基础环境的影响。
系统发行版:
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
基本概念
物理卷(PV, physical volume)
逻辑卷(LV,logical volume)
逻辑分组(VG,volume group)
逻辑分区
LVM
新增磁盘为指定目录扩容
方法基本完全照搬了linux系统下,新加硬盘并把现有的/home目录扩容。
这里记录了部分自己环境下的配置过程,有什么不明确的地方,请查看原文步骤;
CentOS8.4对home目录扩容讲解更加细致,最好仔细读一遍再动手,毕竟修改磁盘配置不是小事,谨慎点。
查看现有磁盘使用情况
参考命令:df -h
,未挂载的硬盘并不能读取到
新增硬盘,并查看设备信息
新增加的硬件设备可以在/dev目录下查到,硬盘一般是/dev/fd*
查看新增的设备信息,fdisk -l
,能够查看现有系统中能够读取到的所有磁盘信息(包括了未挂载的硬盘,但此处在不同发行版中稍有存疑)。
可进一步使用cfdisk /dev/sd*
查看目标盘的分区信息。
创建逻辑卷
为新增加的硬盘创建逻辑卷:pvcreate /dev/sdc
成功则提示
$ sudo pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
此时可以通过pvdisplay
命令查看新增加的磁盘信息
![在这里插入图片描述](
这里增加的是个1.09TB的硬盘
查看lv信息
通过lvdisplay
命令查看逻辑卷信息,并重点关注“LV Path|Name|Size”
![在这里插入图片描述](
扩容
确定扩容的信息
目录,这里以/home目录为例。
扩容前先利用命令vgdisplay
查看扩容前的vg信息
执行扩容命令
vgextend centos /dev/sdc
,这样将新增磁盘挂载的磁盘扩容到VG Name
执行成功提示
$ sudo vgextend centos /dev/sdc
Volume group "centos" successfully extended
再次查看VG信息
vgdisplay
此时虽然VG已经扩容,但lv信息并未改变,通过命令lvdisplay
和df -h
所查看的信息尚未变化,也即尚未真正扩容。
lv扩容
执行命令lvextend -L +1T /dev/centos/home
,命令格式
lvextend -L [+size,单位可以是M|G|T,不超过新加磁盘的空间] 待扩容的逻辑卷
执行结束提示成功
这是,虽然lv信息已经改变,但是df -h
还是没有变化,
重置逻辑卷
这里注意,先用blkid
命令查看文件系统类型
如果是Linux6.x使用的命令(ext格式)是
resize2fs [参数]
如果是linux7.x的系统使用命令(xfs格式):
xfs_growfs [参数]
此时,再次查看磁盘信息,已成功扩容
重启服务器,仍然有效
注意事项
- 以上命令基本都需要管理员权限
- 扩容操作,对普通用户透明;无需迁移数据;
- 重启服务器,无需手工挂载新磁盘
相关资料
同样的问题,这里有一些其他的方法,比如(详细讲解)解决ubuntu根目录/和用户目录/home分区太小(重新挂载home以及其他目录),Linux系统下对目录扩容的方法介绍:挂载新硬盘后,将指定目录重新重定向到新的磁盘分区,但需要完全迁移数据到新磁盘,若目录较大,磁盘速度较慢,比较耗时(不清楚原目录的空间是否能够回收再利用)。一般的方法,在修改重定向后,还需要修改配置文件,保证重启后自动挂载新添加的磁盘LINUX /home 目录扩容。
还有一些方法,是在虚拟机环境下的指定目录扩容,如linux扩充/home内存容量,并未测试在物理机环境上是否有效。
【解决】linux磁盘扩容大全:新增磁盘、原磁盘扩容、home分区root分区扩容CentOS8.4对home目录扩容