MFS

系统版本:

Red Hat Enterprise Linux Server release 7.3 (Maipo)

解析(保证所有节点主机一致):

[root@server1 ~]# cat /etc/hosts
172.25.254.1 mfsmaster server1  #mfsmaster是各节点调度时用的,必须存在
172.25.254.2 server2
172.25.254.3 server3
172.25.254.4 server4
172.25.254.5 server5


 server1:

#安装master端软件:

[root@server1 ~]# yum install -y  moosefs-master-3.0.100-1.rhsystemd.x86_64.rpm moosefs-cgiserv-3.0.100-1.rhsystemd.x86_64.rpm moosefs-cgi-3.0.100-1.rhsystemd.x86_64.rpm

[root@server1 ~]# systemctl start moosefs-master  #开启master服务

#打开服务后,9419端口是MFS二进制日志服务,9420是chunk端服务,9421是master主服务

#所有数据文件都在/var/lib/mfs/下

[root@server1 ~]# systemctl start moosefs-cgiserv

#这个服务在9425端口上,打开之后可以在浏览器通过访问server1主机的9425端口看到MFS服务信息

 

server2 | server3:

#增加一块硬盘:

#对新硬盘分区:

fdisk /dev/sdb-->输入n-->一路回车将所有空间给sdb1分区-->输入w保存退出

#格式化新建的分区:

mkfs.xfs /dev/sdb1

#安装chunk端软件:

yum install -y moosefs-chunkserver-3.0.100-1.rhsystemd.x86_64.rpm

server2:

[root@server2 ~]# mkdir /mnt/chunk1

#查看新分区uuid:

[root@server2 ~]# blkid
/dev/sda1: UUID="3ec6f637-accf-418a-9dd3-344ba908cc39" TYPE="xfs"
/dev/sda2: UUID="ad1676cb-356b-4860-b4bb-ca72520c1130" TYPE="swap"
/dev/sda3: UUID="dc68bedf-6acc-4acb-8889-3f69c8944008" TYPE="xfs" /dev/sdb1: UUID="61360a55-7d66-44d0-931a-71bc5218650b" TYPE="xfs"

#写入fstab,开机自动挂载:

[root@server2 ~]# vim /etc/fstab

UUID="61360a55-7d66-44d0-931a-71bc5218650b" /mnt/chunk1 xfs defaults 0 0

[root@server2 ~]# mount -a  #挂载所有

[root@server2 ~]# chown mfs.mfs /mnt/chunk1/

[root@server2 ~]# echo "/mnt/chunk1" >> /etc/mfs/mfshdd.cfg

[root@server2 ~]# systemctl start moosefs-chunkserver

server3:

[root@server3 ~]# mkdir /mnt/chunk2

[root@server3 ~]# vim /etc/fstab

UUID="f16428a1-d587-4924-accc-d330c27fd747"     /mnt/chunk2     xfs     defaults        0 0

[root@server3 ~]# mount -a

[root@server3 ~]# chown mfs.mfs /mnt/chunk2/

[root@server3 ~]# echo "/mnt/chunk2" >> /etc/mfs/mfshdd.cfg

[root@server3 ~]# systemctl start moosefs-chunkserver

#访问172.25.254.1:9245查看新增加的两个chunk端:

客户端:

系统:Red Hat Enterprise Linux Server release 7.0 (Maipo)

IP:172.25.254.100

HOSTNAME:station.example.com

#安装客户端软件:

[root@station ~]# yum install -y moosefs-client-3.0.100-1.rhsystemd.x86_64.rpm

[root@station ~]# vim /etc/hosts

172.25.254.1 mfsmaster

[root@station ~]# mkdir /mnt/mfs

[root@station ~]# vim /etc/mfs/mfsmount.cfg

/mnt/mfs

#挂载到客户端:

[root@station ~]# mfsmount
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root

[root@station ~]# df

mfsmaster:9421 16754688 590464 16164224 4% /mnt/mfs

[root@station ~]# cd /mnt/mfs/

[root@station mfs]# mkdir dir1
[root@station mfs]# mkdir dir2

#MFS的工作原理是在客户端/mnt/mfs下新建的文件,通过调度器server1默认将数据分别在server2和server3上各保存一份。即使server2或者server3其中一个挂了另一个存储节点还在工作,就不会造成数据丢失

[root@station mfs]# mfssetgoal -r 1 dir1/       #修改dir1存储规则,只在一个存储节点上存数据,dir2保持默认不变

[root@station mfs]# cp /etc/passwd dir1/
[root@station mfs]# cp /etc/passwd dir2/

#查看dir1下的passwd在哪个存储节点上:

[root@station mfs]# mfsfileinfo dir1/passwd
dir1/passwd:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1)copy 1: 172.25.254.3:9422 (status:VALID)
[root@station mfs]# mfsfileinfo dir2/passwd
dir2/passwd:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)copy 1: 172.25.254.2:9422 (status:VALID) copy 2: 172.25.254.3:9422 (status:VALID)

在server3(172.25.254.3)主机上执行mfschunkserver stop停止chunk服务(与systemctl stop moosefs-chunkserver效果ip一样)

#再次查看文件信息:

[root@station mfs]# mfsfileinfo dir1/passwd
dir1/passwd:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1)no valid copies !!!
[root@station mfs]# mfsfileinfo dir2/passwd
dir2/passwd:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)copy 1: 172.25.254.2:9422 (status:VALID)

#dir1下的passwd文件ls还可以看到,但已经无法查看、编辑了

#dir2下的passwd文件可以正常使用

在server3上重新开启chunk服务mfschunkserver start

[root@station mfs]# mfsfileinfo dir1/passwd
dir1/passwd:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1)copy 1: 172.25.254.2:9422 (status:VALID)
[root@station mfs]# mfsfileinfo dir2/passwd
dir2/passwd:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)copy 1: 172.25.254.2:9422 (status:VALID) copy 2: 172.25.254.3:9422 (status:VALID)

#现在dir1下的passwd文件又可以正常使用了

#整个过程dir2下的passwd未受影响

在MFS中大文件的存储方式:

#进入dir1截取一个100M的文件bigfile:

[root@station mfs]# cd dir1/
[root@station dir1]# dd if=/dev/zero of=bigfile bs=1M count=100

[root@station dir1]# mfsfileinfo bigfile
bigfile:
chunk 0: 0000000000000003_00000001 / (id:3 ver:1)copy 1: 172.25.254.3:9422 (status:VALID)
chunk 1: 0000000000000004_00000001 / (id:4 ver:1)copy 1: 172.25.254.2:9422 (status:VALID)

#dir1目录只在一个存储节点上存数据,但由于bigfile是大文件,因此bigfile文件被分成了两半server2和server3各存一半

#进入dir2截取一个100M的文件bigfile:

[root@station dir1]# cd /mnt/mfs/dir2/
[root@station dir2]# dd if=/dev/zero of=bigfile bs=1M count=100

[root@station dir2]# mfsfileinfo bigfile
bigfile:
chunk 0: 0000000000000005_00000001 / (id:5 ver:1)copy 1: 172.25.254.2:9422 (status:VALID) copy 2: 172.25.254.3:9422 (status:VALID)
chunk 1: 0000000000000006_00000001 / (id:6 ver:1)copy 1: 172.25.254.2:9422 (status:VALID) copy 2: 172.25.254.3:9422 (status:VALID)

#对于大文件,MFS默认是分卷存储的,server2和server3上各存储bigfile文件的一部分

恢复误删文件:

[root@station dir1]# rm -rf passwd 

[root@station dir1]# ls
bigfile

[root@station ~]# mkdir /mnt/mfsmeta

[root@station ~]# mfsmount -m /mnt/mfsmeta/

#可以使用mount看到/mnt/mfsmeta已被挂载:

[root@station ~]# mount

          ...

mfsmaster:9421 on /mnt/mfsmeta type fuse.mfsmeta (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

[root@station ~]# cd /mnt/mfsmeta/
[root@station mfsmeta]# ls
sustained trash

[root@station mfsmeta]# cd trash/
[root@station trash]# ls
000 13C 278 3B4 4F0 62C 768 8A4 9E0 B1C C58 D94 ED0
001 13D 279 3B5 4F1 62D 769 8A5 9E1 B1D C59 D95 ED1

          ...

130  26C  3A8  4E4  620  75C  898  9D4  B10  C4C  D88  EC4  undel

#查找删除的passwd在哪个目录下:

[root@station trash]# find -name *passwd*
./004/00000004|dir1|passwd

#将查找到的文件放到undel下即可完成恢复:

[root@station trash]# mv ./004/00000004\|dir1\|passwd undel/

#现在查看dir1目录,文件已恢复并可以正常使用:

[root@station trash]# ls /mnt/mfs/dir1/
bigfile passwd
[root@station trash]# file /mnt/mfs/dir1/passwd
/mnt/mfs/dir1/passwd: ASCII text

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值