连续可用解决的是重连体验
普通共享所在的节点一旦重启或故障转移,客户端上正在进行的文件操作会立刻失败,用户需要重新打开文件。开启连续可用属性的共享把会话与句柄状态设计成可转移的:节点切换后客户端按原有句柄继续访问,重启期间的操作会短暂阻塞而不报错。它解决的是「切换过程对用户透明」,前提是底层已经有多节点集群在支撑同一个命名空间。
基本信息
| 适用平台 | Windows Server 故障转移集群文件服务;Samba 环境需对应集群方案 |
|---|---|
| 协议前提 | 协商到 SMB3 及以上 |
| 共享属性 | ContinuouslyAvailable |
| 查看命令 | Get-SmbShare、Get-SmbClientConfiguration |
| 相关能力 | 横向扩展文件服务器、多通道、SMB 直通 |
两种共享的行为差异
| 场景 | 普通共享 | 连续可用共享 |
|---|---|---|
| 节点故障转移 | 进行中的操作失败,需重新打开 | 操作短暂阻塞后继续 |
| 客户端表现 | 应用报错、文件被占用异常 | 多数情况下无感知 |
| 前提条件 | 无特殊要求 | 需集群与 SMB3 支持 |
| 兼容性 | 通用 | 部分应用与备份工具需验证 |
配置与核对
配置与核对
# Windows:查看共享是否启用了连续可用
Get-SmbShare | Select-Object Name,ContinuouslyAvailable,CachingMode
# Windows:新建连续可用共享(需运行在集群角色上)
New-SmbShare -Name data -Path C:\ClusterStorage\data -ContinuouslyAvailable $true -FullAccess 'EXAMPLE\Domain Admins'
# 客户端侧确认协商结果
Get-SmbConnection | Select-Object ServerName,Dialect,NumOpens
# 故障转移后核对句柄是否延续
Get-SmbOpenFile | Select-Object ClientUserName,Path典型使用场景
- 数据库或虚拟机的数据目录共享,无法承受切换时操作报错
- 多节点集群对外提供同一份文件服务,需要用户端无感知
- 长时间运行的批处理任务读写共享盘,重连失败会中断整个作业
- 跨节点横向扩展的文件服务,需要会话层面的连续性
连续可用共享对文件访问语义要求更严格,少数依赖抢占式锁定或自行管理缓存的应用、以及部分备份与杀毒工具在启用后会出现异常。上线前必须用真实应用做验证,并保留随时改回普通共享的回退路径。
「开了连续可用就等于有了高可用」是常见误解:它处理的是切换时客户端侧的接续,节点数量、仲裁、存储后端与网络路径仍要另行设计。没有集群支撑时,开启该属性并不能阻止单点故障。