diff --git a/source/administration/identity-access-management/oidc-access-management.rst b/source/administration/identity-access-management/oidc-access-management.rst index 3a94965c..9057b6b5 100644 --- a/source/administration/identity-access-management/oidc-access-management.rst +++ b/source/administration/identity-access-management/oidc-access-management.rst @@ -51,7 +51,7 @@ The login flow for an application using :abbr:`OIDC (OpenID Connect)` credential 1. Create an OIDC Configuration. 2. Record the RoleARN assigned to the configuration either at time of creation or at MinIO start. - Use this RoleARN with the :ref:`AssumeRoleWithWebIdentity ` STS API. + Use this RoleARN with the :ref:`AssumeRoleWithWebIdentity ` STS API. 3. Create a RolePolicy to use with the RoleARN. Use either the :envvar:`MINIO_IDENTITY_OPENID_ROLE_POLICY` environment variable or the :mc-conf:`identity_openid role_policy ` configuration setting to define the list of policies to use for the provider 4. Users select the configured OIDC provider when logging in to MinIO. diff --git a/source/administration/object-management.rst b/source/administration/object-management.rst index 49d32c72..77f3f643 100644 --- a/source/administration/object-management.rst +++ b/source/administration/object-management.rst @@ -84,7 +84,10 @@ For a deeper discussion on the benefits of limiting prefix contents, see the art Object Versioning ----------------- -MinIO supports keeping multiple "versions" of an object in a single bucket. +.. versionchanged:: RELEASE.2023-08-04T17-40-21Z + + MinIO supports keeping up to 10,000 "versions" of an object in a single bucket. + For workloads that require keeping more than 10K versions per object, please reach out to MinIO by email at hello@min.io. .. image:: /images/retention/minio-versioning-multiple-versions.svg :alt: Object with Multiple Versions diff --git a/source/administration/object-management/object-versioning.rst b/source/administration/object-management/object-versioning.rst index 1442c7a5..8dc2ff03 100644 --- a/source/administration/object-management/object-versioning.rst +++ b/source/administration/object-management/object-versioning.rst @@ -19,16 +19,28 @@ Overview -------- MinIO supports keeping multiple "versions" of an object in a single bucket. -Write operations which would normally overwrite an existing object instead -result in the creation of a new versioned object. MinIO versioning protects from -unintended overwrites and deletions while providing support for "undoing" a -write operation. Bucket versioning is a prerequisite for configuring -:ref:`object locking and retention rules `. -For versioned buckets, any write operation that mutates an object results in a -new version of that object with a unique version ID. MinIO marks the "latest" -version of the object that clients retrieve by default. Clients can then -explicitly choose to list, retrieve, or remove a specific object version. +When enabled, versioning allows MinIO to keep multiple iterations of the same object. +Write operations which would normally overwrite an existing object instead result in the creation of a new versioned object. +MinIO versioning protects from unintended overwrites and deletions while providing support for "undoing" a write operation. +Bucket versioning is a prerequisite for configuring :ref:`object locking and retention rules `. + +For versioned buckets, a write operation that mutates an object results in a new version of that object with a unique version ID. +MinIO marks the "latest" version of the object that clients retrieve by default. +Clients can then explicitly choose to list, retrieve, or remove a specific object version. + +.. versionchanged:: 2023-08-04T17-40-21Z + + MinIO restricts object versioning to no more than 10,000 versions of each object. + + If a write operation would exceed the 10,000 object version limit, MinIO blocks the operation and returns an error. + :ref:`Delete one or more ` versions to create a new version of the object. + +Read Operations on Versioned Objects +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Review each of the four images in this series to see how MinIO retrieves objects in a versioned bucket. +Use the arrows on either side of the images to navigate from one to the next. .. card-carousel:: 1 @@ -55,13 +67,15 @@ explicitly choose to list, retrieve, or remove a specific object version. :alt: Object with Multiple Versions :align: center + A read operation request without a version ID returns the latest version of the object. + .. card:: Retrieving a Specific Object Version .. image:: /images/retention/minio-versioning-retrieve-single-version.svg :alt: Object with Multiple Versions :align: center -:ref:`Delete operations ` which do *not* specify the unique object version ID create a 0-byte ``DeleteMarker`` for that object. + Include the version ID to retrieve a specific version of an object during a read operation. .. versionchanged:: MinIO Server RELEASE.2023-05-04T21-44-30Z @@ -151,7 +165,7 @@ Performing a ``DELETE`` operation on a versioned object creates a 0-byte ``Delet For objects where the latest version is a ``DeleteMarker``, clients must specify versioning flags or identifiers to perform ``GET/HEAD/LIST/DELETE`` operations on a prior version of that object. The default server behavior omits ``DeleteMarker`` objects from consideration for unversioned operations. -MinIO can utilize :ref:`Lifecycle Management expiration rules ` to automatically remove versioned objects permanently. +MinIO can utilize :ref:`Lifecycle Management expiration rules ` to automatically remove versioned objects permanently. Otherwise, use manual ``DELETE`` operations to permanently remove non-current versioned objects or ``DeleteMarker`` objects. .. admonition:: MinIO Implements Idempotent Delete Markers @@ -160,7 +174,7 @@ Otherwise, use manual ``DELETE`` operations to permanently remove non-current ve .. versionchanged:: RELEASE.2022-08-22T23-53-06Z Standard S3 implementations can create multiple sequential delete markers for the same object when processing simple ``DeleteObject`` requests with no version identifier. - See the S3 docs for details on :s3-docs:`managing delete markers `` + See the S3 docs for details on :s3-docs:`managing delete markers `. MinIO diverges from standard S3 implementation by avoiding this potential duplication of delete markers. When processing a ``Delete`` request with no version identifier, MinIO creates at most one Delete Marker for the specified object. diff --git a/source/images/grafana-replication.png b/source/images/grafana-replication.png new file mode 100644 index 00000000..4145b9be Binary files /dev/null and b/source/images/grafana-replication.png differ diff --git a/source/operations/monitoring/grafana.rst b/source/operations/monitoring/grafana.rst index 6444e711..9f9b69f6 100644 --- a/source/operations/monitoring/grafana.rst +++ b/source/operations/monitoring/grafana.rst @@ -27,6 +27,7 @@ MinIO provides two official Grafana Dashboards you can download from the Grafana 1. :ref:`MinIO Server metrics ` 2. :ref:`MinIO Bucket metrics ` +3. :ref:`MinIO Replication metrics ` To track changes to the Grafana dashboard, introspect the JSON files for the `server `__ or `bucket `__ dashboards in the MinIO Server GitHub repository. @@ -50,11 +51,25 @@ For specifics on the dashboard's configuration, see the `JSON file on GitHub `__. +Visualize MinIO bucket metrics with the official MinIO Grafana dashboard for buckets available on the `Grafana dashboard portal `__. Bucket metrics can be viewed in the Grafana dashboard using the `bucket JSON file on GitHub `__. .. image:: /images/grafana-bucket.png :width: 600px - :alt: A sample of the MinIO Grafana dashboard showing many different captured metrics MinIO buckets. + :alt: A sample of the MinIO Grafana dashboard showing many different captured metrics for MinIO buckets. + :align: center + +.. _minio-replication-grafana-metrics: + +MinIO Cluster Replication Metrics Dashboard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Visualize MinIO bucket metrics with the official MinIO Grafana dashboard for cluster replication available on the `Grafana dashboard portal `__. + +Cluster replication metrics can be viewed in the Grafana dashboard using the `cluster replication JSON file on GitHub `__. + +.. image:: /images/grafana-replication.png + :width: 600px + :alt: A sample of the MinIO Grafana dashboard showing many different captured metrics for cluster replication. :align: center diff --git a/source/reference/minio-mc/mc-mb.rst b/source/reference/minio-mc/mc-mb.rst index 66c34d6b..2c7c5b0b 100644 --- a/source/reference/minio-mc/mc-mb.rst +++ b/source/reference/minio-mc/mc-mb.rst @@ -107,6 +107,7 @@ Parameters :optional: Enables :ref:`object versioning ` on the new bucket. + When enabled, MinIO keeps up to 10,000 versions of each object. Versioning is required for :ref:`bucket replication ` or :ref:`site replication `. Versioning does not imply or require object locking.