15572: First pass on new prereqs/planning page
[arvados.git] / doc / install / install-manual-prerequisites.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Planning and prerequisites
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 Before attempting installation, you should begin by reviewing supported platforms, choosing backends for identity, storage, and scheduling, and decide how you will distribute Arvados services onto machines.  You should also choose an Arvados Cluster ID, choose your hostnames, and aquire TLS certificates.  It may be helpful to make notes as you go along.
13
14 The Arvados storage subsystem is called "keep".  The compute subsystem is called "crunch".
15
16 # "Supported GNU/Linux distributions":#supportedlinux
17 # "Identity provider":#identity
18 # "Storage backend (Keep)":#storage
19 # "Container compute scheduler (Crunch)":#scheduler
20 # "Hardware or virtual machines":#machines
21 # "Arvados Cluster ID":#clusterid
22 # "DNS and TLS":#dnstls
23
24 h2(#supportedlinux). Supported GNU/Linux distributions
25
26 table(table table-bordered table-condensed).
27 |_. Distribution|_. State|_. Last supported version|
28 |CentOS 7|Supported|Latest|
29 |Debian 10 ("buster")|Supported|Latest|
30 |Debian 9 ("stretch")|Supported|Latest|
31 |Ubuntu 16.04 ("xenial")|Supported|Latest|
32 |Ubuntu 18.04 ("bionic")|Supported|Latest|
33 |Ubuntu 14.04 ("trusty")|EOL|5f943cd451acfbdcddd84e791738c3aa5926bfed (2019-07-10)|
34 |Debian 8 ("jessie")|EOL|5f943cd451acfbdcddd84e791738c3aa5926bfed (2019-07-10)|
35 |Ubuntu 12.04 ("precise")|EOL|8ed7b6dd5d4df93a3f37096afe6d6f81c2a7ef6e (2017-05-03)|
36 |Debian 7 ("wheezy")|EOL|997479d1408139e96ecdb42a60b4f727f814f6c9 (2016-12-28)|
37 |CentOS 6 |EOL|997479d1408139e96ecdb42a60b4f727f814f6c9 (2016-12-28)|
38
39 Arvados packages are published for current Debian releases (until the EOL date), current Ubuntu LTS releases (until the end of standard support), and the latest version of CentOS.
40
41 h2(#identity). Identity provider
42
43 Choose which backend you will use to authenticate users.
44
45 * Google login to authenticate users with a Google account.  Note: if you only use Google, you can use @arvados-controller@ support for Google login, and do not need to install the Arvados Single Sign-On server (SSO).
46 * LDAP login to authenticate users using the LDAP protocol, supported by many services such as OpenLDAP and Active Directory.  Supports username/password authentication.
47 * Standalone SSO server user database.  Supports username/password authentication.  Supports new user sign-up.
48
49 h2(#storage). Storage backend
50
51 Choose which backend you will use for storing and retrieving content-addressed Keep blocks.
52
53 * File systems storage, such as ext4 or xfs, or network file systems such as GPFS or Lustre
54 * Amazon S3, or other object storage that supports the S3 API including Google Cloud Storage and Ceph.
55 * Azure blob storage
56
57 You should also determine the desired replication factor for your data.  A replication factor of 1 means only a single copy of a given data block is kept.  With a conventional file system backend and a replication factor of 1, a hard drive failure is likely to lose data.  For this reason the default replication factor is 2 (two copies are kept).
58
59 A backend may have its own replication factor (such as durability guarantees of cloud buckets) and Arvados will take this into account when writing a new data block.
60
61 h2(#scheduler). Container compute scheduler
62
63 Choose which backend you will use to schedule computation.
64
65 * On AWS EC2 and Azure, you probably want to use @crunch-dispatch-cloud@ to manage the full lifecycle of cloud compute nodes: starting up nodes sized to the container request, executing containers on those nodes, and shutting nodes down when no longer needed.
66 * For on-premise HPC clusters using "slurm":https://slurm.schedmd.com/ use @crunch-dispatch-slurm@ to execute containers with slurm job submissions.
67 * For single node demos, use @crunch-dispatch-local@ to execute containers directly.
68
69 h2(#machines). Hardware (or virtual machines)
70
71 For a production installation, here is a suggested configuration:
72
73 <div class="offset1">
74 table(table table-bordered table-condensed).
75 |_. Function|_. Number of nodes|_. Recommended specs|
76 |Postgres database, Arvados API server, Arvados controller, Git, Websockets|1|16+ GiB RAM, 4+ cores, fast disk for database|
77 |Single Sign-On (SSO) server ^1^|1|2 GiB RAM|
78 |Workbench, Keepproxy, Keep-web, Keep-balance|1|8 GiB RAM, 2+ cores|
79 |Keepstore servers ^2^|2+|4 GiB RAM|
80 |Compute scheduler|1|2 GiB RAM|
81 |Compute worker nodes ^2^|2+ |Depends on workload|
82 |User shell nodes ^3^|0+|Depends on workload|
83 </div>
84
85 ^1^ May be omitted when using Google login support in @arvados-controller@
86 ^2^ Should be scaled up as needed
87 ^3^ Refers to shell nodes managed by Arvados, that provide ssh access for users to interact with Arvados at the command line.  Optional.
88
89 {% include 'notebox_begin' %}
90 For a small demo installation, it is possible to run all the Arvados services on a single node.  Special considerations for single-node installs will be noted in boxes like this.
91 {% include 'notebox_end' %}
92
93 h2(#clusterid). Arvados Cluster ID
94
95 Each Arvados installation should have a cluster identifier, which is a unique 5-character lowercase alphanumeric string.   Here is one way to make a random 5-character string:
96
97 <notextile>
98 <pre><code>~$ <span class="userinput">tr -dc 0-9a-z &lt;/dev/urandom | head -c5; echo</span>
99 </code></pre>
100 </notextile>
101
102 You may also use a different method to pick the cluster identifier. The cluster identifier will be part of the hostname of the services in your Arvados cluster. The rest of this documentation will refer to it as your @ClusterID@.
103
104 h2(#dnstls). DNS entries and TLS certificates
105
106 The following services are normally public-facing and require DNS entries and corresponding TLS certificates.  Get certificates from your preferred TLS certificate provider.  We recommend using "Let's Encrypt":https://letsencrypt.org/ .  You can run several services on same node, but each distinct hostname requires its own TLS certificate.  A later part of this guide will describe how to set up Nginx virtual hosts.
107
108 <div class="offset1">
109 table(table table-bordered table-condensed).
110 |_. Function|_. Hostname|
111 |Arvados API|@ClusterID@.your.domain|
112 |Arvados Git server|git.@ClusterID@.your.domain|
113 |Arvados Websockets endpoint|ws.@ClusterID@.your.domain|
114 |Arvados SSO Server|auth.your.domain|
115 |Arvados Workbench|workbench.@ClusterID@.your.domain|
116 |Arvados Workbench 2|workbench2.@ClusterID@.your.domain|
117 |Arvados Keepproxy server|keep.@ClusterID@.your.domain|
118 |Arvados Keep-web server|download.@ClusterID@.your.domain
119 _and_
120 *.collections.@ClusterID@.your.domain or
121 *<notextile>--</notextile>collections.@ClusterID@.your.domain or
122 collections.@ClusterID@.your.domain (see the "keep-web install docs":install-keep-web.html)|
123 </div>
124
125 {% include 'notebox_begin' %}
126 It is also possible to create your own certificate authority, issue server certificates, and install a custom root certificate in the browser.  This is out of scope for this guide.
127 {% include 'notebox_end' %}