如何增加 Azure VM 的硬盘大小

How to increase harddisk size of Azure VM

我正在使用 RHEL OS 类型的 Azure VM。目前我正在使用标准 D3 v2 大小的 VM。我看到 VM 中只有 32 个硬盘存储可用。如何增加硬盘容量?

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        32G   32G  185M 100% /
devtmpfs        6.9G     0  6.9G   0% /dev
tmpfs           6.9G     0  6.9G   0% /dev/shm
tmpfs           6.9G  8.4M  6.9G   1% /run
tmpfs           6.9G     0  6.9G   0% /sys/fs/cgroup
/dev/sda1       497M  117M  381M  24% /boot
/dev/sdb1       197G  2.1G  185G   2% /mnt/resource
tmpfs           1.4G     0  1.4G   0% /run/user/1000

注意:我使用的是非托管磁盘。

所以基本按照这篇文章:https://docs.microsoft.com/en-us/azure/virtual-machines/linux/expand-disks

az vm deallocate --resource-group myResourceGroup --name myVM
az disk list \
    --resource-group myResourceGroup \
    --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
    --output table
az disk update \
    --resource-group myResourceGroup \
    --name myDataDisk \
    --size-gb 200
az vm start --resource-group myResourceGroup --name myVM

对于非托管磁盘:
https://blogs.msdn.microsoft.com/cloud_solution_architect/2016/05/24/step-by-step-how-to-resize-a-linux-vm-os-disk-in-azure-arm/

根据你的描述,我在我的实验室测试,我在Red Hat Enterprise Linux Server release 7.3 (Maipo)上测试。

Notes: When you don it, I strongly suggest you could backup your OS VHD. If you do fails, you could not start your VM.

1.Stop Azure 门户上的 VM。

2.Increase OS 带有 Azure CLI 的磁盘。

az vm update -g shui -n shui --set storageProfile.osDisk.diskSizeGB=100

3.Start 你的 VM 和 ssh 到你的 VM。您可以检查 df -hfdisk -l/dev/sda2 不会增加到 100GB。您需要按照以下命令进行操作。

sudo -i

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

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001461e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        3917    30944256   83  Linux

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001461e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2         1026048    62914559    30944256   83  Linux

Command (m for help): d
Partition number (1-4): 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-104857599, default 63): 64
Last sector, +sectors or +size{K,M,G} (64-1026047, default 1026047): 
Using default value 1026047

Command (m for help): p

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001461e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              64     1026047      512992   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2         1026048    62914559    30944256   83  Linux

Command (m for help): wq
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 or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@shui ~]# fdisk -l /dev/sda

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001461e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          64      512992   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        3917    30944256   83  Linux

4.Reboot 你的虚拟机

5.SSH 到您的 VM 并调整文件系统的大小。

xfs_growfs -d /dev/sda2

现在,您可以使用 df -h

检查您的 OS 磁盘
[root@shui ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       100G  1.7G   98G   2% /

如果您的虚拟机是使用 Azure 资源管理器 (ARM) 创建的,您可以在新的 Azure 门户中调整 OS 磁盘或数据磁盘的大小。

  1. 导航到要调整磁盘大小的 Azure 资源管理器虚拟机。
  2. 从 Azure 门户关闭虚拟机。等到它完全关闭 (de-allocated)。
  3. Select 设置中的“磁盘”blade(如下图所示)。

Disks settings blade

  1. Select 您要调整大小的 OS 或数据磁盘。
  2. 在新 blade 上,输入新磁盘大小(每个磁盘最大 1023GB 或 1TB)(如下图所示)。

Change disk size

  1. 点击顶部的“保存”。
  2. 再次启动虚拟机。

就是这样!您可以登录到 VM 并检查您是否为磁盘选择了新的大小。

使用下面的 link 调整 azure Ubuntu 和 RHEL 服务器 OS 磁盘的大小。 9 Easy Steps To Increase Your Root Volume Of AZURE Instance