教程:通过 SMB 将数据复制到 Azure Data Box

将数据复制到 Azure Data Box

重要

Azure Data Box 现在支持 Blob 级别的访问层分配。 本教程中包含的步骤反映了已更新的数据的复制过程,且专门针对块 Blob。

有关确定块 blob 数据的适当访问层的帮助,请参阅确定块 blob 的适当访问层部分。 按照将数据复制到 Azure Data Box 部分中包含的步骤将数据复制到适当的访问层。

本部分中包含的信息适用于在 2024 年 4 月 1 日之后下达的订单。

本教程介绍如何使用本地 Web UI 连接到主机并从中复制数据。

在本教程中,你将了解如何执行以下操作:

  • 先决条件
  • 连接到 Data Box
  • 确定块 blob 的适当访问层
  • 将数据复制到 Data Box

先决条件

在开始之前,请确保:

  1. 已完成教程:设置 Azure Data Box
  2. 已收到 Data Box,并且门户中的订单状态为“已送达”。
  3. 你有一台主机,其中的数据需复制到 Data Box。 该主机必须:
    • 运行支持的操作系统
    • 连接到高速网络。 强烈建议你至少建立一个 10-GbE 连接。 如果 10-GbE 连接不可用,可以使用 1-GbE 数据链路,但复制速度会受影响。

连接到 Data Box

根据选择的存储帐户,Data Box 将会:

  • 为每个关联的 GPv1 和 GPv2 存储帐户最多创建三个共享。
  • 用于高级存储的一个共享。
  • 一个共享(针对一个 Blob 存储帐户),其中包含四个文件夹,分别用于四个访问层。

下表中确定了可连接到的 Data Box 共享的名称,以及上传到目标存储帐户的数据类型。 它还确定了将源数据复制到其中的共享和目录的层次结构。

存储类型 共享名 第一级实体 第二级实体 第三级实体
块 blob <storageAccountName>_BlockBlob <\accessTier> <\containerName> <\blockBlob>
页 blob <\storageAccountName>_PageBlob <\containerName> <\pageBlob>
文件存储 <\storageAccountName>_AzFile <\fileShareName> <\file>

不能将文件直接复制到任何 Data Box 共享的根文件夹中。 请改为根据用例在 Data Box 共享中创建文件夹。

块 Blob 支持在文件级别分配访问层。 将文件复制到块 Blob 共享时,建议的最佳做法是在适当的访问层中添加新的子文件夹。 创建新的子文件夹后,请根据需要继续向每个子文件夹添加文件。

为驻留在块 Blob 共享根目录中的任何文件夹创建一个新容器。 该文件夹中的任何文件都作为块 Blob 复制到存储帐户的默认访问层。

有关 Blob 访问层的详细信息,请参阅 Blob 数据的访问层。 如需详细了解访问层的最佳做法,请参阅有关使用 blob 访问层的最佳做法

下表显示了 Data Box 上共享的 UNC 路径,以及数据上传到的相应 Azure 存储路径 URL。 最终的 Azure 存储路径 URL 可以从 UNC 共享路径派生。

Azure 存储类型 Data Box 共享
Azure 块 Blob
  • UNC 共享路径:\\<DeviceIPAddress>\<storageaccountname_BlockBlob>\<accessTier>\<ContainerName>\myBlob.txt
  • Azure 存储 URL:https://<storageaccountname>.blob.core.chinacloudapi.cn/<ContainerName>/myBlob.txt
  • Azure 页 Blob
  • UNC 共享路径:\\<DeviceIPAddress>\<storageaccountname_PageBlob>\<ContainerName>\myBlob.vhd
  • Azure 存储 URL:https://<storageaccountname>.blob.core.chinacloudapi.cn/<ContainerName>/myBlob.vhd
  • Azure 文件
  • UNC 共享路径:\\<DeviceIPAddress>\<storageaccountname_AzFile>\<ShareName>\myFile.txt
  • Azure 存储 URL:https://<storageaccountname>.file.core.chinacloudapi.cn/<ShareName>/myFile.txt
  • 如果使用 Windows Server 主机,请按照以下步骤连接到 Data Box。

    1. 第一步是进行身份验证并启动会话。 转到“连接和复制”。 选择“SMB”以获取与存储帐户关联的共享的访问凭据。

      获取 SMB 共享的共享凭据

    2. 在“访问共享和复制数据”对话框中,复制对应于该共享的“用户名”和“密码”。 然后选择“确定” 。

      获取共享的用户名和密码

    3. 以下示例使用名为 utsac1 的示例存储帐户。 若要从主机访问与存储帐户关联的共享,请打开命令窗口。 在命令提示符处,键入:

      net use \\<DeviceIPAddress>\<share name> /u:<IP address of the device>\<user name for the share>

      根据数据格式,共享路径如下:

      • Azure 块 blob - \\<DeviceIPAddress>\utsac1_BlockBlob
      • Azure 页 blob - \\<DeviceIPAddress>\utsac1_PageBlob
      • Azure 文件 - \\<DeviceIPAddress>\utsac1_AzFile
    4. 出现提示时,请输入共享的密码。 如果密码包含特殊字符,请在该密码前后添加双引号。 以下示例演示如何通过前面的命令连接到共享。

      C:\Users\Databoxuser>net use \\<DeviceIPAddress>\utSAC1_202006051000_BlockBlob /u:<DeviceIPAddress>\testuser1
      Enter the password for 'testuser1' to connect to '<DeviceIPAddress>': "ab1c2def$3g45%6h7i&j8kl9012345"
      The command completed successfully.
      
    5. 按 Windows+R。在“运行”窗口中指定 \\<DeviceIPAddress>。 选择“确定”以打开文件资源管理器。

      通过文件资源管理器连接到共享

      此时应能看到文件夹形式的共享。

      文件资源管理器中显示的共享

      重要

      无法将文件直接复制到存储帐户的根文件夹。 在块 Blob 存储帐户的根文件夹中,可以找到对应于每个可用访问层的文件夹。

      若要将数据复制到 Azure Data Box,必须先选择对应于其中一个访问层的文件夹。 接下来,在该层的文件夹中创建一个子文件夹来存储数据。 最后,将数据复制到新创建的子文件夹。 新的子文件夹表示引入期间在存储帐户中创建的容器。 数据以 Blob 的形式上传到此容器。

    如果使用 Linux 客户端,请使用以下命令装载 SMB 共享。 vers 参数值标识 Linux 主机支持的 SMB 版本。 将相应的版本插入到提供的示例命令中。 若要查看 Data Box 支持的 SMB 版本列表,请参阅 Linux 客户端支持的文件系统

    sudo mount -t cifs -o vers=2.1 10.126.76.138:/utsac1_BlockBlob /home/databoxubuntuhost/databox
    

    确定块 blob 的适当访问层

    重要

    本部分中包含的信息适用于在 2024 年 4 月 1 日之后下达的订单

    Azure 存储允许在同一存储帐户中的多个访问层中存储块 blob 数据。 通过此功能,可根据数据的访问频率更高效地组织和存储数据。 下表包含有关 Azure 存储访问层的信息和建议。

    建议 最佳做法
    对于经常访问或修改的在线数据很有用。 此层的存储成本最高,但访问成本最低。 此层中的数据应是定期且积极使用的数据。
    对于不经常访问或修改的在线数据很有用。 此层与热层相比,存储成本较低,访问成本较高。 此层中的数据应至少存储 30 天。
    对于很少访问或修改但仍需要快速检索的在线数据很有用。 此层与冷层相比,存储成本较低,访问成本较高。 此层中的数据应至少存储 90 天。
    存档 对于很少访问且对延迟要求较低的离线数据很有用。 此层中的数据应至少存储 180 天。 对于 180 天内从存档层删除的数据,需支付提前删除费。

    有关 Blob 访问层的详细信息,请参阅 Blob 数据的访问层。 有关更多详细的最佳做法,请参阅使用 Blob 访问层的最佳做法

    通过将块 Blob 数据复制到 Data Box 中的相应文件夹,可以将块 Blob 数据传输到相应的访问层。 将数据复制到 Azure Data Box 部分更详细地讨论了此过程。

    将数据复制到 Data Box

    连接到一个或多个 Data Box 共享后,下一步是复制数据。 在开始数据复制之前,请考虑以下限制:

    • 请确保将数据复制到与所需数据格式相对应的共享。 例如,将块 blob 数据复制到块 blob 的共享。 将 VHD 复制到页 blob 共享。 如果数据格式与相应的共享类型不匹配,则上传到 Azure 的数据将在后续步骤中失败。
    • 将数据复制到 AzFile 或 PageBlob 共享时,请先在共享的根目录中创建一个文件夹,然后将文件复制到该文件夹
    • 将数据复制到 BlockBlob 共享时,请在所需的访问层中创建子文件夹,然后将数据复制到新创建的子文件夹。 子文件夹表示将数据作为 blob 上传到的容器。 无法将文件直接复制到共享的根文件夹中
    • 复制数据时,请确保数据大小符合 Azure 存储帐户大小限制中所述的大小限制。
    • 在将数据传输到 Azure 文件存储时,如果要保留元数据(ACL、时间戳和文件属性),请遵循使用 Azure Data Box 保留文件 ACL、属性和时间戳中的指南
    • Data Box 和另一个非 Data Box 应用程序同时上传可能会导致上传作业失败和数据损坏。
    • 如果将 SMB 和 NFS 协议用于数据副本,建议:
      • 对 SMB 和 NFS 使用不同的存储帐户。
      • 不要使用 SMB 和 NFS 将相同的数据复制到 Azure 中的同一端目标。 在这些情况下,最终的结果不可确定。
      • 尽管可以同时通过 SMB 和 NFS 进行复制,但我们不建议这样做,因为这很容易出现人为错误。 等待 SMB 数据复制完成,然后启动 NFS 数据复制。

    重要

    请确保保留源数据的副本,直到可以确认数据已复制到 Azure 存储中为止。

    连接到 SMB 共享后,开始数据复制。 可以使用与 SMB 兼容的任何文件复制工具(例如 Robocopy)复制数据。 可以使用 Robocopy 启动多个复制作业。 请使用以下命令:

    robocopy <Source> <Target> * /e /r:3 /w:60 /is /nfl /ndl /np /MT:32 or 64 /fft /B /Log+:<LogFile>
    

    下表描述了属性。

    Attribute 说明
    /e 复制包括空目录的子目录。
    /r: 指定复制失败时的重试次数。
    /w: 指定等待重试的间隔时间,以秒为单位。
    /is 包括相同的文件。
    /nfl 指定不记录文件名。
    /ndl 指定不记录目录名。
    /np 指定不显示复制操作的进度(到目前为止复制的文件或目录数)。 显示进度会明显降低性能。
    /MT 使用多线程,建议使用 32 或 64 个线程。 不要对加密的文件使用此选项。 可能需要将加密和未加密的文件隔离开来。 但是,单线程复制会明显降低性能。
    /fft 用于减少任何文件系统的时间戳粒度。
    /B 在备份模式下复制文件。
    /z 在重启模式下复制文件,如果环境不稳定,请使用此开关。 由于日志记录量增加,此选项会降低吞吐量。
    /zb 使用重启模式。 如果访问被拒绝,此选项将使用备份模式。 由于要设置检查点,此选项会降低吞吐量。
    /efsraw 在 EFS 原始模式下复制所有加密的文件。 请仅对加密的文件使用此选项。
    log+:<LogFile> 将输出追加到现有的日志文件。

    以下示例演示用于将文件复制到 Data Box 的 robocopy 命令的输出。

    C:\Users>robocopy
    
        -------------------------------------------------------------------------------
        ROBOCOPY     ::     Robust File Copy for Windows
        -------------------------------------------------------------------------------
    
            Started : Thursday, March 8, 2018 2:34:53 PM
            Simple Usage :: ROBOCOPY source destination /MIR
    
            source :: Source Directory (drive:\path or \\server\share\path).
            destination :: Destination Dir  (drive:\path or \\server\share\path).
                    /MIR :: Mirror a complete directory tree.
    
        For more usage information run ROBOCOPY /?
    
        ****  /MIR can DELETE files as well as copy them !
    
    C:\Users>Robocopy C:\Git\azure-docs-pr\contributor-guide \\10.126.76.172\devicemanagertest1_AzFile\templates /MT:32
    
        -------------------------------------------------------------------------------
        ROBOCOPY     ::     Robust File Copy for Windows
        -------------------------------------------------------------------------------
    
            Started : Thursday, March 8, 2018 2:34:58 PM
            Source : C:\Git\azure-docs-pr\contributor-guide\
                Dest : \\10.126.76.172\devicemanagertest1_AzFile\templates\
    
            Files : *.*
    
            Options : *.* /DCOPY:DA /COPY:DAT /MT:32 /R:5 /W:60
    
        ------------------------------------------------------------------------------
    
        100%        New File                 206        C:\Git\azure-docs-pr\contributor-guide\article-metadata.md
        100%        New File                 209        C:\Git\azure-docs-pr\contributor-guide\content-channel-guidance.md
        100%        New File                 732        C:\Git\azure-docs-pr\contributor-guide\contributor-guide-index.md
        100%        New File                 199        C:\Git\azure-docs-pr\contributor-guide\contributor-guide-pr-criteria.md
                    New File                 178        C:\Git\azure-docs-pr\contributor-guide\contributor-guide-pull-request-co100%  .md
                    New File                 250        C:\Git\azure-docs-pr\contributor-guide\contributor-guide-pull-request-et100%  e.md
        100%        New File                 174        C:\Git\azure-docs-pr\contributor-guide\create-images-markdown.md
        100%        New File                 197        C:\Git\azure-docs-pr\contributor-guide\create-links-markdown.md
        100%        New File                 184        C:\Git\azure-docs-pr\contributor-guide\create-tables-markdown.md
        100%        New File                 208        C:\Git\azure-docs-pr\contributor-guide\custom-markdown-extensions.md
        100%        New File                 210        C:\Git\azure-docs-pr\contributor-guide\file-names-and-locations.md
        100%        New File                 234        C:\Git\azure-docs-pr\contributor-guide\git-commands-for-master.md
        100%        New File                 186        C:\Git\azure-docs-pr\contributor-guide\release-branches.md
        100%        New File                 240        C:\Git\azure-docs-pr\contributor-guide\retire-or-rename-an-article.md
        100%        New File                 215        C:\Git\azure-docs-pr\contributor-guide\style-and-voice.md
        100%        New File                 212        C:\Git\azure-docs-pr\contributor-guide\syntax-highlighting-markdown.md
        100%        New File                 207        C:\Git\azure-docs-pr\contributor-guide\tools-and-setup.md
        ------------------------------------------------------------------------------
    
                    Total    Copied   Skipped  Mismatch    FAILED    Extras
        Dirs :         1         1         1         0         0         0
        Files :        17        17         0         0         0         0
        Bytes :     3.9 k     3.9 k         0         0         0         0
    C:\Users>
    

    有关其他具体情形,例如,使用 robocopy 来列出、复制或删除 Data Box 上的文件,请参阅使用 robocopy 来列出、复制、修改 Data Box 上的文件

    若要优化性能,请在复制数据时使用以下 robocopy 参数。

    平台 大多为小于 512 KB 的小型文件 大多为 512 KB - 1 MB 的中型文件 大多为 1 MB 以上的大型文件
    Data Box 2 个 Robocopy 会话
    每个会话 16 个线程
    3 个 Robocopy 会话
    每个会话 16 个线程
    2 个 Robocopy 会话
    每个会话 24 个线程

    有关 Robocopy 命令的详细信息,请转到 Robocopy 和几个示例

    在复制过程中显示通知以识别错误。

    “连接和复制”中的复制错误通知

    选择“下载问题列表”。

    “连接和复制”,“下载问题列表”

    打开列表以查看错误的详细信息,并选择解析 URL 以查看推荐的解决方法。

    下载并查看“连接和复制”上的错误

    有关详细信息,请参阅查看将数据复制到 Data Box 期间的错误日志。 有关数据复制期间的错误详细列表,请参阅 Data Box 问题故障排除

    为确保数据完整性,复制数据时将以内联方式计算校验和。 复制完成后,检查设备上的已用空间和可用空间。

    在仪表板上检查可用空间和已用空间

    可以通过 SMB、NFS、REST、数据复制服务将数据从源服务器复制到 Data Box 或托管磁盘。

    在每种情况下,请确保共享和文件夹名称以及数据大小遵循 Azure 存储和 Data Box 服务限制中所述的准则。

    通过 SMB 复制数据

    要通过 SMB 复制数据:

    1. 如果使用 Windows 主机,请使用以下命令连接到 SMB 共享:

      \\<Device IP address>\ShareName

    2. 若要检索共享访问凭据,请在 Data Box 的本地 Web UI 中转到“连接和复制”页面。

    3. 使用与 SMB 兼容的文件复制工具(如 Robocopy)将数据复制到共享。

    有关分步说明,请转至教程:通过 SMB 将数据复制到 Azure Data Box

    通过 NFS 复制数据

    要通过 NFS 复制数据:

    1. 如果使用 NFS 主机,请使用以下命令在 Data Box 上装载 NFS 共享:

      sudo mount <Data Box device IP>:/<NFS share on Data Box device> <Path to the folder on local Linux computer>

    2. 若要获取共享访问凭据,请在 Data Box 的本地 Web UI 中转到“连接和复制”页面。

    3. 使用 cprsync 命令复制数据。

    有关分步说明,请转至教程:通过 NFS 将数据复制到 Azure Data Box

    通过 REST 复制数据

    要通过 REST 复制数据:

    1. 若要通过 REST API 使用 Data Box Blob 存储复制数据,可以通过 httphttps 进行连接。
    2. 若要将数据复制到 Data Box Blob 存储,可以使用 AzCopy。

    有关分步说明,请转至教程:通过 REST API 将数据复制到 Azure Data Box Blob 存储

    通过数据复制服务复制数据

    要通过数据复制服务复制数据:

    1. 若要使用数据复制服务复制数据,需要创建一个作业。 在 Data Box 的本地 Web UI 中,转到“管理”>“复制数据”>“创建”。
    2. 填写参数并创建作业。

    有关分步说明,请转至教程:使用数据复制服务将数据复制到 Azure Data Box

    将数据复制到托管磁盘

    要复制数据托管磁盘:

    1. 订购 Data Box 设备时,选择托管磁盘作为存储目标
    2. 通过 SMB 或 NFS 共享连接到 Data Box。
    3. 通过 SMB 或 NFS 工具复制数据。

    有关分步说明,请转至教程:在 Azure 中使用 Data Box 作为托管磁盘导入数据

    后续步骤

    本教程介绍了有关 Azure Data Box 的主题,例如:

    • 先决条件
    • 连接到 Data Box
    • 将数据复制到 Data Box

    请继续学习下一篇教程,了解如何将 Data Box 寄回 Microsoft。