添加新的虚拟硬盘

首先,我们向虚拟机添加一个新磁盘。
这是通过右键单击 vSphere 中的虚拟机,选择编辑设置,然后单击用于向虚拟机添加硬件的“添加...”按钮来完成的。

选择硬盘,点击下一步。

选择创建一个新的虚拟磁盘,然后单击下一步。

选择要添加的磁盘大小,如前所述,我将使用 20gb。
我还选择将磁盘与虚拟机一起存储,它将与虚拟机文件存储在同一数据存储中,这对于我的测试目的来说很好。
完成后点击下一步。

在高级选项页面上选择下一步。

查看所有内容并在确认设置后单击完成。

然后我们将在硬件设备选项卡下看到新磁盘,它会被标记为(添加),这意味着它在我们单击确定之前不会应用,因此单击确定以完成该过程。

检测新磁盘空间

在我对这个例子的测试中,一旦我通过 VMware 添加了另外的磁盘,它通过“fdisk -l”为我显示,你可以看到标有 /dev/sdb 的第二个磁盘(我已经裁剪掉了 /dev 上的信息/sda1 以减少这里的混乱)。
还值得注意的是,它显示为不包含有效的分区表,我们即将对其进行设置。

然而,这对我们来说可能并非如此,为避免重启,我们可能需要重新扫描设备,我们可以使用以下命令尝试此操作。
请注意,我们可能需要根据设置更改 host0。

echo "- - -" > /sys/class/scsi_host/host0/scan

如果我们在检测新磁盘时遇到问题,只需执行重新启动,它就会正确显示。

对新磁盘进行分区

我们现在需要对新的 /dev/sdb 磁盘进行分区以便可以使用它,这是通过使用 fdisk 来完成的。

fdisk /dev/sdb

这应该为我们提供以下提示,我输入的输入以粗体显示。

选择“n”来添加新分区。

jack@onitroad:~# fdisk /dev/sdb
Command (m for help): n

然后在我们制作主分区时选择“p”。

Command action
   e   extended
   p   primary partition (1-4)
p

由于这是一个新磁盘,我们还没有任何分区,因此我们将在此处使用分区 1.

Partition number (1-4): 1

接下来我们按两次回车键,因为默认情况下未分配空间的第一个和最后一个柱面应该是正确的。

First cylinder (1-2610, default 1): "enter"
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): "enter"
Using default value 2610

选择“t”以更改为分区系统 ID,在这种情况下,我们会自动更改为“1”,因为这是当前我们唯一的分区。

Command (m for help): t
Selected partition 1

输入了十六进制代码“8e”,因为这是 Linux LVM 的代码,这正是我们想要的分区,因为我们将把它与当前使用 /dev/sda5 的原始 Linux LVM 连接起来。

Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

'w' 用于将表写入磁盘并退出,所有已完成的更改将被保存,然后我们将从 fdisk 退出。

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

现在通过使用“fdisk -l”,我们将能够看到 /dev/sdb1 已列出,这是在我们新添加的 /dev/sdb 磁盘上创建的新分区,它目前正在使用所有 20gb 的空间。

识别分区类型

由于此方法侧重于使用 LVM,因此我们将首先通过运行以下命令来确认我们的分区类型实际上是 Linux LVM。

fdisk -l

下面是磁盘信息,显示我们的初始设置目前只有一个 20GB 的磁盘,它位于名为 /dev/mapper/Mega-root 的逻辑卷下,这是我们将使用新磁盘扩展的内容。

请注意,/dev/mapper/Mega-root 是当前由 /dev/sda5 组成的卷,这是我们将要扩展的卷。

增加逻辑卷

接下来,我们将使用 pvcreate 命令创建一个物理卷,供 LVM 稍后使用。
在这种情况下,物理卷将是我们新的 /dev/sdb1 分区。

jack@onitroad:~# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

现在我们需要使用 vgdisplay 命令确认当前卷组的名称。
该名称将根据设置而有所不同,对我而言,它是我的测试服务器的名称。
vgdisplay 提供了大量关于卷组的信息,我在这个例子中只显示了它的名称和当前大小。

jack@onitroad:~# vgdisplay
  --- Volume group --
  VG Name               Mega
  VG Size               19.76 GiB

现在使用 vgextend 命令,我们通过添加我们之前使用 pvcreate 命令创建的 /dev/sdb1 的物理卷来扩展“Mega”卷组。

jack@onitroad:~# vgextend Mega /dev/sdb1
  Volume group "Mega" successfully extended

使用 pvscan 命令我们扫描所有磁盘的物理卷,这应该确认原始 /dev/sda5 分区和新创建的物理卷 /dev/sdb1

jack@onitroad:~# pvscan
  PV /dev/sda5   VG Mega   lvm2 [19.76 GiB / 0    free]
  PV /dev/sdb1   VG Mega   lvm2 [19.99 GiB / 19.99 GiB free]
  Total: 2 [39.75 GiB] / in use: 2 [39.75 GiB] / in no VG: 0 [0   ]

接下来我们需要使用 lvextend 命令增加逻辑卷(而不是我们已经完成的物理卷)。
这意味着我们将采用原始逻辑卷并将其扩展到 /dev/sdb1 的新磁盘/分区/物理卷上。

首先使用lvdisplay确认逻辑卷的名称。
该名称将根据设置而有所不同。

jack@onitroad:~# lvdisplay
  --- Logical volume --
  LV Name                /dev/Mega/root
  LV Size                18.91 GiB

然后使用 lvextend 命令扩展逻辑卷。
我们正在将 /dev/Mega/root 的原始逻辑卷扩展到较新的 /dev/sdb1

jack@onitroad:~# lvextend /dev/Mega/root /dev/sdb1
  Extending logical volume root to 38.90 GiB
  Logical volume root successfully resized

如果你愿意,你可以再次运行 vgdisplay 和 lvdisplay 来分别确认卷组和逻辑卷的大小,我已经这样做了,现在我有以下内容。

LV Size                38.90 GiB
  VG Size                39.75 GiB

但是,如果我们运行“df”命令来查看可用磁盘空间,它不会发生变化,因为还有最后一步,我们需要使用 resize2fs 命令调整文件系统的大小以利用此空间。

jack@onitroad:~# resize2fs /dev/Mega/root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/Mega/root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 3
Performing an on-line resize of /dev/Mega/root to 10196992 (4k) blocks.
The filesystem on /dev/Mega/root is now 10196992 blocks long.

或者,如果我们正在运行 XFS 文件系统(RedHat/CentOS 7 的默认设置),我们可以使用“xfs_growfs /dev/Mega/root”来扩展文件系统。

我们可以使用 lvextend 命令的 -r 选项,而不是手动调整文件系统的大小,该选项将自动调整文件系统的大小以利用另外的磁盘空间。

调整大小需要一分钟左右才能完成(这将取决于磁盘速度和大小),现在运行“df”命令会显示 /dev/mapper/Mega-root 的正确磁盘空间

如何通过添加新磁盘来增加 Linux LVM 的大小

这篇文章将介绍如何为使用逻辑卷管理器 (LVM) 的运行 Linux 的 VMware 虚拟机增加磁盘空间。
首先,我们将向虚拟机添加一个新磁盘,然后在这个另外空间上扩展原始 LVM。
基本上我们将有两个物理磁盘,但只有一个卷组和一个逻辑组一起使用两个磁盘上的空间。
使用这种方法,虚拟机没有停机时间。

在我的示例中,我将使用运行 Debian 6 的 VMware 虚拟机,它设置了一个 20gb 的磁盘,我们将添加一个新的 20gb 磁盘,LVM 总大小为 40gb。

尽管我的示例使用了虚拟机,但如果我们添加了新的物理磁盘并希望使用它来扩展 LVM,则此方法也适用于物理服务器。

日期:2020-07-07 20:56:19 来源:oir作者:oir