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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 阿里云于2016年发布了支持NFS网络文件系统访问协议的阿里云文件系统。2017年3月,又增加了SMB文件系统访问协议的支持,正式对外公测。2018年1月,阿里云NAS SMB支持正式提供商业化服务。本文简单描述了SMB文件系统访问协议以及阿里云NAS支持的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以及经典网络同时访问的例子。

46af86611ea102bfb897ea4a51774ae2a241247a

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

6fa4a0bc097d0bea608da3ae34f60734f1de7966

现有的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共享文件数据的场景。

4678be07a7e248ab75a21424f5a023bcefac4d5a

媒体信息处理

很多流行的视频音频处理应用目前还只能在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的流程。

261df4ac114dc5cfaeaf31f131cbdbafe2204af4

创建文件系统流程

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

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

465ef24ce73fc33deb6449c836e61289bfd0e9c2

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

7b3eb3d1a35d6f0d35633155659b7d31d2542a8c

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

018da48d52c76f882e98c3014f28da0865b5d388

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

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

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

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

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

25b2ac10b3f0b60eb112870d65b25673744a74bd

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

8f2fda2d68b6da76153a282b502d169d9c4249b3

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

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

99dcd2b42a114a92a351065b9afb67f0fe42a544 

0dd68f37f8f6a2f4427a09a70a971c83815126f2

d95613fa7e46b7ec171d2899b74e7a689b18a486

添加挂载点

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

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

添加 VPC 类型挂载点

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

194418622253a2b9ec47f0d6eef28e6925ad7afc

0e0da40bc9307c14a322b5053828617ea2c9367a 

添加经典网络类型挂载点

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

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

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

 194418622253a2b9ec47f0d6eef28e6925ad7afc

9d66d769c0e9595a4e5574b17cd6af5bd040921c

查看挂载点信息

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

353a3de00d1a5dad47c02d47cff7a4468dcdc067 

36de9ddde29d73ff4cd150f973439c1aac59f0d8

挂载文件系统流程

前提条件

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

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

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

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

86a16ef2a6c484a2d8ad8d32c4fd03d0041429f8

SMB挂载步骤

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

示例:

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

57d348bf2007488b653254a75c0af7acdb67bd0a

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

53e2e75cad730b339a83f82188c5a39d1e6b4258

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


b) 图形化界面挂载

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

1b953515597dcd271376413e53d449a2b6f835b7

73664d7b3108e62364afb53a1985d1512e01a1eb

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


c) 浏览器访问方式

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

2b41be56cc2f448aa377c276ea98ea9a40dbbcd3 

查看挂载点信息

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

C:>net use

603cc6c05c715d9b8b6ae0b25515bd0763d25242

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

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

参考网页

阿里云文件存储

阿里云NAS新手入门

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

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

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

 

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
2月前
|
关系型数据库 MySQL Apache
**ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
**ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
19 2
|
2月前
|
缓存 负载均衡 网络协议
阿里云DNS常见问题之某个地域访问不到如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
13天前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之在阿里云函数计算中想为两个不同的服务分别开通自定义域名如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
26 1
|
3天前
|
Cloud Native 关系型数据库 OLAP
高效易用的数据同步:阿里云瑶池 Zero-ETL服务来啦!
在大数据时代,企业有着大量分散在不同系统和平台上的业务数据。OLTP数据库不擅长复杂数据查询,不具备全局分析视角等能力,而OLAP数据仓库擅长多表join,可实现多源汇集,因此需要将TP数据库的数据同步到AP数据仓库进行分析处理。传统的ETL流程面临资源成本高、系统复杂度增加、数据实时性降低等挑战。为了解决这些问题,阿里云瑶池数据库提供了Zero-ETL服务,可以快速构建业务系统(OLTP)和数据仓库(OLAP)之间的数据同步链路,将业务系统的数据自动进行提取并加载到数据仓库,从而一站式完成数据同步和管理,实现事务处理和数据分析一体化,帮助客户专注于数据分析业务。
52 0
|
3天前
|
存储 缓存 安全
阿里云EMR数据湖文件系统: 面向开源和云打造下一代 HDFS
本文作者详细地介绍了阿里云EMR数据湖文件系统JindoFS的起源、发展迭代以及性能。
|
13天前
|
NoSQL 数据管理 MongoDB
数据管理DMS产品使用合集之如何通过阿里云的数据管理服务(DMS)导出MongoDB数据
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
13天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
41 4
|
13天前
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
15 0
|
13天前
|
运维 监控 关系型数据库
Serverless 应用引擎产品使用之在阿里云函数计算(FC)中,要访问另一个账号的rds配置rds的白名单如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
30 0
|
13天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中,Go语言的函数计算服务Go程序没有正确打包如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
23 0