你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

数据迁移

高性能计算迁移的一个关键方面是确保无缝数据迁移。 将数据移近云环境计算节点对于满足吞吐量和 IOPS 的需求至关重要。 无缝数据迁移需要一种战略方法和可靠的实用工具才能以安全可靠的方式进行。

数据迁移策略应:

  • 将所有现有文件和目录结构从源保留到目标。
  • 保留与文件相关的所有元数据,包括用户和组所有权、权限、修改时间和访问时间。
  • 报告数据迁移或复制工具的结果。
  • 实现数据迁移重启过程。

本指南的这一部分介绍了与数据迁移相关的需求、工具、服务和最佳做法。

定义数据迁移需求

  • 数据完整性:

    • 确保所有文件和目录在迁移过程中保留其原始结构和元数据。
  • 安全性:

    • 使用加密传输方法和安全访问控制在整个迁移过程中维护数据安全性。
  • 性能:

    • 优化数据迁移过程,以高效处理大量数据,最大限度地减少停机时间和中断。

工具和服务

  • Azure Data Box:

    • 使用 Azure Data Box 进行大规模脱机数据传输。
    • 部署 Data Box 设备以快速安全地将大量数据传输到 Azure。
    • 通过 Azure 门户设置和管理数据传输。
  • AzCopy:

    • 使用 AzCopy 进行命令行数据传输。
    • 在本地存储与 Azure Blob 存储、Azure 文件存储和 Azure 表存储之间执行高性能、可靠的数据传输。
    • 支持同步和异步传输模式。

Rsync:

  • 使用 rsync 在本地存储和 Azure 存储之间进行高效安全的数据传输。
  • 在传输过程中保留文件和目录结构以及文件元数据。
  • 利用 rsync 选项来确保数据完整性和传输效率。

数据迁移的最佳做法

  • 计划和测试:

    • 全面规划数据迁移策略,包括选择工具 (AzCopy、rsync) 和目标存储(Blob 存储、Azure NetApp 文件、Azure Managed Lustre)。
    • 使用一部分数据执行测试迁移,以验证该过程并确保工具和配置按预期工作。
  • 维护数据完整性:

    • 使用 AzCopy 和 rsync 中的选项来保留文件元数据(权限、时间戳、所有权)。
    • 通过比较校验和或使用内置验证工具来验证迁移数据的完整性。
  • 优化性能:

    • 在传输期间压缩数据(使用 rsync 的选项 -z)以减少带宽使用量。
    • 使用 AzCopy 中的并行传输来提高吞吐量并减少迁移时间。
  • 安全数据传输:

    • 在传输过程中加密数据,以保护数据免受未经授权的访问。 在 AzCopy 和 rsync 中使用安全传输选项。
    • 确保在源环境和目标环境中正确设置访问控制和权限。
  • 监控和报告:

    • 持续监视数据迁移过程,以尽早检测任何问题。
    • 从 AzCopy 和 rsync 生成和查看详细报告,以确保所有数据都已成功迁移,并识别任何错误或差异。

数据迁移的示例步骤

本部分概述了使用 Azure Data Box、AzCopy 和 rsync 将数据从本地存储传输到 Azure 的步骤。 其中包括有关部署和配置 Azure Data Box、安装和使用 AzCopy 进行数据传输以及设置和使用 rsync 的详细说明,以确保安全高效的数据迁移。

  1. 使用 Azure Data Box:

    • 部署 Azure Data Box:

      • 导航到 Azure 门户并订购 Azure Data Box。
      • 按照说明在本地位置设置 Data Box 设备。
      • 将数据复制到 Data Box 并将其寄回 Azure。
    • 配置数据传输:

      • Data Box 到达 Azure 数据中心后,会将数据上传到指定的存储帐户。
      • 通过 Azure 门户验证数据传输状态和完整性。
  2. 使用 AzCopy:

    • 安装 AzCopy:

      • 在本地服务器上下载并安装 AzCopy。
      • 为访问你的 Azure 存储帐户配置 AzCopy 所需权限。
    • 执行数据传输:

      • 使用 AzCopy 命令将数据从本地存储传输到 Azure Blob 存储。

      • 数据传输的示例命令:

        azcopy copy 'https://<storage_account>.blob.core.windows.net/<container>/<path>' '<local_path>' --recursive
        

    注意

    有关 AzCopy 的详细信息,请访问 AzCopy 入门

  3. 使用 rsync:

    • 安装 rsync:

      • 确保 rsync 安装在本地服务器。 默认情况下,大多数 Linux 分发版都包括 rsync

      • 如果尚未安装 rsync,请在服务器上安装 rsync:

        sudo apt-get install rsync  # For Debian-based systems
        sudo yum install rsync      # For Red Hat-based systems
        
    • 执行数据传输:

      • 使用 rsync 将数据从本地存储传输到 Azure 存储。

      • 数据传输的示例命令:

        rsync -avz /path/to/local/data/ user@remote:/path/to/azure/data/
        
      • 选项说明:

        • -a:存档模式:保留权限、时间戳、符号链接和其他元数据。
        • -v:详细模式:提供传输过程的详细输出。
        • -z:在传输期间压缩数据以减少带宽使用量。

      注意

      有关使用 Rsync 的示例,请访问 rysnc 示例

示例数据迁移实现

使用 AzCopy 的数据迁移脚本:

#!/bin/bash

# Define storage account and container
storage_account="<storage_account_name>"
container_name="<container_name>"
local_path="<local_path>"

# Perform data transfer using AzCopy
azcopy copy "https://$storage_account.blob.core.windows.net/$container_name" "$local_path" --recursive

# Verify transfer and generate report
azcopy jobs show --latest > migration_report.txt

使用 rsync 的数据迁移脚本:

#!/bin/bash

# Define variables
local_path="/path/to/local/data"
remote_user="user"
remote_host="remote"
remote_path="/path/to/azure/data/"

# Perform data transfer using rsync
rsync -avz $local_path $remote_user@$remote_host:$remote_path

# Verify transfer and generate report
rsync -avz --dry-run $local_path $remote_user@$remote_host:$remote_path > migration_report.txt

资源