azure VHD 1TB上传

azure VHD 1TB上传,azure,vhd,Azure,Vhd,我们的连接速度非常慢,硬盘非常小,如何在azure上为云驱动器创建1 TB VHD?为了高效上传,您可以编写一个简单的控制台应用程序,将VHD作为页面Blob上传到azure Blob存储,仅传输非零字节。为了高效上传,您可以编写一个简单的控制台应用程序,将您的VHD作为页面Blob上传到Azure Blob存储,只传输非零字节。您需要上传现有的VHD还是只需要云中应用程序的1 TB Azure驱动器?如果是前者,里纳特可能是对的。查看此博客文章了解如何编写控制台应用程序: 但是,如果您的应用程

我们的连接速度非常慢,硬盘非常小,如何在azure上为云驱动器创建1 TB VHD?

为了高效上传,您可以编写一个简单的控制台应用程序,将VHD作为页面Blob上传到azure Blob存储,仅传输非零字节。

为了高效上传,您可以编写一个简单的控制台应用程序,将您的VHD作为页面Blob上传到Azure Blob存储,只传输非零字节。

您需要上传现有的VHD还是只需要云中应用程序的1 TB Azure驱动器?如果是前者,里纳特可能是对的。查看此博客文章了解如何编写控制台应用程序:

但是,如果您的应用程序只需要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);
string pageBlobName=“testpageblob”;//Guid.NewGuid().ToString();
string blobUri=string.Format(“{0}/{1}”),blobContainer.Uri.AbsoluteUri,
pageBlobName);
CloudDrive CloudDrive=newclouddrive(新Uri(blobUri),csa.Credentials);
对于(int i=0;i<30;i++)
{
尝试
{
cloudDrive.Create(20);
打破
}
捕获(CloudDriveException ex)
{
如果(!ex.Message.Equals(“ERROR_UNSUPPORTED_OS”)| i==29)
投掷;
睡眠(10000);
}
}
string driveLetter=cloudDrive.Mount(25,drivemountpoptions.Force);

您需要为云中的应用程序上载现有VHD还是只需要1 TB Azure驱动器?如果是前者,里纳特可能是对的。查看此博客文章了解如何编写控制台应用程序:

但是,如果您的应用程序只需要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);
string pageBlobName=“testpageblob”;//Guid.NewGuid().ToString();
string blobUri=string.Format(“{0}/{1}”),blobContainer.Uri.AbsoluteUri,
pageBlobName);
CloudDrive CloudDrive=newclouddrive(新Uri(blobUri),csa.Credentials);
对于(int i=0;i<30;i++)
{
尝试
{
cloudDrive.Create(20);
打破
}
捕获(CloudDriveException ex)
{
如果(!ex.Message.Equals(“ERROR_UNSUPPORTED_OS”)| i==29)
投掷;
睡眠(10000);
}
}
string driveLetter=cloudDrive.Mount(25,drivemountpoptions.Force);
正是这样做的:只上传非零页面。
您可以在本地创建一个(小)1TB的动态VHD,然后使用CSUpload上载(动态扩展到固定大小,不发送零字节)。另请参阅关于在Azure中使用1TB磁盘的说明。

正是这样做的:仅上载非零页面。

您可以在本地创建一个(小)1TB的动态VHD,然后使用CSUpload上载(动态扩展到固定大小,不发送零字节)。另请参阅关于在Azure中拥有1TB磁盘的内容。

您还可以创建虚拟机磁盘,并将虚拟机连接到该磁盘,然后从中进行准备

然后从vm中取出磁盘(这不会将其从存储中取出),并使用cloudDrive将其装入


(您可以在以后删除虚拟机)

您还可以创建一个虚拟机磁盘,并将虚拟机附加到该磁盘上,然后从那里开始准备

然后从vm中取出磁盘(这不会将其从存储中取出),并使用cloudDrive将其装入


(您可以在以后删除虚拟机)

1TB对于vhd来说是一个非常大的大小,但是一个全新的vhd在文件末尾只包含很少的数据(固定硬盘映像为512字节)。换句话说,vhd的大部分数据为零,无需将整个1TB数据上载到azure存储

有关vhd文件格式,请参阅

如果您熟悉vhd和azure存储客户端,您可以编写自己的应用程序来完成这些工作

  • 使用PutBlob操作在azure存储上创建空的1TB页面blob

  • 使用PutPage操作将VHD页脚写入页面Blob的末尾

  • 如果没有,您可以先使用diskmgmt.msc(磁盘管理)创建vhd,然后在windows azure powershell中使用设置AzureStorageBlobContent高效上载vhd。 Set-AzureStorageBlobContent将在上载页面blob时跳过无用的数据

      Set-AzureStorageBlobContent -Container upload -File .\a.vhd -BlobType Page 
    
    作为参考,

    1TB对于vhd来说是一个非常大的尺寸,但是一个全新的vhd在文件末尾只包含很少的数据(固定硬盘映像为512字节)。换句话说,vhd的大部分数据为零,无需将整个1TB数据上载到azure存储

    有关vhd文件格式,请参阅

    如果您熟悉vhd和azure存储客户端,您可以编写自己的应用程序来完成这些工作

  • 使用PutBlob操作在azure存储上创建空的1TB页面blob

  • 使用PutPage操作将VHD页脚写入页面Blob的末尾

  • 如果没有,您可以先使用diskmgmt.msc(磁盘管理)创建vhd,然后在windows azure powershell中使用设置AzureStorageBlobContent高效上载vhd。 Set-AzureStorageBlobContent将在上载页面blob时跳过无用的数据

      Set-AzureStorageBlobContent -Container upload -File .\a.vhd -BlobType Page 
    
    作为参考,

    您能更好地定义您要解决的问题吗?您能更好地定义您要解决的问题吗?谢谢Gaurav和Rinat。Gaurav我们需要你的第二种方法。因为我们有非常小的初始数据放在VHD上,所以我们将创建VHD,然后使用RDP将数据放在VHD上。我不确定您是否可以使用RDP将数据放在这个VHD中(我可能完全错了,因为我没有尝试过),但很明显,在Azure中运行的代码会将一个页面blob作为VHD装入。如果你能做到这一点,那就太好了。您还可以选择将这些文件单独推送到blob存储中(作为块blob),然后通过代码读取它们,或者将数据文件与部署和部署一起打包