Core concepts
File Storage is a storage service that allows multiple servers to access the same file system over a network. This document explains the core concepts, states, performance characteristics, operational recommendations, and IAM roles for using File Storage.
File system
A File Storage file system is the primary resource that manages files and directories in a hierarchical structure. You can read, write, and delete data by file, and access it over the network using standard protocols such as NFS or SMB.
File system types
File Storage provides the following two types depending on the use case.
| File system type | Description |
|---|---|
| Infinite file system | Scalable file system - Provides SMB and NFS file services - Provides multiple shared volumes in one file system - Can be used without a fixed storage size limit |
| Basic file system | General-purpose NFS file system - Supports NFS protocol - Can be created from 1 TiB to 16 TiB in 0.5 TiB increments |
File system lifecycle and state
A file system starts in the Creating state and is configured in the specified network environment. When configuration is complete, it transitions to Active, and clients can mount and use it.
Deleting indicates that file system deletion is in progress. After resources are released, the file system is removed from the list and billing stops.
- Infinite file system
- Basic file system
| State | Description |
|---|---|
Creating | Creating the file system |
Active | File system is running normally and available |
Updating | File system configuration operation is in progress |
Deleting | Deleting the file system |
Error | An error occurred in the file system |
| State | Description |
|---|---|
Creating | Allocating resources and configuring the file system with the specified volume size |
Active | File system is running normally and available |
Restoring | File system restore operation is in progress |
Setting-up | Restarting the file system after restore |
Backing-up | Backup operation is in progress |
Updating | Configuration change, image change, or migration is in progress |
Deleting | Terminating and releasing the file system |
Error | An error occurred in the file system |
File system performance
File Storage is optimized for environments where multiple servers access files at the same time to share data. Because it is network-based storage, actual performance is affected significantly by client specifications and network settings.
Measuring and understanding File Storage performance
Cloud file storage uses a structure where multiple clients share resources, so performance characteristics between the client and file storage must be considered together. KakaoCloud provides performance guidance based on standard I/O testing with fio.
- Infinite file system (NFS)
- Infinite file system (SMB)
The following values measure ranges close to actual user-perceived performance and can vary significantly depending on VM specifications and network settings.
Key variables
- VM network bandwidth
- NFS mount option, such as nconnect
- Number of concurrent jobs
Client reference
| Item | Specification |
|---|---|
| VM flavor | 8 vCPU / 16 GB RAM |
| Network | 10 Gbps |
| OS | Linux |
| Protocol | NFS v4.1 |
| Mount option | nconnect=1 / 4 / 16 |
| Write mode | Async |
Performance results
| Test item | nconnect | I/O pattern | IOPS | |
|---|---|---|---|---|
| Random Read | nconnect = 1 | 100% Read | 4 KB | up to 30,000 |
| Random Read | nconnect = 4 | 100% Read | 4 KB | up to 57,000 |
| Random Read | nconnect = 16 | 100% Read | 4 KB | up to 66,000 |
| Random Write | nconnect = 1 | 100% Write | 4 KB | up to 28,000 |
| Random Write | nconnect = 4 | 100% Write | 4 KB | up to 42,000 |
| Random Write | nconnect = 16 | 100% Write | 4 KB | up to 47,000 |
Increasing the nconnect value increases the number of parallel connections and can improve IOPS.
The following values are performance test results for SMB protocol in a Windows environment.
| Test item | I/O pattern | IOPS | |
|---|---|---|---|
| Random Read | 100% Read | 4 KB | up to 23,000 |
| Random Write | 100% Write | 4 KB | up to 20,000 |
SMB environments can show relatively lower IOPS than NFS, and performance can vary depending on the client environment.
File system operational recommendations
Refer to the following recommendations to operate File Storage reliably and reduce performance degradation.
Store large files
There is no limit on the size of a single file, but operational efficiency and stability should be considered. Single files of several TB or more can increase retry costs during transfer and lengthen recovery time after failures. For large data, splitting it into multiple files is recommended.
Limit metadata-heavy operations
Creating or deleting a large number of files in a short time can increase system load. Recursive commands such as chmod -R, chown -R, and ls -R from a top-level directory can affect overall performance and should be used carefully.
Use symbolic links
Use symbolic links for file references. Hard links can cause internal lock contention and degrade overall response performance.
Manage the number of files in a directory
Storing an excessive number of files in one directory can cause performance degradation due to internal distributed processing. If the number of files continues to increase, separate directories by date (YYYY/MM/DD) or category.
- Recommended: Fewer than 50,000 files per directory
- Caution: File creation errors can occur with 500,000 or more files
Limit concurrently accessed files and workloads
File Storage optimizes performance by caching metadata in memory. If requests continuously exceed the cache range, overall performance can degrade and affect other users' access. Operate workloads within the recommended range.
- Recommended: Fewer than 1 million managed files in total
- Client: Up to 500,000 concurrently open files per mount point
IAM-based role management
File Storage follows IAM role-based access control (RBAC). Permissions to view, create, modify, and delete file systems and backups are granted based on IAM roles. For how to manage user roles, see Manage user IAM roles.
- Infinite file system role management
- Basic file system role management
| Permission | Project Admin | Project Member | Project Reader | File Storage Manager | File Storage Viewer |
|---|---|---|---|---|---|
| View file system | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create, edit, delete file system | ✓ | ✓ | ✓ |
| Permission | Project Admin | Project Member | Project Reader | File Storage Manager | File Storage Viewer |
|---|---|---|---|---|---|
| View file system | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create, edit, delete file system | ✓ | ✓ | ✓ | ||
| View backup | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create, edit, delete backup | ✓ | ✓ | ✓ | ||
| Restore backup | ✓ | ✓ | ✓ |