Skip to content

Quick Install Guide

bethlynnatpsc edited this page Jun 14, 2017 · 37 revisions

Obtaining the software:

Notes about the SLASH2 Source

  • There are no binary packages for SLASH2. You must compile from source.
  • These quick instructions assume that you are using Linux. FreeBSD has worked for prior versions. Be sure to install gmake and proceed with much patience.
  • In the event of IO server reconfiguration, do not remove the source after installation.
  • Unless you are a developer of SLASH2, you should use the code https://github.com/pscedu/slash2-stable

Source Location

  • It is very important that you make a note as to where you place the source. It will be known as $SRC_DIR within configuration files.
  • Create a new directory for the source. The recommended path is /usr/local/src/SLASH2/slash2-stable

Downloading the source

Change to your new source directory: cd /usr/local/src/SLASH2

If you can install git on your server, do a local clone... $ git clone https://github.com/pscedu/slash2-stable

Otherwise click the green "clone or download" button and select the zip download from https://github.com/pscedu/slash2-stable

Dependencies

SLASH2 has been known to build on Ubuntu LTS 16.04 and Red Hat / Centos Enterprise Linux 7. Please submit an issue in the project if you notice any other dependencies in your distribution.

Known Packages after Enterprise Linux 7 basic server installation

  • automake
  • byacc
  • flex
  • fuse
  • fuse-devel
  • fuse-libs
  • gcc
  • libacl
  • libacl-devel
  • libaio
  • libaio-devel
  • libgcrypt
  • libgcrypt-devel
  • ncurses
  • ncurses-devel
  • openssl
  • openssl-devel
  • protobuf
  • scons
  • scons-devel (Ubuntu only)
  • sqlite
  • sqlite-devel

Red Hat / Centos

yum install automake byacc flex fuse fuse-devel fuse-libs gcc libacl libacl-devel libaio libaio-devel libgcrypt libgcrypt-devel ncurses ncurses-devel openssl openssl-devel protobuf scons sqlite sqlite-devel

Ubuntu

apt-get install automake byacc flex fuse fuse-devel fuse-libs gcc libacl libaio libaio-devel libgcrypt libgcrypt-devel ncurses ncurses-devel openssl openssl-devel protobuf scons scons-devel sqlite sqlite-devel

Note about dependencies:

Visit the reconfiguration page for more information on the pickle file.

Use Fuse

Put fuse into effect.

ldconfig

Verify that fuse is being used. You should see a line for "lib-fuse"

ldconfig -v

Planning Your Configuration files:

Establishing Your Deployment

As you configure SLASH2, prior to compiling the code, you must decide:

  1. The hostname of your Meta Data Server (MDS)
  2. The hostname of your IO Servers (ION)
  3. A code name of the localities where the IO Servers and clients (CLI) reside.
  4. A code name for the trust-relationship entailing all of the localities involved known as a $DEPLOYMENT

There are 5 configuration files that must be in place before you build the software with make.

  1. /usr/local/src/SLASH2/slash2-stable/mk/local.mk
  2. /usr/local/src/SLASH2/slash2-stable/slash2/mk/local.mk
  3. /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/Makefile
  4. /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/$DEPLOYMENT.slcfg
  5. /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/$DEPLOYMENT.dcfg

Note: The action of establishing yet another ION and/or CLI may cause you to need to change these files locally and on the MDS. Do not delete the source as you may have to return and rebuild the software because these configuration files have changed.

Choose the binary installation path and Declare fuse path

The install directory is configurable and the path of '/usr/local/slash2' is recommended. However, if this is not done, the software will be installed inside /usr/local/

Also, you must declare the path where the "fuse.pc" file is located. The "locate fuse.pc" command might help you find it. Since RHEL/Centos 7 the location is "/usr/lib64/pkgconfig/fuse.pc" we use that in the example below.

Edit /usr/local/src/SLASH2/slash2-stable/mk/local.mk

INST_BASE=/usr/local/slash2
PKG_CONFIG_PATH=/usr/lib64/pkgconfig/

Type of SLASH2 Installation

Decide what type of SLASH2 installation you need:

  • mds - Metadata server
  • ion - Input/Output Server or storage back end
  • cli - client

Then edit the file with the type in all lower case /usr/local/src/SLASH2/slash2-stable/slash2/mk/local.mk

SLASH_MODULES= ion

Infrastructure Directory / Deployment specific configuration files

You must manually create the infrastructure directory $SRC/inf and then a sub directory with your deployment name. ` mkdir /usr/local/src/SLASH2/slash2-stable/inf/

mkdir /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT `

Deployment Specific Makefile

Create the directory of $SRC/inf/$DEPLOYMENT


mkdir /usr/local/src/SLASH2/slash2-stable/inf/

mkdir /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/

See https://github.com/pscedu/slash2/wiki/DocBuild#version-tracked-site-settings for information on how to create your Makefile. You may copy and paste this text exactly for the basic makefile.

SLASH2 configuration file .slcfg

You will need to create a $DEPLOYMENT.slcfg file that is specific to your installation.

vi /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/$DEPLOYMENT.slcfg

https://github.com/pscedu/slash2/wiki/DocConfig#configuring-a-slash2-deployment

SLASH2 daemon configuration file

/usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/$DEPLOYMENT.dcfg

Ready to build the software

cd /usr/local/src/SLASH2/slash2-stable

make build
make install
export PATH=$PATH:/usr/local/slash2/sbin

You may want to add /usr/local/slash2/sbin to your PATH to /root/.profile See for more information on .profile

Setup key

  1. Each deployment shares a secret key for authentication called "authbuf.key" and it is installed, only to the MDS at first. You must hand copy the file to each client and IOS. SCP is recommended for the encrypted sharing of this file.
  2. make the var directory mk /usr/local/slash2/$DEPLOYMENT.s2/var
  3. copy the key cp authbuf.key /usr/local/slash2/$DEPLOYMENT.s2/var
  4. keep it secret with permissions chmod 400 /usr/local/slash2/$DEPLOYMENT.s2/var/authbuf.key

Starting for the first time

  1. Edit the profile file: /usr/local/slash2/pfl_daemon.cfg/local
PROF=$DEPLOYMENT
  1. Make the slash2 filesystem https://github.com/pscedu/slash2/wiki/DocConfig#io-server-setup

  2. Start the sliod.

The parameters are mandatory and must be in order.

Use 0 if you have only one share to export.

sliod.sh -P $DEPLOYMENT 0

You may optionally use the debug verbose

sliod.sh -dv -P $DEPLOYMENT 0

Clone this wiki locally