github.com/minio/minio@v0.0.0-20240328213742-3f72439b8a27/docs/minio-limits.md (about)

     1  # MinIO Server Limits Per Tenant
     2  
     3  For optimal production setup MinIO recommends Linux kernel version 4.x and later.
     4  
     5  ## Erasure Code (Multiple Drives / Servers)
     6  
     7  | Item                                                            | Specification |
     8  |:----------------------------------------------------------------|:--------------|
     9  | Maximum number of servers per cluster                           | no-limit      |
    10  | Minimum number of servers                                       | 02            |
    11  | Minimum number of drives per server when server count is 1      | 02            |
    12  | Minimum number of drives per server when server count is 2 or 3 | 01            |
    13  | Minimum number of drives per server when server count is 4      | 01            |
    14  | Maximum number of drives per server                             | no-limit      |
    15  | Read quorum                                                     | N/2           |
    16  | Write quorum                                                    | N/2+1         |
    17  
    18  ## Limits of S3 API
    19  
    20  | Item                                                                            | Specification                                                                   |
    21  |:--------------------------------------------------------------------------------|:--------------------------------------------------------------------------------|
    22  | Maximum number of buckets                                                       | unlimited (we recommend not beyond 500000 buckets) - see NOTE:                  |
    23  | Maximum number of objects per bucket                                            | no-limit                                                                        |
    24  | Maximum object size                                                             | 50 TiB                                                                          |
    25  | Minimum object size                                                             | 0 B                                                                             |
    26  | Maximum object size per PUT operation                                           | 5 TiB                                                                           |
    27  | Maximum number of parts per upload                                              | 10,000                                                                          |
    28  | Part size range                                                                 | 5 MiB to 5 TiB. Last part can be 0 B to 5 TiB                                   |
    29  | Maximum number of parts returned per list parts request                         | 10000                                                                           |
    30  | Maximum number of objects returned per list objects request                     | 1000                                                                            |
    31  | Maximum number of multipart uploads returned per list multipart uploads request | 1000                                                                            |
    32  | Maximum length for bucket names                                                 | 63                                                                              |
    33  | Maximum length for object names                                                 | 1024                                                                            |
    34  | Maximum length for '/' separated object name segment                            | 255                                                                             |
    35  | Maximum number of versions per object                                           | 10000 (can be configured to higher values but we do not recommend beyond 10000) |
    36  
    37  > NOTE:  While MinIO does not implement an upper boundary on buckets, your cluster's hardware has natural limits that depend on the workload and its scaling patterns. We strongly recommend [MinIO SUBNET](https://min.io/pricing) for architecture and sizing guidance for your production use case.
    38  
    39  ## List of Amazon S3 API's not supported on MinIO
    40  
    41  We found the following APIs to be redundant or less useful outside of AWS S3. If you have a different view on any of the APIs we missed, please consider opening a [GitHub issue](https://github.com/minio/minio/issues) with relevant details on why MinIO must implement them.
    42  
    43  ### List of Amazon S3 Bucket API's not supported on MinIO
    44  
    45  - BucketACL (Use [bucket policies](https://min.io/docs/minio/linux/administration/identity-access-management/policy-based-access-control.html) instead)
    46  - BucketCORS (CORS enabled by default on all buckets for all HTTP verbs, you can optionally restrict the CORS domains)
    47  - BucketWebsite (Use [`caddy`](https://github.com/caddyserver/caddy) or [`nginx`](https://www.nginx.com/resources/wiki/))
    48  - BucketAnalytics, BucketMetrics, BucketLogging (Use [bucket notification](https://min.io/docs/minio/linux/administration/monitoring/bucket-notifications.html) APIs)
    49  
    50  ### List of Amazon S3 Object API's not supported on MinIO
    51  
    52  - ObjectACL (Use [bucket policies](https://min.io/docs/minio/linux/administration/identity-access-management/policy-based-access-control.html) instead)
    53  
    54  ## Object name restrictions on MinIO
    55  
    56  - Object name restrictions on MinIO are governed by OS and filesystem limitations. For example object names that contain characters `^*|\/&";` are unsupported on Windows platform or any other file systems that do not support filenames with special characters.
    57  
    58  > **This list is non exhaustive, it depends on the operating system and filesystem under use - please consult your operating system vendor for a more comprehensive list of special characters**.
    59  
    60  MinIO recommends using Linux operating system for production workloads.
    61  
    62  - Objects must not have conflicting objects as parent objects, applications using this behavior should change their behavior and use non-conflicting unique keys, for example situations such as following conflicting key patterns are not supported.
    63  
    64  ```
    65  PUT <bucketname>/a/b/1.txt
    66  PUT <bucketname>/a/b
    67  ```
    68  
    69  ```
    70  PUT <bucketname>/a/b
    71  PUT <bucketname>/a/b/1.txt
    72  ```