From 439ba7bd3bd3a129bdd51b2e906cd983cc88832c Mon Sep 17 00:00:00 2001
From: "James E. Blair" <jim@acmegating.com>
Date: Thu, 10 Oct 2024 08:56:24 -0700
Subject: [PATCH] Add some documentation about the mirror volume config script

And update the static page.

Change-Id: I13295f90c0f0792b0c3f55bfa55b9f2b82cf291b
---
 doc/source/mirrors.rst  | 43 +++++++++++++++++++++++++++++++++++++++++
 doc/source/static.rst   | 15 ++++----------
 doc/source/sysadmin.rst |  4 ++++
 doc/source/systems.rst  |  1 +
 4 files changed, 52 insertions(+), 11 deletions(-)
 create mode 100644 doc/source/mirrors.rst

diff --git a/doc/source/mirrors.rst b/doc/source/mirrors.rst
new file mode 100644
index 0000000000..795e86a7be
--- /dev/null
+++ b/doc/source/mirrors.rst
@@ -0,0 +1,43 @@
+:title: Mirror Servers
+
+.. _mirrors:
+
+Mirror Servers
+##############
+
+Each cloud region hosts a dedicated mirror server which serves static
+content from OpenAFS.
+
+At a Glance
+===========
+
+:Hosts:
+  * http://mirror.region.cloud.opendev.org
+:Projects:
+  * http://apache.org/
+:Configuration:
+  * :git_file:`launch/src/opendev_launch/mirror_volumes.sh`
+
+Overview
+========
+
+When setting up a new mirror, add a cinder volume and run the
+:git_file:`launch/src/opendev_launch/mirror_volumes.sh` to set up LVM
+volumes. The cinder volume should be at least 200GB as we divide the volume
+with 50% capacity assigned to Apache2 caches and 50% assigned to OpenAFS
+caches. Starting with 200GB gives us at least 100GB for each of the caches
+we run.
+
+With the volume attached to the server determine the device path then run
+this command::
+
+  ./mirror_volumes.sh -d /dev/$DEVICE -g main \
+    -v afscache:50%VG:/var/cache/openafs \
+    -v proxycache:50%VG:/var/cache/apache2
+
+This will configure the cinder volume with one lvm volume group for OpenAFS
+and another for Apache2. Each volume will get an ext4 filesystem and /etc/fstab
+will be updated. After confirming the script outputs look good you will need
+to `systemctl daemon-reload` then `mount -a` to mount the new filesystems.
+A reboot is also a good idea to confirm everything comes up on a fresh boot
+too.
diff --git a/doc/source/static.rst b/doc/source/static.rst
index c62256c2b9..db5f7c3b8f 100644
--- a/doc/source/static.rst
+++ b/doc/source/static.rst
@@ -12,13 +12,10 @@ At a Glance
 ===========
 
 :Hosts:
-  * http://logs.openstack.org
-  * http://mirror.openstack.org
-  * http://specs.openstack.org
-:Puppet:
-  * :git_file:`modules/openstack_project/manifests/static.pp`
+  * http://static.opendev.org
+  * Many virtual hosts (see config)
 :Configuration:
-  * :config:`specs/index.html`
+  * :git_file:`inventory/service/group_vars/static.yaml`
 :Projects:
   * http://apache.org/
 :Bugs:
@@ -27,8 +24,4 @@ At a Glance
 Overview
 ========
 
-Each apache vhost has a section in the puppet manifest for the static
-host.  Some of the vhosts hold large amounts of data; Cinder volumes
-and LVM are used to manage those.
-
-See :ref:`cinder` for details on volume management.
+Most static sites are served out of OpenAFS.
diff --git a/doc/source/sysadmin.rst b/doc/source/sysadmin.rst
index 45054e39a3..2694e34cfa 100644
--- a/doc/source/sysadmin.rst
+++ b/doc/source/sysadmin.rst
@@ -335,6 +335,10 @@ repository ``https://opendev.org/opendev/system-config``. This
 tool is run from a checkout on the bridge - please see :git_file:`launch/README.rst`
 for detailed instructions.
 
+When launching a mirror server, add a cinder volume and run the
+:git_file:`launch/src/opendev_launch/mirror_volumes.sh` script to set
+up LVM volumes.
+
 .. _disable-enable-ansible:
 
 Disable/Enable Ansible
diff --git a/doc/source/systems.rst b/doc/source/systems.rst
index cd1bd15735..3ae07bc6f7 100644
--- a/doc/source/systems.rst
+++ b/doc/source/systems.rst
@@ -23,6 +23,7 @@ Major Systems
    etherpad
    paste
    static
+   mirrors
    reprepro
    lists
    wiki