1
0
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:
Ashley Hardin
2018-11-29 21:07:22 -05:00
parent 21920c38e8
commit 647ba087a2
4 changed files with 223 additions and 0 deletions

View File

@@ -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-*

View 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.

View 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.

View 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]