diff options
author | Marcin Szychowski <szycha@gmail.com> | 2018-02-27 09:39:29 +0000 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2018-03-03 08:42:07 +0700 |
commit | 16e19b7f76eede875e1697468baf618b6ed0b403 (patch) | |
tree | 1e662456488bb016a9e93f96982a8dce4dd7dbbc | |
parent | da1cfc02cfe67375bc6a10abc55a5030535f0db8 (diff) |
network/lizardfs: Added (GPLv3 implementation of GoogleFS).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
-rw-r--r-- | network/lizardfs/README | 55 | ||||
-rw-r--r-- | network/lizardfs/doinst.sh | 31 | ||||
-rw-r--r-- | network/lizardfs/lizardfs.SlackBuild | 149 | ||||
-rw-r--r-- | network/lizardfs/lizardfs.info | 16 | ||||
-rw-r--r-- | network/lizardfs/rc.lizardfs-cgiserv.new | 72 | ||||
-rw-r--r-- | network/lizardfs/rc.lizardfs-chunkserver.new | 76 | ||||
-rw-r--r-- | network/lizardfs/rc.lizardfs-master.new | 70 | ||||
-rw-r--r-- | network/lizardfs/rc.lizardfs-metalogger.new | 70 | ||||
-rw-r--r-- | network/lizardfs/rc.lizardfs.new | 66 | ||||
-rw-r--r-- | network/lizardfs/setup.lizardfs-services.new | 94 | ||||
-rw-r--r-- | network/lizardfs/slack-desc | 19 |
11 files changed, 718 insertions, 0 deletions
diff --git a/network/lizardfs/README b/network/lizardfs/README new file mode 100644 index 0000000000000..6b6c8d0b12783 --- /dev/null +++ b/network/lizardfs/README @@ -0,0 +1,55 @@ +LizardFS is a highly scalable, fault-tolerant, POSIX-compatible, FUSE-based, +high performance distributed filesystem, licensed under GNU General Public +License version 3. + +LizardFS is an implementation of GoogleFS, and a fork of the earlier project, +MooseFS. LizardFS supports writable snapshots (instant copies), undeleting +files, automatic data rebalancing, self-healing, data tiering, periodic data +patrols and many more. + +LizardFS system consists of a master server, one or more metadata logging +servers (meta loggers), and many chunk servers, that store the data on their +locally-attached drives. Both meta loggers and chunk servers can be added and +removed without restarting the master server. + +Filesystem metadata is stored on the master server (and constantly replicated +to meta loggers), whereas filesystem data is divided into chunks and spread as +files over chunk servers, according to pre-defined 'goals', which can be set +on file-, directory-, or filesystem level. A goal can be an n-way mirroring +goal, n+1 xor-ed goal (each chunk divided into n parts and xor-ed to calculate +one part of redundancy), or more sophisticated, erasure code based n+k +redundancy, where n parts of each chunk are backed by k parts of redundancy +data. + +A set of administrative commands exists to support querying and setting +redundancy goals and trash preservation time. LizardFS is admin-friendly since +any missing chunks can be provided from any sort of backup to any running +chunk server. + +This package contains all binaries needed to run LizardFS system: mfsmaster, +mfsmetalogger, mfschunkserver, as well as lizardfs-cgiserver (web-based +monitoring console). + +You need an "mfs" user and group prior to building lizardfs. Something like +this will suffice for most systems: + groupadd -g 353 mfs + useradd -u 353 -g 353 -d /var/lib/mfs mfs +Feel free to use a different uid and gid if desired, but 353 is recommended to +avoid conflicts with other stuff from SlackBuilds.org. + +It is also advisable to make name 'mfsmaster' pointing at your Master server +across your network. It is not strictly required, but it will make things much +easier. If you are unable to configure your DNS server, adding this line to +/etc/hosts on each master, metalogger, chunkserver, and client machines will +do: + +a.b.c.d mfsmaster mfsmaster.my-domain.ext + +where a.b.c.d is an IP address of your master server. + +Then on each node add '/etc/rc.d/rc.lizardfs start' to /etc/rc.d/rc.local (or +wherever you find appropriate), and use '/etc/rc.d/rc.lizardfs setup' to +configure which services should run on the server. Since most installations +consists mostly of chunkservers, rc.lizardfs-chunkserver is marked executable +by default (but will not run until rc.lizardfs-chunkserver or rc.lizardfs is +added to rc.local, so no need to worry). diff --git a/network/lizardfs/doinst.sh b/network/lizardfs/doinst.sh new file mode 100644 index 0000000000000..36cf257bf26f9 --- /dev/null +++ b/network/lizardfs/doinst.sh @@ -0,0 +1,31 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/mfs/mfschunkserver.cfg.new +config etc/mfs/mfshdd.cfg.new +config etc/mfs/mfsmetalogger.cfg.new +config etc/mfs/mfsmaster.cfg.new +config etc/mfs/mfsexports.cfg.new +config etc/mfs/mfstopology.cfg.new +config etc/mfs/mfsmount.cfg.new +config etc/mfs/globaliolimits.cfg.new +config etc/mfs/iolimits.cfg.new +config etc/mfs/mfsgoals.cfg.new + +config etc/rc.d/rc.lizardfs.new +config etc/rc.d/rc.lizardfs-chunkserver.new +config etc/rc.d/rc.lizardfs-cgiserv.new +config etc/rc.d/rc.lizardfs-master.new +config etc/rc.d/rc.lizardfs-metalogger.new + +config var/log/setup/setup.lizardfs-services.new diff --git a/network/lizardfs/lizardfs.SlackBuild b/network/lizardfs/lizardfs.SlackBuild new file mode 100644 index 0000000000000..a8b291afe2f37 --- /dev/null +++ b/network/lizardfs/lizardfs.SlackBuild @@ -0,0 +1,149 @@ +#!/bin/sh + +# Slackware build script for LizardFS + +# Copyright 2018 Marcin Szychowski <szycha@gmail.com> +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=lizardfs +VERSION=${VERSION:-3.12.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +LIZARDFS_UID=${LIZARDFS_UID:-353} +LIZARDFS_GID=${LIZARDFS_GID:-353} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +# Bail out if user or group isn't valid on your system +# For slackbuilds.org, assigned mfs uid/gid are 353/353 +# See http://slackbuilds.org/uid_gid.txt +if ! getent group mfs 2>&1 > /dev/null; then + echo " You must have a mfs group to run this script." + echo " # groupadd -g $LIZARDFS_GID mfs" + exit 1 +elif ! getent passwd mfs 2>&1 > /dev/null; then + echo " You must have a mfs user to run this script." + echo " # useradd -u $LIZARDFS_UID -g $LIZARDFS_GID -d /var/lib/pgsql mfs" + exit 1 +fi + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +for z in $CWD/*.zip; do + unzip $z -d external/ +done +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/ \ + -DENABLE_DEBIAN_PATHS=YES \ + -DENABLE_TESTS=NO \ + -DENABLE_DOCS=YES \ + -DENABLE_OFFICIAL_BUILD=NO \ + -DSET_RC_BUILD_NUMBER=NO \ + -DENABLE_CLIENT_LIB=YES \ + -DENABLE_NFS_GANESHA=YES \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install DESTDIR=$PKG +cd .. + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mv $PKG/usr/share/man $PKG/usr/ +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +for d in chunkserver exports goals hdd master metalogger mount topology; do + mv $PKG/etc/mfs/mfs$d.cfg.dist $PKG/etc/mfs/mfs$d.cfg.new +done +for l in '' global; do + mv $PKG/etc/mfs/${l}iolimits.cfg.dist $PKG/etc/mfs/${l}iolimits.cfg.new +done + +mkdir -p $PKG/var/run/mfs $PKG/var/lib/mfs +chown mfs:mfs $PKG/var/run/mfs $PKG/var/lib/mfs + +mkdir -p $PKG/etc/rc.d +cp -a $CWD/rc.lizardfs-cgiserv.new $CWD/rc.lizardfs-chunkserver.new \ + $CWD/rc.lizardfs-master.new $CWD/rc.lizardfs-metalogger.new \ + $CWD/rc.lizardfs.new $PKG/etc/rc.d/ + +mkdir -p $PKG/var/log/setup +cp -a $CWD/setup.lizardfs-services.new $PKG/var/log/setup/ + +chmod +x $PKG/var/log/setup/setup.lizardfs-services.new \ + $PKG/etc/rc.d/rc.lizardfs-chunkserver.new + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + COPYING INSTALL NEWS README.md UPGRADE ReleaseNotes \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/network/lizardfs/lizardfs.info b/network/lizardfs/lizardfs.info new file mode 100644 index 0000000000000..a4fe1c0686f21 --- /dev/null +++ b/network/lizardfs/lizardfs.info @@ -0,0 +1,16 @@ +PRGNAM="lizardfs" +VERSION="3.12.0" +HOMEPAGE="http://lizardfs.org" +DOWNLOAD="https://github.com/lizardfs/lizardfs/archive/v3.12.0/lizardfs-3.12.0.tar.gz \ + https://github.com/nfs-ganesha/nfs-ganesha/archive/V2.5-stable/nfs-ganesha-2.5-stable.zip \ + https://github.com/nfs-ganesha/ntirpc/archive/v1.5/ntirpc-1.5.zip \ + https://github.com/gabime/spdlog/archive/v0.14.0/spdlog-0.14.0.zip" +MD5SUM="e584aa9534f900ca04d40a4772e01302 \ + 2a63aeff51df42fa76e4d40a5672219e \ + af615a75e656e8cc0b107aee9b2c25ab \ + f213d83c466aa7044a132e2488d71b11" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Marcin Szychowski" +EMAIL="szycha@gmail.com" diff --git a/network/lizardfs/rc.lizardfs-cgiserv.new b/network/lizardfs/rc.lizardfs-cgiserv.new new file mode 100644 index 0000000000000..4ff220f0bd019 --- /dev/null +++ b/network/lizardfs/rc.lizardfs-cgiserv.new @@ -0,0 +1,72 @@ +#!/bin/sh +# +# /etc/rc.d/rc.lizardfs-cgiserv +# +# Init file for the LizardFS web console service +# Adapted for Slackware Linux by Marcin Szychowski <szycha@gmail.com> +# +# See mfscgiserv(8) for more information. +# For general information on LizardFS, see mfs(7) or visit +# http://lizardfs.org/ + +# Source function library. +. /etc/init.d/functions + +MFSCGISERV_USER=nobody + +RETVAL=0 +prog="lizardfs-cgiserver" + +start () { + echo -n $"Starting $prog: " + /bin/su -s /bin/bash -c "/usr/sbin/$prog > /dev/null 2>&1 &" $MFSCGISERV_USER + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + touch /var/lock/subsys/$prog + echo '...done' + else + echo '...failed!' + fi + return $RETVAL +} + +stop () { + echo -n $"Stopping $prog: " + fuser -kn tcp 9425 >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + rm -f /var/lock/subsys/$prog + fi + echo '...done' + return $RETVAL +} + +restart () { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + condrestart) + [ -e /var/lock/subsys/$prog ] && restart + RETVAL=$? + ;; + status) + status $prog + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + RETVAL=1 +esac + +exit $RETVAL diff --git a/network/lizardfs/rc.lizardfs-chunkserver.new b/network/lizardfs/rc.lizardfs-chunkserver.new new file mode 100644 index 0000000000000..2ec48cc33cebc --- /dev/null +++ b/network/lizardfs/rc.lizardfs-chunkserver.new @@ -0,0 +1,76 @@ +#!/bin/sh +# +# /etc/rc.d/rc.lizardfs-chunkserver +# +# Init file for the LizardFS chunkserver service +# Adapted for Slackware Linux by Marcin Szychowski <szycha@gmail.com> +# +# NOTE: This script is executable by default, BUT it will not start +# unless its' parent script (rc.lizardfs) is enabled first. +# This is for big sites admin convenience. You are safe with it. +# See rc.lizardfs and lizardfs(7) for details. + +# Source function library. +. /etc/init.d/functions + +RETVAL=0 +prog=mfschunkserver + +if [ ! -r "/etc/mfs/mfshdd.cfg" ]; then + echo $prog will not run: /etc/mfs/mfshdd.cfg file is missing + exit 1 +fi + +start () { + echo -n $"Starting $prog: " + daemon $prog >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + touch /var/lock/subsys/$prog + echo '...done' + else + echo '...failed! (check syslog for details)' + fi + return $RETVAL +} + +stop () { + echo -n $"Stopping $prog: " + $prog stop >/dev/null 2>&1 || killproc $prog >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + rm -f /var/lock/subsys/$prog + fi + echo '...done' + return $RETVAL +} + +restart () { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + condrestart) + [ -e /var/lock/subsys/$prog ] && restart + RETVAL=$? + ;; + status) + status $prog + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + RETVAL=1 +esac + +exit $RETVAL diff --git a/network/lizardfs/rc.lizardfs-master.new b/network/lizardfs/rc.lizardfs-master.new new file mode 100644 index 0000000000000..e3dfba68ead02 --- /dev/null +++ b/network/lizardfs/rc.lizardfs-master.new @@ -0,0 +1,70 @@ +#!/bin/sh +# +# Init file for the LizardFS master service +# Adapted for Slackware Linux by Marcin Szychowski <szycha@gmail.com> +# +# +# Source function library. +. /etc/init.d/functions + +RETVAL=0 +prog="mfsmaster" + +if [ ! -r "/etc/mfs/mfsexports.cfg" ]; then + echo $prog will not run: /etc/mfs/mfsexports.cfg file is missing + exit 1 +fi + +start () { + echo -n $"Starting $prog: " + daemon $prog >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + touch /var/lock/subsys/$prog + echo '...done' + else + echo '...failed! (check syslog for details)' + fi + return $RETVAL +} + +stop () { + echo -n $"Stopping $prog: " + $prog stop >/dev/null 2>&1 || killproc $prog >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + rm -f /var/lock/subsys/$prog + fi + echo '...done' + return $RETVAL +} + +restart () { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + condrestart) + [ -e /var/lock/subsys/$prog ] && restart + RETVAL=$? + ;; + status) + status $prog + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + RETVAL=1 +esac + +exit $RETVAL diff --git a/network/lizardfs/rc.lizardfs-metalogger.new b/network/lizardfs/rc.lizardfs-metalogger.new new file mode 100644 index 0000000000000..ade1cad06e3d8 --- /dev/null +++ b/network/lizardfs/rc.lizardfs-metalogger.new @@ -0,0 +1,70 @@ +#!/bin/bash +# +# /etc/rc.d/rc.lizardfs-metalogger +# +# Init file for the LizardFS metalogger service +# Adapted for Slackware Linux by Marcin Szychowski <szycha@gmail.com> +# +# See mfsmetalogger(8) for more information. +# For general information on LizardFS, see /etc/rc.d/rc.lizardfs, lizardfs(7) +# or visit http://lizardfs.org/ + +# Source function library. +. /etc/init.d/functions + +RETVAL=0 +prog="mfsmetalogger" + +start () { + echo -n $"Starting $prog: " + daemon $prog >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + touch /var/lock/subsys/$prog + echo '...done' + else + echo '...failed! (check syslog for details)' + fi + return $RETVAL +} + +stop () { + echo -n $"Stopping $prog: " + $prog stop >/dev/null 2>&1 || killproc $prog >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + rm -f /var/lock/subsys/$prog + fi + echo '...done' + return $RETVAL +} + +restart () { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + condrestart) + [ -e /var/lock/subsys/$prog ] && restart + RETVAL=$? + ;; + status) + status $prog + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + RETVAL=1 +esac + +exit $RETVAL diff --git a/network/lizardfs/rc.lizardfs.new b/network/lizardfs/rc.lizardfs.new new file mode 100644 index 0000000000000..fa5b338c78f21 --- /dev/null +++ b/network/lizardfs/rc.lizardfs.new @@ -0,0 +1,66 @@ +#!/bin/sh + +# Init script file for LizardFS (or MooseFS) system. +# Written for Slackware Linux by Marcin Szychowski <szycha@gmail.com> +# This script starts enabled LizardFS services. +# +# LizardFS is a distributed, self-healing, self-replicating filesystem, +# available under GNU GPLv3 License for any FUSE-capable operating system. +# +# Typical LizardFS installation consists of one master server, one or +# more meta-loggers and any number of chunk servers (the more the better). +# lizardfs Slackware Package contains software to run any of them. +# +# Although it is possible to run entire LizardFS system within one host +# you should not mix their roles across machines in a production +# environment. Especially you should not run anything along with master +# server process on the same machine. +# For more details refer to lizardfs(7) manual page or LizardFS website +# http://lizardfs.org/ +# +# Enable this script to start/stop/restart all enabled services in a convenient +# way rather than run services directly. For your convenience, +# rc.lizardfs-chunkserver is enabled (executable) by default, since +# chunkservers are dominant group in average LizardFS installation. + +services="master cgiserv metalogger chunkserver" + +function everyone() { + action="$1" + + if [ "$action" = "stop" ]; then + local services="$(echo $services|tr ' ' "\n"|tac)" + fi + + for svc in $services; do + if [ -x /etc/rc.d/rc.lizardfs-$svc ]; then + /etc/rc.d/rc.lizardfs-$svc $action + fi + done +} + + +case "$1" in + 'start') + everyone start + ;; + 'stop') + everyone stop + ;; + 'restart') + everyone stop + everyone start + ;; + 'condrestart') + everyone condrestart + ;; + 'status') + everyone status + ;; + 'setup') + /var/log/setup/setup.lizardfs-services + ;; + *) + echo "Usage: $0 {setup|start|stop|restart|reload|condrestart|status}" + ;; +esac diff --git a/network/lizardfs/setup.lizardfs-services.new b/network/lizardfs/setup.lizardfs-services.new new file mode 100644 index 0000000000000..c9b1e6c2f9af6 --- /dev/null +++ b/network/lizardfs/setup.lizardfs-services.new @@ -0,0 +1,94 @@ +#!/bin/sh +#BLURB="Select/deselect LizardFS services" +# +# /var/log/setup/setup.lizardfs-services +# +# LizardFS configuration script. Lets you choose which of four +# it's processes will run on this box. +# +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +T_PX="$1" +cd $T_PX +rm -f $TMP/tmpscript + +cat << EOF > $TMP/tmpscript +dialog --title "CHOOSE LizardFS SERVICES TO RUN ON THIS BOX" --item-help --checklist \\ +"The selected services will be started by rc.lizardfs init script.\\n\\n +1. You need exactly ONE master server (run on your best machine)\\n +2. You should have one, two or more meta loggers\\n +3. On most machines you will need chunk server process only \\ +(therefore rc.lizardfs-chunkserver is enabled by default.\\n\\n +Press the ENTER key when you are finished." \\ +19 70 4 \\ +EOF + +if [ -r /etc/rc.d/rc.lizardfs-master ]; then + if [ -x /etc/rc.d/rc.lizardfs-master ]; then + MFS_MASTER=on + else + MFS_MASTER=off + fi + cat << EOF >> $TMP/tmpscript + "rc.lizardfs-master" "LizardFS master server" $MFS_MASTER "The Master Server is a central point of LizardFS. You need exactly ONE." \\ +EOF +fi + +if [ -r /etc/rc.d/rc.lizardfs-cgiserv ]; then + if [ -x /etc/rc.d/rc.lizardfs-cgiserv ]; then + MFS_CGI=on + else + MFS_CGI=off + fi + cat << EOF >> $TMP/tmpscript + "rc.lizardfs-cgiserv" "LizardFS Web Console" $MFS_CGI "The CGI server displays information on LizardFS status." \\ +EOF +fi + +if [ -r /etc/rc.d/rc.lizardfs-metalogger ]; then + if [ -x /etc/rc.d/rc.lizardfs-metalogger ]; then + MFS_METALOGGER=on + else + MFS_METALOGGER=off + fi + cat << EOF >> $TMP/tmpscript + "rc.lizardfs-metalogger" "Metalogger process" $MFS_METALOGGER "Metalogger is a backup machine for Master Server. Deploy some in your network." \\ +EOF +fi + +if [ -r /etc/rc.d/rc.lizardfs-chunkserver ]; then + if [ -x /etc/rc.d/rc.lizardfs-chunkserver ]; then + MFS_CHUNK=on + else + MFS_CHUNK=off + fi + cat << EOF >> $TMP/tmpscript + "rc.lizardfs-chunkserver" "Chunk server process" $MFS_CHUNK "The Chunk Server stores actual filesystem data in chunks. All other machines." \\ +EOF +fi + +cat << EOF >> $TMP/tmpscript + 2> $TMP/reply +EOF + +. $TMP/tmpscript + +if [ ! $? = 0 ]; then + rm -f $TMP/reply $TMP/tmpscript + exit +fi + +for service in rc.lizardfs-cgiserv rc.lizardfs-chunkserver rc.lizardfs-master rc.lizardfs-metalogger; do + if [ -f /etc/rc.d/$service ]; then + if grep -w $service $TMP/reply 1> /dev/null ; then + chmod 755 /etc/rc.d/$service + else + chmod 644 /etc/rc.d/$service + fi + fi +done + +rm -f $TMP/reply $TMP/tmpscript + diff --git a/network/lizardfs/slack-desc b/network/lizardfs/slack-desc new file mode 100644 index 0000000000000..9df42c518d718 --- /dev/null +++ b/network/lizardfs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +lizardfs: lizardfs (GPLv3 implementation of GoogleFS) +lizardfs: +lizardfs: GPLv3-licensed implementation of GoogleFS, with snapshots. +lizardfs: +lizardfs: LizardFS is FUSE-based, scalable, self-healing, self-replicating +lizardfs: distributed filesystem that can be deployed on anything. With it's +lizardfs: torrent-like replication scheme, LizardFS performance grows with the +lizardfs: number of participating nodes (called chunk nodes). Chunk node can be +lizardfs: any machine capable of running Linux, *BSD, MacOSX, or Windows. +lizardfs: +lizardfs: |