设为首页 收藏本站
查看: 1759|回复: 0

[经验分享] Azure存储之文件服务

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-10 08:19:12 | 显示全部楼层 |阅读模式
春节前突击出差了几次忙的不可开交,没想节后又马不停蹄的投入到工作中。。。哎,不过充实的工作安排也会让自己得到更快的提升(只能这样自我安慰了),有阵子没更新博客了,主要是因为忙于很多售前项目,也迟迟没想出哪些值得分享的内容,好在春节利用几天时间做了些测试并准备了不少素材,可能最近会share一些内容出来,不过很多都是基本的,希望可以帮助到一些刚接触azure或云计算相关的朋友们吧。

之前的博文有提到过一些有关Azure存储服务方面的内容,例如Blob的概念,还有像AzCopy管理工具,今天继续说说Azure存储方面的一个新服务,叫做Azure文件服务。

先看下面两张图,相对于Blob来说,文件服务(即FileShare)从逻辑上看有些区别,首先同样是基于存储账户这个概念的,也就是对外开放的URL与Blob、Table、Queue都是一样的,只不过在存储账号之后不再是container而是share,这个share相当于共享名称(没有数量限制),和我们windows服务器中的smb共享是一样的,但是Azure文件服务是基于smb2.1的而不是3.0,也就意味着目前文件服务无法承载虚拟机或MSSQL这些服务,在share之后就是目录,目录同样没有数量限制,最后就是文件,单个文件大小上限是1TB,可以发现这个阀值与page blob是相同的。

那么最终Azure文件服务的URL格式就是:https://.file.core.chinacloudapi.cn///
wKioL1T9uIGxUcZnAADUyClJzOc452.jpg
wKiom1T9t2WxH3SfAAEzxZJXRO0139.jpg
目前Azure文件服务的创建与管理是无法通过门户来操作的,最便捷的方式就是PowerShell(Azure模块 0.8.5或更高,如果不满足请及时更新),整个过程还是很简单的,首先要具备一个存储账号如下图:(后面的截图中可能账号名称不一致,因为我在global和大陆版之间切换,不影响演示)
wKioL1T9up7za_jLAAMdVTsAQFg216.jpg
通常第一次导入publishsetting文件时,默认的订阅是没有关联存储账号的,那么就通过powershell配置一下,如下图:

wKiom1T9uYOy2CgyAAGL662pZJ8237.jpg
接下来就准备创建Azure文件服务的共享了,一般我习惯先设置一个存储账户的变量$key,然后生成一个上下文变量$context,这一步是必须的,上下文中主要是包含了存储账户和密钥(主备密钥都可以),接下来就可以创建文件服务的share,也就是紧跟在存储账户之后的那个文件共享名,通过new-azurestorageshare来实现,需要调用之前的$context

但是!出现了一个坑,与其说是坑倒不如说是设计上的缺陷(至少我个人是这么人为的),希望看过我这篇博文的筒子们可以少绕些弯子,如下图中报错中所描述的,提示我解析名称失败,奇怪的是这名称不是国内的chinacloudapi.cn而是global版的windows.net

wKioL1T9up_BKLS9AAcf2ilPsSE892.jpg
于是乎赶紧查看一下语法,果不其然发现一个坑爹的-environment参数,记得之前只有在get-azurepublishsettingfile时会用到它,没想到文件服务也需要,明明之前的blob、table、queue服务都可以直接指向大陆版本,真是想不明白。。。

wKiom1T9uYOAvc9QAAcROHyRij4584.jpg
重启配置一次$context,并添加azurechinacloud,如下图

wKioL1T9uqDTOsZ9AAK8ysw7sb0570.jpg
再次尝试创建文件共享名"labshare01",果然成功了。。。

wKiom1T9uYSDfI5xAAMjWNuLzk4119.jpg
查看已存在的文件共享可以看到labshare01

wKioL1T9uqCymw5ZAAHWGHI0moc955.jpg
有了account和share之后就可以创建目录了,在labshare01下创建一个叫做“share01folder01”的文件夹,如下图:

wKiom1T9uYWzDqXGAAHtv55n1fc831.jpg
到此为止Azure文件服务就已经创建完成了,接下来就可以利用文件服务来上传并管理所需要的数据了,我在本地生成了一个txt文档,然后将它上传至share01folder01文件夹中,如下图:

wKioL1T9uqHi-26HAAKkDWECqZw830.jpg
通过get-azurestoragefile查看已经上传成功,同样利用AzCopy工具也能完成,并且AzCopy支持Blob与FileShare之间的数据拷贝,还是非常好用的

wKiom1T9uYbgI-tRAAONsecjMEY615.jpg
####################################################################################
上面提到了如何快速简单的创建Azure文件服务,接下来如何使用呢,首先Azure文件服务可以供Azure虚拟机和云服务来使用,任意数量的虚拟机或其他角色(Web/Worker)可以同时挂载文件共享,本地的应用程序也可以通过文件API来访问共享中的数据,遗憾的是本地的客户端不能通过Azure存储账户和密钥来直接挂载共享,只有AzureVM可以使用,例如下图中通过net use来将之前创建的共享mount到我这台虚拟机上,成功后可以看到Z盘映射了labshare01

wKioL1T9uqKChtfwAAVAziWFkqc140.jpg
这样我就可以很方便的从AzureVM中来访问共享中的数据,如下图:

wKiom1T9uYfg2AS8AAQ_ZdlK_Pg941.jpg
但是在大部分场景中,我们都需要虚拟机重启时能够自动重连共享(跟网络映射一样),可以通过下图中的cmdkey来将azure存储账户和密钥凭据保存在本地

wKioL1T9uqOwjL7-AALczySP-6g770.jpg
但是坑又来了。。。经过上面的方法,重启之后链接失败,如下图:

wKiom1T9uYiSGCnqAAOdGKiywkA115.jpg
惦记共享后手动输入存储账户密钥,就可以正常访问了,开始很奇怪为什么会酱紫,本地保存的凭据和我输入的肯定一致,可就是无法自动重连

wKioL1T9uqSDxhoyAAPuGmcR8J8612.jpg
经过咨询和自己验证之后得知,需要先使用cmdkey将凭据保存,然后再mount共享。。。这又是坑啊

wKiom1T9uYiBe4jPAARBDVj_9tQ553.jpg
之后重启AzureVM验证一下是否可行

wKioL1T9uqXR2o6pAANQHoXJFQw406.jpg
这次总算自动连接上了,看来对于操作的步骤还有先后顺序的要求(从技术上来看真是说不过去。。)

wKiom1T9uYmgDNiFAANVAaaWEQs533.jpg
Azure文件服务实现简单,使用也很方便,它的出现使得用户在公有云存储服务上又多了一种选择,并且对于已有的本地应用,迁移到云端时考虑使用Azure文件服务会是一种比较简单的实现方式,如果日后Azure支持SMB3.0的话,估计会有更多的亮点出现。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-45068-1-1.html 上篇帖子: 在Windows Azure 上运行 OpenSUSE Linux的虚拟机上安装 Mono 3.0.2, 测试ASP.NET WebAPI 失败(Mono 3. 下篇帖子: Azure linux 部署 VSFTP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表