-
Notifications
You must be signed in to change notification settings - Fork 2
Quick Install Guide
- 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
- 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
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
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.
- 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
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
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
- Centos users will need to add EPEL Testing first. Use the directions from the Fedora Project to add EPEL Testing to your yum repositories
- RHEL users do not need any other repositories.
- Ubuntu users do not need any other repositories.
- If you install or update any of these dependencies, you must remove the host-specific pickle file before a new "make build"
$ rm mk/gen-localdefs-${hostname}-pickle.mk
Visit the reconfiguration page for more information on the pickle file.
Put fuse into effect.
ldconfig
Verify that fuse is being used. You should see a line for "lib-fuse"
ldconfig -v
As you configure SLASH2, prior to compiling the code, you must decide:
- The hostname of your Meta Data Server (MDS)
- The hostname of your IO Servers (ION)
- A code name of the localities where the IO Servers and clients (CLI) reside.
- 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.
- /usr/local/src/SLASH2/slash2-stable/mk/local.mk
- /usr/local/src/SLASH2/slash2-stable/slash2/mk/local.mk
- /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/Makefile
- /usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/$DEPLOYMENT.slcfg
- /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.
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/
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
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 `
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.
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
/usr/local/src/SLASH2/slash2-stable/inf/$DEPLOYMENT/$DEPLOYMENT.dcfg
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
- 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.
- make the var directory
mk /usr/local/slash2/$DEPLOYMENT.s2/var - copy the key
cp authbuf.key /usr/local/slash2/$DEPLOYMENT.s2/var - keep it secret with permissions
chmod 400 /usr/local/slash2/$DEPLOYMENT.s2/var/authbuf.key
- Edit the profile file: /usr/local/slash2/pfl_daemon.cfg/local
PROF=$DEPLOYMENT
-
Make the slash2 filesystem https://github.com/pscedu/slash2/wiki/DocConfig#io-server-setup
-
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
