我们连接速度很慢,硬盘非常小,如何在天蓝色云端驱动器上创建1 TB VHD?
答案 0 :(得分:1)
您是否需要上传现有VHD,或者您只需要一个1 TB Azure驱动器,以便在云中应用?如果它是前者,Rinat可能是对的。请查看此博客文章,了解如何编写控制台应用程序:blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx。
但是,如果您的应用程序只需要1 TB Azure驱动器,则可以使用在云中运行的代码创建一个。您可以编写类似于我在下面编写的代码:
string pageBlobName = "testpageblob";// Guid.NewGuid().ToString();
string blobUri = string.Format("{0}/{1}", blobContainer.Uri.AbsoluteUri,
pageBlobName);
CloudDrive cloudDrive = new CloudDrive(new Uri(blobUri), csa.Credentials);
for (int i = 0; i < 30; i++)
{
try
{
cloudDrive.Create(20);
break;
}
catch (CloudDriveException ex)
{
if (!ex.Message.Equals("ERROR_UNSUPPORTED_OS") || i == 29)
throw;
Thread.Sleep(10000);
}
}
string driveLetter = cloudDrive.Mount(25, DriveMountOptions.Force);
答案 1 :(得分:0)
为了高效上传,您可以编写一个简单的控制台应用程序,将VHD作为页面blob上传到Azure Blob存储,仅传输非零字节。
答案 2 :(得分:0)
CSUpload完全相同:仅上传非零页面 您可以在本地创建一个(小)1TB动态VHD,然后使用CSUpload上传(即时扩展到固定大小,不发送零字节)。另请参阅this question有关在Azure中使用1TB磁盘的信息。
答案 3 :(得分:0)
你也可以创建一个虚拟磁盘并附加一个虚拟机并从那里准备
然后从vm中删除磁盘(这不会将其从存储中删除)并使用cloudDrive挂载
(之后你可以删除vm)
答案 4 :(得分:0)
1TB对于vhd来说是一个非常大的大小,但是一个全新的vhd在文件末尾只包含非常少的数据(固定硬盘映像为512字节)。换句话说,您的vhd的大部分数据为零,无需将整个1TB数据上传到Azure存储。
有关vhd文件格式,请参阅http://en.wikipedia.org/wiki/VHD_(file_format)
如果您熟悉vhd和azure存储客户端,则可以编写自己的应用程序来执行这些操作。
使用PutBlob操作在天蓝色存储上创建一个空的1TB页面blob
http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
使用PutPage操作将VHD页脚写入Page Blob的末尾
http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
如果没有,您可以先使用diskmgmt.msc(磁盘管理)创建vhd,然后在windows azure powershell中使用 Set-AzureStorageBlobContent 来有效上传您的vhd。 上传页面blob时,Set-AzureStorageBlobContent将跳过无用的数据。
Set-AzureStorageBlobContent -Container upload -File .\a.vhd -BlobType Page