Azure虚拟机添加磁盘
目标:创建一个 Linux VM,并附加一个名为 uploadDataDisk1 的新虚拟硬盘 (VHD) 来存储 /uploads
目录
将空数据磁盘添加到 VM
此处,可创建一个空数据磁盘,然后将其附加到 VM。 最初,您的数据磁盘大小为 64 GB。 稍后,将此磁盘装载到 VM 上的 /uploads
目录下。
运行以下 az vm disk attach
命令,将新的空磁盘添加到 VM 中。
az vm disk attach --vm-name support-web-vm01 --name uploadDataDisk1 --size-gb 64 --sku Premium_LRS --new
-
此命令:
- 将磁盘命名为 uploadDataDisk1。
- 将其大小设置为 64 GB。
- 指定使用具有本地冗余的高级存储。
若要使用此磁盘,需要对其进行分区和格式化。 现在让我们执行此操作。
初始化并格式化数据磁盘
空数据驱动器需要进行初始化和格式化。 执行此操作的过程与物理磁盘相同。
运行以下 ssh
命令,通过 SSH 连接在 VM 上使用你在上一步中创建的 ipaddress
变量数据来运行 lsblk
命令。
ssh azureuser@$ipaddress lsblk
该命令的输出应如下所示。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 7G 0 disk
└─sdb1 8:17 0 7G 0 part /mnt
sr0 11:0 1 628K 0 rom
sdc 8:32 0 64G 0 disk
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 /
-
请注意,你创建的 64 GB 驱动器 (
sdc
) 未装载。 该驱动器以这种方式列出,是因为它尚未初始化。 -
运行以下
az vm extension set
命令以在 VM 上运行预制的 Bash 脚本。
该脚本修改 /etc/fstab
。 /etc/fstab
文件修改有误可能会导致系统无法启动。 部署到生产环境之前,务必在临时暂存系统上测试配置更改。 请参阅分发的文档,了解如何正确修改此文件。 在生产中,我们还建议创建此文件的备份,以便在需要时还原配置。
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/add-data-disk.sh"]}' --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
-
当命令运行时,如果愿意,可以在单独的浏览器标签页中检查 Bash 脚本。
概括而言,该脚本:
- 对驱动器
/dev/sdc
进行分区。 - 在驱动器上创建 ext4 文件系统。
- 创建
/uploads
目录,将其用作装入点。 - 将磁盘附加到装载点。
- 更新
/etc/fstab
,以便在系统重新启动后自动装载驱动器。
- 对驱动器
-
若要验证配置,请运行与先前相同的
ssh
命令,以通过 SSH 连接在 VM 上运行lsblk
命令。
你会看到 sdc/sdc1
已按预期分区并装载到 /uploads
目录。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 7G 0 disk
└─sdb1 8:17 0 7G 0 part /mnt
sr0 11:0 1 628K 0 rom
sdc 8:32 0 64G 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 /
重设数据磁盘大小
若要重设磁盘大小,需要磁盘的 ID 或名称。 在这种情况下,你已知道名称(*uploadDataDisk1),但如果你没有,或者其他人创建了磁盘,则可以运行 az disk list
来查找该名称。
-
运行
az disk list
命令,显示资源组中的托管磁盘列表。 如果同一资源组中有多个 VM,则此列表可能包含其他磁盘。
将看到名为“uploadDataDisk1”的磁盘。
运行 az vm deallocate
命令以停止并解除分配 VM。 此命令不会删除 VM,但会使其处于你可以修改虚拟磁盘的状态。
运行 az disk update
命令,将磁盘大小重设为 128 GB。
运行 az vm start
命令以重启 VM
扩展磁盘分区
最后一步是告知 OS 有关可用空间的情况。 就像此前完成的分区和格式设置步骤一样,此过程与扩展物理本地磁盘时所遵循的过程相同。
-
尽管可为 VM 保留固定的公共 IP 地址,但默认情况下,VM 会在取消分配并重新启动时接收新的公共 IP 地址。 运行以下
az vm show
命令以使用 VM 的新公共 IP 地址更新 Bash 变量
如同之前的操作,通过 SSH 在 VM 上运行 lsblk
以了解其当前状态。
可看到 sdc/sdc1
磁盘的大小仍为 64 GB。
与先前初始化磁盘的操作类似,请运行以下 az vm extension set
命令,以通过执行我们为提供帮助而创建的预制 Bash 脚本,告知 VM 上的 OS 有关新可用空间的情况。
概括而言,该脚本:
- 卸载磁盘
/dev/sdc1
。 - 将分区 1 的大小重设为 128 GB。
- 验证分区一致性。
- 重设文件系统的大小。
- 将驱动器
/dev/sdc1
重新装载回装入点/uploads
。
这次将看到 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
实用程序,证明操作系统可以正确查看它,将看到驱动器的大小为 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
练习 - 将数据磁盘添加到 VM - Training | Microsoft Learn