在 VMWare (ESXi 4.1.0) 客户机上扩大 Linux (CentOS 5.04) LVM 磁盘/分区

Resizing an LVM Volume/Partition in VMWare (ESXi 4.1.0) Linux (CentOS 5.04) Guest
虚拟机用了一段时间后磁盘越来越吃紧了,试验了一个可行的方法把磁盘变大。
一、扩容虚拟硬盘
通常只需要把虚拟机关机,在虚拟机设置里面直接把硬盘调大就可以。我的例子稍微复杂一点,因为原来的硬盘模式是thick,想趁这次机会改成thin。Thick模式下物理机上的硬盘文件一上来就会和设置值一样大,thin模式下是按需分配,用多少硬盘文件就多大,最大值还是和设置值一样。
1. 在VMWare管理界面里创建一个thin模式的新硬盘,设置成SCSI (0:1)。反正是thin模式,容量设大一点。
2. 客户机开机,root登录。
3. 确认一下 /dev/sdb 已经在了。
4. 把原来硬盘的内容复制到新硬盘来,执行:dd -if=/dev/sda -of=/dev/sdb 等执行完大概要个十分钟。
5. 客户机关机。
6. 在VMWare管理界面里删除原来硬盘 SCSI (0:0),把新硬盘改成 SCSI (0:0)。
7. 客户机开机,登录检查一下是否一切正常。
另一种更简单的方法就是让虚拟机永久挂载新旧两个硬盘,省略dd的步骤,在下面LVM设置里让卷组 (volume group) 分跨在两个硬盘上。
--------------------------------------------------
二、调整分区
CentOS默认分区是LVM格式,是一种自由度很高的分区模式。一般来说可以直接在本机操作LVM,保险起见我用了另外一个系统来操作。手边有Ubuntu安装盘的,可以直接用那张光盘启动到LiveCD模式。下载嫌太大的话可以用别的Linux LiveCD,我用了Parted Magic的LiveCD(http://partedmagic.com/doku.php?id=downloads),180M左右。包含了所有需要的命令。
1. 客户机开机按F2进BIOS,设置光驱启动。
2. 利用fdisk分区:
fdisk /dev/sda
新建分区
Command (m for help): n
选扩展分区
e
根据硬盘情况选Partition number,我的例子是4
默认First cylinder、Last cylinder
改变分区类型
t
选择刚才的Partition number,比如我的例子是4
Partition number (1-4): 4
选择LVM (编号8e)
Hex code (type L to list codes): 8e
写入分区表
w
退出fdisk
q
重启客户机
--------------------------------------------------
三、设置LVM
再次进入LiveCD
查看已有的物理卷 (physical volumes)
pvdisplay
我的例子里已经有了/dev/sda2和/dev/sda3组成了名为VolGroup00的卷组 (volume group)
创建phisical volume,因为刚才已经有了/dev/sda2和/dev/sda3,就新建/dev/sda4(即fdisk里新建的#4分区)
pvcreate /dev/sda4
将现有的卷组VolGroup00扩展到新建的物理卷/dev/sda4上
vgextend VolGroup00 /dev/sda4
核实卷组信息
vgdisplay
其中的VG Size应该是扩容后的容量
先找出已有逻辑卷 (logical volume, 也就是我们看到的分区) 的名字
lvdisplay
我的例子中为/dev/VolGroup00/LogVol00
将逻辑卷扩容至所有可用空间
lvextend -l +100%FREE /dev/VolGroup00/LogVol00
--------------------------------------------------
四、让文件系统识别新的逻辑卷
e2fsck -f /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
完成

相关推荐