VMware虚拟机(centos7)硬盘扩容

背景:虚拟机中的容量不足,需要扩容60G到/home中,我已经做完,这里做一些截图和步骤,方便下一次扩容的方便。

检查当前容量状态

命令:df -h
VMware虚拟机(centos7)硬盘扩容

为虚拟机增加硬盘

  • 右击虚拟机,点击设置,出现下图
    VMware虚拟机(centos7)硬盘扩容
  • 点击添加,选择硬盘,下一步
    VMware虚拟机(centos7)硬盘扩容
  • 选择默认的SCSI,下一步
    VMware虚拟机(centos7)硬盘扩容
  • 创建新的虚拟机硬盘
    VMware虚拟机(centos7)硬盘扩容
  • 选择硬盘大小
    VMware虚拟机(centos7)硬盘扩容
  • 选择储存位置与名称(这里可以自行选择储存的位置,找一个大一点的硬盘储存即可),将来拷贝虚拟机的时候可以直接将这些文件一起拷走就行。
    VMware虚拟机(centos7)硬盘扩容

重启虚拟机

记得,这里需要重启虚拟机,因为不重启虚拟机无法检测新添加的硬盘(我所知道的的方式,后续有较好的方法再补充)

将添加的硬盘转化为LVM

LVM是扩容时使用的空间的格式,是linux特有的空间处理方法。

  • 利用fdisk -l命令检查新添加的硬盘
    VMware虚拟机(centos7)硬盘扩容
    从检查的结果看,对于原来存在的硬盘,它已经进行了分区(sda1-3,sdc1-3),并且不同的分区分配了不同的大小空间。但是新的磁盘是没有进行分区的,自然也没有分配大小。

  • 分区
    要对新添加的磁盘进行分区,并且转化为LVM的格式才可以进行扩容
    分区命令 fdisk /dev/sd+(新添加的磁盘号码,比如e)
    VMware虚拟机(centos7)硬盘扩容
    这里需要进行的操作是按照提示划分出我们想要的分区大小。分区结束后,输入t(转换分区的格式),然后选择8e(选中LVM格式)
    分区完成后,输入w即可完成分区操作。
    由于已经将所有的空间划分了,这里没有可用的sector了,所以没办法进行分区,下次分区的时候吧截图带上。

创建PV分区

  • 检查当前PV状态
    VMware虚拟机(centos7)硬盘扩容
    利用 pvdisplay命令显示pv分区,这里可以看出每一个分区的详细情况(PV名称,对应的VG名称,空间大小)。可以看出PV分区是与硬盘分区对应的。VG分区(centos)则可以对应多个PV分区,成为一个大的空间。这里的VG分区名称我们后续也会用到

  • 创建PV分区
    命令:pvcreate
    VMware虚拟机(centos7)硬盘扩容

合并PV到VG组中

  • 检查已有的VG组
    命令:vgdisplay
    VMware虚拟机(centos7)硬盘扩容
    这里我们可以看到VG组的名称为centos,格式为lvm2.VG的大小为248G,已经分配的PE(Alloc PE),和可用的PE(Free PE).我们分配用的空间就是用的Free PE中的大小,所以下次我们想要分配空间时,再添加新的硬盘之前先检查Free PE中还有没有空间可以用。假如存在的话,就不用添加硬盘,接着下面的步骤添加空间即可。
  • 扩充VG空间
    命令:vgextend
    VMware虚拟机(centos7)硬盘扩容

扩充LV空间

  • 检查已有的LV空间
    命令:lvdisplay
    VMware虚拟机(centos7)硬盘扩容
    这里我们可以看出不同的LV是对应着不同的组的,比如LV name是home,他的LV Path是/dev/centos/home。
    这里的结果我们可以结合df -h的结果对应着看
    VMware虚拟机(centos7)硬盘扩容
    假如我们想添加空间到/home中,可以在df -h的结果中看到其对应着/dev/mapper/centos-home。此时centos-home也就对应着LV中的VG name-LV name。可以利用这个对应的信息进行扩容。

  • 扩容(两种方式)
    指定大小的扩容(lvextend -L)
    VMware虚拟机(centos7)硬盘扩容
    指定百分比的扩容(百分比指的是占 Free PE的百分比)(lvextend -l)
    VMware虚拟机(centos7)硬盘扩容

  • 检查
    此时再用vgdisplay命令检查Free PE的空间就会发现,Free的空间变小了(我这里数据与之前处理的数据总量不对应,因为前面的截图是后来加上的)

VMware虚拟机(centos7)硬盘扩容

使空间可用

  • 检查空间状态
    虽然给LV组添加了空间,但是通过df -h命令查看发现还是没有变化,这是因为格式还不对,需要用另外一个命令将这个空间再次转化
    VMware虚拟机(centos7)硬盘扩容

  • 最后一步
    通过xfs_growfs命令使得新增加的空间可用(此时df -h检查就可以发现/home的空间增大了)
    VMware虚拟机(centos7)硬盘扩容
    另外,对于不同的文件系统有不同的命令,我的文件系统(xfs)利用的命令式xfs_growfs,对于另外的系统可以用ext2/3/4则使用resize2fs命令执行即可。