yum install fuse-devel zlib-devel
cd /usr/local/src
wget http://www.myciscolab.net/sources/mfs-1.6.25-1.tar.gz
tar xzvf mfs-1.6.25-1.tar.gz
cd mfs-1.6.25
useradd -u 1011 mfs -s /sbin/nologin
./configure --prefix=/usr/local/mfs-1.6.25 --with-default-user=mfs --with-default-group=mfs
make
make install
ln -s /usr/local/mfs-1.6.25 /usr/local/mfs
cd /usr/local/mfs/etc
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsexports.cfg.dist mfsexports.cfg
cd ../var/mfs
cp metadata.mfs.empty metadata.mfs
echo 'export PATH=$PATH:/usr/local/mfs/bin/:/usr/local/mfs/sbin/' > /etc/profile.d/mfs.sh
chmod a+x /etc/profile.d/mfs.sh
source /etc/profile.d/mfs.sh
chown -R mfs:mfs /usr/local/mfs-1.6.25
mfsmaster start
netstat -antuelp | grep 9420
mfscgiserv // http 9425 查看
mfsmaster[2716]: open files limit: 5000
MFSLogger Install
# 安装方式跟master一样,然后进入目录:
cd /usr/local/mfs/etc
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
MFSChunkServer Install
yum install -y zlib-devel fuse-devel
cd /usr/local/src
wget http://www.myciscolab.net/sources/mfs-1.6.25-1.tar.gz
tar xzvf mfs-1.6.25-1.tar.gz
useradd -u 1011 mfs -s /sbin/nologin
cd mfs-1.6.25
./configure --prefix=/usr/local/mfs-1.6.25 --with-default-user=mfs --with-default-group=mfs
make
make install
ln -s /usr/local/mfs-1.6.25 /usr/local/mfs
chown -R mfs:mfs /usr/local/mfs-1.6.25
cd /usr/local/mfs/etc
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
mkdir /mfsdata
chown -R mfs:mfs /mfsdata
vi /usr/local/mfs/etc/mfschunkserver.cfg // 配置master地址
vi /usr/local/mfs/etc/mfshdd.cfg // 配置哪些文件夹可用于装文件
echo 'export PATH=$PATH:/usr/local/mfs/bin/:/usr/local/mfs/sbin/' > /etc/profile.d/mfs.sh
chmod a+x /etc/profile.d/mfs.sh
source /etc/profile.d/mfs.sh
/usr/local/mfs/sbin/mfschunkserver start
netstat -antuelp | grep 9422
yum install -y wget
yum groupinstall -y "Development Tools"
modprobe fuse
cd /usr/local/src
wget http://www.myciscolab.net/sources/mfs-1.6.25-1.tar.gz
wget http://www.myciscolab.net/sources/mfs-1.6.25-1.tar.gz
tar xzvf mfs-1.6.25-1.tar.gz
cd mfs-1.6.25
useradd -u 1011 mfs -s /sbin/nologin
./configure --prefix=/usr/local/mfs-1.6.25 --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
make
make install
ln -s /usr/local/mfs-1.6.25 /usr/local/mfs
echo 'export PATH=$PATH:/usr/local/mfs/bin/:/usr/local/mfs/sbin/' > /etc/profile.d/mfs.sh
chmod a+x /etc/profile.d/mfs.sh
source /etc/profile.d/mfs.sh
MFS Client Mount
mkdir /mnt/mfs
mfsmount /mnt/mfs/ -H 192.168.1.82
mkdir /mnt/mfsmetadata
mfsmount -m /mnt/mfsmeta -H 192.168.1.82
mfssetgoal -r 3 /mnt/mfs
# 挂载
mkdir /root/mfs
mfsmount -H 192.168.50.193 /root/mfs
# 使用dd命令测试
nohup dd if=/dev/zero of=/root/mfsoutput3.img bs=1M count=1M &
MFS Recovery
mfsmetarestore -a
mfsmetastore -m metadata.mfs.back -o metadata.mfs changelog_m1.*.mfs
#!/bin/bash
cd /root/backups/mfs
rm -f mfs.tar.gz.5
mv mfs.tar.gz.4 mfs.tar.gz 5
mv mfs.tar.gz.3 mfs.tar.gz.4
mv mfs.tar.gz.2 mfs.tar.gz.3
mv mfs.tar.gz.1 mfs.tar.gz.2
mv mfs.tar.gz mfs.tar.gz.1
#/bin/tar czvf "/root/backups/mfs/`date +%Y%m%d%H%M`.tar.gz" /usr/local/mfs/mfs-1.6.25/var/mfs
/bin/tar czvf "/root/backups/mfs/mfs.tar.gz" /usr/local/mfs/var/mfs
*/10 * * * * /root/backups/mfs/mfsbackup.sh
Nagios Monitor MFS
nagios 配置:
文件 nrpe.cfg 添加如下一行
command[check_mfs]=/usr/local/nagios/libexec/check_mfs $ARG1$
定义服务的时候的配置
define service {
use centos-service
host_name 192.168.199.69_n69.l99.com
service_description CheckMFS
check_command check_nrpe1!check_mfs!M // M: Master; C: Chunk; L: Logger
normal_check_interval 2
contact_groups centos-admins
notifications_enabled 1
}
#!/bin/bash
# ===========================================================================================================
#
# MFS status check plugins for nagios
#
# Written by : liu yunfeng
# Release : 1.0
# Create Date : 2010-05-18
# Description : Nagios plugins (script) to check MFS status
# Modified by : Jacky.W
# Release : 2.0
# Create Date : 2012-11-28
# ===========================================================================================================
# Nagios return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
# Get Master server Process
Master() {
MFS_PID=`ps -ef | grep mfsmaster | grep -v "grep" | awk '{print $2}'`
if [ "${MFS_PID}" = "" ];then
echo "ERROR : MFS Master Server does not start!"
exit $STATE_CRITICAL
else
echo "OK : MFS Master Server Running OK @ $MFS_PID!"
exit $STATE_OK
fi
}
# Get chunker server Process
Chunker() {
MFS_PID=`ps -ef | grep mfschunkserver | grep -v "grep" | awk '{print $2}'`
if [ "${MFS_PID}" = "" ];then
echo "ERROR : MFS ChunkServer does not start"
exit $STATE_CRITICAL
else
echo "OK : MFS ChunkServer is Running OK @ $MFS_PID!"
exit $STATE_OK
fi
}
# Get Disk Used
Disk_used(){
Disk_used=`df -h | grep ${mountpoint} |awk '{print $4}'`
if [ ${Disk_used%\%} -ge ${warningdiskused} -a ${Disk_used%\%} -lt ${criticaldiskused} ];then
echo "Waring :mfs disk used Rate is "${Disk_used}""
exit $STATE_WARNING
elif [ ${Disk_used%\%} -ge ${criticaldiskused} ];then
echo "CRITICAL :mfs disk used Rate is "${Disk_used}""
exit $STATE_CRITICAL
elif [ "${Disk_used%\%}" = "" ];then
echo "CRITICAL :mfs client not mount on"
exit $STATE_CRITICAL
else
echo "OK : MFS client mount on and disk used rate is "${Disk_used}" , Everything is OK!"
exit $STATE_OK
fi
}
#Get metalogger server Process
Metalogger() {
MFS_PID=`ps -ef | grep mfsmetalogger | grep -v "grep" | awk '{print $2}'`
if [ "${MFS_PID}" = "" ];then
echo "ERROR : mfs mfsmetalogger does not start"
exit $STATE_CRITICAL
else
echo "OK : mfs master mfsmetalogger running OK!"
exit $STATE_OK
fi
}
# Functions plugin usage
print_usage()
{
echo ""
echo " M MFS master server status "
echo " C MFS chunker server status "
echo " U MFS client disk used Rate "
echo " L MFS metalogger server status "
echo " h Show this page "
echo ""
echo " Usage1 : check_mfs M mfsmasterpath"
echo " Example : check_mfs M /usr/local/mfs"
echo " Usage2 : check_mfs.sh C mfschunkpath"
echo " Example : check_mfs C /usr/local/mfs"
echo " Usage3 : check_mfs U mountpoint warningrate criticalrate"
echo " Example : check_mfs U /mnt/mfs 60 80"
echo " Usage4 : check_mfs L mfsmetaloggerpath"
echo " Example : check_mfs L /usr/local/mfs"
echo " Example : check_mfs h"
echo ""
exit 0
}
#if [ $# -eq 0 ]; then
#{
# print_usage;
# exit $STATE_UNKNOWN;
#}
#fi
# Parse parameter
while [ $# -gt 0 ]
do
case "$1" in
-h | --help)
print_usage
exit $STATE_OK
;;
M | --master)
mfspath=${2:-"/usr/local/mfs"}
Master
;;
C | --chunker)
mfspath=${2:-"/usr/local/mfs"}
Chunker
;;
U | --usedwarning)
mountpoint=${2:-"/mfsdata"}
warningdiskused=${3:-"75"}
criticaldiskused=${4:-"85"}
Disk_used
;;
L | --metalogger)
mfspath=${2:-"/usr/local/mfs"}
Metalogger
;;
*)
echo "Unknown argement: $1"
exit $STATE_UNKNOWN
;;
esac
shift
done
MFS 1TB 千兆互联实验结果
[root@localhost mfsdata]# dd if=/dev/zero of=./1TB bs=1M count=1M
记录了1048576+0 的读入记录了1048576+0 的写出
1099511627776字节(1.1 TB)已复制,10370.4 秒,106 MB/
没有评论:
发表评论