File Storage for VPC profiles
When you provision File Storage for VPC file shares by using the IBM Cloud console, CLI, or API, you specify capacity and performance within a file share profile. Available performance levels vary based on the file share size. All file shares are backed by solid-state drives (SSDs).
File Storage profile overview
When you create a file share, you select the share size and IOPS performance that is available, based on a file storage profile. Currently, all file shares are created based on the high-performance dp2 profile.
Customers with special access to preview the new regional file share offering can use the rfs profile to create file shares with regional availability and adjustable throughput values.
File shares that were created during the beta and limited availability phases with either one of the tiered profiles or the custom profile can continue to operate based on these profiles. You
can also update these file shares to use the dp2
profile or switch to another previous generation profile. However, you cannot use the previous profiles when you create a file share, and only the file shares with the dp2
profile can use new features like encryption-in-transit, cross-zone mounting, cross-account sharing, and snapshots.
The following tables show the characteristics and performance levels of the available profiles.
Current file share profiles:
Family | Profile | Availability | Share size | IOPS per share | Max throughput[1] |
---|---|---|---|---|---|
defined_performance |
dp2 |
Zonal | 10-32,000 GB | 100-96,000 | 8192 Mbps |
defined_performance |
rfs |
Regional | 1-32,000 GB | 35,000 | 8192 Mbps |
First- and second-generation profiles in the defined performance profile family are not interchangeable. You can't convert a zonal file share to a regional share, or a regional share to a zonal share.
Deprecated file share profiles:
Family | Profile | Availability | Share size | IOPS per share | Max throughput |
---|---|---|---|---|---|
tiered |
tier-3iops |
Zonal | 10-32,000 GB | 3,000-96,000 | 5360 Mbps |
tiered |
tier-5iops |
Zonal | 10-9,600 GB | 3,000-48,000 | 6144 Mbps |
tiered |
tier-10iops |
Zonal | 10-4,800 GB | 3,000-48,000 | 8192 Mbps |
custom |
custom |
Zonal | 10-16,000 GB | 3,000-48,000 | 8192 Mbps |
The maximum allowable throughput for zonal shares is determined by the number of IOPS multiplied by the throughput multiplier, which is specific to the profile.
Beta The throughput value of regional file shares is adjustable. For the rfs
profile, the baseline throughput is 8 Mbps for every 20 GB of capacity. This value can be increased up to
8192 Mbps in the console, from the CLI, and with the API.
The application I/O size directly impacts storage performance. If the application I/O size is smaller than the throughput multiplier that is used by the profile to calculate the bandwidth, the IOPS limit is reached before the throughput limit. Conversely, if the application I/O size is larger, the throughput limit is reached before the IOPS limit.
A single session can achieve up to 64 KB block size transfer. To use the max allowable bandwidth, you need multiple concurrent sessions to the share.
Defined performance profiles
Both profiles in the defined performance family provide resilient file storage with flexible performance characteristics and different data availability.
Zonal availability profile
With the dp2
profile, you can provision zonal file shares, and specify your capacity and total IOPS values.
Zonal data availability means that data is available within a single availability zone, offering faster responses with less delays, but less resilience. For latency-sensitive applications that can tolerate a 1-hour RPO for replication, zonal shares can be a better choice.
File shares can be created with capacity in the range of 10 GB (preset minimum) to 32,000 GB. You can start small, and if you need more storage capacity later, you can increase the size of the file share. When you create a file share, you can select an IOPS value between 100 IOPS (the preset minimum) to 96,000 IOPS, based on share size. You can also adjust the IOPS later.
For the dp2
profile, the baseline throughput is determined by the number of IOPS multiplied by 256 KB. So when you increase the capacity and the IOPS, you also increase the throughput limit. The maximum throughput value for this
profile is 8192 Mbps.
Table 2 shows the available IOPS ranges, based on share size.
Share size (GB) | IOPS range (IOPS) |
---|---|
10 - 39 | 100 - 1,000 |
40 - 79 | 100 - 2,000 |
80 - 99 | 100 - 4,000 |
100 - 499 | 100 - 6,000 |
500 - 999 | 100 - 10,000 |
1,000 - 1,999 | 100 - 20,000 |
2,000 - 3,999 | 200 - 40,000 |
4,000 - 7,999 | 300 - 40,000 |
8,000 - 15,999 | 500 - 64,000 |
16,000 - 32,000 | 2,000 - 96,000¹ |
¹ For the 96,000 IOPS to be realized, a single file share must be accessed by multiple virtual server instances. A single file share that is accessed by one client is limited to 48,000 IOPS.
Regional availability profile
Beta
The rfs
profile is the second-generation profile in the defined performance profile family. With this profile, you can create file shares with regional availability.
Regional data availability means that data is replicated across all 3 zones within the region, offering higher availability and fault tolerance. Due to the synchronous replication between the zones and the need to ensure data durability, you might experience increased latency during write operations. For workloads where latency performance is less critical than durability, or higher and more consistent IOPS is preferred over low latency, the regional shares can be a better choice.
When you create a regional file share, you can specify its capacity between 1 GiB to 32,000 GiB. For every 20 GiB of capacity, 1 MBps of throughput is included. For example, the preset throughput value of a 500 GB file share is 25 MBps (200 Mbps) and the preset value of a 16,000 GB file share is 800 MBps (6400 Mbps). You can increase the throughput from the preset value up to 1024 MBps (8192 Mbps) for extra cost. After the file share is created, you can adjust the throughput between the preset and the maximum values anytime.
In the beta release, cross-account access, cross-region asynchronous replication, and scheduled backups are not supported.
Tiered and custom file storage profiles
In the following section, you can find information about the file share profiles (general purpose, 5-iops, 10-iops, or custom) that were used in the beta release of zonal file shares. New file shares can be provisioned with only the defined performance profiles. To access the newest features, you must change the IOPS profile of your share to dp2.
IOPS tiers
Existing file shares can be based on IOPS tiers that you selected when you created the file share. Table 3 describes the IOPS performance for the IOPS tier profile.
IOPS Tier | Workload | Share size (GB) | Max IOPS (IOPS) |
---|---|---|---|
3 IOPS/GB | General-purpose workloads | 10-32,000 | 48,000-96,000¹ |
5 IOPS/GB | High I/O intensity workloads | 10-9,600 | 48,000 |
10 IOPS/GB | Demanding storage workloads | 10-4,800 | 48,000 |
¹ For the 96,000 IOPS to be realized, a single file share must be accessed by multiple virtual server instances. A single file share that is accessed by only one client is limited to 48,000 IOPS.
The total maximum IOPS is rounded up to the next multiple of 10 when the IOPS calculation results in IOPS less than or equal to 48,000 IOPS. The total maximum IOPS is rounded up to the next multiple of 100 for IOPS calculations that result in IOPS greater than 48,000 IOPS up to 96,000 IOPS.
Custom share profile
The Custom IOPS profile specifies the total IOPS for the file share within the range for its size. File shares that use a custom IOPS profile can have an IOPS performance level in the range of 100-48000 IOPS.
Table 4 shows the available IOPS ranges based on file share size.
File Share size (GB) | IOPS range (IOPS) |
---|---|
10 - 39 | 100 - 1,000 |
40 - 79 | 100 - 2,000 |
80 - 99 | 100 - 4,000 |
100 - 499 | 100 - 6,000 |
500 - 999 | 100 - 10,000 |
1,000 - 1,999 | 100 - 20,000 |
2,000 - 3,999 | 200 - 40,000 |
4,000 - 7,999 | 300 - 40,000 |
8,000 - 9,999 | 500 - 48,000 |
10,000 - 16,000 | 1,000 - 48,000 |
The total maximum IOPS is rounded up to the next multiple of 10 when the IOPS calculation results in IOPS less than or equal to 48,000 IOPS.
View profiles in the console
When you create a file share in the console, you can see the available profiles in the table in the Profiles section.
Viewing profiles from the CLI
To view the list of available profiles from the CLI, run the ibmcloud is share-profiles
command.
$ ibmcloud is share-profiles
Listing file share profiles in region us-south under account Test Account as user test.user@ibm.com...
Name Family
dp2 defined_performance
Beta Customers with special access to preview the new regional file share offering, can also list the rfs
profile with the same command.
$ ibmcloud is share-profiles
Listing file share profiles in region us-south under account Test Account as user test.user@ibm.com...
Name Family
dp2 defined_performance
rfs defined_performance
For more information about the command options, see ibmcloud is share-profiles
.
To see the details of the share profile, use the ibmcloud is share-profile
command and specify the name of the profile. See the following example.
$ ibmcloud is share-profile dp2
Getting file share profile dp2 under account Test Account as user test.user@ibm.com...
Name dp2
Family defined_performance
IOPS Default Max Min Step Type
100 96000 100 1 range
Capacity Default Max Min Step Type
10 32000 10 1 range
$ ibmcloud is share-profile rfs
Getting file share profile rfs in region us-south under account Test Account as user test.user@ibm.com...
Name rfs
Family defined_performance
IOPS Default Max Min Step Type
- - - - fixed
Capacity Default Max Min Step Type
1 32000 1 1 range
Bandwidth(Mbps) Default Max Min Step Type
1 1024 1 1 range
Availability Modes Default Type Value Values
- fixed regional -
Allowed Access Protocols Default Type Values
nfs4 subset nfs4
Allowed transit encryption modes Default Type Values
stunnel subset none,stunnel
For more information about the command options, see ibmcloud is share-profile
.
Viewing profiles with the API
Use the GET /share/profiles
request to retrieve information about the generally available file share profiles.
curl -X GET $vpc_api_endpoint/v1/share/profiles?$api_version&generation=2\
-H "Authorization: $iam_token"
The response returns the following profiles and related information:
{
"first": {"href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles?limit=50"},
"limit": 50,
"profiles": [
{
"capacity": {
"max": 32000,
"min": 10,
"step": 1,
"type": "dependent_range"
},
"family": "defined_performance",
"href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles/dp2",
"iops": {
"default": 100,
"max": 96000,
"min": 100,
"step": 1,
"type": "range"
},
"name": "dp2",
"resource_type": "share_profile"
}
],
"total_count": 4
}
Beta Customers with special access to review the new regional file share offering, can list the new profile with the following API request.
curl -X GET $vpc_api_endpoint/v1/share/profiles?$api_version&generation=2&maturity=beta"\
-H "Authorization: $iam_token"
The response looks like the following example.
{
"first": {
"href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles?limit=50"
},
"limit": 50,
"profiles": [
{
"allowed_access_protocols": {
"default": [
"nfs4"
],
"type": "subset",
"values": [
"nfs4"
]
},
"allowed_transit_encryption_modes": {
"default": [
"none",
"stunnel"
],
"type": "subset",
"values": [
"none",
"stunnel"
]
},
"availability_modes": {
"type": "fixed",
"value": "zonal"
},
"bandwidth": {
"type": "fixed",
"value": 100
},
"capacity": {
"max": 32000,
"min": 10,
"step": 1,
"type": "dependent_range"
},
"family": "defined_performance",
"href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles/dp2",
"iops": {
"max": 96000,
"min": 100,
"step": 1,
"type": "dependent_range"
},
"name": "dp2",
"resource_type": "share_profile"
},
{
"allowed_access_protocols": {
"default": [
"nfs4"
],
"type": "subset",
"values": [
"nfs4"
]
},
"allowed_transit_encryption_modes": {
"default": [
"none"
],
"type": "subset",
"values": [
"none"
]
},
"availability_modes": {
"type": "fixed",
"value": "regional"
},
"bandwidth": {
"max": 8192,
"min": 1,
"step": 1,
"type": "dependent_range"
},
"capacity": {
"max": 32000,
"min": 10,
"step": 1,
"type": "dependent_range"
},
"family": "defined_performance",
"href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles/rfs",
"iops": {
"type": "dependent"
},
"name": "rfs",
"resource_type": "share_profile"
}
],
"total_count": 2
}
The beta API response is enhanced to include the following fields:
allowed_access_protocols
denotes which access protocol is allowed for use with the file share. The current default value isnsf4
.availability_modes
denotes the data availability.- The
dp2
profile supports zonal data availability. - The
rfs
profile supports regional data availability.
- The
bandwidth
denotes the available maximum throughput value that the file share can handle.- For the
dp2
profile, the bandwidth is calculated by multiplying the number of IOPS by 256 KB. - For the
rfs
profile, the preset value is calculated as 1 MBps for every 20 GB of capacity. However, you can increase this value up to 1024 MBps.
- For the
storage_generation
denotes the generation of the file share profile within the Defined performance profile family.- For the
dp2
profile, the value is1
. - For the
rfs
profile, the value is2
.
- For the
Viewing profiles with Terraform
-
To use Terraform, download the Terraform CLI and configure the IBM Cloud® Provider plug-in. For more information, see Getting started with Terraform.
-
VPC infrastructure services use a specific regional endpoint, which targets to
us-south
by default. If your VPC is created in another region, make sure to target the appropriate region in the provider block in theprovider.tf
file. See the following example of targeting a region other than the defaultus-south
.provider "ibm" { region = "eu-de" }
-
Import the list of available volume profiles as a read-only data source.
data "ibm_is_share_profiles" "example" { }
For more information, see ibm_is_share_profiles.
How I/O size affects file share performance
IOPS values are based on a 16 KB block size for all profiles, with a 50-50 read/write random workload. Each 16 KB of data that is read or written counts as one read/write operation. A single write of less than 16 KB counts as a single write operation.
Maximum throughput for a file share is calculated by taking the file share's IOPS and multiplying it by the throughput multiplier. The throughput multiplier is 16 KB for 3 IOPS/GB or 5 IOPS/GB tiers, or 256 KB for 10 IOPS/GB, custom IOPS, and
dp2
profiles. The higher the IOPS that you specify, the higher the throughput. Maximum throughput is 1024 MBps.
Beta For the rfs
profile, the throughput is directly adjustable. The preset value is calculated as 1 MBps for every
20 GB of capacity. You can increase this value up to 1024 MBps, or reduce it back to the preset value. The IOPS value for a regional file share is 35000.
The application I/O size directly impacts storage performance. If the application I/O size is smaller than the throughput multiplier that is used by the profile to calculate the bandwidth, the IOPS limit is reached before the throughput limit. Conversely, if the application I/O size is larger, the throughput limit is reached before the IOPS limit.
Table 5 provides some examples of how block size and IOPS affect the throughput, calculated average I/O block size x IOPS = Throughput in MBps.
Block Size (KB) | IOPS | Throughput (MBps) |
---|---|---|
4 | 1,000 | 4¹ |
8 | 1,000 | 8¹ |
16 | 1,000 | 16 |
32 | 500 | 16 |
64 | 250 | 16 |
128 | 128 | 16 |
512 | 32 | 16 |
1,024 | 16 | 16 |
¹ If your cap is 1000 IOPS or 16 KB block size, the throughput caps at whatever limit is reached first.
Maximum IOPS can still be obtained when you use smaller block sizes, but throughput is less. The following example shows how throughput decreases for smaller block sizes, when max IOPS is maintained.
- 16 KB * 6000 IOPS == ~94 MBps
- 8 KB * 6000 IOPS == ~47 MBps
- 4 KB * 6000 IOPS == ~23 MBps
Next steps
- Create a file shares.
- Manage file shares.
- For more information about the pricing, see the FAQs.
-
For the
dp2
profile, the maximum allowable bandwidth is determined by the number of IOPS multiplied by 256 KB. For therfs
profile, the baseline throughput is 1 MBps for every 20 GB of capacity. You can increase the throughput value by increasing the capacity and IOPS of thedp2
shares, and by increasing the throughput value of therfs
profile-based shares. Maximum throughput is 8192 Mbps for all defined performance profiles. ↩︎