阿里云于2016年发布了支持NFS网络文件系统访问协议的阿里云文件存储。2017年3月,又增加了SMB文件系统访问协议的支持,正式对外公测。本文简单描述了SMB文件存储访问协议以及阿里云SMB协议公测功能,并简单介绍了该服务的使用场景,以及公测申请和使用流程。
一、SMB文件系统访问协议简介
网络文件系统NAS(NAS-Network Area Storage),将本地的存储空间共享给其他主机使用, 通过 C/S 架构实现文件级别的共享,多个客户端计算机可以并发访问同一个文件系统。常见的 NAS 访问协议有NFS 和SMB/CIFS。
NFS: 全称Network File System, 是最初由Sun Microsystems公司开发,并于1984年发布的分布式文件系统协议。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。NFS 是一个基于开放网络运算远程过程调用(ONC RPC)协议之上的开放、标准的RFC协议,任何人或组织都可以依据标准实现它。NFS是在UNIX及类UNIIX系统中最常用的网络文件访问协议,但是Windows客户端对NFS协议的支持不太好。
SMB全称Server Message Block,又称CIFS(Common Internet File System, 主要指SMB2之前的SMB协议),是一种用来访问网络中比如文件,打印机和其他共享网络资源的应用层通信协议。 它起源于80年代由IBM开发的将DOS本地文件访问转化为网络文件系统的协议,后来由微软将其和局域网管理器结合发展起来,被广泛应用于微软的Windows操作系统中作为网络资源共享通信协议。后来微软又在这个基础上引入了SMB2协议,以及后来的SMB 2.1, SMB 3.0, SMB 3.02, SMB 3.1.1版本。相对于NFS,SMB文件系统访问协议更加适合于Windows客户端,各个版本的Windows对SMB协议的支持更加完善。
二、阿里云文件存储SMB协议服务介绍
阿里云文件存储服务NAS(阿里云NAS)是阿里云在2016年正式推出的公有云上的网络文件存储实现。阿里云NAS主要面向阿里云 ECS 实例、HPC、Docker、弹性Web和BatchCompute 等计算节点提供文件存储服务。通过标准的文件访问协议,用户无需对现有应用做任何修改,即可在云上使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。阿里云NAS目前已经正式支持的网络文件系统协议包括NFS V3/V4以及SMB。阿里云NAS使用的一些典型的商业场景主要包括网站内容服务、企业数据共享应用、多媒体信息工作流处理以及大数据分析等等。
用户创建NAS文件系统实例和挂载点后,即可在 ECS、HPC、Docker、弹性Web和BatchCompute等计算节点内通过标准网络文件系统协议如NFS/SMB挂载文件系统,然后使用标准的系统文件接口对文件系统进行访问。用户在这个地域(Region)中所有的数据中心(Zone)里部署的计算节点都可以同时挂载同一个文件系统,共享文件和目录。这些计算节点可以通过多个不同私有网络(VPC)和经典网络(Classic Network)来共享访问同一个文件系统。下图给出了一个共享文件系统在华东区域被4个ECS实例通过两个不同的VPC以及经典网络同时访问的例子。
阿里云NAS共享访问示例:一个共享文件系统在华东区域被4个ECS实例通过两个不同的VPC以及经典网络同时访问
为了丰富文件系统的协议支持和满足客户的兼容性需求,阿里云文件存储在今年3月推出SMB(Server Message Block)文件系统访问协议的支持,并开始公测。与NFS相比,SMB文件系统访问协议更加适合于Windows客户端,各个版本的Windows对SMB协议的支持更加完善,绝大多数Windows应用程序不经修改即可通过SMB协议访问阿里云文件存储服务。因此,阿里云建议应用集中运行在Windows客户端的用户优先考虑使用SMB文件系统访问协议。阿里云是目前市场上唯一一个全面支持NFS和SMB协议的公有云厂商。
阿里云NAS SMB协议支持公测目前在上海区域(华东2)开始公测(https://www.aliyun.com/product/nas ),有意使用SMB文件系统的用户可以开始提出公测申请。在5月下旬,我们会在杭州区域(华东1)、深圳区域(华南区)以及华北区域开始SMB公测服务,在其他区域也会陆续开通。另外,该服务会在今年的秋天开始正式商业化。
公测期间主要功能如下:
- 1. 支持SMB 2.0及以上的SMB协议版本,对应支持Windows Vista / Windows Server 2008及以上的各Windows版本,不支持Windows XP / Windows Server 2003及以下的各Windows版本。做出这一选择的主要原因是SMB 1.0与SMB 2.0 及以后的版本相比,由于协议设计的巨大差异在性能和功能上有严重的不足,同时只支持SMB1.0或更早协议版本的Windows产品都已经完全退出微软支持的生命周期。在这里我们用SMB指代阿里云NAS支持SMB 2.0及以上的各个SMB协议版本。
- 2. 文件系统容量和性能线性扩展,单一命名空间;单文件系统最大容量10PB,最大文件个数10亿。
- 3. 支持专有网络和经典网络环境中的安全访问,控制保障用户数据的私密性:提供挂载点权限组;控制台访问(管控API)支持RAM。
- 4. 访问方式: 每个挂载点只提供一个share, 统一命名为"myshare"。用户用"\\mount_point\myshare"来访问这个SMB share。用户的多个虚拟机可以在阿里云的经典网络或VPC网络中同时访问同一个SMB文件系统。
- 5. 与NFS文件系统基于同一个分布式高可用的底层文件系统,提供一致的SLA保证。文件数量和长度的支持限制也与NFS一致。
目前公测阶段不支持的功能如下:
- 1. 不支持Linux客户端访问
- 2. 不支持用户用NFS和SMB访问同一个文件系统, 不支持通过广域网直接访问SMB文件系统
- 3. 只提供在文件系统级的读写权限控制,不提供文件/目录级别的ACL权限控制
- 4. 不支持文件扩展属性(Extended attributes)以及基于Oplocks和Lease的客户端缓存
- 5. 不支持Sparse files,文件压缩,网卡状态查询, 重解析点(Reparse Point)等IOCTL/FSCTL操作。
- 6. 不支持交换数据流(Alternate Data Streams)
- 7. 不支持SMB Direct, SMB Multichannel, SMB Directory Leasing, Persistent File Handle等SMB 3.0及以上版本的一些协议功能。
三、SMB协议NAS服务的几个典型应用场景
1. Web内容发布和管理
Windows Server目前仍然是非常流行的网站建构平台。到2017年2月止,全球仍然有超过43%站点的Web Server采用微软IIS (来自Netcraft February 2017 Web Server Survey),很多网站和博客系统也是基于内容管理系统例如WordPress、Joomla等和IIS在Windows平台一起实现的。在阿里云现有的用户中,有很高比例的用户选择用阿里云ECS提供的独享Windows虚拟机来提供网站服务。通过将网站内容资源集中存储在一个高可靠,高吞吐,按量付费的阿里云 SMB share上,IIS可以象访问本地文件系统一样访问阿里云NAS上的数据,从而让用户的网站可以实现存储和计算服务的分离,同时计算资源和存储资源都可以支持按需弹性扩容, 通过阿里云提供的负载均衡服务由多个虚拟机来共同承载一个弹性容错的网站架构。一个简单的示意图如下:
2. 现有的Windows应用直接上云
很多用户在Windows平台上有大量程序和数据的历史积淀,特别是很多定制的Windows程序如企业管理信息系统,ERP和CRM系统等往往都有很长的软件生命周期。这类应用在运行时往往依赖于大规模的本地文件系统或者是on-premises的SAN或者NAS,迁移这类应用通常是用户的业务全面迁移上云时面临的难题。通过阿里云NAS的SMB支持,这类Windows应用可以不需修改直接上云运行,同时数据的可靠性和性能得到很高的保证。举例来说,很多医学机构运行多年的专用医学影像存档与通信系统(Picture archiving and communication system,PACS)使用on-premises的NAS来存储医学影像,医生通过办公室或者诊室的Windows客户端从NAS来提取和分析这些影像。阿里云NAS的SMB支持这样的系统前后端直接上云。
3. 企业级文件共享和虚拟桌面服务
随着越来越多的企业上云,云环境需要提供高性能高可用的文件共享服务来替代传统企业中的文件服务器。对于Windows环境占主流的虚拟桌面而言,SMB的支持更是至关重要,一些典型的应用场景如下:
- 企业传统的文件共享服务,例如文档发布。
- 发布和管理RemoteApp 程序。
- 用户的个人桌面配置信息可以通过NAS提供给不同的虚拟机,从而实现用户桌面的自由迁移。
- 管理员可以通过阿里云NAS创建企业级或部门级的共享文件系统,不同的用户在这个文件系统中拥有自己的个人目录,支持通过不同的虚拟桌面访问和共享个人的数据及程序。
- Windows Hyper-V可以直接挂载SMB share上的磁盘镜像文件(.VHD)。
下图示意了虚拟Windows桌面环境通过阿里云NAS共享文件数据的场景。
4. 媒体信息处理
很多流行的视频音频处理应用目前还只能在Windows和Mac OS X上运行,阿里云NAS对SMB的支持使这些应用可以方便地直接上云。用户可以通过阿里云ECS来按需扩展计算能力,批量处理共享在阿里云NAS上的视频音频文件。
5. 数据备份
最近的Windows版本自带的备份程序如Windows Server 2008 和2012中的Windows Server Backup可以按照用户设置进行周期性的自动目录备份,并将备份的内容保存在SMB share上。用户也可以使用第三方备份应用如Acronis Backup甚至是rsync来将数据文件备份到阿里云NAS的SMB share上。下图给出了不同用户/程序/服务的数据从ECS云盘或者其它NAS share由用户Windows虚拟机备份到NAS周期备份到SMB share的流程。
四、申请SMB文件系统公测流程
由于SMB文件系统目前还在公测阶段,所以如果想参加SMB文件系统的公测,必须首先申请公测,如下步骤。
1. 申请SMB文件系统公测可以从阿里云首页的文件存储导航进入,如下图所示,选择文件存储。
2. 然后,在文件存储页面点击“立即申请公测”或者“管理控制台”进入 NAS管理控制台 。
3. 在NAS管理控制台中,选择“申请”申请SMB文件系统协议试用,申请后等待阿里云审批。申请后,你也可以在同一页面点击“查询申请状态”查询申请审核情况。
4. 阿里云通过你的申请后,你会收到通知,也可以通过“查询申请状态”查到你的申请审核通过情况,如下图。
申请审核通过,你就可以创建文件系统了。
五、创建文件系统流程
创建文件系统的步骤如下:
- 如上面的1、2步骤登录NAS管理控制台, 点击右上方的创建文件系统按钮
- 选择地域、可用区和类型后,创建文件系统。文件系统容量上限都为 1PB(性能型)或者10PB(容量型),按实际使用量付费;每个账户最多可以创建 10 个文件系统。
创建文件系统时的可选项如下:
a. 存储类型:性能型或者容量型。目前是支持容量型,后续我们会推出容量型。
b. 协议类型:NFS(适合Linux ECS文件共享)或者SMB(适合Windows ECS文件共享),选择SMB协议。 注意,目前SMB协议只支持容量型存储类型。
3. 创建文件系统后,新创建的文件系统就会出现在文件系统列表中。
六、添加挂载点
文件系统实例创建完成后,您需要为文件系统添加挂载点,用于计算节点(ECS 实例、HPC 或 Docker)挂载文件系统。
NAS 目前支持两种类型的挂载点:VPC 类型和经典网络类型。
1. 添加 VPC 类型挂载点
首先点击实例列表右侧的 添加挂载点,在弹出的对话框的挂载点类型处选择 专有网络 ,并选择该挂载点对应的 VPC ID 和子网 ID,然后在 权限组 下拉框中选择该挂载点绑定的权限组。初次使用,您可以选择 VPC 默认权限组,允许同一VPC 内的任何 IP 地址通过该挂载点访问文件系统。
2. 添加经典网络类型挂载点
目前经典网络类型挂载点支持 ECS 实例, Batch computer以及HPC挂载
首先点击实例列表右侧的 添加挂载点,在弹出的对话框的挂载点类型处选择 经典网络 ,然后在 权限组 下拉框中选择该挂载点绑定的权限组。
出于安全原因,NAS 没有提供经典网络类型的默认权限组,因此初次使用时您需要 进入权限组页面创建一个经典网络类型权限组,并向权限组添加合适的规则(权限组使用介绍)。
3. 查看挂载点信息
创建挂载点后,点击实例列表右侧的管理按钮,可以查看到创建的挂载点信息
七、挂载文件系统流程
1. 前提条件
对于 ECS实例 来说,能否通过一个挂载点访问文件系统取决于以下的条件:
- 若挂载点类型是 VPC 类型的,则只有同一 VPC 内的 ECS 实例能够挂载,并且挂载点所绑定的权限组中有一条规则的授权地址能够与 ECS 实例的 VPC IP 地址匹配。
- 若挂载点类型是经典网络类型的,则只有属于同一账号的 ECS 实例能够挂载,并且挂载点所绑定的权限组中有一条规则的授权地址能够与 ECS 实例的内网 IP 地址匹配。
点击此查看 权限组使用介绍。
2. SMB挂载步骤
- Windows 命令行格式
net use <挂载目标盘符> \\<挂载点域名>\myshare
- 说明
- 挂载目标盘符: 在当前 windows 机器上要挂载的目标盘符。
- 挂载点域名:指创建文件系统和挂载点时,自动生成的挂载点域名。
- myshare:固定 SMB share 名字, 不能改变。
- 示例
挂载 SMB 文件系统到盘符 Z: C:> net use z: \\014544bbf6-wdt41.cn-hangzhou.nas.aliyuncs.com\myshare
如果需要在需要在用户重新登录后保持映射,加上/persistent:yes选项。
注意,如果15分钟内在文件系统上没有操作,连接会断开,但是一旦有操作,连接自动重连。
- 图形化界面挂载
选择图形化界面挂载,在文件浏览器选择计算机,点击右键,在下拉菜单中选择“映射网络驱动器”。然后,选择盘符,输入SMB挂载地址。如果需要在用户重新登录后保持映射,选择相应的选项。
注意,如果15分钟内在文件系统上没有操作,连接会断开,但是一旦有操作,连接自动重连。
- 浏览器访问方式
直接在文件浏览器地址栏输入:\\<挂载点域名>\myshare
3. 查看挂载信息
挂载完成后,您可以在 Windows 命令行中输入以下命令,查看您已挂载的文件系统:
C:>net use