菜单

本页使用了机器翻译。某些内容可能不完美。敬请提出宝贵意见和建议。

分享反馈

如何使用 AzCopy、PowerShell 等将文件上传到 Azure Blob 存储

目录

分享该页面

Yifat Perry
Yifat Perry

将数据从现有存储库迁移到 Azure Blob 并在混合部署中保持数据同步可能是许多组织云之旅的重大障碍。有几种 Azure 本机和第三方工具和服务可帮助将数据迁移到 Azure,最常用的是 AzCopy、Azure Import/Export、Azure Powershell 和 Azure Data Box。如何知道哪个是 Azure 迁移的正确选择?

选择合适的工具取决于几个因素,包括迁移时间表、数据大小、网络带宽可用性、在线/离线迁移要求等。此博客将分享和探索这些 Azure 迁移工具以及有关如何轻松地将文件迁移到 Azure Blob 存储的简单步骤,所有这些都可以借助 NetApp Cloud Volumes ONTAP 在 Azure Blob 存储中的数据迁移、性能和保护的高级数据管理功能进行增强。

将数据上载到 Azure Blob Storage 的工具

由于数据迁移和移动性是云采用的关键组成部分,Microsoft 提供多种本机工具和服务来支持客户使用这些流程。让我们详细了解其中的一些工具。

AzCopy 是一个命令行实用程序,用于将数据传输到 Azure 存储和从 Azure 存储传输数据。它是一种轻量级工具,可以安装在 Windows、Linux 或 Mac 计算机上,以启动到 Azure 的数据传输。AzCopy 可用于多种方案,用于将数据从本地传输到 Azure Blob 和 Azure Files,或从 Amazon S3 到 Azure 存储。该工具还可用于将数据复制到 Azure Stack 或从 Azure Stack 复制数据。

Azure PowerShell 是将数据从本地传输到 Azure Blob 存储的另一个命令行选项。Azure PowerShell 命令 Set-AzStorageBlobContent 可以用于将数据复制到 Azure blob 存储。

Azure Import/Export 是用于大型数据传输方案的物理传输方法,其中数据需要导入到 Azure Blob 存储或从 Azure Files 导出。除了大规模数据传输之外,此解决方案还可用于内容分发和数据备份/还原等用例。数据通过客户提供的 SSD 或 HDD 传输到 Azure 数据中心。

Azure Data Box 使用 Microsoft 提供的专有 Data Box 存储设备将数据传入和传出 Azure 数据中心。在数据大小超过 40 TB 且通过网络传输数据的带宽有限的情况下,建议使用该服务。最常见的用例是数据的一次性批量迁移,初始数据传输到 Azure,然后通过网络进行增量传输,以及定期上传批量数据。

如何使用 AzCopy 将文件上传到 Azure Blob Storage

AzCopy 适用于 Windows、Linux 和 MacOS 系统。由于 AzCopy 作为可执行文件运行,因此无需安装。需要下载并解压缩适用于 Windows 和 Linux 的 zip 文件才能运行该工具。对于 Linux,必须在运行命令之前下载和解压缩 tar 文件。

AzCopy 工具可以使用 Azure AD 或 SAS 令牌授权访问 Azure Blob 存储。使用 Azure AD 身份验证时,客户可以选择在启动数据复制之前使用用户帐户进行身份验证。使用自动化脚本时,可以使用服务主体或托管标识实现 Azure AD 身份验证。

在本演练中,我们将使用通过 Azure AD 用户帐户进行身份验证的 AzCopy。应在要复制数据的存储容器中以及要使用的存储帐户、资源组和订阅中为帐户分配存储 Blob 数据参与者或存储 Blob 数据所有者角色。

1.浏览到下载 AzCopy 的文件夹,然后运行以下命令登录:

azcopy login
复制文件 1

您现在将看到有关如何登录 https://microsoft.com/devicelogin 的详细信息。按照输出中的说明操作,并使用提供的代码进行身份验证。

2.在登录页面上,输入具有存储访问权限的 Azure 凭据,然后单击"下一步"。

输入您的 Azure 凭据

3.在命令行中,您会收到一条"登录成功"消息。
登录成功消息

  1. 执行以下 AzCopy 命令在存储帐户中创建容器以上传文件:
azcopy make "https://.blob.core.windows.net/"

使用 Azure 中存储帐户的名称以及要创建的容器的名称更新占位符。在下面,您可以看到一个示例命令:

azcopy make "https://teststor1110.blob.core.windows.net/folder1&quot";
执行 AzCopy 命令
  1. 将文件从本地计算机复制到 Storage 帐户
azcopy copy "https://.core.windows.net//"

请将上述命令中的 和 占位符替换为您环境中的实际值,并用您在第 4 步创建的存储容器名称进行替换。

下面给出的示例命令:

azcopy copy 'C:azcopyTestcopyolder1ile1.txt' 'https://teststor1110.blob.core.windows.net/folder1&##39';

注意:在以上示例中,上述命令中的 folder1 是在步骤 4 中创建的容器。

将文件从本地计算机复制到存储帐户

成功完成命令后,作业状态将显示为 Completed。

  1. 要将本地文件夹中的所有文件复制到 Azure 存储容器,请运行以下命令:
azcopy copy " 'https://.blob.core.windows.net/&#39' --recursive

更新上述命令中的、和占位符以反映环境的值。下面给出的示例命令:

azcopy copy "C:azcopyTestcopysample" "https://teststor1110.blob.core.windows.net/folder1&quot"; --recursive

您的源文件夹内容将如下所示:

源文件夹内容
  1. 如果浏览到 Azure 门户中的存储帐户,则可以看到该文件夹已在 Azure 存储容器中创建,并且文件已复制到该文件夹中。
此文件夹已在 Azure 存储容器内创建
  1. 要复制本地文件夹的内容而不在 Azure 存储中创建新文件夹,可以使用以下命令:
azcopy copy "/*" 'https://.blob.core.windows.net/'

下面给出的示例命令:


azcopy copy "C:azcopyTestcopyolder2*" "https://teststor1110.blob.core.windows.net/folder1"
  1. 其他文件将从名为 folder2 的本地文件夹复制到 Azure 容器 folder1,如下所示。请注意,在这种情况下,不会创建源文件夹。

什么是 Azure PowerShell 以及如何使用它


Azure PowerShell cmdlet 可用于从 PowerShell 命令和脚本管理 Azure 资源。除了 AzCopy,PowerShell 还可用于将文件从本地文件夹上传到 Azure 存储。Azure PowerShell 命令 Set-AzStorageBlobContent 用于相同的目的。

使用 Azure PowerShell 将文件传输到 Azure Blob 存储


在本节中,我们将研究可用于使用 PowerShell 从 Windows 计算机将文件上传到 Azure Blob 存储的命令。
1.在使用管理员权限打开的 PowerShell 会话中,使用以下命令为系统上的所有用户安装最新版本的 Azure PowerShell:
Install-Module -Name Az -AllowClobber -Scope AllUsers

出现安装软件包的权限提示时,选择"是"。 单击"是"以安装软件包
2.使用以下命令并在出现提示时登录到 Azure 订阅:
连接-AzAccount
  1. 使用以下命令获取要用于数据传输的存储帐户上下文:
$uploadstorage=Get-AzStorageAccount -ResourceGroupName -Name $storcontext=$uploadstorage.Context

使用特定于您的环境的值更新占位符,如下面的示例命令所示:
$uploadstorage=Get-AzStorageAccount -ResourceGroupName cvo177 -Name teststor1110 $storcontext=$uploadstorage.Context
  1. 运行以下命令将文件从本地目录上传到 Azure 存储中的容器:
Set-AzStorageBlobContent -Container " -File " -Context $storcontext

请将占位符替换为您环境中特定的值。示例如下:
Set-AzStorageBlobContent -Container "folder2" -File "C:azcopyTestcopyolder2ile1.txt" -Context $storcontext

文件成功上传后,您将收到一条类似于以下屏幕截图的消息: 文件上传确认消息
  1. 要上传当前文件夹中的所有文件,请运行以下命令
Get-ChildItem -File -Recurse \| Set-AzStorageBlobContent -Container "" -Context $storcontext

下面给出的示例命令:
Get-ChildItem -File -Recurse \| Set-AzStorageBlobContent -Container "folder2" -Context $storcontext
  1. 如果您浏览到 Azure 存储容器,您会看到在步骤 4 和 5 中上传的所有文件。

NetApp Cloud Volumes ONTAP:加速云数据迁移

我们已经讨论了如何使用 AzCopy 和 Azure PowerShell 命令轻松实现到 Azure 的数据迁移。客户还可以通过受信任的 NetApp 复制和克隆技术,利用 NetApp Cloud Volumes ONTAP 进行数据迁移到云端。Cloud Volumes ONTAP 提供跨越本地以及多个云环境的混合数据管理解决方案。

Cloud Volumes ONTAP 的独特之处在于它通过高可用性、数据保护和存储效率功能(如重复数据删除、压缩和精简配置)为客户提供价值。Cloud Volumes ONTAP 卷可以通过 SMB/NFS 协议被 Azure 中的虚拟机访问,并通过这些功能帮助实现无与伦比的存储经济性。由于存储使用效率更高,Azure 存储成本也大大降低。

NetApp Snapshot 技术以及 SnapMirror® 数据复制可以简化从本地环境到云的数据迁移。虽然可以使用 SnapShot 技术从本地 NetApp 存储获取数据的时间点备份副本,但 SnapMirror 数据复制有助于将它们复制到 Azure 中的 Cloud Volumes ONTAP 卷。该服务还可用于保持本地和云环境之间的数据同步,以实现灾难恢复目的。

NetApp FlexClone® 数据克隆技术有助于创建内部卷的存储高效可写克隆,这些克隆可以集成到 CI/CD 流程中,以在云中部署测试/开发环境。这增强了从本地到云以及云内的数据可移植性,所有这些都可以从统一的管理平台进行管理。因此,Cloud Volumes ONTAP 可帮助组织实现其应用程序的敏捷性和更快的上市时间。

另一种 NetApp 数据迁移服务是 Cloud Sync,它可以快速高效地将数据从任何存储库迁移到云中的基于对象的存储,无论是来自本地系统还是云之间。

结束语

客户可以从 AzCopy 和 Azure PowerShell 等本机工具中进行选择,将文件上传到 Azure Blob Storage。他们还可以利用 Cloud Volumes ONTAP 使用 SnapMirror 复制、NetApp 快照和 FlexClone 等功能进行高级数据管理和迁移。

后续步骤

Drift chat loading