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

适用于:✔️ Linux 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 分离数据磁盘

注意

在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud

此示例将 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),则看不到性能改进。 无需执行除调用显式分离命令以外的任何操作即可查看此改进。

使用门户分离数据磁盘

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

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

后续步骤

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

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