如何调整(特别是增加)在 VMWare ESXi 4.1 下运行的 Fedora 客户 VM 的磁盘大小?
我有一台 Fedora 16 VM,磁盘为 lvm2 格式,我使用 vSphere 客户端将其磁盘大小从 50GB 增加到大约 250GB。我重新启动了客户机,它使用 正确显示了此大小fdisk -l /dev/sda
。但是,df -H
仍然显示旧大小。
我找到了一些知识库文章解释了如何调整某些 Linux 版本的分区大小,但没有介绍如何调整带有 ext4 的 Fedora 分区大小。该文章似乎暗示我必须创建一个全新的分区,而不能简单地扩展现有分区。使用 Gparted 还阻止我简单地调整现有分区的大小。这在 Linux 下不可能做到吗?
编辑:事实证明驱动器被格式化为 LVM2,显然大多数 Linux 工具(例如 GParted)都不支持。
编辑:我需要调整大小的逻辑卷中的分区是根分区。有没有办法在没有 LiveCD 的情况下做到这一点?
答案1
这是我为内部使用而编写的一份文档的剪切粘贴,尽管它可能过度回答了你的问题,但我想把它放在这里,以防它对你或其他人有用。
以 root 身份登录到机器,或者
sudo
输入以下每个命令fdisk –l
,您应该会看到类似这样的内容;Disk /dev/sda: 21.1 GB, 21xxxxxxxxx bytes 255 heads, 63 sectors/track, 5221 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 2610 20860402+ 8e Linux LVM
在这种情况下,我改变了值,但正如您所看到的,这台机器有一个~20GB 的根虚拟磁盘,其中有两个分区,sda1 和 sda2,sda2 是我们的第一个 LVM“物理卷”,看看 LVM 如何使用分区类型“8e”。
现在输入
pvdisplay
,您将看到第一个 PV(sda2)的部分,如下所示;--- Physical volume --- PV Name /dev/sda2 VG Name rootvg PV Size 19.89 GB / not usable 19.30 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 636 Free PE 0 Allocated PE 636 PV UUID PgwRdY-EvCC-b5lO-Qrnx-tkrd-m16k-eQ9beC
这表明第二个分区(sda2)被映射到名为“rootvg”的“卷组”。
现在我们可以使用常用的 vSphere VSClient 增加虚拟磁盘的大小,方法是选择虚拟机,选择“编辑设置”,然后选择“硬盘 1”。然后,您可以增加“已配置大小”数字(只要没有快照),然后选择“确定”。这将需要几秒钟才能完成。
如果你随后切换回 Linux VM 并输入
echo "- - -" > /sys/class/scsi_host/hostX/scan
其中 X 字符可能为零,它将执行 SCSI 总线重新扫描,然后运行
fdisk –l
,您应该会看到类似的内容;Disk /dev/sda: 42.2 GB, 42xxxxxxxxx bytes 255 heads, 63 sectors/track, 5221 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 2610 20860402+ 8e Linux LVM
您会看到磁盘大小已经增加,在本例中从~20GB 增加到~40GB,但分区表保持不变。
我们现在需要创建一个新的 LVM 分区,输入
parted
,您应该会看到类似这样的内容;GNU Parted 1.8.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
现在您需要为额外的新空间创建一个新的分区,输入“p”来查看当前分区表,例如:
Model: VMware Virtual disk (scsi) Disk /dev/sda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 107MB 107MB primary ext3 boot 2 107MB 21.5GB 21.4GB primary lvm
然后输入
mkpart
,然后选择“p”表示“Primary”,对于文件系统类型输入“ext3”,对于开始输入一个略高于上面列出的两个“大小”组合的数字(即 107MB + 21.4GB,所以说 21.6GB),对于结束输入磁盘的大小(即在本例中为 42.9GB)。按下回车键后,它将创建这个新的主分区,输入“p”以显示新的分区表,您应该会看到类似的内容;Model: VMware Virtual disk (scsi) Disk /dev/sda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 107MB 107MB primary ext3 boot 2 107MB 21.5GB 21.4GB primary lvm 3 21.5GB 42.9GB 21.5GB primary ext3
您会看到新分区在前两个分区之后开始并填充可用空间,不幸的是我们必须将其设置为“ext3”类型,所以让我们更改它。
输入“t”,然后输入分区号(在我们的例子中为 3,因为它是第三个分区),然后在“十六进制代码”中输入“8e”——完成此操作后再次输入“p”,您应该会看到它变为“Linux LVM”;
Disk /dev/sda: 42.9 GB, 42949672960 bytes ads, 63 sectors/track, 5221 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 2610 20860402+ 8e Linux LVM /dev/sda3 2611 5221 20972857+ 8e Linux LVM
现在我们需要在这个新分区中创建一个新的 LVM“物理卷”,输入
pvcreate /dev/sda3
,这将创建一个名为 /dev/sda3 的新 LVM PV,输入pvdisplay
以检查;--- Physical volume --- PV Name /dev/sda3 VG Name PV Size 20.00 GB / not usable 1.31 MB Allocatable no PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID gpYPUv-XdeL-TxKJ-GYCa-iWcy-9bG6-tfZtSh
您应该会看到与上面类似的内容。
现在我们需要扩展‘rootvg 卷组’,或者为非根‘卷组’创建一个新的,输入
vgdisplay
列出所有‘卷组’,这里有一个例子;--- Volume group --- VG Name rootvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 19 VG Access read/write VG Status resizable MAX LV 0 Cur LV 8 Open LV 8 Max PV 0 Cur PV 2 Act PV 2 VG Size 21.3 GB PE Size 32.00 MB Total PE 1276 Alloc PE / Size 846 / 26.44 GB Free PE / Size 430 / 13.44 GB VG UUID tGM4ja-k6es-la0H-LcX6-1FMY-6p2g-SRYtfY
如果您想要扩展“rootvg 卷组”类型
vgextend rootvg /dev/sda3
,按下回车键后您将看到一条消息,提示“卷组”已扩展。如果您想创建一个新的“卷组”,您将需要使用该
vgcreate
命令 - 最好打电话给我寻求帮助。
一旦扩展,
vgdisplay
再次进入即可看到“rootvg”“卷组”确实已扩展,例如这里;--- Volume group --- VG Name rootvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 19 VG Access read/write VG Status resizable MAX LV 0 Cur LV 8 Open LV 8 Max PV 0 Cur PV 2 Act PV 2 VG Size 39.88 GB PE Size 32.00 MB Total PE 1276 Alloc PE / Size 846 / 26.44 GB Free PE / Size 430 / 13.44 GB VG UUID tGM4ja-k6es-la0H-LcX6-1FMY-6p2g-SRYtfY
您可以看到“VG Size”符合预期。
现在我们需要扩展“逻辑卷”,输入
lvdisplay
以显示我们的“逻辑卷”,您将看到类似的内容;--- Logical volume --- LV Name /dev/rootvg/var VG Name rootvg LV UUID NOP1jF-09Xt-LkX5-ai4w-Srqb-xGka-nYbI2J LV Write Access read/write LV Status available # open 1 LV Size 3.00 GB Current LE 320 Segments 3 Allocation inherit Read ahead sectors auto currently set to 256 Block device 253:2
如果我们要将 /var 文件系统从 3GB 扩展到 10GB,那么输入
lvextend –L 10G /dev/rootvg/var
,现在再次输入lvdisplay
,您会看到“逻辑卷”已经增长到 10GB;--- Logical volume --- LV Name /dev/rootvg/var VG Name rootvg LV UUID NOP1jF-09Xt-LkX5-ai4w-Srqb-xGka-nYbI2J LV Write Access read/write LV Status available # open 1 LV Size 10.00 GB Current LE 320 Segments 3 Allocation inherit Read ahead sectors auto currently set to 256 Block device 253:2
现在我们需要做的最后一件事是扩大实际的文件系统,顺便说一下,这不必使用所有新添加的空间。输入
df –h
以显示当前文件系统,以下是示例;Filesystem Size Used Avail Use% Mounted on /dev/mapper/rootvg-root 2.0G 1.4G 495M 74% / /dev/mapper/rootvg-home 248M 124M 113M 53% /home /dev/mapper/rootvg-var 3.0G 1.1G 1.8G 30% /var /dev/mapper/rootvg-usr 3.0G 936M 1.9G 34% /usr /dev/mapper/rootvg-opt 3.0G 811M 2.0G 29% /opt
如果我们想将 /var 文件系统从 3GB 扩展到 10GB,则输入
resize2fs /dev/mapper/rootvg-var
(在 CentOS 上可能为xfs_growfs /dev/mapper/rootvg-var
,或者根据文件系统的类型输入类似命令)。按下回车键时,实际文件系统将增长,这可能需要一些时间,df –h
完成后输入以检查。Filesystem Size Used Avail Use% Mounted on /dev/mapper/rootvg-root 2.0G 1.4G 495M 74% / /dev/mapper/rootvg-home 248M 124M 113M 53% /home /dev/mapper/rootvg-var 9.88G 1.1G 8.2G 12% /var /dev/mapper/rootvg-usr 3.0G 936M 1.9G 34% /usr /dev/mapper/rootvg-opt 3.0G 811M 2.0G 29% /opt
你现在完成了!
答案2
在 lvextend 之前执行以下步骤
#pvcreate /dev/sda3(创建一个新的物理卷,如果无法创建,那么可能是在创建分区后没有重新启动)
#pvdisplay(检查您是否已创建新的物理卷)
#vgcreate 卷组 /dev/sda3(将 VolGroup 分配给新的物理卷)
#lvdisplay(获取要扩展的分区的逻辑路径名)
#lvcreate -LxxGB -n root_new VolGroup(分配逻辑大小并创建新的逻辑卷)
#lvextend /dev/mapper/VolGroup-lv_root /dev/sda3(最后扩展根(if)分区)
#lvdisplay(检查路威酩轩尺寸是否增加)
#resize2fs /dev/mapper/VolGroup-lv_root(调整实际文件系统的大小)
#df-h(然后检查实际文件系统值是否增加了)
答案3
你必须立即调整其大小
resize2fs /dev/sda
您必须在 2.6 内核上执行此操作,并且挂载文件系统并启用允许在线调整大小的参数。否则,您必须先卸载设备,调整大小,然后再次挂载设备。