Skip to main content

Data access standards

MooseFS is designed to be flexible and compatible with various data access methods, ensuring seamless integration with different applications and workflows. This chapter outlines the supported standards and protocols, enabling users to interact with the file system efficiently.

Understanding these access methods will help you choose the best approach for your needs, whether through traditional POSIX-compliant operations, network file sharing, or other integration options.

POSIX Filesystem Access

MooseFS is fully POSIX-compliant, meaning it behaves like a traditional Unix/Linux filesystem from the client's perspective. Users and applications can perform standard file operations such as read, write, delete, rename, and modify permissions using familiar tools and APIs (cp, mv, chmod, etc.).

Clients typically mount MooseFS using the mfsmount command, which relies on FUSE (Filesystem in Userspace) to provide seamless integration with the operating system. Once mounted, the MooseFS volume behaves like any local filesystem, simplifying application compatibility and administration.

POSIX compliance ensures that MooseFS can easily support a wide range of applications without modification, from basic file storage to complex workloads requiring advanced file operations.

Block Device Access

In addition to file-based access, MooseFS can expose storage through a block device abstraction. This allows parts of the MooseFS storage pool to be used similarly to traditional block devices, making it suitable for applications that expect raw block-level access rather than a file system.

This method can be useful for hosting virtual machine images, databases, or other systems that prefer block devices over file-based storage. However, it's important to carefully manage performance expectations and failure recovery when using block access in distributed environments.

API Access: mfsio Library

For developers who want direct, programmatic access to MooseFS, the mfsio library provides a powerful API.

The mfsio library allows applications to interact with the MooseFS cluster at the client level without relying solely on the mounted filesystem interface. It offers a set of functions for opening, reading, writing, and managing files directly over the MooseFS protocol.

Using mfsio can offer:

  • Better control over network communication with MooseFS
  • Reduced overhead compared to traditional file I/O through FUSE
  • Flexibility for custom workflows or performance tuning

This is particularly beneficial for high-performance applications or environments where low-level file operations are needed.