最近在使用Docker容器的过程中,往往会上传许多文件,下载镜像等操作会导致虚拟机的磁盘空间被大量的占用。由于前期规划的磁盘空间过小,之前没有接触过虚拟机的扩容,简单的认为可以直接修改机器配置,修改磁盘大小,就可以进行扩容,解决磁盘空间不足的问题。但真正遇到该问题,准备解决的时候,发现并不简单,需要在虚拟机中按顺序执行许多的指令,才能实现扩容。
比如个人的虚拟机,初试分配的是20G,目前磁盘可用只用18M:
最终的效果: 想在现有基础上对根目录【 / 】扩充 10 个 G,该如何操作呢?
点击扩展按钮,对原有磁盘大小进行设置,从 20GB 修改为 30GB。
之后会提示的提示框信息。直接确定。此时会显示拥有30G的空间。
点击“开启此虚拟机”启动系统。下面就需要按照顺序执行指令了,每个人的虚拟机名字和系统存放位置不一样,一定要根据本机进行替换,准备进行进一步的配置。
该指令可以查看磁盘分区,本机有两个磁盘sda1和sda2。
fdisk -l
使用 Linux 的 fdisk 分区工具开始给磁盘分区。
fdisk /dev/sda
输入 p(创建主分区)。
回车后 分区号(partition number)输入3(因为上面已经有两个分区 sda1 和 sda2),
回车会提示输入分区的 start 值,输入默认即可(即当前最小值),注意一定要输入正确。
回车会提示输入分区的 end 值,默认即可(即当前最大值),注意一定要输入正确。
到此分区划分完毕。
通过第五部分已经划分出了sda3这个分区。再次使用
fdisk -l
可以看到新加的sda3分区已经出现:
上图的红色方框区域,可以看到 /dev/sda3 的 Id号为 83,需要要将其改成 8e(LVM卷文件系统的 Id),具体方法,如下图所示:
fdisk /dev/sda
输入 m 查看帮助信息。
分别输入:
t 并回车,
3(选择3号分区)并回车,
L 并回车。
输入8e 回车。
输入w保存
修改后的信息如下,可以看到已经将sda3修改为系统卷id:
一定一定一定重启系统。
创建好新分区(第五部分),并修改好id后(第六部分),才开始正式的扩容工作(第七部分)。
使用lvs显示逻辑卷分区信息:
lvs
注意此处为/centos/root后续,在扩充逻辑卷分区中会用到,每个机子都不一样,根据自己的需要进行更改!
显示卷组信息:
vgdisplay
pvcreate /dev/sda3
注意:
(1)创建物理卷:必须先对硬盘进行分区(第五部分),并将硬盘分区类型设置为“8e”(第六部分),才能使用pvcreat指令。
(2)找不到 sda3:可能是第六部分结束后忘记重启。
pvcreate /dev/sda3
扩展卷组:
centos: 是执行vgdisplay后的VG name对应的值,根据个人情况修改。
vgextend centos /dev/sda3
再次显示卷组信息:可以看到Free PE从0变为10.00Gib,说明我们最多可以有 10GB 的扩充空间。
vgdisplay
扩充逻辑卷分区:
centos/root: 是根据第七部分一开头的lvs中显示的VG 和 LV内容进行的替换,根据个人情况修改。
lvextend -L+9.8G /dev/centos/root /dev/sda3
此处不推荐使用resize2fs指令会报错,此时使用另一个语句
使用 xfs_growfs
xfs_growfs /dev/centos/root