ossfs 2.0 is a client that provides high-performance access to Object Storage Service (OSS) by mounting it as a file system. It delivers excellent sequential read and write performance and fully leverages the high bandwidth of OSS.
Performance improvements
ossfs 2.0 offers significant performance improvements over ossfs 1.0 in sequential read and write operations, and in high-concurrency reads of small objects. For more information about the performance of ossfs 2.0, see Performance testing.
Sequential write performance: In single-threaded, large-object sequential write scenarios, ossfs 2.0 provides nearly 18 times the bandwidth of ossfs 1.0.
Sequential read performance: In single-threaded or multi-threaded (4 threads) large-object sequential read scenarios, ossfs 2.0 provides more than 3 times the bandwidth of ossfs 1.0.
Concurrent small-object read performance: In high-concurrency (128 threads) small-object read scenarios, ossfs 2.0 provides more than 20 times the bandwidth of ossfs 1.0.
Use cases
ossfs 2.0 is suitable for scenarios that require high-performance storage access, such as AI training, inference, big data processing, autonomous driving, and other compute-intensive workloads. These workloads primarily involve sequential and random reads, sequential (append-only) writes, and do not require full POSIX semantics.
Runtime environment
ossfs 2.0 is built on Filesystem in Userspace (FUSE).
Architecture | Operating system | Version | Download URL |
x86_64 | CentOS | CentOS 7 and CentOS 8 | |
Rocky Linux | Rocky Linux 9.0 and later | ||
Alibaba Cloud Linux | Alibaba Cloud Linux 2 and later | ||
Ubuntu | Ubuntu 20.04 LTS and later LTS versions | ||
Debian | Debian 11 and later | ||
aarch64 | Alibaba Cloud Linux | Alibaba Cloud Linux 3 |
Limitations
Permission requirements: The AccessKey you use must have full permissions for the target bucket or prefix. Insufficient permissions may cause the mount operation to fail or other operations to behave unexpectedly.
Storage class limitations: We recommend against mounting buckets in the Archive Storage, Cold Archive Storage, or Deep Cold Archive Storage classes.
Object and directory name limitations: Object and directory names are limited to 255 characters due to a Linux constraint. Objects or directories in OSS with names that exceed this limit are not visible in the mount point.
Object read limitations: ossfs uploads newly written objects to OSS only after the corresponding file handles are closed. Reading an object before its handle is closed may cause an error.
Object write limitations: Random writes and concurrent writes to the same object are not supported. The default part size is 8,388,608 bytes (8 MiB), which limits the maximum size of a writable object to 83,886,080,000 bytes (78.125 GiB). You can configure the part size by using the upload_buffer_size mount option.
Object rename operations (non-atomic)
Objects: The operation first copies the source object to the destination and then deletes the source object.
Directories: The operation copies all objects under the source directory to the destination and then performs a bulk deletion of the source objects. By default, the rename operation is limited to 2 million descendant objects. You can change this limit by using the rename_dir_limit mount option.
Concurrent write consistency: ossfs 2.0 does not guarantee data consistency when multiple clients mount the same bucket and write to the same object concurrently.
POSIX API compatibility: Partially compatible. For details, see POSIX API support.
Features
Feature highlights
Offers basic POSIX compatibility and focuses on maximizing OSS server-side read and write performance.
Provides efficient sequential read and write performance for large objects through end-to-end optimization of the read and write path.
Enables efficient concurrent loading of small objects through optimized metadata management.
Lets you automatically mount an OSS bucket at system startup by configuring fstab.
POSIX API support
The following table compares the POSIX API support in ossfs 1.0 and ossfs 2.0.
Feature category | Operation | ossfs 1.0 | ossfs 2.0 |
Basic object operations |
| ||
| |||
| |||
Object reads and writes |
| ||
| Supports random writes (requires a disk cache) | Supports only sequential writes (no disk cache required) | |
| (can be truncated to any size) | Only supports truncating an object to zero length | |
Object meta operations |
| ||
| |||
| |||
Directory operations |
| ||
| |||
| |||
Permissions and attributes |
| ||
| |||
| |||
| |||
Extended features |
| ||
| |||
|