如何从 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
),则看不到性能改进。 无需执行除调用显式分离命令以外的任何操作即可查看此改进。
使用门户分离数据磁盘
- 在左侧菜单中,选择“虚拟机”。
- 在虚拟机边栏选项卡中,选择“磁盘”。
- 在“磁盘”边栏选项卡中,转到要分离的数据磁盘的最右侧,选择“分离”按钮以分离磁盘。
- 删除磁盘后,选择边栏选项卡顶部的“保存”。
磁盘保留在存储中,但不再附加到虚拟机。 磁盘未被删除。
后续步骤
要重新使用数据磁盘,只需将其附加到其他 VM 即可。
如果要删除磁盘,以便不再产生存储费用,请参阅查找并删除未附加的 Azure 托管和非托管磁盘 - Azure 门户。