千家信息网

​Azure Storage系列之使用AzCopy在blob

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,AzCopy使用的场景其实非常多,也能帮助我们解决很多问题,这次就来分享两个不同场景下,AzCopy是如何帮我们解决问题的首先先来看下两个场景分别是什么1.需要下载存储在Azure Global上的b
千家信息网最后更新 2024年11月22日​Azure Storage系列之使用AzCopy在blob

AzCopy使用的场景其实非常多,也能帮助我们解决很多问题,这次就来分享两个不同场景下,AzCopy是如何帮我们解决问题的

首先先来看下两个场景分别是什么

1.需要下载存储在Azure Global上的blob

2.需要在Azure Global和Azure China之间同步blob数据



这两个都是实际的案例,首先来看第一个

背景是在Azure Global的storage上有一个60T的vhd文件,这个文件是第三方厂商公开分享的,任何人都可以直接下载,而不需要经过身份验证,而我们需要做的就是要把这个放在Global的vhd文件迁移到中国区,然后再进行部署

我们尝试了很多种方法

1.直接下载 -- 速度维持在kB级别,极不稳定

2.使用各大网盘和下载工具离线下载 -- 根本下不动

3.使用不可描述的工具科学下载 -- 开始时速度很客观,但一段时间后速度变为0

4.直接在Global Azure创建一台VM进行下载 -- 速度位置在MB级别,稳定性尚可,但等待一段时间后,下载中断


以上几种方法最终都被认定为不可行,最终还是使用AzCopy解决了这个问题


首先我们先安装好azcopy,然后在中国区建一个storage和container,以存放拷贝来的数据

以上这些都属于前期准备工作


之后我们就来看如何进行数据的拷贝,首先在源端和目标端都是azure blob的时候,azcopy会有一些限制

  • 必须向每个源 URL 追加一个 SAS 令牌。

  • 如果使用 Azure Active Directory (AD)提供授权凭据,则只能从目标 URL 中省略 SAS 令牌。


所以,我们的源端必须是用SAS进行认证的,而我们的情况是源端是直接开放的,所以也不需要SAS了

而目标端我们就需要使用Azure AD进行身份验证了


Azure AD进行身份验证我们已经说了很多次了,具体如何操作呢,azcopy v10是可以让用户进行login的,所以这也就说明我们可以用我们的azure账户进行登录,而azure 用户现在是可以被直接赋予对blob的读写权限的,相关的role主要有以下几个

  • Storage Blob Data Reader

  • Storage Blob Data Owner

  • Storage Blob Data Contributor


概念和常规的role有点类似吧,我们这里是需要写入文件的,所以肯定不能用reader,我们直接assign一个owner的权限



之后我们就开始进行迁移,首先先登录目标端环境

azcopy login --aad-endpoint https://login.partner.microsoftonline.cn

在浏览器访问这个标红的url,然后输入code,整个过程和cli以及linux下的powershell其实是一样的





登录完成,我们尝试list下container里的内容,可以看到已经能列出相应的内容了

azcopy list https://mxy.blob.core.chinacloudapi.cn/test


之后我们直接使用copy命令将在Global的vhd文件copy到container里

azcopy copy https://xxxxx.blob.core.windows.net/release/xxxxx.vhd https://.blob.core.chinacloudapi.cn/sms/sms-connector.vhd


整个过程半小时就完成了,平均速度能达到400-500Mbps


速度之所以可以达到这么快,是因为AzCopy 使用服务器到服务器 api,因此直接在存储服务器之间复制数据。 这些复制操作不会使用计算机的网络带宽。




再来看第二种场景:

在blob之间同步数据,因为这种同步很可能并不止是一次性同步,很可能之后要定期运行,所以源端和目标端我们都用SAS做身份验证


关于SAS,这里篇幅有限就不多赘述了,我们直接生成一个storage级别的SAS



之后使用azcopy sync命令进行同步


azcopy sync 'https://mxxxc.blob.core.windows.net/$web?sv=2019-02-02&ss=bfqt&srt=sco&sp=rwdlacuxxxxxx&st=2020-02-10T03:42:25Z&spr=https,http&sigxxxxxxc%3D' 'https://xxx.blob.core.chinacloudapi.cn/global?sv=2019-02-02&ss=bfqt&srt=sco&xxxxx5:59Z&st=2020-02-10T04:35:59Z&spr=https,http&sigxxxxxx3D' --recursive --s2s-preserve-access-tier=false



可以在目标端看到数据已经过来了


之后我们在源端上传一个新文件



再次运行命令,可以看到这次只同步了一个文件


通过这种方法,很快就可以把gloabl的数据同步到中国区,并且安全性也可以得到保障


以上就是azcopy使用的两个案例

数据 文件 同步 目标 速度 两个 场景 身份 验证 之间 命令 方法 服务器 级别 问题 中国 中国区 服务 登录 令牌 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 零陵网络安全防线 数据库系统工程师报考条件是什么 bash网络安全运维pan 各部门如何用好网络安全法 重庆途锦互联网科技 中学生网络安全意识调查表 服务器层面网络安全 中介服务超市软件开发 不想记录运动数据库 我国网络安全领域标志性法律 文档中如何快速计算数据库 九江网络安全学习实战教学 数据库lnk 字段限定 广州网络安全研究所 海南海云天网络技术地产转让 sql 搜索最新的条数据库 决战平安京是全服务器连通吗 南京扬州网络技术哪家好 月付双线服务器 深圳孜馨网络技术有限公司 软件开发中几种模型的 郑州自主软件开发 北京网络安全兼职 数据库传统的集合运算怎么理解 重庆途锦互联网科技 软件开发工程师的简历应该怎么写 域控服务器安全策略 网络安全国家立法解读 网络安全技术员容易被记录犯罪吗 如何搭建公网服务器
0