​AzureStorage系列之使用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的权限

​Azure Storage系列之使用AzCopy在blob

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

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

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

​Azure Storage系列之使用AzCopy在blob

​Azure Storage系列之使用AzCopy在blob

​Azure Storage系列之使用AzCopy在blob

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

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

​Azure Storage系列之使用AzCopy在blob

之后我们直接使用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

​Azure Storage系列之使用AzCopy在blob

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

​Azure Storage系列之使用AzCopy在blob

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

再来看第二种场景:

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

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

​Azure Storage系列之使用AzCopy在blob

​Azure Storage系列之使用AzCopy在blob

之后使用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

​Azure Storage系列之使用AzCopy在blob

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

​Azure Storage系列之使用AzCopy在blob

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

​Azure Storage系列之使用AzCopy在blob

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

​Azure Storage系列之使用AzCopy在blob

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

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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:​AzureStorage系列之使用AzCopy在blob-创新互联
当前网址:http://scyanting.com/article/dhicgo.html