mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
Added optimizing storage content
This commit is contained in:
@@ -120,6 +120,13 @@ Topics:
|
||||
- Name: Optimizing compute resources
|
||||
File: optimizing-compute-resources
|
||||
---
|
||||
Name: Storage
|
||||
Dir: storage
|
||||
Distros: openshift-*
|
||||
Topics:
|
||||
- Name: Optimizing storage
|
||||
File: optimizing-storage
|
||||
---
|
||||
Name: Operators
|
||||
Dir: operators
|
||||
Distros: openshift-*
|
||||
|
||||
40
modules/available-persistent-storage-options.adoc
Normal file
40
modules/available-persistent-storage-options.adoc
Normal file
@@ -0,0 +1,40 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * storage/optimizing-storage.adoc
|
||||
|
||||
[id='available-persistent-storage-options_{context}']
|
||||
= Available persistent storage options
|
||||
|
||||
Understand your persistent storage options so that you can optimize your
|
||||
{product-title} environment.
|
||||
|
||||
.Available storage options
|
||||
[cols="1,4,3",options="header"]
|
||||
|===
|
||||
| Storage type | Description | Examples
|
||||
|
||||
|Block
|
||||
a|* Presented to the operating system (OS) as a block device
|
||||
* Suitable for applications that need full control of storage and operate at a low level on files
|
||||
bypassing the file system
|
||||
* Also referred to as a Storage Area Network (SAN)
|
||||
* Non-shareable, which means that only one client at a time can mount an endpoint of this type
|
||||
| {gluster-native}/{gluster-external} GlusterFS footnoteref:[dynamicPV,{gluster-native}/{gluster-external} GlusterFS, Ceph RBD, OpenStack Cinder, AWS EBS, Azure Disk, GCE persistent disk, and VMware vSphere support dynamic persistent volume (PV) provisioning natively in {product-title}.] iSCSI, Fibre Channel, Ceph RBD, OpenStack Cinder, AWS EBS footnoteref:[dynamicPV], Dell/EMC Scale.IO, VMware vSphere Volume, GCE Persistent Disk footnoteref:[dynamicPV], Azure Disk
|
||||
|
||||
|File
|
||||
a| * Presented to the OS as a file system export to be mounted
|
||||
* Also referred to as Network Attached Storage (NAS)
|
||||
* Concurrency, latency, file locking mechanisms, and other capabilities vary widely between protocols, implementations, vendors, and scales.
|
||||
| {gluster-native}/{gluster-external} GlusterFS footnoteref:[dynamicPV], RHEL NFS, NetApp NFS footnoteref:[netappnfs,NetApp NFS supports dynamic PV provisioning when using the Trident plug-in.] , Azure File, Vendor NFS, Vendor GlusterFS footnoteref:[glusterfs, Vendor GlusterFS, Vendor S3, and Vendor Swift supportability and configurability may vary.], Azure File, AWS EFS
|
||||
|
||||
| Object
|
||||
a| * Accessible through a REST API endpoint
|
||||
* Configurable for use in the {product-title} Registry
|
||||
* Applications must build their drivers into the application and/or container.
|
||||
| {gluster-native}/{gluster-external} GlusterFS footnoteref:[dynamicPV], Ceph Object Storage (RADOS Gateway), OpenStack Swift, Aliyun OSS, AWS S3, Google Cloud Storage, Azure Blob Storage, Vendor S3 footnoteref:[glusterfs], Vendor Swift footnoteref:[glusterfs]
|
||||
|===
|
||||
|
||||
You can use {gluster-native} GlusterFS (a hyperconverged or cluster-hosted
|
||||
storage solution) or {gluster-external} GlusterFS (an externally hosted storage
|
||||
solution) for block, file, and object storage for {product-title} registry,
|
||||
logging, and metrics.
|
||||
148
modules/recommended-configurable-storage-technology.adoc
Normal file
148
modules/recommended-configurable-storage-technology.adoc
Normal file
@@ -0,0 +1,148 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * storage/optimizing-storage.adoc
|
||||
:gluster: GlusterFS
|
||||
:gluster-native: Containerized GlusterFS
|
||||
:gluster-external: External GlusterFS
|
||||
:gluster-install-link: https://docs.gluster.org/en/latest/Install-Guide/Overview/
|
||||
:gluster-admin-link: https://docs.gluster.org/en/latest/Administrator%20Guide/overview/
|
||||
:gluster-role-link: https://github.com/openshift/openshift-ansible/tree/master/roles/openshift_storage_glusterfs
|
||||
ifdef::openshift-enterprise[]
|
||||
:gluster: Red Hat Gluster Storage
|
||||
:gluster-native: converged mode
|
||||
:gluster-external: independent mode
|
||||
:gluster-install-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/installation_guide/
|
||||
:gluster-admin-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/
|
||||
:cns-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/
|
||||
[id='recommended-configurable-storage-technology_{context}']
|
||||
= Recommended configurable storage technology
|
||||
|
||||
The following table summarizes the recommended and configurable storage
|
||||
technologies for the given {product-title} cluster application.
|
||||
|
||||
.Recommended and configurable storage technology
|
||||
[options="header"]
|
||||
|===
|
||||
|Storage type |ROX footnoteref:[rox,ReadOnlyMany]|RWX footnoteref:[rwx,ReadWriteMany] |Registry|Scaled registry|Metrics|Logging|Apps
|
||||
|
||||
| Block
|
||||
| Yes footnoteref:[disk,This does not apply to physical disk, VM physical disk, VMDK, loopback over NFS, AWS EBS, and Azure Disk.]
|
||||
| No
|
||||
| Configurable
|
||||
| Not configurable
|
||||
| Recommended
|
||||
| Recommended
|
||||
| Recommended
|
||||
|
||||
| File
|
||||
| Yes footnoteref:[disk]
|
||||
| Yes
|
||||
| Configurable
|
||||
| Configurable
|
||||
| Configurable footnoteref:[metrics-warning,For metrics, it is an anti-pattern to use any shared storage and a single volume
|
||||
(RWX). By default, metrics deploys with one volume per Cassandra Replica.]
|
||||
| Configurable footnoteref:[logging-warning,For logging, using any shared
|
||||
storage would be an anti-pattern. One volume per logging-es is required.]
|
||||
| Recommended
|
||||
|
||||
| Object
|
||||
| Yes
|
||||
| Yes
|
||||
| Recommended
|
||||
| Recommended
|
||||
| Not configurable
|
||||
| Not configurable
|
||||
| Not configurable footnoteref:[object,Object storage is not consumed through {product-title}'s PVs/persistent volume claims (PVCs). Apps must integrate with the object storage REST API. ]
|
||||
|===
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
A scaled registry is an {product-title} registry where three or more pod replicas are running.
|
||||
====
|
||||
|
||||
== Specific application storage recommendations
|
||||
|
||||
[IMPORTANT]
|
||||
====
|
||||
Testing shows issues with using the NFS server on RHEL as storage backend for
|
||||
the container image registry. This includes the OpenShift Container Registry and Quay, Cassandra
|
||||
for metrics storage, and ElasticSearch for logging storage. Therefore, using NFS
|
||||
to back PVs used by core services is not recommended.
|
||||
|
||||
Other NFS implementations on the marketplace might not have these issues.
|
||||
Contact the individual NFS implementation vendor for more information on any
|
||||
testing that was possibly completed against these OpenShift core components.
|
||||
====
|
||||
|
||||
==== Registry
|
||||
|
||||
In a non-scaled/high-availability (HA) {product-title} registry cluster deployment:
|
||||
|
||||
* The preferred storage technology is object storage followed by block storage. The
|
||||
storage technology does not need to support RWX access mode.
|
||||
* The storage technology must ensure read-after-write consistency. All NAS storage (excluding {gluster-native}/{gluster-external} GlusterFS as it uses an object storage interface) are not
|
||||
recommended for {product-title} Registry cluster deployment with production workloads.
|
||||
* While `hostPath` volumes are configurable for a non-scaled/HA {product-title} Registry, they are not recommended for cluster deployment.
|
||||
|
||||
==== Scaled registry
|
||||
|
||||
In a scaled/HA {product-title} registry cluster deployment:
|
||||
|
||||
* The preferred storage technology is object storage. The storage technology must support RWX access mode and must ensure read-after-write consistency.
|
||||
* File storage and block storage are not recommended for a scaled/HA {product-title} registry cluster deployment with production workloads.
|
||||
* All NAS storage (excluding {gluster-native}/{gluster-external} GlusterFS as it uses an object storage interface) are
|
||||
not recommended for {product-title} Registry cluster deployment with production workloads.
|
||||
|
||||
|
||||
==== Metrics
|
||||
|
||||
In an {product-title} hosted metrics cluster deployment:
|
||||
|
||||
* The preferred storage technology is block storage.
|
||||
* It is not recommended to use NAS storage (excluding {gluster-native}/{gluster-external} GlusterFS as it uses a block storage interface from iSCSI) for a hosted metrics cluster deployment with production workloads.
|
||||
|
||||
[IMPORTANT]
|
||||
====
|
||||
Testing shows issues with using the NFS server on RHEL as storage backend for
|
||||
the container image registry. This includes the Cassandra for metrics storage.
|
||||
Therefore, using NFS to back PVs used by core services is not recommended.
|
||||
|
||||
Other NFS implementations on the marketplace might not have these issues.
|
||||
Contact the individual NFS implementation vendor for more information on any
|
||||
testing that was possibly completed against these OpenShift core components.
|
||||
====
|
||||
|
||||
==== Logging
|
||||
|
||||
In an {product-title} hosted logging cluster deployment:
|
||||
|
||||
* The preferred storage technology is block storage.
|
||||
* It is not recommended to use NAS storage (excluding {gluster-native}/{gluster-external} GlusterFS as it uses a block storage interface from iSCSI) for a hosted metrics cluster deployment with production workloads.
|
||||
|
||||
[IMPORTANT]
|
||||
====
|
||||
Testing shows issues with using the NFS server on RHEL as storage backend for
|
||||
the container image registry. This includes ElasticSearch for logging storage.
|
||||
Therefore, using NFS to back PVs used by core services is not recommended.
|
||||
|
||||
Other NFS implementations on the marketplace might not have these issues.
|
||||
Contact the individual NFS implementation vendor for more information on any
|
||||
testing that was possibly completed against these OpenShift core components.
|
||||
====
|
||||
|
||||
==== Applications
|
||||
|
||||
Application use cases vary from application to application, as described in the following examples:
|
||||
|
||||
* Storage technologies that support dynamic PV provisioning have low mount time latencies, and are not tied
|
||||
to nodes to support a healthy cluster.
|
||||
* Application developers are responsible for knowing and understanding the storage
|
||||
requirements for their application, and how it works with the provided storage
|
||||
to ensure that issues do not occur when an application scales or interacts
|
||||
with the storage layer.
|
||||
|
||||
=== Other specific application storage recommendations
|
||||
|
||||
* {product-title} Internal *etcd*: For the best etcd reliability, the lowest consistent latency storage technology is preferable.
|
||||
* OpenStack Cinder: OpenStack Cinder tends to be adept in ROX access mode use cases.
|
||||
* Databases: Databases (RDBMSs, NoSQL DBs, etc.) tend to perform best with dedicated block storage.
|
||||
28
storage/optimizing-storage.adoc
Normal file
28
storage/optimizing-storage.adoc
Normal file
@@ -0,0 +1,28 @@
|
||||
[id='optimizing-storage']
|
||||
= Optimizing storage
|
||||
include::modules/common-attributes.adoc[]
|
||||
:gluster: GlusterFS
|
||||
:gluster-native: Containerized GlusterFS
|
||||
:gluster-external: External GlusterFS
|
||||
:gluster-install-link: https://docs.gluster.org/en/latest/Install-Guide/Overview/
|
||||
:gluster-admin-link: https://docs.gluster.org/en/latest/Administrator%20Guide/overview/
|
||||
:gluster-role-link: https://github.com/openshift/openshift-ansible/tree/master/roles/openshift_storage_glusterfs
|
||||
ifdef::openshift-enterprise[]
|
||||
:gluster: Red Hat Gluster Storage
|
||||
:gluster-native: converged mode
|
||||
:gluster-external: independent mode
|
||||
:gluster-install-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/installation_guide/
|
||||
:gluster-admin-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/
|
||||
:cns-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/
|
||||
:context: persistent-storage
|
||||
|
||||
toc::[]
|
||||
|
||||
|
||||
Optimizing storage helps to minimize storage use across all resources. By
|
||||
optimizing storage, administrators help ensure that existing storage resources
|
||||
are working in an efficient manner.
|
||||
|
||||
include::modules/available-persistent-storage-options.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/recommended-configurable-storage-technology.adoc[leveloffset=+1]
|
||||
Reference in New Issue
Block a user