前言


本文档主要是介绍如何在ESXi上扩容安装了Linux系统的虚拟机



操作环境

操作系统:Esxi 6.0.0

虚拟机操作系统:Linux version 3.10.0-327.3.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Wed Dec 9 14:09:15 UTC 2015

当前硬盘大小:30GB

计划硬盘扩容大小:20GB

 


Linux磁盘管理基础知识介绍

物理卷Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。

卷组Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。

逻辑卷Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件

系统。

可以做这样一个设想来理解以上三者的关系:如果把PV比作地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地

球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV

 

Linux中规定,每个硬盘设备最多只能由4个主分区(其中包括一个扩展分区)构成任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4个。(Linux 下面每一个硬盘总共最多有 16 个分区)

 


操作步骤

1.确认分区类型

 

由于本方法只针对LVM类型的分区,故在扩容之前先通过以下命令检查分区类型是否为Linux LVM类型。

 

fdisk -l


wKiom1ebEV-Ch8ZmAABTZmKnH-Y620.png-wh_50


如上图所示,/dev/sda2 system一栏中被标记为Linux LVM类型,他们的Id8e8e代表Linux LVM83代表Linux Native分区。确认为LVM之后,继续我们的扩容工作。

 

下图使用 df -h 命令,查看当前系统磁盘容量和使用情况,目前的大小大约有27GB,计划扩展20GB,总容量达到47GB。我们打算把20GB的新磁盘扩展到 /dev/mapper/centos-root 这个目录下面。


wKioL1ebEafSYSzIAAAdGhdLCFg786.png-wh_50



注:因为LVM是逻辑卷磁盘管理程序,故/dev/mapper/centos-root 实际上是在/dev/sda2 上,所以在fdisk -l 中显示的设备信息中只有/dev/sda2 的分区类型,而看不到/dev/mapper/centos-root 分区,因为它只是逻辑上存在。所以需要确认分区类型的是/dev/sda2 而不是 /dev/mapper/centos-root,不要晕。。。



2.增加虚拟物理硬盘大小

 

使用vSphere Client 客户端访问vCenter,选中需要扩容的虚拟机(本文选中211),右键点击该虚拟机,选择“编辑设置”。跳出以下画面


wKiom1ebEeqhQc-jAACUSa8elj8630.png-wh_50



选择“硬盘1”,将“磁盘置备”中的“30GB,改为“50GB

 

注:如果你的虚拟机的“编辑设置”中无法修改硬盘大小的时候(图中“置备大小”后的值是灰色,无法修改),原因可能是你在这台虚拟机上使用了快照功能。你只需要关闭虚拟机,右键点击该虚拟机,选择“快照”,再选择“快照管理器”,然后将所有快照删除,再开启虚拟机,即可修改硬盘大小。



3.发现新磁盘

 

重启虚拟机,使用 fdisk -l 查看是否系统识别到新增的磁盘空间。


wKioL1ebEinwHtZWAABkqT_1BFo782.png-wh_50


如图所示,磁盘大小从32.2GB,扩容到53.7GB



4.给新磁盘分区

 

好了,新的磁盘被识别到了,现在需要给磁盘分区,让系统能使用到这个新的磁盘空间。

我们现在要在磁盘 /dev/sda 上分区(注意:linux中一块硬盘的主分区个数不能超过4个,目前sda1,sda2已经占用了两个分区名额,新增的分区应该为第三个主分区,即sda3)。现在开始给磁盘 /dev/sda 分区。我们这里使用的工具是fdisk。输入以下命令:

 fdisk /dev/sda


wKioL1ebEpGRbvitAAAasHN34U4171.png-wh_50



如果需要帮助,你可以输入m获取更多信息。

现在我们来创建新分区,输入 n


wKiom1ebErXR0NgKAAAawAFVr2Q452.png-wh_50


输入p,代表我们现在要创建一个主分区


注:2 primary0 extended2 free表示目前我们这块硬盘上有2个主分区,0个拓展分区,还可以再创建2个主分区。


wKiom1ebEt-AEBFQAAAJjDydpcs337.png-wh_50



输入3,代表创建分区sda3


wKioL1ebEwfDQzdnAAAIJM3eCsY900.png-wh_50


接下来指定起始扇区和Last扇区,只要敲两下回车键,选择默认值就好了。


wKiom1ebEymjSCSMAAAeWN1QWl0907.png-wh_50




至此,分区工作已完成。

 

现在要给新建分区指定分区类型了。

输入t,再输入3,表示选择新建的sda3分区,最后输入8e,代表选择的是LVM类型。


wKiom1ebE0rCnHNGAAAa1G9__Sc509.png-wh_50


大功告成,最后输入w保存我们的配置结果吧。


wKioL1ebE3DhO-CuAAAhjcbuhac668.png-wh_50


可以用fdisk -l查看你新建的分区sda3.


wKioL1ebE5LT8oPWAABd9JDBTG0838.png-wh_50



5.新增逻辑卷LV

 

分区建好了,为了让之后的LVM可以使用到这个分区,我们需要在新的分区 /dev/sda3 上创建物理卷PV

输入以下命令:

 pvcreate /dev/sda3


wKiom1ebE7HRNEUSAAAI252mgYo404.png-wh_50




好吧,忘了和你说了,你需要重启电脑现在。。。 reboot

或者如果你不想重启电脑,也可以使用partprobe命令


wKiom1ebE9Sw_vo5AAAKCXkwCkE015.png-wh_50




再来一遍  pvcreate /dev/sda3

 

 

接下来,我们需要先确认卷组(VG),使用以下命令:

Vgdisplay


wKiom1ebFEXAaC8VAAAu4qnjqsg240.png-wh_50



现在开始扩容VG大小,使用以下命令:

vgextend centos /dev/sda3


wKioL1ebFGODZyH0AAAIypWAMus241.png-wh_50



注: centos 是本机的VG Name,每个系统的名字不同,需要用vgdisplay提前查看。

 

注:如果磁盘容量不足,会有错误提示:Couldt create temporary archive name. Volume group centos metadata archive failed. Internal error:Attemp to unlock unlocked VG #orhans. 原因是因为磁盘空间实在太小了,无法创建临时文件来操作磁盘空间扩展。解决方法是,删除一些系统中没用的文件,再进行操作。

 

这时,可以使用pvscan 检查当前系统的pv情况,看看 /dev/sda3上的PV是否建成了。


wKiom1ebFIWBsb_cAAAPtjjOD68394.png-wh_50



再接下来,我们需要增大逻辑卷了,这一步主要目的是把刚刚创建的新分区和新物理卷PV  /dev/sda3扩展到当前的逻辑卷,让系统能识别并且使用这个新空间。

 

首先先确认当前的逻辑卷组,使用以下命令:

 lvdisplay 


wKioL1ebFKjTdhNnAABYgpXSwnc322.png-wh_50



如图,/dev/centos/root 是当前逻辑卷LV的挂载路径。使用以下命令扩展改逻辑卷:

 lvextend  /dev/centos/root  /dev/sda3


wKiom1ebFMnC3MOAAAARZ3hlkGI496.png-wh_50



逻辑卷扩展成功!但是还没完,最后,你需要告诉系统有这块新领域,你可以使用了。输入以下命令:

xfs_growfs /dev/centos/root


wKioL1ebFOWA3wsTAAA0a2TNlT8067.png-wh_50


注:如果你使用的文件系统是ext,需要使用命令 resize2fs /dev/centos/root

使用df -TH 查看文件系统,一般centos xfs,   unbuntuext3



wKioL1ebFQqTHzddAAAcnX2W5cw535.png-wh_50



最后检查一下你的成果吧

 df -h


wKiom1ebFSrzmv9MAAAhkc6Yhwg507.png-wh_50