Azure下共享目录的使用方法

韩源,资深工程师,存储和灾备专家。

前言

公有云基础架构与传统 IT 架构有很大的区别,特别是在网络和存储方面。以存储为例,Azure 没有 share disk,所以在传统的 aluster、rac 等无法部署,虽然有人通过在 vm 安装配置软 iscsi target 方式实现,但是效率太低,而且不稳定。从公有云设计思路来看,我们需要尽可能的使用 Paas 服务,将底层的安全和稳定性交给公有云去解决。如果一定需要通过 vm 来实施的组件,尽可能无状态化。但是理想是丰满的,现实是骨感的,难免有些应用需要 vm 间保持一致,例如 apache 的配置文件,多台共同提供的文件服务等。如果通过应用在 vm 间同步文件,效率低,而且一致性很难保证。为了解决此问题,Azure 提供了文件共享服务。当然,由于一些不可描述的原因,Azure 不同于其它公有云,文件共享只提供 SMB 而不是 NFS。下边就看看如何在 Azure 里共享文件。

共享目录

共享目录定义

共享目录在 Azure 里属于文件存储,用来存放文件,并以 SMB 方式提供给 vm 访问,目前支持 SMB2.1 和 SMB3.0 两个版本。 如同其它存储服务,文件服务隶属于一个存储账号(storage account),有自己的共享名(share),在文件服务里还可以创建目录(directory)及子目录,以及存放文件。举个例子,创建一个名为 smbdemo 的存储账户,并在其下创建名为 sharefolder 的共享目录,其 url 为:https://smbdemo.file.core.chinacloudapi.cn/sharefolder/如果我们在其下创建了名为 dir1 的目录,并放入图片 1.jpg,则可以通过 url:https://smbdemo.file.core.chinacloudapi.cn/sharefolder/dir1/1.jpgAzure 的共享没有文件数量限制,只有单个共享不能超过 5TB、单个文件不能超过 1TB 的限制。

共享目录创建

登录 Azure 门户预览,进入存储账户



添加一个存储账户测试用(账号类型选择常规用途):



稍等片刻,新存储账户创建完成后点击进入,可以看到常规用途的存储支持 Blob、文件、表、队列四种类型的存储,而共享存储属于文件类型:



点击文件进入文件服务,添加文件共享:



可以看到,共享目录的大小有配额限制,最大 5120GB,如果不填写配额,默认 5120GB,点击刷新,新创建的共享目录出现在列表里:



点击共享目录,进入文件夹属性,可以进行配额修改、创建目录、上传文件等操作:



点击连接,可以看到在不同平台下连接到共享文件夹的方式:



现在该共享里创建目录 dir1,并上传 1.jpg 到该目录:



当然,如果有大量数据需要上传,可以选择专门的 Azure 存储管理工具,如 MS 自己出品的 Azure Storage Explorer、VS2017 等,以及第三方工具,当然还可以在程序里使用 API 上传。 如果数据量巨大,带宽无法满足,MS 还提供数据导入服务,用户可以将数据拷贝到硬盘等物理介质,送到机房导入。

VM 挂载共享目录

Windows 挂载共享目录

根据文档,windows 对不同版本的 SMB 支持如下:

*CIFS – The ancient version of SMB that was part of Microsoft Windows NT 4.0 in 1996. SMB1 supersedes this version. * *SMB 1.0 (or SMB1) – The version used in Windows 2000, Windows XP, Windows Server 2003 and Windows Server 2003 R2 * *SMB 2.0 (or SMB2) – The version used in Windows Vista (SP1 or later) and Windows Server 2008 * *SMB 2.1 (or SMB2.1) – The version used in Windows 7 and Windows Server 2008 R2 * *SMB 3.0 (or SMB3) – The version used in Windows 8 and Windows Server 2012 * *SMB 3.02 (or SMB3) – The version used in Windows 8.1 and Windows Server 2012 R2 *

可见 Azure 所支持的 SMB2.1 和 SMB3.0 基本对现有 windows 系统均可兼容。两个版本的主要区别如下: SMB2.1:支持同一区域的虚机 SMB3.0:支持同一区域、不同区域、的虚机以及客户端应用程序 首先配置并开启一台 windows 虚机,通过远程桌面连接。 windows下挂载共享目录比较简单,直接将共享目录—连接里,windows 连接的命令复制到 windows 的命令行或 powershell 窗口(注意将 Drive letter 改为需要挂载的盘符如 z:,不能被占用),直接回车执行,成功执行后会看到资源管理器多出一个共享目录如下:



如果希望通过\\网络路径的方式去访问共享目录,如下图:



会发现需要输入用户名和口令:



这时候我们需要通过 cmdkey 命令将连接共享目录的凭据添加到 windows 系统,具体步骤如下: 打开存储账户,选择访问密钥,可以看到该存储账户的用户名(和存储账户名一样)及密钥:



回到 windows 系统,在命令行或 powershell 窗口输入: cmdkey /add:smbdemo.file.core.chinacloudapi.cn /user:smbdemo /pass:2p1C2XE8EkqC1TvUOfz6sLQLS46zNtZA+ksYvHfb1Q2AFPvWY3pddkpWXpiovGbgBRDLvAL2juz8CRQyGUw0Gw== 添加凭据,再通过\\网络路径的方式去打开共享目录,发现可顺利打开 :



系统重启后凭据依然有效。

Linux 挂载共享目录

Linux 发行版较多,Azure 里也包含了 Centos、RedHat、Ubuntu 等众多版本。下边以 Centos7 为例说明。 开启一台 Centos7 虚机,通过 putty 等工具 ssh 连接。 Linux不原生支持 smb,所以需要安装 smb 的客户端以及 cifs 文件系统支持的软件包,所需软件包:samba-client samba-common cifs-utils。需要注意一点,由于 linux 的 smb 客户端不支持加密,所以 linux 主机和共享目录需要在同一个 Azure 区域里。 通过 yum 命令直接在线安装或升级所需软件包:





为共享目录创建一个挂载点:,并通过 mount 命令挂载共享目录:(命令可以从共享目录的连接里复制,须将 mount point 修改为正确的挂载点),挂载完成后,可看到共享目录下所见目录和上传的文件:



将挂载参数 vers=3.0 修改为 vers=2.1,再次执行,可以看到仍然成功,说明 centos7 的 amb 客户端可以同时支持 2.1 和 3.0 两个版本:



如果希望开机自动挂载,可在/etc/fstab 文件加入: //myaccountname.file.core.chinacloudapi.cn/mysharename /mymountpoint cifs vers=3.0,username= myaccountname,password= StorageAccountKeyEndingIn==,dir_mode=0777,file_mode=0777 再测试一下 Centos6,创建并开启一台 Centos6 虚机,远程连接安装软件,创建挂载点,然后执行 mount 命令挂载共享目录:



发现无论 2.1 还是 3.0 都无法挂载。 后来查到文档说明: *The kernel version included in RHEL 6 contains an older cifs.ko kernel?module that only supports SMB1 protocol. SMB2 (and later) protocols?require a later cifs.ko and thus a later kernel. RHEL 7 has initial support?for SMB2 protocol in the cifs.ko kernel module and so can act as a SMB2?client.* 只能通过升级 os 版本才能支持。

总结

本文档主要初步介绍 Azure 环境里共享目录使用,未涉及权限管理等。

立即访问http://market.azure.cn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容