Вопрос

У нас очень медленное соединение и очень маленький жесткий диск, как я могу создать 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. Создайте пустую серию страницы на 1 ТБ на хранилище Azure с операцией Putblob

    http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx

  2. Напишите нижний колонтитул 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top