MFS分布式文件系统及MFS高可用

MFS

MooseFS是一个分布式存储的框架,其具有如下特性:
(1)通用文件系统,不需要修改上层应用就可以使用(那些需要专门api的dfs很麻烦!)。
(2)可以在线扩容,体系架构可伸缩性极强。(官方的case可以扩到70台了!)
(3)部署简单。
(4)高可用,可设置任意的文件冗余程度(提供比raid1+0更高的冗余级别,而绝对不会影响读或者写的性能,只会加速!)
(5)可回收在指定时间内删除的文件(“回收站”提供的是系统级别的服务,不怕误操作了,提供类似oralce 的闪回等高级dbms的即时回滚特性!)
(6)提供netapp,emc,ibm等商业存储的snapshot特性。(可以对整个文件甚至在正在写入的文件创建文件的快照)
(7)google filesystem的一个c实现。
(8)提供web gui监控接口。

MFS部署

环境:rhel7.3
Server1 master 172.25.24.1
Server2 chunk 172.25.24.2
Server3 chunk 172.25.24.3

Server1

 yum install -y moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm moosefs-master-3.0.97-1.rhsysv.x86_64.rpm

在这里插入图片描述

vim /etc/hosts
172.25.24.1  server1  mfsmaster
/etc/init.d/moosefs-master start
netstat -antlp | grep mfsmaster

在这里插入图片描述

Server2

vim /etc/hosts
172.25.24.1  server1  mfsmaster
yum install -y moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm

在这里插入图片描述

vim /etc/mfs/mfshdd.cfg

在这里插入图片描述

mkdir /mnt/chunk1
chown mfs.mfs /mnt/chunk1
/etc/init.d/moosefs-chunkserver start

在这里插入图片描述

Server3 步骤同server2,需要添加解析
在这里插入图片描述

客户端;

yum install -y moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm
vim /etc/hosts
172.25.24.1  server1  mfsmaster

在这里插入图片描述

vim /etc/mfs/mfsmount.cfg

在这里插入图片描述

mkdir /mnt/mfs
mfsmount  #挂载

在这里插入图片描述

cd /mnt/mfs/
mkdir dir1 dir2
mfsgetgoal dir1
mfsgetgoal dir2

在这里插入图片描述

mfssetgoal -r 1 dir1
cp /etc/passwd dir1/
mfsfileinfo dir1/passwd
cp /etc/fstab dir2/
mfsfileinfo dir2/fstab

在这里插入图片描述

关闭server3上moosefs-chunkserver
在这里插入图片描述
在这里插入图片描述
cat命令查看不了,会一直卡在那里

cat dir1/passwd

在这里插入图片描述

当打开server3上的moosefs-chunkserver时,又可以查看了
在这里插入图片描述
在这里插入图片描述

Server1开启moosefs-cgiserv

/etc/init.d/moosefs-cgiserv start

在这里插入图片描述

浏览器访问 server1 ip:9425/mfs.cgi
在这里插入图片描述

找回已删除文件
rm -fr /mnt/mfs/dir1/passwd
mkdir /mnt/mfsmeta
mfsmount -m /mnt/mfsmeta/
cd /mnt/mfsmeta
cd trash/

在这里插入图片描述

find -name *passwd*
cd 004/
mv 00000004\|dir1\|passwd undel

在这里插入图片描述

MFS高可用

环境:
server1 172.25.4.1 mfsmaster pacemake corosync
server2 172.25.4.2 mfschunkserver
server3 172.25.4.3 mfschunkserver
server4 172.25.4.4 mfsmaster pacemake corosync
vip 172.25.4.100
物理机 172.25.4.250 mfsclient

一、提前准备好所需要的安装包
将安装包放在3.0.97目录下,发送给四台虚拟机

scp -r 3.0.97 server1:
scp -r 3.0.97 server4:
cd 3.0.97
scp moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm server2:
scp moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm server3:

在这里插入图片描述
在这里插入图片描述

二、在物理机和四台虚拟机中安装mfs相关软件
1、在server1中:

cd 3.0.97
yum install -y moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm moosefs-master-3.0.97-1.rhsysv.x86_64.rpm moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm moosefs-cli-3.0.97-1.rhsysv.x86_64.rpm

在这里插入图片描述

/etc/init.d/moosefs-master start

在这里插入图片描述
添加本地解析

vim /etc/hosts
172.25.4.1 server1 mfsmaster

/etc/init.d/moosefs-cgiserv start  #启动服务

在这里插入图片描述

2、server2中:

yum install -y moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm

在这里插入图片描述
创建存储目录:

cd /etc/mfs
mkdir /mnt/chunk1
chown mfs.mfs /mnt/chunk1/
vim mfshdd.cfg   
添加以下参数:
/mnt/chunk1

在这里插入图片描述

添加本地解析

vim /etc/hosts
172.25.4.1      server1 mfsmaster

/etc/init.d/moosefs-chunkserver start

在这里插入图片描述
在这里插入图片描述

3、在server3中:

yum install -y moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm

在这里插入图片描述
建立节点存储目录:

cd /etc/mfs
mkdir /mnt/chunk2
chown mfs.mfs /mnt/chunk2/
vim mfshdd.cfg   
末尾添加如下内容:
/mnt/chunk2

在这里插入图片描述

添加本地解析

vim /etc/hosts
172.25.4.1      server1 mfsmaster

/etc/init.d/moosefs-chunkserver start

在这里插入图片描述
在这里插入图片描述

4、在物理机中:

yum install -y moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm

在这里插入图片描述

cd /etc/mfs
vim mfsmount.cfg
在最后一行添加
/mnt/mfs

在这里插入图片描述
在这里插入图片描述

mkdir /mnt/mfs

在这里插入图片描述
添加本地解析

vim /etc/hosts
172.25.4.1 server1 mfsmaster

在这里插入图片描述
在这里插入图片描述

mfsmount
df
cd /mnt/mfs
mkdir dir1

在这里插入图片描述

5、在server4中:

cd 3.0.97
yum install -y moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm moosefs-master-3.0.97-1.rhsysv.x86_64.rpm moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm moosefs-cli-3.0.97-1.rhsysv.x86_64.rpm

在这里插入图片描述

/etc/init.d/moosefs-master start

在这里插入图片描述

添加本地解析

vim /etc/hosts
172.25.4.1 server1 mfsmaster

/etc/init.d/moosefs-cgiserv start

在这里插入图片描述
在这里插入图片描述

三、配置共享存储
1、在172.25.4.2配置存储共享
在server2添加一块虚拟磁盘,并安装scsi
在这里插入图片描述

yum install -y iscsi-*

在这里插入图片描述

查看共享磁盘信息

fdisk -l

在这里插入图片描述
在这里插入图片描述
编辑共享磁盘配置文件完成后开启服务

vim /etc/tgt/targets.conf
<target iqn.2018-10.com.example:server.target1>
    backing-store /dev/vdb
</target>
/etc/init.d/tgtd start

在这里插入图片描述
在这里插入图片描述

2、在server1和server4安装iscsi,同样操作

yum install -y iscsi-*
yum install -y iscsi-*

在这里插入图片描述
在这里插入图片描述
server1主master登陆到共享磁盘

iscsiadm -m discovery -t st -p 172.25.4.2
iscsiadm -m node -l

在这里插入图片描述
对此盘进行分区格式化

fdisk -cu /dev/sda
mkfs.ext4 /dev/sda1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置挂载共享目录

mount /dev/sda1 /mnt
cd /var/lib/mfs
cp -p * /mnt/
chown mfs.mfs /mnt/
ll /mnt/
cd
umount /mnt/
mount /dev/sda1 /var/lib/mfs/
ll -d /var/lib/mfs/
umount /var/lib/mfs/

在这里插入图片描述
在server4登陆磁盘并挂载查看共享目录

iscsiadm -m discovery -t st -p 172.25.4.2
iscsiadm -m node -l
fdisk -l
mount /dev/sda1 /var/lib/mfs/
ls /var/lib/mfs/

在这里插入图片描述

此时共享目录已经配置完毕
由于mfsmaster ip要飘移,所以结合vip
3、接下来我们在server1和server4安装部署pacemake和corosync

yum install -y pacemaker corosync crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm

在这里插入图片描述
在这里插入图片描述
安装完成后,配置corosync,以插件形式运行pacemaker,并开启corosync服务
配置corosync

cd /etc/corosync
cp corosync.conf.example corosync.conf
vim corosync.conf
修改文件内容:
                bindnetaddr: 172.25.4.0  #集群工作的网段
末尾添加:
service {           #启动corosync完成后,直接启动pacemaker
        name: pacemaker
        ver: 0
}

在这里插入图片描述
在这里插入图片描述
完成后直接将配置文件发送到server4,两台机器在本地解析加入vip指定mfsmaster,并删掉server1后的mfsmaster
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

server1和server4启动corosync

/etc/init.d/corosync start

在这里插入图片描述
在这里插入图片描述
完成可以查看集群

crm
configure 
show

在这里插入图片描述
关闭stonith

property stonith-enabled=false
commit
bye
crm_verify -LV

在这里插入图片描述
加入vip

crm
configure
primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.4.100 cidr_netmask=32 op monitor interval=1min
commit
ip addr

在这里插入图片描述
crm_mon #监控查看vip的加入
在这里插入图片描述
忽略投票规则(不然一个节点down,整个服务宕机)

crm
configure
show
property no-quorum-policy=ignore
commit

在这里插入图片描述
添加共享存储文件

crm
configure
primitive mfsdata ocf:heartbeat:Filesystem params device=/dev/sda1 directory=/var/lib/mfs fstype=ext4 op monitor interval=1min
commit

在这里插入图片描述
修改mfs启动脚本(修改start函数,保证在异常状态下关闭master后服务仍能正常启动),并将这三个绑在一个组内,确保统一飘移

vim /etc/init.d/moosefs-master 
start() {}中
    $prog start >/dev/null 2>&1 && success || $prog -a >/dev/null 
2>&1
或者
$prog start >/dev/null 2>&1 && success || $prog -a &> /dev/null && success 

scp /etc/init.d/moosefs-master server4:/etc/init.d/
crm
configure
primitive mfsmaster lsb:moosefs-master op monitor interval=30s
group mfsgroup vip mfsdata mfsmaster
commit

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
监控查看
在这里插入图片描述
4、添加fence
在server1和server4查看有无fence_xvm,如果没有添加fence_xvm
用fence实现,避免master突然crash而down掉,由于此时已经添加了fence设备,所以将刚才关闭的stonith开启

stonith_admin -I
yum install -y fence-virt
stonith_admin -I

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用172.25.4.250来控制,查看key目录,将172.25.4.250的key发送到server1和server4的此目录下

stonith_admin -M -a fence_xvm

在这里插入图片描述
在这里插入图片描述
在物理机中:

cd /etc/cluster
scp fence_xvm.key server1:/etc/cluster/
scp fence_xvm.key server4:/etc/cluster/
systemctl status fence_virtd.service

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启stonith

crm
configure
property stonith-enabled=true
commit
bye

在这里插入图片描述
添加fence服务

crm
configure
primitive vmfence stonith:fence_xvm params pcmk_host_map="server1:vm1;server4:vm4" op monitor interval=1min
commit

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值