Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Azure 存储项目经理
关于 Microsoft Azure Files
Microsoft Azure Files是一项基于云的存储服务,在云中表现为基于SMB2.1协议的文件共享。现在,Azure中运行的应用程序可以使用熟悉的标准文件系统API(如ReadFile和WriteFile)轻松地在虚拟机间共享文件。此外,还能通过REST接口访问这些文件,这实现了大量混合场景。最后,Azure Files与Blob、Table和 Queue Services构建于相同的技术基础之上,这意味着Azure Files还能发挥内置于我们的平台的现有可用性、持久性、可扩展性和地域冗余性特征。该服务目前处于预览阶段。要阅读有关该服务的更多详细信息,请参阅我们的 Files 博客文章。
迁移数据
开始使用Azure Files时,可能需要将大量现有数据迁移到Azure Files服务。目前有很多方案可以将数据有效迁移至Azure Files,您的选择将取决于数据的原始位置。本文的剩余部分将会讨论这些选项,以及如何利用各个选项实现最佳性能。
1. 通过 Internet从本地迁移到Azure Files
要复制文件,您可以使用Microsoft Azure提供的AzCopy工具。AzCopy实施了大量优化,从而确保复制作业达到最高吞吐量(例如,并行上载、多线程、正确处理限制等)。
The format of the AzCopy command line is:
AzCopy <source path> <destination URL> [optional filespec] /S /DestKey:<YourKey>
其中:
source path是指要迁移到的目录的路径
destination URL是指要复制到的目录的http URL
filespec用于为要迁移的文件指定任何文件筛选器(默认值为*.*)
YourKey是指目标存储帐户的存储帐户密钥
/S 是指用于复制源目录下的所有目录和子目录的可选交换机
AzCopy包含许多其他命令行选项,您还应使用对您的环境有益的任何其他选项。有关详细信息,请参阅此AzCopy 博客文章。
以下是一个用于将 c:\data 目录下的文件复制到directory to Azure Files的示例命令:
AzCopy c:\data https://myaccount.file.core.windows.net/myshare *.* /S /DestKey:myStorageAccountKey
2. 从IaaS VM的Azure磁盘迁移到Azure Files
在AzureIaaS VM上运行文件服务器角色的客户发现Azure Files服务颇具吸引力,因为它不必管理文件服务器本身。
要将数据从IaaS磁盘迁移到共享,您需要:
- 将磁盘连接到虚拟机
- 将共享安装到您的虚拟机
- 使用robocopy将数据复制到Azure Files共享
Robocopy是Windows中包含的一款强大的免费文件复制工具,用于执行大型文件复制。
要使用的命令行格式为:
Robocopy <source path> <dest path> [optional filespec] /MIR /MT:16
其中:
source path是指要复制到的目录的路径
dest path是指目标目录的路径
filespec用于为要复制的文件指定任何文件筛选器(默认值为*.*)
MT 是指要使用的线程数(参见下方的讨论)
使用robocopy时,应选择“/mt” 参数最大限度地提高吞吐量。这样就可以控制执行复制的并行线程数,主要控制要存储的 IO 请求的队列深度。线程数过低无法在服务器上排列足够的请求,因而无法充分利用我们的云体系结构固有的平行度。线程数过高很可能会产生服务器端限制,最终会降低吞吐量。在我们的测试中,我们发现队列深度介于16 到 32可以最大限度地提高吞吐量。
避免方法:
我们发现,使用xcopy或 Windows Explorer向Azure Files执行大型文件复制效果欠佳。这些工具对于向NTFS文件系统执行文件复制效果很好,但无法在复制到Azure Files时实现足够的平行度。Azure Files支持高度并行 IO,因此很多执行并发复制的线程的性能大大提升。使用线程数适当的robocopy可提供更高的复制吞吐量,继而缩短传输数据的时间总量。
3. 从Azure Blob迁移到Azure Files
将数据从Azure Blob 迁移到 Azure Files 的最快方法是使用AzCopy。您应当从与目标存储帐户位于同一数据中心的虚拟机中运行AzCopy。
以下是一个用于执行此操作的AzCopy命令示例:
AzCopy
https://myaccount1.blob.core.windows.net/mycontainerZ:\mydirectory *.* /SourceKey:myStorageAccountKey
(这假定将文件共享映射到驱动器 Z)
在这种情况下,会将数据下载到虚拟机,然后复制到Azure Files。
有关AzCopy使用方法的详细信息,请参阅上方第 1 部分的讨论。要查看 Blob 命令行选项及其他Blob特定选项(如 SAS),请使用“AzCopy /?”运行AzCopy。
4.从云驱动器迁移到Azure磁盘
云驱动器版本为 2010 预览版。它支持客户使用Azure 云服务安装页面 Blob 作为Azure Web 和Worker角色驱动器。随着Azure Files的发布,云驱动器支持的所有场景均可在使用Azure Files时得到更好的发挥。云驱动器将于 2015 年淘汰,因此我们建议仍在使用云驱动器的所有客户将数据迁移到Azure Files。迁移数据的方法与使用 VHD 将数据移出Azure VM十分相似。
- 使用云驱动器将 Blob 安装为磁盘(大部分客户在 Web 或Worker角色设置期间执行此操作)
- 在您的虚拟机上安装共享。请参阅此博客文章了解如何创建和安装共享。
- 使用Robocopy复制数据。请参阅第 3 部分的讨论,了解如何使用Robocopy和“/mt”参数实现最大吞吐量。
我们希望用于将数据迁移到Azure Files的这些选项可以有效帮助您将数据迁移到文件服务,并帮助您利用该服务优化现有场景,同时为您的应用程序和企业启用新的场景。