File Storage Service

File System

File Storage System Architecture

The ZStack ZStone file system is built on Rados object storage. It employs an MDS (Metadata Server) cluster for management, utilizing a Metadata Pool to manage and store system metadata, and a Data Pool to store the file data. Typically, the Metadata Pool consists of a set of all-flash drives, while the Data Pool can be configured as needed as an HDD pool or a hybrid pool.

After initializing the file system, ZStack ZStone enables file sharing based on created secondary subdirectories and the cluster’s public network, supporting access via SMB/CIFS or NFS protocols. These shared resources are provided externally through a file gateway group, allowing you to access the file storage system via the public IP of any gateway node. For file write/read operations, the system first queries the Metadata Pool via the MDS to obtain the corresponding metadata, and then directly accesses the Data Pool for data read/write.

Figure 1. File Storage System Architecture


File Storage Function Components

  • File System: The core resource of file storage, responsible for storing metadata information and file data. Before using the file storage service, you must initialize the file system, including:
    • Metadata Service Cluster Initialization: Creates an MDS service on each cluster monitoring node.
    • File System Creation: Creates a distributed file system.
  • File Directory: A file directory is a subset of the file system, an essential resource for providing file sharing, and a prerequisite for storing files and other resources.
  • File User: A file user is an entity that utilizes file storage. Currently, ZStack ZStone’s file users are local users for SMB shares. Local users are required resources when creating SMB file shares, and different users can only access their respective file shares. When creating a local user, ZStack ZStone priorities creating a Linux system user on all file gateway nodes and then configures the user as an SMB share user.
  • File Gateway: A file gateway serves as the entry point for clients to access file storage services. A client must specify one or more file gateways to access file storage. ZStack ZStone supports creating file gateway groups for unified management of multiple file gateways, and these groups can be used for both SMB and NFS shares.
  • File Share: File sharing is an application scenario of the file system, supporting cross-platform file storage services. ZStack ZStone provides SMB sharing and NFS sharing. SMB sharing are primarily used for mounting by Windows systems, while NFS sharing are mainly intended for Linux system mounts. ZStack ZStone file sharing provides unified permission access control: specified clients, client groups, or local users are granted both read and write privileges, while all other unspecified clients have no access permissions.

Application Scenarios

  • File Sharing: Supports multiple sharing protocols to meet cross-platform sharing service needs.
  • Data Archiving: Provides ample storage space and robust data protection mechanisms.
  • Multimedia Services: Suitable for the storage and access of large-scale videos and images.

File Sharing

ZStack ZStone supports sharing file directories via the SMB protocol and the NFS protocol.

SMB Sharing

ZStack ZStone achieves compatibility with Windows clients and other SMB protocol-enabled devices through integrated Samba support.

  • Implementation Method: The Virtual File System (VFS) module in the Samba configuration file mounts the file storage service. Through this module, Samba can directly mount the ZStack ZStone file system as a shared directory.
  • Typical Application: Support Windows file sharing.

NFS Sharing

ZStack ZStone supports sharing file systems via the NFS protocol using NFS-Ganesha, facilitating mounting by Unix/Linux clients.
  • Implementation Method: Utilizes NFS-Ganesha combined with ZStack ZStone’s libcephfs interface to provide NFS v3 and v4 protocol support.
  • Typical Applications:
    • Provides file sharing services via NFS for Linux-based clients.
    • Supports cross-platform data sharing, for example, between UNIX and Windows systems in hybrid environments.