sudo apt-get install libdbd-mysql-perl
cpan install IO::AIO install BSD::Resource
Download latest version from cpan repository at http://search.cpan.org/dist/mogilefs-server/ :
wget http://search.cpan.org/CPAN/authors/id/D/DO/DORMANDO/mogilefs-server-2.34.tar.gz
Unpack it:
tar xvf mogilefs-server-2.34.tar.gz
Compile and install
cd mogilefs-server-2.34 perl Makefile.PL && make && make install
Create configs:
For tracker
mkdir /etc/mogilefs nano /etc/mogilefs/mogilefsd.conf
db_dsn = DBI:mysql:mogilefs:host=mogiledb.yourdomain.com;port=3306;mysql_connect_timeout=5;mysql_ssl=1;mysql_compression=1 db_user = mogile db_pass = sekrit conf_port = 7001 listener_jobs = 5 node_timeout = 5 rebalance_ignore_missing = 1
For mogstored
nano /etc/mogilefs/mogstored.conf
maxconns = 10000 httplisten = 0.0.0.0:7500 mgmtlisten = 0.0.0.0:7501 docroot = /var/mogdata
Create users and init scripts
For tracker
adduser mogilefsd sudo nano /etc/default/mogilefsdand input
#!/bin/sh # Defaults for the mogilefsd package MOGILEFSD_RUNASUSER=mogilefsd
sudo nano /etc/init.d/mogilefsd
Put this in there:
#! /bin/sh
### BEGIN INIT INFO
# Provides: mogilefsd
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop the mogilefsd daemon
# Description: Start/Stop the mogilefsd daemon.
### END INIT INFO
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/mogilefsd
NAME=mogilefsd
DESC=mogilefsd
DEFAULTS=/etc/default/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
if [ -r $DEFAULTS ] ; then
. $DEFAULTS
if [ -z "$MOGILEFSD_RUNASUSER" ]; then
echo "Cannot determine user to run as, even though defaults file ($DEFAULTS) exists."
echo "Please run dpkg-reconfigure $NAME to correct the problem."
exit 0
fi
else
echo "Can't start $NAME. Defaults file ($DEFAULTS) doesn't exist."
echo "Please run dpkg-reconfigure $NAME to correct the problem."
exit 0
fi
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
set -e
#
# Function that starts the daemon/service
#
do_start()
{
if [ -e $PIDFILE ]
then
if [ -d /proc/`cat $PIDFILE`/ ]
then
echo "$NAME already running."
exit 0;
else
rm -f $PIDFILE
fi
fi
start-stop-daemon --start --quiet --exec $DAEMON --pidfile $PIDFILE -b -m --name $NAME --chuid $MOGILEFSD_RUNASUSER
}
#
# Function that stops the daemon/service
#
do_stop()
{
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --name $NAME --user $MOGILEFSD_RUNASUSER
rm -f $PIDFILE
}
case "$1" in
start)
echo -n "Starting $DESC: "
do_start
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
do_stop
echo "$NAME."
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
do_stop
sleep 1
do_start
echo "$NAME."
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
:
For mogstored
sudo adduser mogstored sudo nano /etc/default/mogstoredand enter
#!/bin/sh # Defaults for the mogstored package MOGSTORED_RUNASUSER=mogstored
sudo nano /etc/init.d/mogstored
and put this in there:
#! /bin/sh
### BEGIN INIT INFO
# Provides: mogstored
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop the mogstored daemon
# Description: Start/Stop the mogstored daemon.
### END INIT INFO
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/mogstored
NAME=mogstored
DESC=mogstored
DEFAULTS=/etc/default/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
if [ -r $DEFAULTS ] ; then
. $DEFAULTS
if [ -z "$MOGSTORED_RUNASUSER" ]; then
echo "Cannot determine user to run as, even though defaults file ($DEFAULTS) exists."
echo "Please run dpkg-reconfigure $NAME to correct the problem."
exit 0
fi
else
echo "Can't start $NAME. Defaults file ($DEFAULTS) doesn't exist."
echo "Please run dpkg-reconfigure $NAME to correct the problem."
exit 0
fi
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
set -e
#
# Function that starts the daemon/service
#
do_start()
{
if [ -e $PIDFILE ]
then
if [ -d /proc/`cat $PIDFILE`/ ]
then
echo "$NAME already running."
exit 0;
else
rm -f $PIDFILE
fi
fi
start-stop-daemon --start --quiet --exec $DAEMON --pidfile $PIDFILE -b -m --name $NAME --chuid $MOGSTORED_RUNASUSER
}
#
# Function that stops the daemon/service
#
do_stop()
{
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --name $NAME --user $MOGSTORED_RUNASUSER
rm -f $PIDFILE
}
case "$1" in
start)
echo -n "Starting $DESC: "
do_start
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
do_stop
echo "$NAME."
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
do_stop
sleep 1
do_start
echo "$NAME."
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
:
Make it executable, and enable it to run at boot:
sudo chmod +x /etc/init.d/mogilefsd sudo chmod +x /etc/init.d/mogstored sudo update-rc.d mogilefsd defaults sudo update-rc.d mogstored defaults
You can install utils from cpan without much hassle:
install MogileFS::Utils
but to get mogstats working you need give it a separate config file:
cp /etc/mogilefs/mogilefsd.conf /etc/mogilefs/mogilefs.conf
No comments:
Post a Comment