你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
快照 Azure 弹性 SAN 卷(预览版)
本文内容
Azure 弹性 SAN 卷快照(预览版)是卷的增量时间点备份。 你拍摄的第一个快照不占用任何空间,并且每个后续快照仅包含自上次快照以来对弹性 SAN 卷所做的更改。 这不同于托管磁盘快照,对于它,你拍摄的第一个快照将是托管磁盘的完整副本,每个后续快照仅包含自上次快照以来对磁盘所做的更改。 卷的快照没有任何单独的计费,但它们位于弹性 SAN 中,并消耗 SAN 的容量。 快照不能用于更改现有卷的状态,只能使用它们来部署新卷或将数据导出到托管磁盘快照。
每个卷最多可以拍摄 200 张快照,速度为每 5 分钟 7 张快照。 快照将一直保留,直到删除卷本身或删除快照。 删除卷后,快照不会保留。 如果需要在删除卷后保留数据,请将卷的快照导出到托管磁盘快照 。
限制
如果卷大于 4 TiB,则无法将该卷的快照导出到磁盘快照。
通用指南
如果想要快速还原卷(例如有开发/测试工作负载时),应使用弹性 SAN 卷快照。 从卷快照创建的卷可以立即使用,而解除冻结在后台进行。 强化备份时,不应考虑卷快照。
如果想要从弹性 SAN 卷创建托管磁盘,或者想要保留弹性 SAN 卷的长期备份,应使用托管磁盘快照。 当需要弹性 SAN 卷的持久检查点或版本控制,但无需立即还原卷备份时,托管磁盘快照非常有用。 托管磁盘快照并不适用于需要快速还原的场景,从托管磁盘快照创建弹性 SAN 卷需要时间。
拍摄稳定快照
可以随时生成快照,但如果在 VM 运行时生成快照,请记住以下事项:
VM 运行时,数据仍在流式传输到卷。 因此,正在运行的 VM 的快照可能包含正在处理的部分操作。
如果有多个卷附加到 VM,则不同卷的快照可能会在不同的时间发生。
在所述场景中,快照未经过协调。 对于带分区的卷(如果在备份期间发生了更改,其文件就会被破坏),缺乏协调性就是一个问题。 因此,必须在备份过程中执行以下步骤:
冻结所有卷。
刷新所有挂起写入。
为每个卷创建增量快照。
某些 Windows 应用程序(如 SQL Server)通过卷影服务提供协调的备份机制,以创建应用程序一致性备份。 在 Linux 上,可以使用 fsfreeze 等工具来协调磁盘(此工具提供文件一致性备份,而不是应用程序一致性快照)。
创建卷快照
可以使用 Microsoft Azure 门户、Azure PowerShell 模块或 Azure CLI 创建卷快照的快照。
登录 Azure 门户 。
导航到弹性 SAN,选择“卷快照”。
选择“创建快照”,然后填写字段。
$vgname = ""
$volname = ""
$volname2 = ""
$snapshotname1 = ""
$snapshotname2 = ""
# Create snapshots
$vg = New-AzElasticSanVolumeGroup -ResourceGroupName $rgname -ElasticSanName $esname -Name $vgname
$vol = New-AzElasticSanVolume -ResourceGroupName $rgname -ElasticSanName $esname -VolumeGroupName $vgname -Name $volname -SizeGiB 1
$snapshot = New-AzElasticSanVolumeSnapshot -ResourceGroupName $rgname -ElasticSanName $esname -VolumeGroupName $vgname -Name $snapshotname1 -CreationDataSourceId $vol.Id
az elastic-san volume snapshot create -g "resourceGroupName" -e "san_name" -v "vg_name" -n "snapshot_name" --creation-data '{source-id:"volume_id"}'
从卷快照创建卷
可以使用弹性 SAN 卷的快照通过 Microsoft Azure 门户、Azure PowerShell 模块或 Azure CLI 创建新卷。 无法使用快照更改现有卷的状态。
导航到弹性 SAN 并选择“卷 ”。
选择“+ 创建卷 ”并填写详细信息。
对于“源类型 ”,选择“卷快照 ”并填写详细信息,指定要使用的快照。
选择创建 。
# create a volume with a snapshot id
New-AzElasticSanVolume -ElasticSanName $esname -ResourceGroupName $rgname -VolumeGroupName $vgname -Name $volname2 -CreationDataSourceId $snapshot.Id -SizeGiB 1
az elastic-san volume create -g "resourceGroupName" -e "san_name" -v "vg_name" -n "volume_name_2" --size-gib 2 --creation-data '{source-id:"snapshot_id",create-source:VolumeSnapshot}'
从托管磁盘快照创建卷
可以使用托管磁盘的快照通过 Microsoft Azure 门户、Azure PowerShell 模块或 Azure CLI 创建新的弹性 SAN 卷。
导航到弹性 SAN 并选择“卷 ”。
选择“+ 创建卷 ”并填写详细信息。
对于“源类型 ”,选择“磁盘快照 ”并填写详细信息,指定要使用的快照。
选择创建 。
New-AzElasticSanVolume -ElasticSanName $esname -ResourceGroupName $rgname -VolumeGroupName $vgname -Name $volname2 -CreationDataSourceId $snapshot.Id -CreationDataCreateSource DiskSnapshot -SizeGiB 1
az elastic-san volume create -g "resourceGroupName" -e "san_name" -v "vg_name" -n "volume_name_2" --size-gib 2 --creation-data '{source-id:"snapshot_id",create-source:VolumeSnapshot}'
删除卷快照
可以使用 Microsoft Azure 门户、Azure PowerShell 模块或 Azure CLI 删除单个快照。 目前,一次不能删除多个快照。
导航到弹性 SAN 并选择“卷快照 ”。
选择一个卷组,然后选择要删除的快照。
选择“删除”。
以下脚本将删除单个快照。 替换值,然后运行命令。
# remove a snapshot
Remove-AzElasticSanVolumeSnapshot -ResourceGroupName $rgname -ElasticSanName $esname -VolumeGroupName $vgname -Name $snapshotname1
以下命令将删除单个快照。 替换值,然后运行命令。
az elastic-san volume snapshot delete -g "resourceGroupName" -e "san_name" -v "vg_name" -n "snapshot_name"
导出卷快照
删除卷时,会自动删除 Azure 弹性 SAN 卷快照。 若要在删除快照后保留其数据,请将其导出到托管磁盘快照。 将卷快照导出到托管磁盘快照需要时间,所花费的时间取决于快照大小。 可以通过检查托管磁盘快照的 CompletionPercentage
属性来检查还差多少完成。
计费影响
弹性 SAN 快照没有任何与之关联的额外计费,它们只会消耗弹性 SAN 的容量。 将弹性 SAN 快照导出到托管磁盘快照后,托管磁盘快照开始产生计费费用。
导航到弹性 SAN 并选择“卷快照 ”。
选择一个卷组,然后选择要导出的快照。
选择“导出”并填写详细信息,然后选择“导出 ”。
替换以下脚本中的变量,然后运行它:
$elasticSanName = <nameHere>
$volGroupName = <nameHere>
$region = <yourRegion>
$rgName = <yourResourceGroupName>
$elasticSanSnapshotName = <ElasticSanSnapshotName>
$newSnapName = <NameOfNewSnapshot>
$elasticSanVolumeSnapshotResourceId = (Get-AzElasticSanVolumeSnapshot -ElasticSanName $elasticSanName -ResourceGroupName $rgName -VolumeGroupName $volGroupName -name $elasticSanSnapshotName).Id
$snapshotconfig = New-AzSnapshotConfig -Location $region -AccountType Standard_LRS -CreateOption CopyFromSanSnapshot -ElasticSanResourceId $elasticSanVolumeSnapshotResourceId
New-AzSnapshot -ResourceGroupName $rgName -SnapshotName $newSnapName -Snapshot $snapshotconfig;
替换以下脚本中的变量,然后运行它:
region=<yourRegion>
rgName=<ResourceGroupName>
sanName=<yourElasticSANName>
vgName=<yourVolumeGroupName>
sanSnapName=<yourElasticSANSnapshotName>
diskSnapName=<nameForNewDiskSnapshot>
snapID=$(az elastic-san volume snapshot show -g $rgName -e $sanName -v $vgName -n $sanSnapName --query 'id' | tr -d \"~)
az snapshot create -g $rgName --name $diskSnapName --elastic-san-id $snapID --location $region