# Limits and Quotas

## Limits
<!--- Template Guidance 
A table with hard system limits of the service.
The difference with quotas is that these cannot be raised at all.
--->

The following table shows which limits are enforced on Block Storage usage.
It also highlights some of the characteristics of the product:

| Usage                                             | Limit     |
|:------                                            |:------    |
| Maximum number of volumes attached to an instance | 5         |
| Maximum number of snapshot per volume             | 20        |
| Maximum volume size                               | 10 TiB    |
| Minimum volume size                               | 1 GiB     |
| Maximum read IOPS per volume                      | 5K        |
| Maximum write IOPS per volume                     | 5K        |
| Maximum bandwidth per volume                      | 200 MiB/s |
| Minimum instance size to attach a volume          | Small     |
| Supported service offerings                       | All       |
| Block storage durability on snapshot guarantee    | Full durability of data only when the volume is snapshotted|

<!--- Template Guidance 
If there are additional specific limitations, describe below the table.
--->

> [!NOTE]
> As block storage volumes expose a block size of 4KiB, some software that incorrectly assume a smaller block size might not work.
> This issue can be circumvented by using a compatibility layer in your instance like [dm-ebs](https://docs.kernel.org/admin-guide/device-mapper/dm-ebs.html) on linux.


## Quotas
<!--- Template Guidance 
A table with the quotas of the service.
Below is an example for SOS. Even a single line in the table is OK.
--->

The default Organization Quotas are set and can be expanded upon request:

| Usage                           | Quota   |
|:------                          |:------: |
| Volumes per Organization        | 1000    |
| Overall Provisioned Volume Size | 20 TiB  |


## Availability
Block Storage is available in all zones.

<!--- Template Guidance 
Only include a table if the service is NOT available in all zones.
The table should still list all zones and use checkmarks or crosses to indicate availability.
We want to avoid any doubt about whether a service is available in a given zone.
--->

<!--- Example Table 
| Zone                                     | Country      | City      | Availability         |
| :---                                     | :---         | :---      | :---:                |
| {{< icon flag-at-4x3 >}} __`at-vie-1`__  | Austria      | Vienna    | {{< icon "check" >}} |
| {{< icon flag-at-4x3 >}} __`at-vie-2`__  | Austria      | Vienna    | {{< icon "check" >}} |
| {{< icon flag-bg-4x3 >}} __`bg-sof-1`__  | Bulgaria     | Sofia     | {{< icon "check" >}} |
| {{< icon flag-hr-4x3 >}} __`hr-zag-1`__  | Croatia      | Zagreb    | {{< icon "check" >}} |
| {{< icon flag-de-4x3 >}} __`de-fra-1`__  | Germany      | Frankfurt | {{< icon "check" >}} |
| {{< icon flag-de-4x3 >}} __`de-muc-1`__  | Germany      | Munich    | {{< icon "ban" >}}   |
| {{< icon flag-ch-4x3 >}} __`ch-gva-2`__  | Switzerland  | Geneva    | {{< icon "check" >}} |
| {{< icon flag-ch-4x3 >}} __`ch-dk-2`__   | Switzerland  | Zurich    | {{< icon "check" >}} |
--->

