扩展虚拟机VM的磁盘空间(LVM)

扩展虚拟机VM的磁盘空间(LVM)

该技术文档下载: http://down.51cto.com/data/450985
 
我在做服务器虚拟化的时候,经常碰到有人要将虚拟机的磁盘空间扩大,如果是新添加一块磁盘的话,在服务器中是比较好看到的。但如果是在虚拟机原有的磁盘上继续扩大,这又怎么让虚拟机识别出来并挂在到根目录下了?
 
使用的虚拟化软件: VMWare ESXi 5.0 (任何一个平台的虚拟机都可使用该方法扩展硬盘空间)
ESXi 上新建了一个虚拟机,安装 CentOS5.5 系统时低估了它能占用的磁盘空间, 现在空间不够使用了,需要给它扩展。我们最常见的就是新添加一块硬盘然后挂载到根目录下就 OK 了,这种方法很常见,网上也有很多文档,我这就不多说了。但是我这写的这个是在原来的一块硬盘上直接扩大磁盘空间。玩虚拟化的都知道编辑下虚拟机,然后把虚拟机的磁盘改大空间就好了,问题是这样怎么在系统里显示出来了。
我们都知道,要是新添加一块硬盘的话,通过 fdisk  -l 就能看到第二块磁盘了,然后对第二块磁盘进行分区格式化就 OK 了。但是在只有一块磁盘的情况下,怎么让它扩大空间在系统里显示出来了?下面我们详细说明:
第一步,先编辑虚拟机,扩大磁盘;
看图,我原虚拟机的磁盘是 300G ,现在要扩大到 800G
1. 右击该虚拟机 —> 编辑设置 —> 硬盘 1—> 扩大磁盘
 
2. 现在在虚拟机 CentOS 系统里看不到刚加入的磁盘空间;
 
我们使用命令查看到,改虚拟机 CentOS 系统里只有一个磁盘 sda ,有两个分区 sda1 sda2 ,在根目录下挂载了 286G
OK ,现在我们来把刚新扩展的 500G 磁盘空间让它显示在系统中。
         3. 使用 fdisk 命令,新建分区 sda3 n 命令建个 P 类型的磁盘,然后用 t 命令更改 ID 8e LVM 类别)。
[root@*****~]# fdisk /dev/sda
 
The number of cylinders for this disk is set to 39162.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
 
# 输入 n ,新建分区
Command (m for help): n
# 输入 P ,主分区
Command action
   e   extended
   p   primary partition (1-4)
p
# 目前是 sda 第三个分区输入 3
Partition number (1-4): 3
# 敲回车,默认就行了(如果要分多个分区,这儿就制定数值)
First cylinder (39163-110960, default 39163):
Using default value 39163
Last cylinder or +size or +sizeM or +sizeK (39163-110960, default 110960):
Using default value 110960
# 这里输入 t
Command (m for help): t
# 这里选择第三个分区
Partition number (1-4): 3
# 指定分区的格式为8e (LVM)
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
# 输入 p 查看一下
Command (m for help): p
Disk /dev/sda: 912.6 GB, 912680550400 bytes
255 heads, 63 sectors/track, 110960 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       39162   314464342+  8e  Linux LVM
/dev/sda3           39163      110960   576717435   8e  Linux LVM
# 这里输入w,保存退出
Command (m for help): w
The partition table has been altered!
Calling 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.
Syncing disks.
# 重启使其生效
[root@***** ~]# reboot
Broadcast message from root (pts/1) (Tue May 15 12:12:27 2012):
The system is going down for reboot NOW!
[root@***** ~]#
 
 
第二步,加入 LVM ,挂载到根目录下;
在这步有两种方法扩容“ / ”根目录,一种是把 /var /usr 、等迁移到 sda3 ,然后做 ln  -s 连接,但这种 方法如果 sda3 挂掉的话,那就只能哭了。
本文使用的是另一种方法:
1. 查看卷组情况,可以看到只有一个卷组 VolGroup00 (此名称因系统而异)
[root@*****~]# vgs
  /dev/hdc: open failed: 找不到介质
  VG         #PV #LV #SN  Attr    VSize    VFree
  VolGroup00   1   2   0  wz--n-  299.88G    0
2. 创建物理卷( LVM 分区),并将物理卷加入到组里( VolGroup00 );
[root@*****~]# lvm
lvm>pvcreate /dev/sda3 ## 创建一个 LVM 硬分区
  Physical volume "/dev/sda3" successfully created
lvm> vgextend VolGroup00 /dev/sda3 ##
加入与 / 目录同一个 LVM
  Volume group "VolGroup00" successfully extended
(如果没有格式化就会报如下错误:
lvm> pvcreate /dev/sda3
  Can't open /dev/sda3 exclusively.  Mounted filesystem?
[root@*****~]# mkfs.ext3 /dev/sda3 ## 没有成功是因为没有格式化,要与 / 目录格式一样。)
查看一下:可以看到 sda3 500G 的空间可以扩充使用;
 
2. 挂载到“ / ”根目录下, 将卷组下的卷 LogVol00 扩容 500G (增加容量的关键);
 
3. 重新识别磁盘容量;
[root@*****~]# resize2fs /dev/VolGroup00/LogVol00
 
4. 查看最终结果:
 
好了,我们可以在虚拟机 CentOS 系统中看到磁盘空间已经扩容为 800GB ,到此完成!
 
LVM 管理磁盘不需要在 /etc/fstab 中加载,增加减少容量也不会对文件造成损失。)
 
该技术文档下载:http://down.51cto.com/data/450985
(包含相关的报错信息)
 

你可能感兴趣的:(VM,lvm,扩展磁盘,虚拟机扩展磁盘空间)