你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何从 Linux 虚拟机中分离数据磁盘

适用于:✔️ Linux VM ✔️ 灵活规模集

不再需要附加到虚拟机的数据磁盘时,可以轻松地分离它。 这会从虚拟机 (VM) 中移除磁盘,但不会从存储中移除它。 在本文中,我们使用的是 Ubuntu LTS 16.04 发行版。 如果使用的是其他发行版,则卸载磁盘的说明可能会有所不同。

警告

如果分离磁盘,它将不会自动删除。 如果用户订阅了高级存储,则将继续承担该磁盘的存储费用。 有关详细信息,请参阅使用高级存储时的定价和计费方式

如果希望再次使用磁盘上的现有数据,可以将其重新附加到相同的虚拟机或另一个虚拟机。

连接到 VM 以卸载磁盘

在使用 CLI 或门户分离磁盘之前,需要卸载磁盘并从 fstab 文件中删除对其的引用。

连接到 VM。 在本示例中,VM 的公共 IP 地址为 10.0.1.4,用户名为 azureuser

ssh azureuser@10.0.1.4

首先,找到要分离的数据磁盘。 以下示例使用 dmesg 来筛选 SCSI 磁盘:

dmesg | grep SCSI

输出类似于以下示例:

[    0.294784] SCSI subsystem initialized
[    0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    7.110271] sd 2:0:0:0: [sda] Attached SCSI disk
[    8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk
[ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk

此处,sdc 是我们要分离的磁盘。 还应该获取磁盘的 UUID。

sudo -i blkid

输出与以下示例类似:

/dev/sda1: UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="ext4"

编辑 /etc/fstab 文件以删除对该磁盘的引用。

注意

错误地编辑 /etc/fstab 文件可能会导致系统无法引导。 如果没有把握,请参考分发的文档来获取有关如何正确编辑该文件的信息。 另外,建议在编辑前备份 /etc/fstab 文件。

在文本编辑器中打开 /etc/fstab 文件并删除包含磁盘 UUID 的行。 使用本文中的示例值,行将如下所示:

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   ext4   defaults,nofail   1   2

完成后,保存并关闭该文件。

接下来,使用 umount 卸载磁盘。 以下示例从 /datadrive 装入点卸载 /dev/sdc1 分区:

sudo umount /dev/sdc1 /datadrive

使用 Azure CLI 分离数据磁盘

此示例将 myDataDisk 磁盘与 myResourceGroup 中名为 myVM 的 VM 分离。

az vm disk detach -g myResourceGroup --vm-name myVm -n myDataDisk

磁盘保留在存储中,但不再附加到虚拟机。

降低延迟

在选定区域中,磁盘分离延迟已降低,因此你会看到高达 15% 的改进。 如果你在 VM 之间进行了计划内/计划外故障转移、正在缩放工作负载或正在运行大规模有状态工作负载(例如 Azure Kubernetes 服务),这将非常有用。 但是,此改进仅限于显式磁盘分离命令 az vm disk detach。 如果调用可能隐式执行分离的命令(例如 az vm update),则看不到性能改进。 无需执行除调用显式分离命令以外的任何操作即可查看此改进。

每个公共区域目前都提供较低的延迟,但以下各项除外:

  • 加拿大中部
  • 美国中部
  • 美国东部
  • 美国东部 2
  • 美国中南部
  • 美国西部 2
  • 德国北部
  • 印度西部
  • 北欧
  • 西欧

使用门户分离数据磁盘

  1. 在左侧菜单中,选择“虚拟机”。
  2. 在虚拟机边栏选项卡中,选择“磁盘”。
  3. 在“磁盘”边栏选项卡中,转到要分离的数据磁盘的最右侧,选择“分离”按钮以分离磁盘。
  4. 删除磁盘后,选择边栏选项卡顶部的“保存”。

磁盘保留在存储中,但不再附加到虚拟机。 该磁盘未删除。

后续步骤

要重新使用数据磁盘,只需将其附加到其他 VM 即可。

如果要删除磁盘,以便不再产生存储费用,请参阅查找并删除未附加的 Azure 托管和非托管磁盘 - Azure 门户