13558: Merge branch 'master' into wtsi-hgi-13558-debug-log-tag-req-id
[arvados.git] / doc / install / install-keep-balance.html.textile.liquid
index 85fe300305e2d2eb72e1579b9accd0567c562b43..3a8dce078dd092bfe687639f912415b2553bf14c 100644 (file)
@@ -3,13 +3,25 @@ layout: default
 navsection: installguide
 title: Install Keep-balance
 ...
+{% comment %}
+Copyright (C) The Arvados Authors. All rights reserved.
+
+SPDX-License-Identifier: CC-BY-SA-3.0
+{% endcomment %}
 
 Keep-balance deletes unreferenced and overreplicated blocks from Keep servers, makes additional copies of underreplicated blocks, and moves blocks into optimal locations as needed (e.g., after adding new servers).
 
+{% include 'notebox_begin' %}
+
+If you are installing keep-balance on an existing system with valuable data, you can run keep-balance in "dry run" mode first and review its logs as a precaution. To do this, edit your keep-balance startup script to use the flags @-commit-pulls=false -commit-trash=false@.
+
+{% include 'notebox_end' %}
 
 h2. Install keep-balance
 
-Keep-balance can be installed anywhere with access to Keep services. Typically it runs on the same host as keepproxy.
+Keep-balance can be installed anywhere with network access to Keep services. Typically it runs on the same host as keepproxy.
+
+*A cluster should have only one keep-balance process running at a time.*
 
 On Debian-based systems:
 
@@ -43,18 +55,24 @@ Options:
 
 h3. Create a keep-balance token
 
-Create a privileged Arvados API token for use by keep-balance. *On the API server*, run:
+Create an Arvados superuser token for use by keep-balance. *On the API server*, run:
+
+{% include 'create_superuser_token' %}
+
+h3. Update keepstore configuration files
+
+On each node that runs keepstore, save the token you generated in the previous step in a text file like @/etc/arvados/keepstore/system-auth-token.txt@ and then create or update @/etc/arvados/keepstore/keepstore.yml@ with the following key:
 
 <notextile>
-<pre><code>apiserver:~$ <span class="userinput">cd /var/www/arvados-api/current</span>
-apiserver:/var/www/arvados-api/current$ <span class="userinput">sudo -u <b>webserver-user</b> RAILS_ENV=production bundle exec script/create_superuser_token.rb</span>
-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
+<pre><code>SystemAuthTokenFile: /etc/arvados/keepstore/system-auth-token.txt
 </code></pre>
 </notextile>
 
-h3. Create a configuration file
+Restart all keepstore services to apply the updated configuration.
+
+h3. Create a keep-balance configuration file
 
-Create @/etc/arvados/keep-balance/keep-balance.yml@ using the token you generated in the previous step.  Follow this YAML format:
+On the host running keep-balance, create @/etc/arvados/keep-balance/keep-balance.yml@ using the token you generated above.  Follow this YAML format:
 
 <notextile>
 <pre><code>Client:
@@ -134,22 +152,26 @@ run: /etc/service/keep-balance: (pid 12520) 2s; run: log: (pid 12519) 2s
 
 h2. Enable delete operations on keepstore volumes
 
-Ensure your keepstore services have the "delete" operation enabled. Otherwise, even when unneeded data is identified by keep-balance, it will never be deleted from the underlying storage devices.
+Ensure your keepstore services have the "delete" operation enabled. If it is disabled (which is the default), unneeded blocks will be identified by keep-balance, but will never be deleted from the underlying storage devices.
 
-Either use the @EnableDelete@ flag in your YAML configuration file @/etc/arvados/keepstore/keepstore.yml@:
+Add the @-never-delete=false@ command line flag to your keepstore run script:
 
 <notextile>
-<pre><code>...
-BlobSigningKeyFile: /etc/keepstore/blob-signing.key
-<span class="userinput">EnableDelete: true</span>
-Listen: :25107
-...
+<pre><code>keepstore <span class="userinput">-never-delete=false</span> -volume=...
 </code></pre>
 </notextile>
 
-Or use the @-never-delete=false@ command line flag in your run script:
+{% comment %}
+// To replace the above section when the keepstore page recommends YAML...
+
+Use the @EnableDelete@ flag in your YAML configuration file @/etc/arvados/keepstore/keepstore.yml@:
 
 <notextile>
-<pre><code>keepstore <span class="userinput">-never-delete=false</span> -volume=...
+<pre><code>...
+BlobSigningKeyFile: /etc/keepstore/blob-signing.key
+<span class="userinput">EnableDelete: true</span>
+Listen: :25107
+...
 </code></pre>
 </notextile>
+{% endcomment %}