Вопрос
У нас очень медленное соединение и очень маленький жесткий диск, как я могу создать 1 ТБ VHD для облачного диска на Azure?
Решение
Вам нужно загрузить существующий VHD, или вам просто нужен вариант Azure 1 ТБ для вашего приложения в облаке? Если это прежнее, Ринат, вероятно, прав. Посмотрите на этот пост в блоге, чтобы написать приложение для консоли: blogss.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-lobs-and-how-toefifitully-upload и download-page-blobs.aspx.
Однако, если вам просто нужен 1 TB Azure Drive для вашего приложения, вы можете просто создать один, используя свой код, работающий в облаке. Вы можете написать код, похожий на то, что я написал ниже:
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);
Другие советы
Для эффективной загрузки вы можете написать простое приложение для консоли, которое загрузит ваш VHD в хранилище Blob-Blob в качестве Blobs, передавая только ненулевые байты.
Csupload делает именно это: загружает только ненулевые страницы.
Вы можете создать локально (маленький) 1 ТБ динамический VHD, а затем загрузить с помощью CSUPLAYD (расширение до фиксированного размера на лету, без отправки нулевых байтов). Смотрите также этот вопрос о наличии 1 ТБ диск в лазуре.
Вы также можете создать виртуальную машину, прикрепить к нему виртуальную машину и подготовить его оттуда
Затем после этого удалите диск из виртуальной машины (это не удалит его с хранения) и установите его облачным
(Вы можете удалить виртуальную машину после этого)
1 ТБ - это чрезвычайно большой размер для VHD, однако совершенно новый VHD содержит лишь очень мало данных (512 байтов для фиксированного изображения жесткого диска) в конце файла. Другими словами, большинство данных вашего VHD равны нулю, и нет необходимости загружать все данные 1 ТБ в хранилище Azure.
Для формата файла VHD, пожалуйста, обратитесь к http://en.wikipedia.org/wiki/vhd_(file_format)
Если вы знакомы с клиентом VHD и Azure Storage, вы можете написать свое собственное приложение для этого.
Создайте пустую серию страницы на 1 ТБ на хранилище Azure с операцией Putblob
http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
Напишите нижний колонтитул VHD до конца Blob Page с помощью операции PUTPAGE
http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
Если нет, вы можете использовать diskmgmt.msc (Disk Management) для создания VHD сначала, а затем использовать SET-AZURESTORAGEBLOBContent В Windows Azure PowerShell, чтобы эффективно загрузить свой VHD. SET-AZURESTORAGEBLOBCONTENT пропустит бесполезные данные при загрузке Blob.
Set-AzureStorageBlobContent -Container upload -File .\a.vhd -BlobType Page
Для справки,http://msdn.microsoft.com/en-us/library/dn408487.aspx