繁体   English   中英

Azure Powershell:将Blob快照还原到其他VM

[英]Azure Powershell: Restoring a blob snapshot to a different VM

按照本文( http://blog.greatrexpectations.com/2013/04/24/using-blob-snapshots-to-backup-azure-virtual-machines/ )我可以创建VM的快照,但我现在想要将该快照还原到其他VM - 我们有时需要还原备份以恢复单个文件,我想确保在迁移之前我可以在Azure中执行此操作。

我试过了:

$restorePath = "vhds/my-new-vm.vhd"
$restoreBlob = $blobClient.GetBlobReference($restorePath)
$restoreBlob.CopyFromBlob($snapshots[$snapshots.Length -1])

但它给了我:

Exception calling "CopyFromBlob" with "1" argument(s): "There is currently 
a lease on the blob and no lease ID was specified in the request."

我无法弄清楚如何获得租赁ID,或者如何处理它。

由于您的VHD实际上是存储在blob存储中的页面blob,为了防止其他进程写入此VHD,幕后发生的事情是在创建VM时在blob上获取Exclusive Write Lock或换句话说a lease is acquired on the blob 租约期限无限。

您收到此错误是因为您尝试使用其中一个快照覆盖其上有租约的VM。 由于blob具有租约,因此操作无法完成。 首先,你必须打破租约。 您可能会发现此博客文章对此有用: http//www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2012/09/26/windows-azure-virtual-hard-disk-blob-storage-跨帐户复制租赁突破和管理,tool.aspx

我无法弄清楚如何获得租赁ID,或者如何处理它。

您只能在获得租约时获得租赁ID。 之后你无法以编程方式获得这个东西。 您需要租用id才能对blob执行各种写操作并更改blob上的租约。

虽然这是一个老线程,但我认为问题已经出现了新面貌。 在过去的几周里,我注意到当我在创建新VM的过程中恢复VHD时,我收到一条消息,即VHD文件上仍有租约。 但是,如果我等了几个小时,租约就不见了。 我试着做一个循环等待博客副本的状态,但似乎总是立即退出。

您还可以使用PowerShell中断租约:

Get-AzureRmStorageAccount -Name "STORAGE_ACCOUNT_NAME" | Get-AzureStorageBlob -name "CONTAINER_NAME").ICloudBlob.BreakLease()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM