目录

简介

背景信息

步骤

第1部分 — 确定需要添加空间的位置并确定需要添加的空间

第2部分 — 检查卷组中的可用未分配空间

第3部分 — 检查Datastore中是否有足够的可用空间

第4部分 — 在Datastore中使用可用空间以增加虚拟机的空间

第5部分 — 将新空间添加到分区

第6部分 — 调整物理卷的大小

第7部分 — 扩展卷组的大小以使用新空间

第8部分 — 调整逻辑卷上的文件系统大小以使用新空间

简介

本文档介绍如何向Linux虚拟机(VM)添加磁盘空间。

背景信息

Linux（和Linux VM）安装在硬盘上，无论是真实的还是虚拟的。在此之上，堆叠一个卷管理器，后跟一个通常使用的文件系统。

对于Linux VM，要增加文件系统的大小，需要执行以下步骤：

1. 确定需要添加空间的位置并确定需要添加的空间。

2. 检查卷组中是否有未分配的空间。

3. 检查数据存储中是否有可用空间。

4. 在datastore中使用可用空间以增加虚拟机的空间。

5. 将新空间添加到分区。

6. 调整物理卷的大小。

7. 扩展卷组的大小，使其使用新空间。

8. 调整逻辑卷上的文件系统大小，使其使用新空间。

注意：许多调整大小选项是RISK的，可能使VM处于不可引导状态或数据损坏。小心。

注意：在增加磁盘空间之前，请确保已清理现有文件系统。通常，/tmp、/var/tmp、/var/tmp/broadhop和/var/log中的文件不需要，可以删除，而不是添加磁盘空间。

步骤

第1部分 — 确定需要添加空间的位置并确定需要添加的空间

1. 使用Disk Free(df)命令可查找哪个分区需要更多空间，以及该分区位于何处。记录文件系统和装入值。例如，文件系统：  /dev/mapper/VolGroup00-LogVol03装载于：  /data。
#df -h
文件系统：______________________________安装在：____________________
以下是df -h命令的输出示例：

[root@sessionmgr02 ~]# df -h

Filesystem           Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

18G 2.4G   15G  15% /

/dev/mapper/VolGroup00-LogVol02

5.7G 140M  5.3G   3% /home

/dev/mapper/VolGroup00-LogVol03

30G  27G  1.5G  97% /data

/dev/sda1             99M  40M   55M  43% /boot

tmpfs                 16G   0    16G   0% /dev/shm

tmpfs                8.0G 1.1G  7.0G  13% /data/sessions.1

2. 使用物理卷显示命令(pvdisplay)查看卷组所在的物理卷(PV)名称。记录PV Name值(例如“PV Name:  /dev/sda2')。
# pvdisplay
PV名称：____________________________________
以下是pvdisplay命令的输出示例：

[root@sessionmgr02 ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sda2

VG Name               VolGroup00

PV Size               69.89 GB / not usable 18.64 MB

Allocatable           yes

PE Size (KByte)       32768

Total PE              2236

Free PE               320

Allocated PE          1916

PV UUID               HO3ICX-nRhO-FaBA-MvB3-Zlzv-JLG4-vNFQeU

注意：PV名称(/dev/sda2)显示两个内容。第一部分(/dev/sda)显示设备，第二部分(2)显示分区号。

3. 写下您希望（或需要）在此添加多少磁盘空间（例如，5表示5 GB）。
要添加的磁盘空间：<amount>:____________________________________

第2部分 — 检查卷组中的可用未分配空间

1. 输入“卷组显示”命令(vgdisplay)以检查“自由物理区(PE)大小”。记录分配PE/大小和空闲PE/大小值。例如，分配PE/大小：  59.88免费PE /大小：  15.00.
# vgdisplay

分配PE/大小：_________________________________空闲PE/大小：___________________

此处显示vgdisplay命令的输出示例：

[root@sessionmgr02 ~]# vgdisplay

--- Volume group ---

VG Name               VolGroup00

System ID

Format                lvm2

Metadata Areas         1

Metadata Sequence No   9

VG Access              read/write

VG Status              resizable

MAX LV                 0

Cur LV                 4

Open LV                4

Max PV                 0

Cur PV                 1

Act PV                 1

VG Size                74.88 GB

PE Size                32.00 MB

Total PE               2396

Alloc PE / Size        1916 / 59.88 GB

Free PE / Size         480 / 15.00 GB

VG UUID                pPSNBU-FRWO-z3aC-iAxS-ewaw-jOFT-dTcBKd

2. 如果“可用PE大小”空间大于您需要添加的空间，请继续阅读本文档的第7部分。否则，请继续第3部分。

第3部分 — 检查Datastore中是否有足够的可用空间

1. 以管理员（例如root）身份登录vSphere客户端。

2. 在树中选择顶级项目（通常是系统的IP）。

3. 在Summary（摘要）选项卡下，检查Datastore上的Free space（可用空间），以确保有足够的空间来扩展分区。

注意：如果有足够的可用空间用于此扩展，请继续执行第4节。如果可用空间不足，请停止此过程，并在继续之前将磁盘空间添加到Datastore。

第4部分 — 在Datastore中使用可用空间以增加虚拟机的空间

1. 登录VM，然后使用shutdown -h now命令关闭VM。
# shutdown -h now

此示例显示shutdown -h now命令的输出：

[root@sessionmgr02 ~]# shutdown -h now

Broadcast message from root (pts/0) (Wed Dec 18 11:48:20 2013):

The system is going down for system halt NOW!

2. 在VMWare vSphere客户端中，选择/突出显示虚拟机。然后，在“入门”选项卡中，单击“编辑虚拟机设置”。

3. 在弹出窗口中，选择“Hard Disk 1（硬盘1）”。

4. 按您在第1部分第3步中选择的量增加硬盘的调配大小。  然后单击 OK。
注意：增加的量必须小于Datastore上的可用空间量。  不要过度调配。

5. 在vShere中，单击绿色三角形以打开突出显示的VM。

注意：等待5分钟，使VM完全加载。

6. VM启动后，以根用户身份登录VM。
# ssh

此示例显示ssh命令的输出：

[root@pcrfclient01 ~]# ssh 172.10.1.30

\\Last login: Wed Dec 18 11:48:14 2013 from 172.10.1.9

Spacewalk kickstart on 2010-08-23

[root@sessionmgr02 ~]#

7. 使用固定磁盘(fdisk)命令查找您在第1部分步骤2中记录的PV名称的磁盘大小。记录磁盘大小。例如，磁盘大小：  75.0 GB.
# fdisk -l /dev/sda

磁盘大小：_______________________________

此示例显示fdisk -l /dev/sda命令的输出：

[root@sessionmgr02 ~]# fdisk -l /dev/sda

Disk /dev/sda2: 75.0 GB, 75047454720 bytes

255 heads, 63 sectors/track, 9124 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

此示例输出显示/dev/sda2当前已分配75G。

第5部分 — 将新空间添加到分区

1. 要调整分区大小，请输入fdisk命令，并使用PV Name（来自第1部分第2步），且PV Name(PV Name)的末尾不带数字。
# fdisk

此示例显示fdisk /dev/sda命令的输出：

[root@sessionmgr02 ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 9137.

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)

Command (m for help):

2. 在命令提示符下，输入p并按Enter以查看分区表。
Command (m for help): p

此示例显示在键入字母“p”后显示分区表的输出:

Command (m for help): p

Disk /dev/sda: 75.1 GB, 75161927680 bytes

255 heads, 63 sectors/track, 9137 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      9137     73288530   8e Linux LVM

Command (m for help):

3. 记录要调整大小的分区的开始和ID值。例如，从步骤2的示例输出中，开始：  14 ID:  8e。
开始：__________________________ID:______________________

4. 删除要调整大小的设备的分区条目。在命令提示符下输入d。
Command (m for help): d

此示例显示输入d后的结果:

Disk /dev/sda: 75.1 GB, 75161927680 bytes

255 heads, 63 sectors/track, 9137 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         9137     73288530    8e Linux LVM

Command (m for help): d

Partition number (1-4):

5. 在分区号提示符下，输入要删除的分区号，然后按Enter。（设备名称末尾的编号是分区编号。）
Partition number (1-4): <number>

此示例显示输入分区编号后的结果：

Disk /dev/sda: 75.1 GB, 75161927680 bytes

255 heads, 63 sectors/track, 9137 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help):

6. 在命令提示符下，输入n以创建新分区。
Command (m for help): n

此示例显示输入n后的结果:

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

Command (m for help): n

7. 输入p作为主分区。
Command (m for help): p

此示例显示在输入p后的输出:

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4):

8. 在“分区号”提示符下，输入分区号，然后按Enter（与删除的分区号相同）。 在本例中，数字为2。
Partition number (1-4): 2

此示例显示输入分区编号后的结果：

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9137, default 14):

9. 验证第一个圆柱号的默认值是否与本节步骤3中的“开始”值匹配。如果出现，请按Enter以接受默认值。  如果不匹配，请确保它不与任何现有分区重叠，然后手动输入值并按Enter。
此示例显示在您接受默认值并按Enter:

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9790, default 14):

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-9790, default 9790):

10. 对于Last cylinder值，按Enter以使用默认值。
此示例显示接受默认值并按Enter键后的结果：

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9790, default 14):

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-9790, default 9790):

Using default value 9790

Command (m for help):

11. 在命令提示符下，输入t并按Enter。
Command (m for help): t

此示例显示输入t后的结果:

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9790, default 14):

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-9790, default 9790):

Using default value 9790

Command (m for help): t

Partition number (1-4):

12. 在分区号提示符下，输入要调整大小的分区号，然后按Enter。

Partition number (1-4): 2

此示例显示输入分区编号后的结果：

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9790, default 14):

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-9790, default 9790):

Using default value 9790

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes):

13. 在Hex代码提示符下，键入十六进制代码。这是本部分步骤3中的ID值。Press Enter.
Hex code (type L to list codes): 8e

此示例显示输入十六进制代码后的结果：

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9790, default 14):

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-9790, default 9790):

Using default value 9790

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): 8e

Changed system type of partition 2 to 8e (Linux LVM)

Command (m for help):

14. 在命令提示符下，输入w以将分区写入磁盘。
Command (m for help): w

此示例显示在提示符处输入w后的结果：

Disk /dev/sda: 75.1 GB, 75161927680 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        9137    73288530   8e  Linux LVM

Command (m for help): d

Partition number (1-4): 2

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (14-9790, default 14):

Using default value 14

Last cylinder or +size or +sizeM or +sizeK (14-9790, default 9790):

Using default value 9790

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): 8e

Changed system type of partition 2 to 8e (Linux LVM)

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: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@sessionmgr02 ~]#

这将退出fdisk并带您进入根提示符。

15. 重新启动VM以确保新设置与内核匹配。
# init 6

16. 在VM完成重新启动（大约5分钟）后，以根用户身份登录(ssh)VM。

17. 使用fdisk -l <PV Name>命令检查磁盘大小，以查看新分区大小（PV Name来自第1部分第2步）。
[root@sessionmgr02 ~]# fdisk -l /dev/sda

Disk /dev/sda2: 80.4 GB, 80418562560 bytes

255 heads, 63 sectors/track, 9777 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

此示例输出显示/dev/sda现在已分配80GB。

第6部分 — 调整物理卷的大小

警告：此过程有些风险。  小心。

1. 输入物理卷大小调整(pvresize)命令，后跟PV名称，以调整分区大小以适应当前分配的磁盘空间。
# pvresize /dev/sda2

此示例显示在您输入pvresize命令后的结果：

[root@sessionmgr02 ~]# pvresize /dev/sda2

Physical volume "/dev/sda2" changed

1 physical volume(s) resized / 0 physical volume(s) not resized

2. 输入vgdisplay命令以检查“Free PE Size（空闲PE大小）”，查看添加的附加空间。
此示例显示输入vgdisplay命令后的结果：

[root@sessionmgr02 ~]# vgdisplay

--- Volume group ---

VG Name                  VolGroup00

System ID

Format                    lvm2

Metadata Areas            1

Metadata Sequence No      9

VG Access                 read/write

VG Status                 resizable

MAX LV                    0

Cur LV                    4

Open LV                   4

Max PV                    0

Cur PV                    1

Act PV                    1

VG Size                   74.88 GB

PE Size                   32.00 MB

Total PE                  2396

Alloc PE / Size           1916 / 59.88 GB

Free PE / Size            480 / 15.00 GB

VG UUID                    pPSNBU-FRWO-z3aC-iAxS-ewaw-jOFT-dTcBKd

本示例显示在上一节中添加的磁盘空间。

第7部分 — 扩展卷组的大小以使用新空间

1. 输入df命令，以重新定位需要更多空间的分区，以验证第1部分步骤1中最初记录的信息是否正确。
记录Filesystem和Mounted on the values from the df命令的输出。

# df -h

文件系统：_______________________装载于：_______________________

[root@sessionmgr02 ~]# df -h

Filesystem              Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

18G 2.4G   15G  15% /

/dev/mapper/VolGroup00-LogVol02

5.7G 140M  5.3G   3% /home

/dev/mapper/VolGroup00-LogVol03

30G  27G  1.5G  97% /data

/dev/sda1                99M  40M   55M  43% /boot

tmpfs                    16G   0    16G   0% /dev/shm

tmpfs                   8.0G 1.1G  7.0G  13% /data/sessions.1

2. 写入需要添加到分区的空间量（与第1部分第3步相同）。
要添加的磁盘空间：<amount>:___________________________

3. 输入逻辑卷扩展命令(lvextend -L+<amount>G <Filesystem>)，以便将新磁盘空间（第1步第2节中的<amount>）添加到需要它的文件系统（第7步第1节中的）。
# lvextend -L+5G /dev/mapper/VolGroup-LogVol-03

此示例显示在输入lvextend命令后的结果：

[root@sessionmgr02 ~]# lvextend -L+5G /dev/mapper/VolGroup00-LogVol03

Extending logical volume LogVol03 to 45.00 GB

Logical volume LogVol03 successfully resized

[root@sessionmgr02 ~]#

这会将新添加的空间添加到逻辑卷。

第8部分 — 调整逻辑卷上的文件系统大小以使用新空间

1. 输入Resize Filesystem命令(resize2fs <Filesystem>)以调整文件系统的大小（从第1部分步骤1）。 这样，额外的磁盘空间便可供使用。
警告：此命令可能需要一些时间才能完成。

# resize2fs <filesystem>

此示例显示在您输入resize2fs命令后的结果：

[root@sessionmgr02 ~]# resize2fs /dev/mapper/VolGroup00-LogVol03

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/mapper/VolGroup00-LogVol03 is

mounted on /data; on-line resizing required

Performing an on-line resize of /dev/mapper/VolGroup00-LogVol03

to 11796480 (4k) blocks.

The filesystem on /dev/mapper/VolGroup00-LogVol03 is now 11796480 blocks long.

[root@sessionmgr02 ~]#

2. 输入df -h命令，以查看磁盘空间现在是否可用。
# df -h

输入df -h命令的示例结果：

[root@sessionmgr02 ~]# df -h

Filesystem            Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

18G  2.4G   15G  15% /

/dev/mapper/VolGroup00-LogVol02

5.7G 140M  5.3G   3% /home

/dev/mapper/VolGroup00-LogVol03

44G  22G   21G  52% /data

/dev/sda1              99M  40M   55M  43% /boot

tmpfs                  16G   0    16G   0% /dev/shm

tmpfs                 8.0G 4.0K  8.0G   1% /data/sessions.1