Browse Source

Arvados

master
pjotrp 5 years ago
parent
commit
3ee0040b3a
  1. 81
      ARVADOS.org

81
ARVADOS.org

@ -1,12 +1,14 @@
#+TITLE: Installing ARVADOS on Debian + GNU Guix
* Table of Contents :TOC:
- [[#arvados-introduction-][Arvados Introduction ]]
- [[#creating-a-debian-base-install-][Creating a Debian base install ]]
- [[#arvados-introduction][Arvados Introduction]]
- [[#creating-a-debian-base-install][Creating a Debian base install]]
- [[#choice-of-ext4-vs-xfs][Choice of ext4 vs XFS]]
- [[#usb-based-server-installation][USB-based server installation]]
- [[#gnu-guix][GNU Guix]]
- [[#installing-keep][Installing Keep]]
* Arvados Introduction
* Arvados Introduction
With Arvados+GNU Guix we aim to crack two bioinformatics problems
at the same time (well, maybe even more, but these are our two main
@ -19,7 +21,10 @@ Arvados provides an answer to both, so in this document I'll try and
install Arvados on a small compute cluster. For this we will create a
number of GNU Guix packages.
* Creating a Debian base install
* Creating a Debian base install
In this section we set up a base install of nodes to run Arvados
tools.
The developers of Arvados use Debian Wheezy as a base install with an
XFS file system. Wheezy also misses out on the systemd default. So
@ -32,8 +37,8 @@ mind about servers at some point).
In general, storing data on Linux should be
considered `unsafe'. Arvados, however, promises redundancy across
nodes, so we ought to be not too concerned with the underlying storage.
Also, most of the jobs on this cluster will be transient. Similarly
nodes, so we ought to be not too concerned with the underlying storage.
Also, most of the jobs on this cluster will be transient. Similarly
GNU Guix is also resistant to disk failure because it is easy to copy
across nodes.
@ -66,8 +71,8 @@ the machine already).
*** Install server
It needed a little bios nudging, but the installation was easy.
I just select the defaults for a minimal install (select ssh
It needed a little bios nudging, but the installation was easy.
I just select the defaults for a minimal install (select ssh
server, not the full desktop). I installed machines
: fedor311: 8 x Intel 2.66Hz (6Mb, 5333bogomips), 32G RAM, 3TB
@ -89,7 +94,7 @@ At installation time only the first two need to be defined.
#+begin_src sh :lang bash
fdisk -l
fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
@ -138,7 +143,7 @@ Create a partition for GNU Guix
And make sure it mounts on /gnu. In /etc/fstab
: /dev/mapper/volume_group1-gnu /gnu ext4 defaults 0 2
: /dev/mapper/volume_group1-gnu /gnu ext4 defaults 0 2
*** Docker
@ -148,7 +153,7 @@ requires a Kernel upgrade.
**** Update the Linux kernel
To /etc/apt/sources.list add the line
To /etc/apt/sources.list add the line
: deb http://http.debian.net/debian wheezy-backports main contrib non-free
@ -236,7 +241,7 @@ or Guix itself as a base distribution).
*** Install GNU Guix
We install the binary distribution (0.9) of Guix. And follow the procedure
described in [[INSTALL.org#binary-installation]] and the sections after
described in [[INSTALL.org#binary-installation]] and the sections after
that for creating user-level access to Guix.
*** User settings
@ -250,4 +255,56 @@ user profile, especially the PATH and GUIX_LOCPATH, e.g.
export LC_ALL=en_US.UTF-8
#+end_src sh :lang bash
* Installing Keep
Arvodos has a version that runs in a Docker container named
Arvbox. The scripts to create the image are [[https://github.com/curoverse/arvados/tree/master/tools/arvbox/lib/arvbox/docker][here]]. We won't run arvbox,
but try to get keepstore to run with the Arvados API server. In Arvbox
keepstore is installed with
mkdir -p /var/lib/gopath
cd /var/lib/gopath
#+begin_src sh :lang bash
export GOPATH=$PWD
mkdir -p "$GOPATH/src/git.curoverse.com"
ln -sfn "/usr/src/arvados" "$GOPATH/src/git.curoverse.com/arvados.git"
flock /var/lib/gopath/gopath.lock go get -t "git.curoverse.com/arvados.git/services/keepstore"
install bin/keepstore /usr/local/bin
mkdir -p /var/lib/arvados/$1
export ARVADOS_API_HOST=$localip:${services[api]}
export ARVADOS_API_HOST_INSECURE=1
export ARVADOS_API_TOKEN=$(cat /var/lib/arvados/superuser_token)
set +e
read -rd $'\000' keepservice <<EOF
{
"service_host":"$localip",
"service_port":$2,
"service_ssl_flag":false,
"service_type":"disk"
}
EOF
set -e
if test -s /var/lib/arvados/$1-uuid ; then
keep_uuid=$(cat /var/lib/arvados/$1-uuid)
arv keep_service update --uuid $keep_uuid --keep-service "$keepservice"
else
UUID=$(arv --format=uuid keep_service create --keep-service "$keepservice")
echo $UUID > /var/lib/arvados/$1-uuid
fi
set +e
killall -HUP keepproxy
exec /usr/local/bin/keepstore \
-listen=:$2 \
-enforce-permissions=true \
-blob-signing-key-file=/var/lib/arvados/blob_signing_key \
-data-manager-token-file=/var/lib/arvados/superuser_token \
-max-buffers=20 \
-volume=/var/lib/arvados/$1
#+end_src
Loading…
Cancel
Save