木一 发表于 2019-2-1 08:44:21

Linux Moosefs

  Moosefs


主控服务器 Master server: 192.168.1.1
主控备份服务器 Metalogger server: 192.168.1.2
存储块服务器 Chunk servers: 192.168.1.101 and 192.168.1.102
客户端主机 (clients): 192.168.2.x



主控服务器Master server 安装
yum -y install gcc zlib-devel zlib fuse fuse-devel fuse-libs ntp

useradd mfs
echo "123" | passwd --stdin mfs

tar zxvfmfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2
./configure--prefix=/usr/local/mfs--with-default-user=mfs\
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

make
make install

cd /usr/local/mfs/etc
cp mfsmaster.cfg.distmfsmaster.cfg
cp mfsmetalogger.cfg.distmfsmetalogger.cfg
cp mfsexports.cfg.distmfsexports.cfg

cd /usr/local/mfs/var/mfs
cp metadata.mfs.empty metadata.mfs

启动 master
/usr/local/mfs/sbin/mfsmaster start

浏览器监控master
/usr/local/mfs/sbin/mfscgiserv
iptables开启 9425:tcp
http://192.168.0.121:9425

iptables 开启端口:94199420   9421   9425



备份服务器Backupserver(metalogger)安装
useradd mfs
echo "123" | passwd --stdin mfs

tar zxvfmfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2

#../configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make
makeinstall

产生配置文件
cd/etc
cp mfsmetalogger.cfg.distmfsmetalogger.cfg

类似地,修改/etc/hosts文件,增加下面的行:
192.168.1.1 mfsmaster

运行备份服务 mfsmetaloger:
#/usr/local/mfs/sbin/mfsmetalogger start

working directory: /var/lib/mfs
lockfile created and locked
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly

# lsof -i 端口 9419
# ps -ef| grep mfs

停止 metalogger 服务
# mfsmetalogger -s



存储块服务器Chunk servers 安装
useradd mfs
echo "123" | passwd --stdin mfs

tar zxvfmfs-1.6.20-2.tar.gz
cdmfs-1.6.20-2

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster
make
make install

cd /usr/local/mfs/etc
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg

fdisk -l 分区
mkfs.ext3/dev/sdb1
mkfs.ext3 /dev/sdc1

mkdir -p/mnt/mfschunks1
mkdir -p/mnt/mfschunks2

mount /dev/sdb1 /mnt/mfschunks1
mount /dev/sdc1 /mnt/mfschunks2

chown -Rmfs:mfs /mnt/mfschunks1
chown -R mfs:mfs /mnt/mfschunks2

#cat /usr/local/mfs/etc/mfshdd.cfg
/mnt/mfschunks1
/mnt/mfschunks2

启动 chunkserver:
/usr/local/mfs/sbin/mfschunkserver start

iptables 开启端口:9422
lokkit --port=9422:tcp -q



客户端安装
客户端主机必须安装 FUSE 软件包
useradd mfs
echo "123" | passwd --stdin mfs

tar zxvf mfs-1.6.20-2.tar.gz
cdmfs-1.6.20-2

./configure --prefix=/usr/local/mfs --disable-mfsmaster --disable-mfschunkserver--enable-mfsmount --with-default-user=mfs --with-default-group=mfs
make
make install

假定客户端的挂接点是 /data1
1. 创建挂接点
mkdir -p /data1

2. 开始挂接操作
# /usr/local/mfs/bin/mfsmount /data1 -H192.168.0.121

3. 执行 df-h 检查分区情况
# df–h



MooseFS的特定的操作
1、设定的目标目标(goal),是指文件被拷贝的份数,设定了拷贝的份数后是可以通过可以mfsgetgoal 命令来证实的,也可以通过 mfssetgoal 来改变设定。
例如:
mfsgetgoal 命令查看副本数:
# /usr/local/mfs/bin/mfsgetgoal/data1/app/test.txt
/data1/app/test.txt: 2


mfssetgoal 设置副本 3:
# /usr/local/mfs/bin/mfssetgoal 3/data1/app/test.txt
/data1/app/test.txt:3


下面设置整个目录数副本为 3,-r选项是递归:
# /usr/local/mfs/bin/mfssetgoal -r 2/data1/app
/data1/app:
inodes with goalchanged:                        2
inodes with goal not changed:                     0
inodes with permission denied:                     0



实际的拷贝份数可以通过 mfscheckfile 和 mfsfileinfo 命令来证实
例如:
# /usr/local/mfs/bin/mfscheckfile/data1/app/test.txt
/data1/app/test.txt:
2 copies: 1 chunks

#./mfsfileinfo/data1/app/test.txt
/data1/app/test.txt:
chunk 0: 0000000000000001_00000001 /(id:1 ver:1)
copy 1: 192.168.100.101:9422
copy 2:192.168.100.202:9422


整个目录树的内容摘要可以用一个功能增强的等同于du -s 的命令 mfsdirinfo,mfsdirinfo 为MooseFS 列出具体的信息。
例如: $ mfsdirinfo /mnt/mfs/test/:



MooseFS维护
一、启动MooseFS集群
最安全的启动MooseFS集群(避免任何读或写的错误数据或类似的问题)的方式是按照以下命令步骤:
1)、启动 mfsmaster进程
2)、启动所有的 mfschunkserver 进程
3)、启动mfsmetalogger进程(如果配置了 mfsmetalogger) 当所有的chunkservers连接到MooseFSmaster后,任何数目的客户端可以利用mfsmount去挂载被export的文件系统。(可以通过检查master的日志或CGI监视器来查看是否所有的chunkserver被连接)。


二、停止MooseFS集群
安全的停止MooseFS集群:
1)、在所有的客户端卸载 MooseFS 文件系统(用umount命令或者是其它等效的命令)
2)、用 mfschunkserver -s 命令停止 chunkserver 进程
3)、用 mfsmetalogger -s 命令停止 metalogger 进程
4)、用mfsmaster -s 命令停止master进程


停止 MooseFS
为了安全停止MooseFS集群,建议执行如下的步骤:
在所有客户端用 umount 命令先卸载文件系统(本例将是: umount /mnt/mfs)
停止chunk server 进程: /usr/sbin/mfschunkserver stop
停止 metalogger 进程: /usr/sbin/mfsmetalogger stop
停止主控 masterserver 进程: /usr/sbin/mfsmaster stop




页: [1]
查看完整版本: Linux Moosefs