ceph存储 微软SMB3.0文件共享协议新特性介绍

SMB(*nix平台和Win NT4.0又称CIFS)协议是Windows平台标准文件共享协议。Linux平台通过samba来支持。SMB最新版本v3.0,在v2.0基础上针对WAN和分布式有改进。详细内容如下:

透明故障切换:

SMB3.0提供故障切换功能,在一台服务器故障情况下,客户端请求可以平滑切换到另外一台服务器,可以实现0宕机时间,切换过程少量IO会有延迟。该功能要求SMB服务器是一个集群,客户端和服务器都采用SMB3.0,共享开启“Continuous Availability”。SMB3.0以前协议客户可以正常访问SMB3.0共享,但是不支持透明故障切换功能。

切换过程示意图如下:

分布式支持:

SMB3.0可以将多台服务器组建成为一个集群,集群里面所有节点对客户端提供文件共享服务。在集群节点故障情况下,共享可以实现0宕机时间;并且可以快速故障恢复。

SMB2.0客户端可以正常访问SMB3.0集群,但是不支持故障切换;SMB1.0客户端不支持。

架构示意图如下:

RDMA支持:

SMB3.0支持RDMA功能,客户端和服务器都需要使用支持RDMA功能适配器(iWARP、RoCE、Infiniband)。RDMA功能可以使SMB共享可以获得更高带宽和更低延迟,有效减轻CPU I/O处理负载。结合SMB多通道功能可以实现负载均衡和故障切换功能。

SMB3.0以前客户端可以访问SMB3.0基于RDMA的共享,但不支持RDMA功能。RDMA架构示意图如下:

SMB多通道(Multichannel):

如果SMB客户端或者服务器拥有两块以上网卡,SMB多通道技术可以自动侦测使用多有网络路径,可以合并使用所有网卡带宽,SMB多通道技术可以结合多核处理器的RSS(RSS可以将IO请求均衡分发到不同处理器核心)技术。SMB多通道可以利用操作系统现有网卡绑定技术,但是不依赖。如果一种一块网卡故障,SMB多通道可以自动进行故障切换。

SMB3.0以前客户端无法使用SMB多通道技术,SMB多通道架构示意图如下:

SMB目录租约:

SMB3.0可以将共享的元数据信息缓存在客户端,客户端元数据请求直接从本地读取,这样可以提高查询性能,减少客户端与服务器之间延迟。目录缓存一致性通过租约实现(类似于DNS租约管理机制)。如果目录元数据有更新,服务器主动通知客户端更新。该功能要求SMB3.0客户端:

SMB加密功能:

SMB3.0自身提供端-端数据加密功能,可以在保证数据在复杂网络环境中的安全性。加密功能不需要依赖IPSec、PKI和特定硬件,使用AES CCM 128位加密算法。

VSS服务

VSS全称volume shadowcopy service,是微软为Windows操作系统提供的一个快照机制。SMB3.0共享提供VSS支持,主要服务于备份需求。VSS的影子拷贝由SMB3.0服务器提供,在不影响现有卷访问情况下,备份客户端可以通过影子拷贝完成备份过程,应用主机不参与备份数据传输过程,可以降低应用主机的负载。SMB3.0的VSS支持,原理跟RDMA基本相似。

SMB3.0 VSS架构示意图如下:


==================================================================================


SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。


SMB3.0新特性

  • SMB透明故障转移:让管理员可执行群集文件服务器中节点的硬件或软件维护,且不会中断将数据存储在这些文件共享上的服务器应用程序。此外,如果群集节点出现硬件或软件故障,SMB 客户端将以透明方式重新连接到其他群集节点,且不会中断将数据存储在这些文件共享上的服务器应用程序。即客户端能够持续、稳定的对远程文件服务器进行通讯,用户不会感受到单点服务器故障所带来的性能影响(不兼容SMB1.0或SMB2.x)。
  • SMB横向扩展:可构建横向扩展文件服务器(Scale-Out File Server),在使用群集共享卷(CSV)版本2时,管理员可以通过文件服务器群集中所有节点,创建可供同时访问含直接I/O的数据文件的文件共享。这可更好地利用文件服务器客户端的网络带宽和负载平衡,以及优化服务器应用程序的性能。
  • SMB多通道:如果在SMB3.0客户端及服务器之间提供多条路径,则支持网络带宽和网络容错的聚合,提升了网络可用性及文件服务器的稳定性,并让服务器应用程序可以充分利用可用网络带宽,以及在发生网络故障时快速恢复。
  • SMB直接访问(SMB over Remote Direct Memory Access[RDMA]):支持使用具有RDMA功能且可全速运行的网络适配器,其中延迟非常低且CPU利用率极少。对于Hyper-V或Microsoft SQL Server等实现工作负载,这让远程服务器如同本地存储一般。
  • 用于服务器应用程序的性能计数器:全新 SMB 性能计数器提供有关吞吐量、延迟和 I/O/秒 (IOPS) 的按共享列出的详细信息,从而让管理员可以分析用于存储数据的 SMB 3.0 文件共享的性能。这些计数器专为将文件存储在远程文件共享上的服务器应用程序而设计,如 Hyper-V 和 SQL Server。
  • 性能优化:SMB 3.0 客户端和 SMB 3.0 服务器均已针对小型随机读/写 I/O 优化,这种 I/O 在 SQL Server OLTP 等服务器应用程序中很常见。此外,默认情况下打开大型最大传输单元 (MTU),这将大幅提高大型连续传输性能,如 SQL Server 数据仓库、数据库备份或还原、部署或复制虚拟硬盘。
  • SMB加密:提供SMB数据的端对端加密并防止数据在未受信任网络中遭受窃听。无需新部署成本,且无需Internet协议安全性(IPsec)、专用硬件或WAN加速器。它可按共享配置,也可针对整个文件服务器配置,并且可针对数据遍历未受信任网络的各种方案启动。
  • 为SMB文件共享所提供的VSS:
  • SMB目录租用:缩短分支机构的应用程序响应时间。使用目录租用后,缩短了从客户端到服务器的往返时间,因为是从保留时间较长的目录缓存中检索元数据。缓存一致性得到保持,因为在服务器上的目录信息更改时将通知客户端。适用于主文件夹(读/写,无共享)和 发布(只读,带共享)。
  • SMB PowerShell:借助于全新的SMB Windows PowerShell cmdlet,管理员可以从命令行以端对端方式管理文件服务器上的文件共享。

猜你喜欢

转载自blog.csdn.net/skdkjxy/article/details/80987382