Skip to content

Commit e1367af

Browse files
committed
GlusterFS: Full review and clean up
Signed-off-by: Jose A. Rivera <[email protected]>
1 parent 340a878 commit e1367af

37 files changed

+1471
-2577
lines changed

_snippets/glusterfs.adoc

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
////
2+
How to use this file:
3+
4+
* Use `include::_snippets/glusterfs.adoc[]` to enable the variables on a given
5+
page.
6+
* When discussing the storage technology itself, just use "GlusterFS", e.g.
7+
"GlusterFS volumes". It is incorrect to say, for example, "Red Hat Gluster
8+
Storage volumes".
9+
* When discussing the base project or product, use `{gluster}`.
10+
* When discussing configurations of {gluster} that are managed by heketi, use
11+
`{gluster-native}` if {gluster} is containerized and `{gluster-external}` if
12+
it is not containerized.
13+
////
14+
:gluster: GlusterFS
15+
:gluster-native: Containerized GlusterFS
16+
:gluster-external: External GlusterFS
17+
:gluster-install-link: https://docs.gluster.org/en/latest/Install-Guide/Overview/
18+
:gluster-admin-link: https://docs.gluster.org/en/latest/Administrator%20Guide/overview/
19+
:gluster-role-link: https://github.com/openshift/openshift-ansible/tree/master/roles/openshift_storage_glusterfs
20+
ifdef::openshift-enterprise[]
21+
:gluster: Red Hat Gluster Storage
22+
:gluster-native: Container-Native Storage
23+
:gluster-external: Container-Ready Storage
24+
:gluster-install-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/installation_guide/
25+
:gluster-admin-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/
26+
:cns-link: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/
27+
endif::[]

_topic_map.yml

+2-6
Original file line numberDiff line numberDiff line change
@@ -452,15 +452,11 @@ Topics:
452452
File: ceph_rbd_dynamic_example
453453
- Name: Complete Example Using GlusterFS
454454
File: gluster_example
455-
- Name: Dynamic Provisioning Example Using Containerized GlusterFS
455+
- Name: Complete Example Using GlusterFS for Dynamic Provisioning
456456
File: gluster_dynamic_example
457-
- Name: Dynamic Provisioning Example Using Dedicated GlusterFS
458-
File: dedicated_gluster_dynamic_example
459-
- Name: Containerized Heketi for Managing Dedicated GlusterFS
460-
File: containerized_heketi_with_dedicated_gluster
461457
- Name: Mounting Volumes To Privileged Pods
462458
File: privileged_pod_storage
463-
- Name: Backing Docker Registry with GlusterFS Storage
459+
- Name: Switching an Integrated OpenShift Container Registry to GlusterFS
464460
File: gluster_backed_registry
465461
- Name: Binding Persistent Volumes by Label
466462
File: binding_pv_by_label

install_config/install/advanced_install.adoc

+48-228
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ endif::[]
1414
ifdef::openshift-origin[]
1515
:pb-prefix: ~/openshift-ansible/
1616
endif::[]
17+
include::_snippets/glusterfs.adoc[]
1718

1819
toc::[]
1920

2021
== Overview
22+
2123
A reference configuration implemented using
2224
link:http://docs.ansible.com/ansible/[Ansible] playbooks is available as the _advanced
2325
installation_ method for installing a {product-title} cluster. Familiarity with Ansible is
@@ -842,11 +844,46 @@ openshift_cockpit_deployer_prefix='registry.example.com/openshift3/'
842844
openshift_cockpit_deployer_version='3.9.3'
843845
----
844846

847+
848+
[[advanced-install-glusterfs-persistent-storage]]
849+
=== Configuring {gluster} Persistent Storage
850+
851+
include::install_config/persistent_storage/topics/glusterfs_intro.adoc[]
852+
853+
Additional information and examples, including the ones below, can be found at
854+
xref:../../install_config/persistent_storage/persistent_storage_glusterfs.adoc#install-config-persistent-storage-persistent-storage-glusterfs[Persistent Storage Using {gluster}].
855+
856+
[[advanced-install-containerized-glusterfs-persistent-storage]]
857+
==== Configuring {gluster-native}
858+
859+
[IMPORTANT]
860+
====
861+
See
862+
xref:../../install_config/install/prerequisites.adoc#prereq-containerized-glusterfs-considerations[{gluster-native} Considerations]
863+
for specific host preparations and prerequisites.
864+
====
865+
866+
include::install_config/persistent_storage/topics/glusterfs_example_basic.adoc[]
867+
868+
[[advanced-install-external-glusterfs-persistent-storage]]
869+
==== Configuring {gluster-external}
870+
871+
include::install_config/persistent_storage/topics/glusterfs_example_basic_external.adoc[]
872+
873+
[[advanced-install-registry]]
874+
=== Configuring an OpenShift Container Registry
875+
876+
An integrated
877+
xref:../../architecture/infrastructure_components/image_registry.adoc#integrated-openshift-registry[OpenShift Container Registry]
878+
can be deployed using the advanced installer.
879+
845880
[[advanced-install-registry-storage]]
846881
==== Configuring Registry Storage
847882

883+
If no registry storage options are used, the default OpenShift Container
884+
Registry is ephemeral and all data will be lost when the pod no longer exists.
848885
There are several options for enabling registry storage when using the advanced
849-
install:
886+
installer:
850887

851888
[discrete]
852889
[[advanced-install-registry-storage-nfs-host-group]]
@@ -928,242 +965,25 @@ region endpoint parameter:
928965
openshift_hosted_registry_storage_s3_regionendpoint=https://myendpoint.example.com/
929966
----
930967

931-
932-
[[advanced-install-glusterfs-persistent-storage]]
933-
=== Configuring GlusterFS Persistent Storage
934-
935-
GlusterFS can be configured to provide
936-
xref:../../architecture/additional_concepts/storage.adoc#architecture-additional-concepts-storage[peristent storage] and
937-
xref:../../install_config/storage_examples/gluster_dynamic_example.adoc#install-config-persistent-storage-dynamically-provisioning-pvs[dynamic provisioning] for {product-title}. It can be used both containerized within
938-
{product-title} and non-containerized on its own nodes.
939-
940-
[[advanced-install-containerized-glusterfs-persistent-storage]]
941-
==== Configuring Containerized GlusterFS Persistent Storage
942-
943-
ifdef::openshift-enterprise[]
944-
This option utilizes
945-
link:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/container-native_storage_for_openshift_container_platform/[Red Hat Container Native Storage (CNS)] for configuring containerized GlusterFS persistent storage in {product-title}.
946-
endif::[]
947-
ifdef::openshift-origin[]
948-
See link:https://github.com/gluster/gluster-kubernetes[Running Containerized GlusterFS in Kubernetes] for additional information on containerized storage
949-
using GlusterFS.
950-
endif::[]
951-
952-
[IMPORTANT]
953-
====
954-
See
955-
xref:../../install_config/install/prerequisites.adoc#prereq-containerized-glusterfs-considerations[Containerized GlusterFS Considerations] for specific host preparations and prerequisites.
956-
====
957-
958-
. In your inventory file, add `glusterfs` in the `[OSEv3:children]` section to
959-
enable the `[glusterfs]` group:
960-
+
961-
----
962-
[OSEv3:children]
963-
masters
964-
nodes
965-
glusterfs
966-
----
967-
968-
. (Optional) Include any of the following role variables in the `[OSEv3:vars]`
969-
section you wish to change:
970-
+
971-
----
972-
[OSEv3:vars]
973-
openshift_storage_glusterfs_namespace=glusterfs <1>
974-
openshift_storage_glusterfs_name=storage <2>
975-
----
976-
<1> The project (namespace) to host the storage pods. Defaults to `glusterfs`.
977-
<2> A name to identify the GlusterFS cluster, which will be used in resource names.
978-
Defaults to `storage`.
979-
980-
. Add a `[glusterfs]` section with entries for each storage node that will host
981-
the GlusterFS storage and include the `glusterfs_ip` and
982-
`glusterfs_devices` parameters in the form:
983-
+
984-
----
985-
<hostname_or_ip> glusterfs_ip=<ip_address> glusterfs_devices='[ "</path/to/device1/>", "</path/to/device2>", ... ]'
986-
----
987-
+
988-
For example:
989-
+
990-
----
991-
[glusterfs]
992-
192.168.10.11 glusterfs_ip=192.168.10.11 glusterfs_devices='[ "/dev/xvdc", "/dev/xvdd" ]'
993-
192.168.10.12 glusterfs_ip=192.168.10.12 glusterfs_devices='[ "/dev/xvdc", "/dev/xvdd" ]'
994-
192.168.10.13 glusterfs_ip=192.168.10.13 glusterfs_devices='[ "/dev/xvdc", "/dev/xvdd" ]'
995-
----
996-
+
997-
Set `glusterfs_devices` to a list of raw block devices that will be completely
998-
managed as part of a GlusterFS cluster. There must be at least one device
999-
listed. Each device must be bare, with no partitions or LVM PVs. Set
1000-
`glusterfs_ip` to the IP address that will be used by pods to communicate with
1001-
the GlusterFS node.
1002-
1003-
. Add the hosts listed under `[glusterfs]` to the `[nodes]` group as well:
1004-
+
1005-
----
1006-
[nodes]
1007-
192.168.10.11
1008-
192.168.10.12
1009-
192.168.10.13
1010-
----
1011-
1012-
. After completing the cluster installation per
1013-
xref:running-the-advanced-installation[Running the Advanced Installation], run
1014-
the following from a master to verify the necessary objects were successfully
1015-
created:
1016-
1017-
.. Verfiy that the GlusterFS `StorageClass` was created:
1018-
+
1019-
----
1020-
# oc get storageclass
1021-
NAME TYPE
1022-
glusterfs-storage kubernetes.io/glusterfs
1023-
----
1024-
1025-
.. Verify that the route was created:
1026-
+
1027-
----
1028-
# oc get routes
1029-
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
1030-
heketi-glusterfs-route heketi-glusterfs-default.cloudapps.example.com heketi-glusterfs <all> None
1031-
----
1032-
+
1033-
[NOTE]
1034-
====
1035-
The name for the route will be `heketi-glusterfs-route` unless the default
1036-
`glusterfs` value was overridden using the `openshift_glusterfs_storage_name`
1037-
variable in the inventory file.
1038-
====
1039-
1040-
.. Use `curl` to verify the route works correctly:
1041-
+
1042-
----
1043-
# curl http://heketi-glusterfs-default.cloudapps.example.com/hello
1044-
Hello from Heketi.
1045-
----
1046-
1047-
After successful installation, see
1048-
link:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/container-native_storage_for_openshift_container_platform/chap-documentation-red_hat_gluster_storage_container_native_with_openshift_platform-gluster_pod_operations[Operations
1049-
on a Red Hat Gluster Storage Pod in an OpenShift Environment] to learn how to
1050-
check the status of the GlusterFS clusters.
1051-
1052-
xref:../../install_config/storage_examples/gluster_dynamic_example.adoc#install-config-persistent-storage-dynamically-provisioning-pvs[Dynamic provisioning] of GlusterFS volumes can occur by
1053-
xref:../../install_config/storage_examples/gluster_dynamic_example.adoc#create-a-pvc-ro-request-storage-for-your-application[creating a PVC to request storage].
1054-
1055-
[[advanced-install-configuring-openshift-container-registry]]
1056-
=== Configuring the OpenShift Container Registry
1057-
1058-
Additional configuration options are available at installation time for the
1059-
xref:../../architecture/infrastructure_components/image_registry.adoc#integrated-openshift-registry[OpenShift Container Registry].
1060-
1061-
If no registry storage options are used, the default {product-title} registry is
1062-
ephermal and all data will be lost if the pod no longer exists. {product-title}
1063-
also supports a single node NFS-backed registry, but this option lacks
1064-
redundancy and reliability compared with the GlusterFS-backed option.
1065-
1066-
[[advanced-install-containerized-glusterfs-backed-registry]]
1067-
==== Configuring a Containerized GlusterFS-Backed Registry
968+
[discrete]
969+
[[advanced-install-registry-storage-glusterfs]]
970+
===== Option E: {gluster-native}
1068971

1069972
Similar to
1070-
xref:advanced-install-containerized-glusterfs-persistent-storage[configuring containerized GlusterFS for persistent storage], GlusterFS storage can be
1071-
configured and deployed for an OpenShift Container Registry during the initial
1072-
installation of the cluster to offer redundant and more reliable storage for the
1073-
registry.
973+
xref:advanced-install-containerized-glusterfs-persistent-storage[configuring {gluster-native}],
974+
{gluster} can be configured to provide storage for an OpenShift Container
975+
Registry during the initial installation of the cluster to offer redundant and
976+
reliable storage for the registry.
1074977

1075978
[IMPORTANT]
1076979
====
1077980
See
1078-
xref:../../install_config/install/prerequisites.adoc#prereq-containerized-glusterfs-considerations[Containerized
1079-
GlusterFS Considerations] for specific host preparations and prerequisites.
981+
xref:../../install_config/install/prerequisites.adoc#prereq-containerized-glusterfs-considerations[{gluster-native} Considerations]
982+
for specific host preparations and prerequisites.
1080983
====
1081984

1082-
Configuration of storage for an OpenShift Container Registry is very similar to
1083-
configuration for GlusterFS persistent storage in that it can be either
1084-
containerized or non-containerized. For this containerized method, the following
1085-
exceptions and additions apply:
1086-
1087-
. In your inventory file, add `glusterfs_registry` in the `[OSEv3:children]` section
1088-
to enable the `[glusterfs_registry]` group:
1089-
+
1090-
----
1091-
[OSEv3:children]
1092-
masters
1093-
nodes
1094-
glusterfs_registry
1095-
----
1096-
1097-
. Add the following role variable in the `[OSEv3:vars]` section to enable the
1098-
GlusterFS-backed registry, provided that the `glusterfs_registry` group name and
1099-
the `[glusterfs_registry]` group exist:
1100-
+
1101-
----
1102-
[OSEv3:vars]
1103-
openshift_hosted_registry_storage_kind=glusterfs
1104-
----
1105-
1106-
. It is recommended to have at least three registry pods, so set the following
1107-
role variable in the `[OSEv3:vars]` section:
1108-
+
1109-
----
1110-
openshift_hosted_registry_replicas=3
1111-
----
1112-
1113-
. If you want to specify the volume size for the GlusterFS-backed registry, set
1114-
the following role variable in `[OSEv3:vars]` section:
1115-
+
1116-
----
1117-
openshift_hosted_registry_storage_volume_size=10Gi
1118-
----
1119-
+
1120-
If unspecified, the volume size defaults to `5Gi`.
1121-
1122-
. The installer will deploy the OpenShift Container Registry pods and associated
1123-
routers on nodes containing the `region=infra` label. Add this label on at least
1124-
one node entry in the `[nodes]` section, otherwise the registry deployment will
1125-
fail. For example:
1126-
+
1127-
----
1128-
[nodes]
1129-
192.168.10.14 openshift_schedulable=True openshift_node_labels="{'region': 'infra'}"
1130-
----
1131-
1132-
. Add a `[glusterfs_registry]` section with entries for each storage node that
1133-
will host the GlusterFS-backed registry and include the `glusterfs_ip` and
1134-
`glusterfs_devices` parameters in the form:
1135-
+
1136-
----
1137-
<hostname_or_ip> glusterfs_ip=<ip_address> glusterfs_devices='[ "</path/to/device1/>", "</path/to/device2>", ... ]'
1138-
----
1139-
+
1140-
For example:
1141-
+
1142-
----
1143-
[glusterfs_registry]
1144-
192.168.10.14 glusterfs_ip=192.168.10.14 glusterfs_devices='[ "/dev/xvdc", "/dev/xvdd" ]'
1145-
192.168.10.15 glusterfs_ip=192.168.10.15 glusterfs_devices='[ "/dev/xvdc", "/dev/xvdd" ]'
1146-
192.168.10.16 glusterfs_ip=192.168.10.16 glusterfs_devices='[ "/dev/xvdc", "/dev/xvdd" ]'
1147-
----
1148-
+
1149-
Set `glusterfs_devices` to a list of raw block devices that will be completely
1150-
managed as part of a GlusterFS cluster. There must be at least one device
1151-
listed. Each device must be bare, with no partitions or LVM PVs. Set
1152-
`glusterfs_ip` to the IP address that will be used by pods to communicate with
1153-
the GlusterFS node.
1154-
1155-
. Add the hosts listed under `[glusterfs_registry]` to the `[nodes]` group as well:
1156-
+
1157-
----
1158-
[nodes]
1159-
192.168.10.14
1160-
192.168.10.15
1161-
192.168.10.16
1162-
----
985+
include::install_config/persistent_storage/topics/glusterfs_example_registry.adoc[]
1163986

1164-
After successful installation, see
1165-
link:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/container-native_storage_for_openshift_container_platform/chap-documentation-red_hat_gluster_storage_container_native_with_openshift_platform-gluster_pod_operations[Operations on a Red Hat Gluster Storage Pod in an OpenShift Environment] to check the
1166-
status of the GlusterFS clusters.
1167987

1168988
[[advanced-install-configuring-global-proxy]]
1169989
=== Configuring Global Proxy Options

0 commit comments

Comments
 (0)