当前位置: 首页 > news >正文

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
  1. 此命令:

    • 将磁盘命名为 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 /
  1. 请注意,你创建的 64 GB 驱动器 (sdc) 未装载。 该驱动器以这种方式列出,是因为它尚未初始化。

  2. 运行以下 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"}'
  1. 当命令运行时,如果愿意,可以在单独的浏览器标签页中检查 Bash 脚本。

    概括而言,该脚本:

    • 对驱动器 /dev/sdc 进行分区。
    • 在驱动器上创建 ext4 文件系统。
    • 创建 /uploads 目录,将其用作装入点。
    • 将磁盘附加到装载点。
    • 更新 /etc/fstab,以便在系统重新启动后自动装载驱动器。
  2. 若要验证配置,请运行与先前相同的 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 来查找该名称。

  1. 运行 az disk list 命令,显示资源组中的托管磁盘列表。 如果同一资源组中有多个 VM,则此列表可能包含其他磁盘。

将看到名为“uploadDataDisk1”的磁盘。

运行 az vm deallocate 命令以停止并解除分配 VM。 此命令不会删除 VM,但会使其处于你可以修改虚拟磁盘的状态。

运行 az disk update 命令,将磁盘大小重设为 128 GB。

运行 az vm start 命令以重启 VM

扩展磁盘分区

最后一步是告知 OS 有关可用空间的情况。 就像此前完成的分区和格式设置步骤一样,此过程与扩展物理本地磁盘时所遵循的过程相同。

  1. 尽管可为 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

http://www.lqws.cn/news/524953.html

相关文章:

  • Docker、Docker composer与Docker desktop
  • H5录音、图文视频IndexDB储存最佳实践:用AI生成语音备忘录
  • Fisco Bcos学习 - 开发第一个区块链应用
  • 高防IP能不能防住500GDdos攻击
  • AI系列1-1: 离线部署通义大模型及持续修正-RedHat+NVIDA GPU
  • Java课后习题(编程题)
  • SpringBoot高校党务系统
  • 激光雷达全链路光学系统及探测器能量耦合分析
  • python的少数民族音乐网站系统
  • request这个包中,get 这个方法里传入的是params ,post这个方法里传入的是data 和 json。这个区别是什么?
  • HarmonyOS5 如何性能优化?
  • Vue Devtools “Open in Editor” 配置教程(适用于 VSCode 等主流编辑器)
  • PyTorch RNN实战:快速上手教程
  • 笔记03:布线-过孔的调用与添加
  • 求助deepsee 生成语法树代码
  • matlab机器人工具箱(Robotics Toolbox)安装及使用
  • 使用node的mysql模块操作MySQL数据库
  • 多传感器标定简介
  • Linux驱动学习day7
  • 【kubernetes】--Service
  • C# LINQ语法
  • Redis—持久化
  • 使用亮数据网页抓取API自动获取Tiktok数据
  • C++包管理工具:conan2使用教程
  • 网络安全技术期末考试
  • 专题:2025医疗AI应用研究报告|附200+份报告PDF汇总下载
  • 多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文
  • QUdpScoket 组播实现及其中的踩坑点记录
  • 【DevTools浏览器开发者工具反调试之无限Debugger跳过】
  • 如何防止自己的电脑被控制?开启二次验证保护教程