教程:使用 REST API 将数据复制到 Azure Data Box Blob 存储
注意
本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
本教程介绍使用 REST API 通过 http 或 https 连接到 Azure Data Box Blob 存储的过程。 此外还会介绍在建立连接后,将数据复制到 Data Box Blob 存储以及准备要寄送的 Data Box 的步骤。
在本教程中,你将了解如何执行以下操作:
- 先决条件
- 通过 http 或 https 连接到 Data Box Blob 存储
- 将数据复制到 Data Box
先决条件
在开始之前,请确保:
- 完成教程:设置 Azure Data Box。
- 你收到 Data Box,并且门户中的订单状态为“已送达”。
- 查看 Data Box Blob 存储的系统要求,并熟悉 API、SDK 和工具的受支持版本。
- 可以访问包含要复制到 Data Box 的数据的主机。 该主机必须:
- 运行支持的操作系统。
- 连接到高速网络。 强烈建议你至少建立一个 10-GbE 连接。 如果 10-GbE 连接不可用,可以使用 1-GbE 数据链接,但复制速度会受影响。
- 在主机上下载 AzCopy V10。 AzCopy 用于将数据从主机复制到 Azure Data Box Blob 存储。
通过 http 或 https 进行连接
可以通过 http 或 https 连接到 Data Box Blob 存储。
- Https 比较安全,是连接到 Data Box Blob 存储的推荐方法。
- 通过受信任的网络连接时,可以使用 Http。
通过 http 或 https 连接到 Data Box Blob 存储时,连接步骤会有所不同。
通过 http 进行连接
通过 http 连接到 Data Box Blob 存储 REST API 需要执行以下步骤:
- 将设备 IP 和 Blob 服务终结点添加到远程主机
- 配置合作伙伴软件并验证连接
后续部分将介绍其中的每个步骤。
添加设备 IP 地址和 Blob 服务终结点
登录到 Data Box 设备。 请确保该设备已解锁。
转到“设置网络接口”。 记下用来连接到客户端的网络接口的设备 IP 地址。
转到“连接和复制”,并单击“Rest”。
从“访问存储帐户和上传数据”对话框中,复制 Blob 服务终结点。
以管理员身份启动记事本,并打开位于
C:\Windows\System32\Drivers\etc
的 hosts 文件。将以下条目添加到 hosts 文件中:
<device IP address> <Blob service endpoint>
请使用以下图像作为参考。 保存 hosts 文件。
验证连接并配置合作伙伴软件
配置合作伙伴软件以连接到客户端。 要连接到合作伙伴软件,通常需要使用在前面的步骤中从本地 Web UI 的“连接并复制”页面收集的以下信息(可能有所不同):
- 存储帐户名称
- 访问密钥
- Blob 服务终结点
若要验证是否已成功建立连接,请使用存储资源管理器来附加到外部存储帐户。 如果没有存储资源管理器,则需要下载并安装。
首次使用存储资源管理器时,需要执行以下步骤:
从顶部的命令栏中,转到“编辑”>“目标 Azure Stack”。
重启存储资源管理器以使更改生效。
按照以下步骤连接到存储帐户并验证连接。
在存储资源管理器中,打开“连接到 Azure 存储”对话框。 在“连接到 Azure 存储”对话框中,选择“使用存储帐户名称和密钥”。
粘贴帐户名称和帐户密钥(本地 Web UI 的“连接并复制”页面中的“密钥 1”值)。 选择“其他(在下面输入)”作为存储终结点域,然后如下所述提供 blob 服务终结点。 只有当通过 http 进行传输时才应选中“使用 HTTP”选项。 如果使用 https,则不要选中此选项。 选择“下一页”。
在“连接摘要”对话框中,复查所提供的信息。 选择“连接”。
成功添加的帐户显示在存储资源管理器的左窗格中,并且其名称的末尾追加有 (外部, 其他)。 单击“Blob 容器”以查看容器。
通过 https 进行连接
通过 https 连接到 Azure Blob 存储 REST API 需要执行以下步骤:
- 从 Azure 门户下载证书。 此证书用于连接到 Web UI 和 Azure Blob 存储 REST API。
- 在客户端或远程主机上导入证书。
- 将设备 IP 和 Blob 服务终结点添加到客户端或远程主机。
- 配置合作伙伴软件并验证连接。
后续部分将介绍其中的每个步骤。
下载证书
使用 Azure 门户下载证书。
登录到 Azure 门户。
转到你的 Data Box 订单,然后导航到“常规”>“设备详细信息”。
在“设备凭据”下,转到设备的“访问 API”。 选择下载。 此操作将下载 <你的订单名称>.cer 证书文件。 保存此文件,并将其安装在用于连接到设备的客户端或主机上。
导入证书
通过 HTTPS 访问 Data Box Blob 存储需要设备的 TLS/SSL 证书。 客户端应用程序可以使用此证书的方式因应用程序以及操作系统和分发而异。 一些应用程序可以在将证书导入到系统的证书存储后访问该证书,而其他应用程序则不使用该机制。
本部分提到了某些应用程序的特定信息。 有关其他应用程序的详细信息,请参阅应用程序和所用操作系统的文档。
按照以下步骤将 .cer
文件导入 Windows 或 Linux 客户端的根存储中。 在 Windows 系统中,可以使用 Windows PowerShell 或 Windows Server UI 在系统上导入并安装该证书。
使用 Windows PowerShell
以管理员身份启动 Windows PowerShell 会话。
在命令提示符处,键入:
Import-Certificate -FilePath C:\temp\localuihttps.cer -CertStoreLocation Cert:\LocalMachine\Root
使用 Windows Server UI
右键单击
.cer
文件并选择“安装证书”。 该操作会启动证书导入向导。对于“存储位置”,选择“本地计算机”,然后选择“下一步”。
选择“将所有证书放入以下存储区”,然后选择“浏览”。 导航到远程主机的根存储,然后选择“下一步”。
选择“完成”。 将显示一条提示已成功导入的消息。
使用 Linux 系统
导入证书的方法因分发而异。
例如 Ubuntu 和Debian 等使用 update-ca-certificates
命令。
- 将 Base64 编码的证书文件重命名为
.crt
扩展并将其复制到/usr/local/share/ca-certificates directory
。 - 运行命令
update-ca-certificates
。
最新版本的 RHEL、Fedora 和 CentOS 使用 update-ca-trust
命令。
- 将证书文件复制到
/etc/pki/ca-trust/source/anchors
目录中。 - 运行
update-ca-trust
。
有关详细信息,请参阅特定于分发的文档。
添加设备 IP 地址和 Blob 服务终结点
在 http 上进行连接时,请按照相同的步骤添加设备 IP 地址和 blob 服务终结点。
配置合作伙伴软件并验证连接
按照通过 http 进行连接时使用的步骤配置合作伙伴软件。 唯一的差别在于,应将“使用 http 选项”保留未选中状态。
将数据复制到 Data Box
连接一个或多个 Data Box 共享后,下一步是复制数据。 在启动数据复制操作之前,请考虑以下限制:
- 复制数据时,请确保数据大小符合 Azure 存储和 Data Box 限制中所述的大小限制。
- Data Box 和另一个非 Data Box 应用程序同时上传可能会导致上传作业失败和数据损坏。
重要
请确保保留源数据的副本,直到可以确认数据已复制到 Azure 存储中为止。
本教程使用 AzCopy 将数据复制到 Data Box Blob 存储。 如果更喜欢使用基于 GUI 的工具,也可以使用 Azure 存储资源管理器或其他合作伙伴软件来复制数据。
复制过程包括以下步骤:
- 创建容器
- 将文件夹的内容上传到 Data Box Blob 存储
- 将修改的文件上传到 Data Box Blob 存储
以下部分详细介绍了这些步骤。
创建容器
第一步是创建容器,因为 Blob 始终上传到容器中。 容器可以组织 Blob 组,就像组织计算机上的文件夹中的文件一样。 遵循以下步骤创建 Blob 容器。
打开存储资源管理器。
在左窗格中,展开需要在其中创建 Blob 容器的存储帐户。
右键单击“Blob 容器”,从上下文菜单中选择“创建 Blob 容器”。
此时会在“Blob 容器”文件夹下面显示一个文本框。 输入 Blob 容器的名称。 有关 Blob 容器命名规则和限制的信息,请参阅创建容器和设置权限。
完成时按 Enter 可创建 Blob 容器,按 Esc 可取消相关操作。 在成功创建后,Blob 容器会显示在所选存储帐户的“Blob 容器”文件夹下。
将文件夹的内容上传到 Data Box Blob 存储
使用 AzCopy 将文件夹中的所有文件上传到 Windows 或 Linux 上的 Blob 存储中。 若要上传文件夹中的所有 Blob,请输入以下 AzCopy 命令:
Linux
azcopy \
--source /mnt/myfolder \
--destination https://data-box-storage-account-name.blob.device-serial-no.microsoftdatabox.com/container-name/ \
--dest-key <key> \
--recursive
Windows
AzCopy /Source:C:\myfolder /Dest:https://data-box-storage-account-name.blob.device-serial-no.microsoftdatabox.com/container-name/ /DestKey:<key> /S
将 <key>
替换为你的帐户密钥。 可以通过导航到存储帐户,在 Azure 门户中检索帐户密钥。 选择“设置”>“访问密钥”,选择一个密钥,然后将该值复制并粘贴到 AzCopy 命令中。
如果指定的目标容器不存在,AzCopy 将创建它并将文件上传到其中。 将源路径更新为数据目录,并将目标 URL 中的 data-box-storage-account-name
替换为与 Data Box 关联的存储帐户的名称。
若要将指定目录的内容以递归方式上传到 Blob 存储,请指定 --recursive
选项(适用于 Linux)或 /S
选项(适用于 Windows)。 当使用这些选项之一运行 AzCopy 时,会同时上传所有子文件夹及其中文件。
将修改的文件上传到 Data Box Blob 存储
还可以使用 AzCopy 根据文件的上次修改时间上传文件。 若要仅上传已更新的文件或新文件,请将 --exclude-older
参数(适用于 Linux)或 /XO
参数(适用于 Windows)添加到 AzCopy 命令。
如果只想复制本地源中存在但目标中不存在的资源,请在 AzCopy 命令中指定 --exclude-older
和 --exclude-newer
参数(适用于 Linux)或 /XO
和 /XN
参数(适用于 Windows)。 AzCopy 仅上传已更新的数据(由时间戳确定)。
Linux
azcopy \
--source /mnt/myfolder \
--destination https://data-box-storage-account-name.blob.device-serial-no.microsoftdatabox.com/container-name/ \
--dest-key <key> \
--recursive \
--exclude-older
Windows
AzCopy /Source:C:\myfolder /Dest:https://data-box-storage-account-name.blob.device-serial-no.microsoftdatabox.com/container-name/ /DestKey:<key> /S /XO
如果在连接或复制操作期间出现任何错误,请参阅 Data Box Blob 存储问题故障排除。
下一步是准备好要交付的设备。
后续步骤
本教程介绍了有关 Azure Data Box 的主题,例如:
- 使用 REST API 将数据复制到 Azure Data Box Blob 存储的先决条件
- 通过 http 或 https 连接到 Data Box Blob 存储
- 将数据复制到 Data Box
请继续学习下一篇教程,了解如何将 Data Box 寄回 Microsoft。