文件存储服务
文件系统
文件存储系统架构
ZStack ZStone文件系统构建于Rados对象存储之上,采用MDS集群管理,通过元数据池 (Meta Pool) 来管理和存储元数据,数据池 (Data Pool) 来管理数据,其中元数据池通常由一组全闪硬盘组成,数据池可按需配置为HDD池或混合池。
在初始化文件系统后,ZStack ZStone基于创建的二级子目录和集群公有网络实现文件共享,支持通过SMB/CIFS或NFS协议访问。这些共享通过文件网关组的形式对外提供服务,用户可以通过任一网关节点的Public IP访问文件存储系统。文件写入/读取时,会先通过MDS查询元数据池获取对应元数据,再直接访问数据池读写数据。
如图 1所示:图 1. 文件存储系统架构


文件存储功能组件
- 文件系统:文件存储的核心资源,负责元数据信息存储、文件数据存储。使用文件存储服务前,需先进行文件系统的初始化,这主要包括:
- 元数据服务集群初始化:在每个集群监控节点上创建一个MDS服务。
- 文件系统创建:创建一个分布式文件系统。
- 文件目录:文件目录是文件系统的子集,是提供文件共享的必需资源,也是存储文件等资源的必要条件。
- 文件用户:文件用户是文件存储的使用者。目前ZStack ZStone的文件用户是作为SMB共享的本地用户。本地用户是创建SMB文件共享时的必需资源,且不同用户仅可访问各自的文件共享。创建本地用户时,ZStack ZStone会优先在所有文件网关节点上创建一个Linux系统用户,然后将其创建为SMB共享用户。
- 文件网关:文件网关是提供给客户端访问文件存储服务的入口。客户端访问文件存储时,需指定一个或多个文件网关。ZStack ZStone支持创建文件网关组,实现统一管理多个文件网关。文件网关组可同时用于SMB共享和NFS共享。
- 文件共享:文件共享是文件系统的一种应用场景,支持跨平台提供文件存储服务。ZStack ZStone提供SMB共享和NFS共享,其中SMB共享主要用于Windows系统挂载,NFS共享主要用于Linux系统挂载。ZStack ZStone文件共享提供统一的权限访问控制:其指定的客户端、客户端组或本地用户同时具有读写权限,未指定的所有其他客户端都不具有访问权限。
应用场景
- 文件共享:支持多种共享协议,满足跨平台环境中的共享服务。
- 数据归档:提供充足存储空间,具备良好数据保护机制。
- 多媒体服务:适用于大规模视频、图片的存储和访问。
文件共享
ZStack ZStone支持通过SMB协议和NFS协议实现文件目录的共享。
SMB共享
ZStack ZStone通过集成Samba来实现与Windows客户端和其他支持SMB协议的设备的兼容。
- 实现方式:Samba配置文件中使用Virtual File System (VFS) 模块来挂载ZStack ZStone文件存储服务。通过该模块,Samba可以直接将ZStack ZStone文件系统挂载为共享目录。
- 典型用途:提供Windows文件共享支持。
NFS共享
ZStack ZStone支持通过NFS-Ganesha将文件系统共享为NFS协议,方便Unix/Linux客户端挂载。
- 实现方式:使用NFS-Ganesha结合ZStack ZStone的libcephfs接口,提供NFS v3和v4协议支持。
- 典型用途:
- 通过NFS提供文件共享服务,适用于基于Linux的客户端。
- 支持跨平台数据共享,例如混合环境中的UNIX和Windows系统。
