阿里云文件系统SMB访问协议服务及使用指南

阿里云于2016年发布了支持NFS网络文件系统访问协议的阿里云文件系统。20173月,又增加了SMB文件系统访问协议的支持,正式对外公测。20181月,阿里云NAS SMB支持正式提供商业化服务。本文简单描述了SMB文件系统访问协议以及阿里云NAS支持的SMB协议功能,并简单介绍了该服务的使用场景以及使用流程。

SMB文件系统访问协议简介

文件系NASNAS-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以及经典网络同时访问的例子。

阿里云文件系统SMB访问协议服务及使用指南

阿里云NAS共享访问示例:一个共享文件系统在华东区域被4个ECS实例通过两个不同的VPC以及经典网络同时访问

为了丰富文件系统的协议支持和满足客户的兼容性需求,阿里云NAS在2017年3月提供SMB(Server Message Block)文件系统访问协议的支持,并开始向用户开放公测 。与NFS相比,SMB文件系统访问协议更加适合于Windows客户端,各个版本的Windows对SMB协议的支持更加完善,绝大多数Windows应用程序不经修改即可通过SMB协议访问阿里云文件存储服务。因此,阿里云建议应用集中运行在Windows客户端的用户优先考虑使用SMB文件系统。阿里云是目前市场上唯一一个全面支持NFS和SMB协议的公有云厂商。

在公测期间,阿里云NAS SMB支持经过了全面优化,特别是提供了对并发IO和小文件操作的更好支持。2018年1月,阿里云NAS SMB支持正式商业化,在阿里云国内的所有区域和部分海外区域提供服务。

阿里云NAS SMB主要功能如下:

  • 支持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协议版本。 
  • 文件系统容量和性能线性扩展,单一命名空间;单文件系统最大容量10PB,最大文件个数10亿。
  • 支持专有网络和经典网络环境中的安全访问,控制保障用户数据的私密性:提供挂载点权限组;控制台访问(管控API)支持RAM。
  • 访问方式: 每个挂载点只提供一个share, 统一命名为"myshare"。用户用"\\mount_point\myshare"来访问这个SMB share。用户的多个虚拟机可以在阿里云的classic或VPC网络中同时访问同一个SMB文件系统。
  • 与NFS文件系统基于同一个分布式高可用的底层文件系统,提供一致的SLA保证。文件数量和长度的支持限制也与NFS一致。

由于公有云环境和传统企业环境的不同,特别是由于客户端的多样性和复杂性,与其它公有云文件系统服务一样,阿里云选择在现阶段不支持一部分SMB功能。这些不支持的功能对大多数应用的运行都没有影响。目前我们不支持的功能如下:

  • 目前不支持Linux客户端访问
  • 不支持用户用NFS和SMB访问同一个文件系统, 不支持通过广域网直接访问SMB文件系统
  • 只提供在文件系统级的读写权限控制,不提供文件/目录级别的ACL权限控制
  • 不支持文件扩展属性(Extended attributes)以及基于Oplocks和Lease的客户端缓存
  • 不支持Sparse files,文件压缩,网卡状态查询, 重解析点(Reparse Point)等IOCTL/FSCTL操作。
  • 不支持交换数据流(Alternate Data Streams)
  • 不支持SMB Direct, SMB Multichannel, SMB Directory Leasing, Persistent File Handle等SMB 3.0及以上版本的一些协议功能。

上述部分功能如oplock/lease,文件ACL权限控制等将在后续版本中推出。

SMB协议NAS服务的几个典型应用场景

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上的数据,从而让用户的网站可以实现存储和计算服务的分离,同时计算资源和存储资源都可以支持按需弹性扩容, 通过阿里云提供的负载均衡服务由多个虚拟机来共同承载一个弹性容错的网站架构。一个简单的示意图如下:

阿里云文件系统SMB访问协议服务及使用指南

现有的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支持这样的系统前后端直接上云。

企业级文件共享和虚拟桌面服务

随着越来越多的企业上云,云环境需要提供高性能高可用的文件共享服务来替代传统企业中的文件服务器。对于Windows环境占主流的虚拟桌面而言,SMB的支持更是至关重要,一些典型的应用场景如下:

·       企业传统的文件共享服务,例如文档发布。

·       发布和管理RemoteApp 程序。

·       用户的个人桌面配置信息可以通过NAS提供给不同的虚拟机,从而实现用户桌面的*迁移。

·       管理员可以通过阿里云NAS创建企业级或部门级的共享文件系统,不同的用户在这个文件系统中拥有自己的个人目录,支持通过不同的虚拟桌面访问和共享个人的数据及程序。

·       Windows Hyper-V可以直接挂载SMB share上的磁盘镜像文件(.VHD)。

下图示意了虚拟Windows桌面环境通过阿里云NAS共享文件数据的场景。

阿里云文件系统SMB访问协议服务及使用指南

媒体信息处理

很多流行的视频音频处理应用目前还只能在Windows和Mac OS X上运行,阿里云NAS对SMB的支持使这些应用可以方便地直接上云。用户可以通过阿里云ECS来按需扩展计算能力,批量处理共享在阿里云NAS上的视频音频文件。

数据备份

最近的Windows版本自带的备份程序如Windows Server 2008 和2012中的Windows Server Backup可以按照用户设置进行周期性的自动目录备份,并将备份的内容保存在SMB share上。用户也可以使用第三方备份应用如Acronis Backup甚至是rsync来将数据文件备份到阿里云NAS的SMB share上。下图给出了不同用户/程序/服务的数据从ECS云盘或者其它NAS share由用户Windows虚拟机备份到NAS周期备份到SMB share的流程。

阿里云文件系统SMB访问协议服务及使用指南

创建文件系统流程

创建文件系统的步骤如下:

1) SMB文件系统可以从阿里云首页的文件存储导航进入,如下图所示,选择文件存储。

阿里云文件系统SMB访问协议服务及使用指南

2) 然后,在文件存储页面点击“管理控制台”进入NAS管理控制台

阿里云文件系统SMB访问协议服务及使用指南

3) 在NAS管理控制台中,点击右上方的创建文件系统按钮。或者选择购买存储包。

阿里云文件系统SMB访问协议服务及使用指南

4) 创建文件系统页面中,选择地域、可用区和类型后,创建文件系统。文件系统容量上限都为 1PB(性能型)或者10PB(容量型),按实际使用量付费;每个账户最多可以创建 10 个文件系统。

   创建文件系统时的可选项如下。

a.     存储类型:性能型或者容量型

b.     协议类型:NFS(适合Linux ECS文件共享)或者SMB(适合Windows ECS文件共享),选择SMB文件系统。

c.     存储包:如果是容量型,必须需要绑定到空闲的存储包。性能型则不需要绑定,可以按量收费。

阿里云文件系统SMB访问协议服务及使用指南

5) 购买存储包页面中, 选择区域,文件系统ID(创建新文件系统并绑定存储包),存储类型,协议类型,购买量(时长)。选择立即购买后,支付完成创建文件系统并绑定到存储包。

阿里云文件系统SMB访问协议服务及使用指南

6) 创建文件系统或者购买存储包并新建文件系统后,新创建的文件系统就会出现在文件系统列表中。

    对于已经创建的文件系统需要从按量变成存储包,只要点击文件系统列表中相应的文件系统的管理,进入管理文件系统页面,在存储包区域点击购买存储包,进入购买存储包页面绑定到该文件系统即可。

阿里云文件系统SMB访问协议服务及使用指南 

阿里云文件系统SMB访问协议服务及使用指南

阿里云文件系统SMB访问协议服务及使用指南

添加挂载点

文件系统实例创建完成后,您需要为文件系统添加挂载点,用于计算节点(ECS 实例、HPC Docker)挂载文件系统。

NAS 目前支持两种类型的挂载点:VPC 类型和经典网络类型。

添加 VPC 类型挂载点

首先点击实例列表右侧的 添加挂载点,在弹出的对话框的挂载点类型处选择 专有网络 ,并选择该挂载点对应的 VPC ID 和子网 ID,然后在 权限组 下拉框中选择该挂载点绑定的权限组。初次使用,您可以选择 VPC 默认权限组,允许同一 VPC 内的任何 IP 地址通过该挂载点访问文件系统。

阿里云文件系统SMB访问协议服务及使用指南

阿里云文件系统SMB访问协议服务及使用指南 

添加经典网络类型挂载点

目前经典网络类型挂载点支持 ECS 实例, Batch computer以及HPC挂载

首先点击实例列表右侧的 添加挂载点,在弹出的对话框的挂载点类型处选择 经典网络 ,然后在 权限组 下拉框中选择该挂载点绑定的权限组。

出于安全原因,NAS 没有提供经典网络类型的默认权限组,因此初次使用时您需要 进入权限组页面创建一个经典网络类型权限组,并向权限组添加合适的规则(权限组使用介绍

 阿里云文件系统SMB访问协议服务及使用指南

阿里云文件系统SMB访问协议服务及使用指南

查看挂载点信息

创建挂载点后,点击实例列表右侧的管理按钮,可以查看到创建的挂载点信息 

阿里云文件系统SMB访问协议服务及使用指南 

阿里云文件系统SMB访问协议服务及使用指南

挂载文件系统流程

前提条件

     对于 ECS实例 来说,能否通过一个挂载点访问文件系统取决于以下的条件:

     a) 若挂载点类型是 VPC 类型的,则只有同一 VPC 内的 ECS 实例能够挂载,并且挂载点所绑定的权限组中有一条规则的授权地址能够与 ECS 实例的 VPC IP 地址匹配。

     b) 若挂载点类型是经典网络类型的,则只有属于同一账号的 ECS 实例能够挂载,并且挂载点所绑定的权限组中有一条规则的授权地址能够与 ECS 实例的内网 IP 地址匹配。

     点击此查看 权限组使用介绍

阿里云文件系统SMB访问协议服务及使用指南

SMB挂载步骤

   net use <挂载目标盘符> \\<挂载点域名>\myshare
说明:
   挂载目标盘符: 在当前 windows 机器上要挂载的目标盘符
   挂载点域名:指创建文件系统和挂载点时,自动生成的挂载点域名
   myshare:固定 SMB share 名字, 不能改变

示例:

    挂载 SMB 文件系统到盘符 Z C:> net use z: \\014544bbf6-wdt41.cn-hangzhou.nas.aliyuncs.com\myshare

阿里云文件系统SMB访问协议服务及使用指南

如果需要在需要在用户重新登录后保持映射,加上/persistent:yes选项。

阿里云文件系统SMB访问协议服务及使用指南

注意,如果15分钟内在文件系统上没有操作,连接会断开,但是一旦有操作,连接自动重连。


b) 图形化界面挂载

选择图形化界面挂载,在文件浏览器选择计算机,点击右键,在下拉菜单中选择“映射网络驱动器”。然后,选择盘符,输入SMB挂载地址。如果需要在用户重新登录后保持映射,选择相应的选项。

阿里云文件系统SMB访问协议服务及使用指南

阿里云文件系统SMB访问协议服务及使用指南

注意,如果15分钟内在文件系统上没有操作,连接会断开,但是一旦有操作,连接自动重连。


c) 浏览器访问方式

    直接在文件浏览器地址栏输入:\\<挂载点域名>\myshare

阿里云文件系统SMB访问协议服务及使用指南 

查看挂载点信息

挂载完成后,您可以在 Windows 命令行中输入以下命令,查看您已挂载的文件系统:

C:>net use

阿里云文件系统SMB访问协议服务及使用指南

阿里云NAS SMB服务的后续发展和演化

在阿里云NAS SMB正式商业化之后,我们会根据用户使用的反馈进行持续优化,同时我们会不断提升系统的性能、可用性和安全性。特别要指出的是,我们会不断提高系统兼容性,从而实现跨操作系统(Windows/Linux)、跨文件系统类型(NFS/SMB)和跨阿里云内网外网的访问。

参考网页

阿里云文件存储

阿里云NAS新手入门

用Windows IIS和阿里云NAS提供Web和FTP服务

使用 Windows Server Backup 从 ECS 备份数据到 NAS

从用户Windows系统到阿里云NAS SMB服务:常用数据迁移备份工具

 

上一篇:中文字节长度引起的数据丢失


下一篇:Spring Batch JSON 支持