Bump loofah from 2.2.3 to 2.3.1 in /apps/workbench
[arvados.git] / doc / install / install-keep-balance.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Install Keep-balance
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 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). See "Balancing Keep servers":{{site.baseurl}}/admin/keep-balance.html for usage details.
13
14 {% include 'notebox_begin' %}
15
16 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@.
17
18 {% include 'notebox_end' %}
19
20 h2. Install keep-balance
21
22 Keep-balance can be installed anywhere with network access to Keep services. Typically it runs on the same host as keepproxy.
23
24 *A cluster should have only one keep-balance process running at a time.*
25
26 On Debian-based systems:
27
28 <notextile>
29 <pre><code>~$ <span class="userinput">sudo apt-get install keep-balance</span>
30 </code></pre>
31 </notextile>
32
33 On Red Hat-based systems:
34
35 <notextile>
36 <pre><code>~$ <span class="userinput">sudo yum install keep-balance</span>
37 </code></pre>
38 </notextile>
39
40 Verify that @keep-balance@ is functional:
41
42 <notextile>
43 <pre><code>~$ <span class="userinput">keep-balance -h</span>
44 ...
45 Usage of ./keep-balance:
46   -commit-pulls
47         send pull requests (make more replicas of blocks that are underreplicated or are not in optimal rendezvous probe order)
48   -commit-trash
49         send trash requests (delete unreferenced old blocks, and excess replicas of overreplicated blocks)
50 ...
51 </code></pre>
52 </notextile>
53
54 h3. Update the cluster config
55
56 Edit the cluster config at @/etc/arvados/config.yml@ and set @Services.Keepbalance.InternalURLs@. Replace @uuid_prefix@ with your cluster id.
57
58 <notextile>
59 <pre><code>Clusters:
60   <span class="userinput">uuid_prefix</span>:
61     Services:
62       Keepbalance:
63         InternalURLs:
64           "http://localhost:9005/": {}
65     TLS:
66       Insecure: false
67 </code></pre>
68 </notextile>
69
70 Set @TLS.Insecure: true@ if your API server’s TLS certificate is not signed by a recognized CA.
71
72 h3. Start the service (option 1: systemd)
73
74 If your system does not use systemd, skip this section and follow the "runit instructions":#runit instead.
75
76 If your system uses systemd, the keep-balance service should already be set up. Start it and check its status:
77
78 <notextile>
79 <pre><code>~$ <span class="userinput">sudo systemctl restart keep-balance</span>
80 ~$ <span class="userinput">sudo systemctl status keep-balance</span>
81 &#x25cf; keep-balance.service - Arvados Keep Balance
82    Loaded: loaded (/lib/systemd/system/keep-balance.service; enabled)
83    Active: active (running) since Sat 2017-02-14 18:46:01 UTC; 3 days ago
84      Docs: https://doc.arvados.org/
85  Main PID: 541 (keep-balance)
86    CGroup: /system.slice/keep-balance.service
87            └─541 /usr/bin/keep-balance -commit-pulls -commit-trash
88
89 Feb 14 18:46:01 zzzzz.arvadosapi.com keep-balance[541]: 2017/02/14 18:46:01 starting up: will scan every 10m0s and on SIGUSR1
90 Feb 14 18:56:01 zzzzz.arvadosapi.com keep-balance[541]: 2017/02/14 18:56:01 Run: start
91 Feb 14 18:56:01 zzzzz.arvadosapi.com keep-balance[541]: 2017/02/14 18:56:01 skipping zzzzz-bi6l4-rbtrws2jxul6i4t with service type "proxy"
92 Feb 14 18:56:01 zzzzz.arvadosapi.com keep-balance[541]: 2017/02/14 18:56:01 clearing existing trash lists, in case the new rendezvous order differs from previous run
93 </code></pre>
94 </notextile>
95
96 h3(#runit). Start the service (option 2: runit)
97
98 Install runit to supervise the keep-balance daemon.  {% include 'install_runit' %}
99
100 Create a supervised service.
101
102 <notextile>
103 <pre><code>~$ <span class="userinput">sudo mkdir /etc/service/keep-balance</span>
104 ~$ <span class="userinput">cd /etc/service/keep-balance</span>
105 ~$ <span class="userinput">sudo mkdir log log/main</span>
106 ~$ <span class="userinput">printf '#!/bin/sh\nexec keep-balance -commit-pulls -commit-trash 2>&1\n' | sudo tee run</span>
107 ~$ <span class="userinput">printf '#!/bin/sh\nexec svlogd main\n' | sudo tee log/run</span>
108 ~$ <span class="userinput">sudo chmod +x run log/run</span>
109 ~$ <span class="userinput">sudo sv exit .</span>
110 ~$ <span class="userinput">cd -</span>
111 </code></pre>
112 </notextile>
113
114 Use @sv stat@ and check the log file to verify the service is running.
115
116 <notextile>
117 <pre><code>~$ <span class="userinput">sudo sv stat /etc/service/keep-balance</span>
118 run: /etc/service/keep-balance: (pid 12520) 2s; run: log: (pid 12519) 2s
119 ~$ <span class="userinput">tail /etc/service/keep-balance/log/main/current</span>
120 2017/02/14 18:46:01 starting up: will scan every 10m0s and on SIGUSR1
121 2017/02/14 18:56:01 Run: start
122 2017/02/14 18:56:01 skipping zzzzz-bi6l4-rbtrws2jxul6i4t with service type "proxy"
123 2017/02/14 18:56:01 clearing existing trash lists, in case the new rendezvous order differs from previous run
124 </code></pre>
125 </notextile>
126
127 h2. Enable garbage collection
128
129 Ensure your cluster configuration has @Collections.BlobTrash: true@ (this is the default).
130
131 <notextile>
132 <pre><code>~$ arvados-server config-dump | grep BlobTrash:
133       BlobTrash: true
134 </code></pre>
135 </notextile>
136
137 If BlobTrash is false, unneeded blocks will be counted and logged by keep-balance, but they will not be deleted.