mfs分布式文件系统

mfs分布式基础搭建

1.安装
利用rpm-build将tar包进行,前提条件时必须拥有src文件

ln -s moosefs-3.0.80-1.tar.gz moosefs-3.0.80.tar.gz
rpmbuild -tb moosefs-3.0.80.tar.gz  #提示需要依赖性

安装依赖性

yum install -y fuse-devel zlib-devel
yum install -y libpcap-devel-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm
yum install -y gcc

这是可以看到分解的rpm包在/rpmbuild/RPMS/x86_64/里面
安装需要的包即可

插入:这里有一个检测rpm是否存在恶意脚本的方法
rpm -qpl rpm包 #可查看rpm包加载的目录
rpm -qp –scripts rpm包 #检测存在的脚本文件

2.搭建(需要一个master节点,几个clunkserver)

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

mfs这边需要知道几个知识点:
在/var/lib/mfs/下,正常开启mfs时metadata.mfs.back是这个样子,正常关闭时是这样metadata.mfs
当非正常关闭mfs时:

[root@server1 mfs]# kill -9 7989

此时继续mfsmaster开启时会报错,需使用mfsmaster -a开启
这里写图片描述
然后添加解析

vim /etc/hosts
172.25.40.1 server1 mfsmaster

开启:

mfsmaster
mfscgiserv

这时输入:172.25.40.1:9425即可打开mfs的管理页面
这里写图片描述

添加chunkserver节点

yum install -y moosefs-chunkserver-3.0.80-1.x86_64.rpm

配置解析:

vim /etc/hosts
172.25.40.1 server1 mfsmaster

添加存储目录:

mkdir /mnt/chunk1
chown mfs.mfs /mnt/chunk1/   #注:安装时已创建mfs用户
vim /etc/mfs/mfshdd.cfg
文件末尾添加:
/mnt/chunk1/

开启即可:

mfschunkserver

这里写图片描述

3.客户端访问

yum install -y moosefs-client-3.0.80-1.x86_64.rpm

同样添加解析 172.25.40.1 mfsmaster
修改客户端配置文件挂载点

vim /etc/mfs/mfsmount.cfg
/mnt/mfs
此时需创建/mnt/mfs目录
mkdir /mnt/mfs
mfsmount

这里写图片描述

测试mfs分布式文件管理的功能:
进入到挂在目录下/mnt/mfs/

mkdir dir1
mkdir dir2

这是查看此目录的简易存储信息(默认有几个节点存储几份)

mfsgetgoal dir1/
mfsgetgoal dir2/

这里写图片描述
修改存储值:

mfssetgoal -r 1 dir1/

这里写图片描述

mfsfileinfo 命令可以查看文件的存储信息:

mfsfileinfo /mnt/mfs/dir2/fstab
mfsfileinfo /mnt/mfs/dir1/passwd

这里写图片描述

这里可以看到dir1目录内的文件后台存储一份,如果存储他的文件的clunkserver即172.25.40.3挂掉则这个文件失效,使用不了

[root@server3 ~]# mfschunkserver stop

这里写图片描述
再次开启后可继续使用

当上传大文件时:(一个节点只能存储64M)

dd if=/dev/zero of=bigfile bs=1M count=200

这里写图片描述

当文件被删除后如何恢复:

[root@foundation40 dir1]# rm -fr passwd

这时会目录有个时间限制若超出时间范围文件将永久删除

mfsgettrashtime .

这里写图片描述
从master那里的配置文件可以知道创建一个回收目录:

mkdir /mnt/mfsmeta
mfsmount -m /mnt/mfsmeta/

这是进入mfsmeta目录:

这里写图片描述
寻找passwd文件:

find -name *passwd*

将其移动到undel目录中即可

mv ./004/00000004\|dir1\|passwd undel/

这里写图片描述

mfs的高可用

1.搭建环境
添加虚拟磁盘

server2:添加虚拟磁盘 scsi,修改配置 启动
server3:
server1:iscsi
server4:iscsi

server2上添加一块虚拟磁盘
这里写图片描述

fdick -l

这里写图片描述

yum install -y scsi-*
vim /etc/tgt/targets.conf 
<target iqn.2018-06.com.example:server.target1>
 backing-store /dev/vdb
 </target>
/etc/init.d/tgtd start 

server1和server4:

yum install -y iscsi-*
iscsiadm -m discovery -t st -p 172.25.40.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/
umount /mnt/
mount /dev/sda1 /var/lib/mfs

这里写图片描述

这里写图片描述

安装pecemaker 和corosync(server1和server4是相同的)
配置yum源

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.40.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.40.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.40.250/rhel6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.40.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.40.250/rhel6.5/ScalableFileSystem
gpgcheck=0
yum install -y pacemaker corosync
yum install -y crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf
totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.40.0
                mcastaddr: 226.94.1.1
                mcastport: 5405
                ttl: 1
        }
}
...
service {
        name: pacemaker
        ver: 0
}

开启:

/etc/init.d/corosync start

消除crm_verify -VL 错误

crm
crm(live)# configure 
crm(live)configure# property stonith-enabled=false
commit

添加vip:

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

这里写图片描述
这里将所有mfsmaster的解析改为vip的即172.25.40.100 mfsmaster
文件系统:

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

这里注意如果命令写错可以进入编辑模式:edit 修改

这里写图片描述

设置mfs的启动脚本:
在/root/rpmbuild/BUILD/moosefs-3.0.80/rpm/rh/ moosefs-master.init 文件为默认启动脚本将其修改即可,放到/etc/init.d/下

man test 通配符

设定组:

crm(live)configure# primitive mfsmaster lsb:mfsd op monitor interval=30s
crm(live)configure# group mfsgroup vip mfsdata mfsmaster
commit

这里写图片描述
这里写图片描述

先设置忽略fence

property no-quorum-policy=ignore
commit

测试以下vip飘逸,高可用实现
当输入一个大文件时将server1笔调,实现高可用
客户端添加1000M的大文件

[root@foundation40 dir1]# dd if=/dev/zero of=bigfile1 bs=1M count=1000

突然断掉

crm node standby

实现飘逸

这里写图片描述
这里写图片描述
重启之后不会漂回去

实现fence:
首先主机添加fence服务
物理机:172.25.40.250

systemctl start fence_virtd.service
 netstat -anulp  | grep 1229

这里写图片描述

两个master安装fence:(server1 server4)

[root@server1 ~]# stonith_admin -I
 fence_pcmk
 fence_legacy
2 devices found
[root@server1 ~]# yum provides */fence_xvm
yum install -y fence-virt-0.2.3-15.el6.x86_64
stonith_admin -M -a fence_xvm

这里写图片描述

mkdir /etc/cluster

将物理机的fence key发给master虚拟机

[root@foundation40 ~]# cd /etc/cluster/
[root@foundation40 cluster]# ls
fence_xvm.key
[root@foundation40 cluster]# scp fence_xvm.key server1:/etc/cluster/
root@server1's password: 
fence_xvm.key                                                        100%  128     0.1KB/s   00:00    

crm设置fence:

primitive vmfence stonith:fence_xvm params pcmk_host_map="server1:vm1;server4:vm4" op monitor interval=1min
property stonith-enabled=true
commit

这里写图片描述
这里写图片描述

测试当网络奔溃时:
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值