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 ```