练习 - 调整 VM 磁盘的大小
假设你低估了某些所上传文件的大小,并且你的上传磁盘面临空间不足的问题。 决定让空间从 64 GB 翻倍为 128 GB。
你将在此练习在前面的单元中了解的过程。
重设数据磁盘大小
若要重设磁盘大小,需要磁盘的 ID 或名称。 在本例中,你已知道名称(*uploadDataDisk1),但如果你不知道,或者该磁盘是由其他人创建的,可运行 az disk list
来查找其名称。
运行
az disk list
命令,显示资源组中的托管磁盘列表。 如果同一资源组中有多个 VM,则此列表可能包含其他磁盘。az disk list \ --query '[*].{Name:name,Gb:diskSizeGb,Tier:sku.tier}' \ --output table
将看到名为“uploadDataDisk1”的磁盘。
Name Tier ---------------------------------------------------------- ------- support-web-vm01_OsDisk_1_a7c59897dfda42dfab2edf4933e713a6 Premium uploadDataDisk1 Premium
运行以下
az vm deallocate
命令以停止并解除分配 VM。 此命令不会删除 VM,但会使其处于你可以修改虚拟磁盘的状态。az vm deallocate --name support-web-vm01
运行
az disk update
命令,将磁盘大小重设为 128 GB。az disk update --name uploadDataDisk1 --size-gb 128
运行
az vm start
命令以重启 VM。az vm start --name support-web-vm01
我们尚未完成。 VM 上的操作系统尚不能使用额外空间。 我们将在下一部分中处理这种情况。
扩展磁盘分区
最后一步是告知 OS 有关可用空间的情况。 就像此前完成的分区和格式设置步骤一样,此过程与扩展物理本地磁盘时所遵循的过程相同。
尽管可为 VM 保留固定的公共 IP 地址,但默认情况下,VM 会在取消分配并重新启动时接收新的公共 IP 地址。 运行以下
az vm show
命令以使用 VM 的新公共 IP 地址更新 Bash 变量。ipaddress=$(az vm show --name support-web-vm01 -d --query [publicIps] -o tsv)
如同之前的操作,通过 SSH 在 VM 上运行
lsblk
以了解其当前状态。ssh azureuser@$ipaddress lsblk
可看到
sdc/sdc1
磁盘的大小仍为 64 GB。NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 7G 0 disk └─sdb1 8:17 0 7G 0 part /mnt sdc 8:32 0 128G 0 disk └─sdc1 8:33 0 64G 0 part /uploads sda 8:0 0 30G 0 disk ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda1 8:1 0 29.9G 0 part /
与先前初始化磁盘的操作类似,请运行以下
az vm extension set
命令,以通过执行我们为提供帮助而创建的预制 Bash 脚本,告知 VM 上的 OS 有关新可用空间的情况。az vm extension set \ --vm-name support-web-vm01 \ --name customScript \ --publisher Microsoft.Azure.Extensions \ --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/resize-data-disk.sh"]}' \ --protected-settings '{"commandToExecute": "./resize-data-disk.sh"}'
当命令运行时,如果愿意可在单独的浏览器选项卡中检查 Bash 脚本。
概括而言,该脚本:
- 卸载磁盘
/dev/sdc1
。 - 将分区 1 的大小重设为 128 GB。
- 验证分区一致性。
- 重设文件系统的大小。
- 将驱动器
/dev/sdc1
重新装载回装入点/uploads
。
- 卸载磁盘
若要验证配置,请再次通过 SSH 在 VM 上运行
lsblk
。ssh azureuser@$ipaddress lsblk
这次将看到
sdc/sdc1
磁盘已扩展以适应磁盘增加后的大小。NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 7G 0 disk └─sdb1 8:17 0 7G 0 part /mnt sdc 8:32 0 128G 0 disk └─sdc1 8:33 0 119.2G 0 part /uploads sda 8:0 0 30G 0 disk ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda1 8:1 0 29.9G 0 part /
最后的验证步骤是,通过 SSH 在 VM 上运行操作系统的
df
实用程序,证明操作系统可以正确查看它。ssh azureuser@$ipaddress df -h
将看到驱动器的大小为 128 GB。
Filesystem Size Used Avail Use% Mounted on udev 1.7G 0 1.7G 0% /dev tmpfs 345M 9.3M 335M 3% /run /dev/sda1 29G 1.9G 28G 7% / tmpfs 1.7G 0 1.7G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup /dev/sda15 105M 3.2M 102M 3% /boot/efi /dev/sdb1 6.8G 16M 6.4G 1% /mnt /dev/sdc1 118G 60M 112G 1% /uploads tmpfs 345M 0 345M 0% /run/user/1000