mfs部署、文件写入与恢复、存储类
一、MFS 简介:
MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
1.优势:
1、高可靠(数据的多个拷贝被存储在不同的计算机上);
2、通过附加新的计算机或者硬盘可以实现容量的动态扩展;
3、删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站);
4、不受访问和写入影响的文件连贯快照。
2.体系结构:
1、管理服务器(master server):
一台管理整个文件系统的独立主机,存储着每个文件的元数据(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)
2、数据服务器群(chunk servers):
任意数目的商用服务器,用来存储文件数据并在彼此之间同步(如果某个文件有超过一个备份的话)
3、元数据备份服务器(metalogger server):
任意数量的服务器,用来存储元数据变化日志并周期性下载主要元数据文件,以便用于管理服务器意外停止时好接替其位置。
4、访问mfs的客户端:
任意数量的主机,可以通过mfsmount进程与管理服务器(接收和更改元数据)和数据服务器(改变实际文件数据)进行交流。
二、安装配置mfs
server1:172.25.15.1
server2:172.25.15.2
server3:172.25.15.3
真机:172.25.254.15
[root@foundation15 ~]# lftp 172.25.254.250
lftp 172.25.254.250:/pub> cd pub/docs/mfs
cd ok, cwd=/pub/docs/mfs
lftp 172.25.254.250:/pub/docs/mfs> ls
lftp 172.25.254.250:/pub/docs/mfs> mirror 3.0.115
Total: 2 directories, 16 files, 0 symlinks
New: 16 files, 0 symlinks
2057882 bytes transferred
[root@foundation15 ~]# scp -r 3.0.115/ root@172.25.15.1:
[root@foundation15 ~]# scp -r 3.0.115/ root@172.25.15.2:
[root@foundation15 ~]# scp -r 3.0.115/ root@172.25.15.3:
[root@foundation15 ~]# cp -r 3.0.115/ /var/www/html/ #配置软件仓库
1.server1
[root@server1 ~]# vim /etc/yum.repos.d/mfs.repo
[root@server1 ~]# cat /etc/yum.repos.d/mfs.repo
[mfs]
name=mfs
baseurl=http://172.25.15.250/3.0.115
gpgcheck=0
[root@server1 ~]# yum repolist
[root@server1 ~]# scp /etc/yum.repos.d/mfs.repo root@172.25.15.2:/etc/yum.repos.d/ #仓库配置文件传输给server2
[root@server1 ~]# scp /etc/yum.repos.d/mfs.repo root@172.25.15.3:/etc/yum.repos.d/ #仓库配置文件传输给server3
[root@server1 ~]# yum list moosefs-* #列出相关软件
[root@server1 ~]# yum install -y moosefs-master.x86_64 moosefs-cgiserv.x86_64 #安装
[root@server1 ~]# vim /etc/hosts #配置解析
[root@server1 ~]# systemctl start moosefs-master #启动服务
[root@server1 ~]# netstat -antlp #查看端口
[root@server1 ~]# systemctl start moosefs-cgiserv.service
配置完成
可在浏览器访问172.25.15.1:9425
2.server2
[root@server2 ~]# yum install -y moosefs-chunkserver.x86_64
[root@server2 ~]# cd /etc/mfs/
[root@server2 mfs]# ls
mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample
[root@server2 mfs]# vim mfshdd.cfg #配置文件,说明挂载目录
[root@server2 mfs]# tail -n1 mfshdd.cfg
/mnt/chunk1 #挂载目录
[root@server2 mfs]# mkdir /mnt/chunk1 #创建挂载目录
给server2添加一块硬盘
[root@server2 mfs]# fdisk -l #查看添加的硬盘
[root@server2 mfs]# fdisk /dev/vdb #硬盘分区
[root@server2 mfs]# mkfs.xfs /dev/vdb1 #格式画
[root@server2 mfs]# mount /dev/vdb1 /mnt/chunk1/ #挂载
[root@server2 mfs]# df #查看挂载
[root@server2 mfs]# vim /etc/hosts #配置解析
[root@server2 mfs]# tail -n8 /etc/hosts #查看配置内容
172.25.15.1 server1 mfsmaster
[root@server2 mfs]# chown mfs.mfs /mnt/chunk1/ #权限
[root@server2 mfs]# id mfs
uid=997(mfs) gid=995(mfs) groups=995(mfs)
[root@server2 mfs]# systemctl start moosefs-chunkserver #启动服务
[root@server2 mfs]#
[root@server2 mfs]# cd /mnt/chunk1/
[root@server2 chunk1]# ls
浏览器查看
3.server3
[root@server3 local]# yum install -y moosefs-chunkserver.x86_64
[root@server3 local]# vim /etc/hosts #配置解析
[root@server3 local]# tail -n8 /etc/hosts #查看配置内容
172.25.15.1 server1 mfsmaster
[root@server3 local]# cd /etc/mfs/
[root@server3 mfs]# vim mfshdd.cfg #配置
[root@server3 mfs]# tail -n1 mfshdd.cfg
/mnt/chunk2
[root@server3 mfs]# mkdir /mnt/chunk2
[root@server3 mfs]# chown mfs.mfs /mnt/chunk2/
[root@server3 mfs]# systemctl start moosefs-chunkserver #启动服务
浏览器查看
4.真机172.25.254.15
[root@foundation15 ~]#
[root@foundation15 ~]# cd 3.0.115/
[root@foundation15 3.0.115]# cd rhel8/
[root@foundation15 rhel8]# ls
moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm
[root@foundation15 rhel8]# rpm -ivh moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm #安装
warning: moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID cf82adba: NOKEY
Verifying... ################################# [100%])
Preparing... ################################# [100%])
Updating / installing...
1:moosefs-client-3.0.115-1.rhsyste################################# [100%])
[root@foundation15 rhel8]#
[root@foundation15 rhel8]# cd /etc/mfs/
[root@foundation15 mfs]# ls
mfsmount.cfg mfsmount.cfg.sample
[root@foundation15 mfs]# vim mfsmount.cfg
[root@foundation15 mfs]# tail -n4 mfsmount.cfg
#
# Example:
#
/mnt/mfs #开启
[root@foundation15 mfs]# mkdir /mnt/mfs/
[root@foundation15 mfs]# cd /mnt/mfs
[root@foundation15 mfs]# vim /etc/hosts #配置解析
[root@foundation15 mfs]# tail -n2 /etc/hosts
172.25.15.1 www.westos.org server1 mfsmaster
[root@foundation15 mfs]# mfsmount
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@foundation15 mfs]# ls
[root@foundation15 mfs]# mkdir dir1
[root@foundation15 mfs]# mkdir dir2
[root@foundation15 mfs]# ls
dir1 dir2
[root@foundation15 mfs]# mfssetgoal -r 1 dir1
dir1:
inodes with goal changed: 1
inodes with goal not changed: 0
inodes with permission denied: 0
[root@foundation15 mfs]# mfsgetgoal dir1/
dir1/: 1
[root@foundation15 mfs]# mfsgetgoal dir2/
dir2/: 2
[root@foundation15 mfs]# cd dir1/
[root@foundation15 dir1]# ls
[root@foundation15 dir1]# cp /etc/passwd .
[root@foundation15 dir1]# ls
passwd
[root@foundation15 dir1]# mfsfileinfo passwd
passwd:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
copy 1: 172.25.15.3:9422 (status:VALID)
[root@foundation15 dir1]# cd ..
[root@foundation15 mfs]# cd dir2/
[root@foundation15 dir2]# cp /etc/fstab .
[root@foundation15 dir2]# ls
fstab
[root@foundation15 dir2]# mfsfileinfo fstab
配置完成浏览器查看
172.25.15.1:9425
三、文件存储与恢复
[root@foundation15 dir2]# cd ../dir1
[root@foundation15 dir1]# dd if=/dev/zero of=bigfile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.190595 s, 550 MB/s
[root@foundation15 dir1]# ls
bigfile passwd
[root@foundation15 dir1]# mfsfileinfo bigfile
bigfile:
chunk 0: 0000000000000003_00000001 / (id:3 ver:1)
copy 1: 172.25.15.4:9422 (status:VALID)
chunk 1: 0000000000000004_00000001 / (id:4 ver:1)
copy 1: 172.25.15.3:9422 (status:VALID)
[root@foundation15 dir1]# ls
bigfile passwd
[root@foundation15 dir1]# rm -f passwd #删除文件
[root@foundation15 dir1]# ls
bigfile
[root@foundation15 dir1]# cd
[root@foundation15 ~]# mkdir /mnt/mfsmeta/ -p
[root@foundation15 ~]# cd /mnt/mfs
mfs/ mfsmeta/
[root@foundation15 ~]# cd /mnt/mfsmeta/
[root@foundation15 mfsmeta]# ls
[root@foundation15 mfsmeta]# pwd
/mnt/mfsmeta
[root@foundation15 mfsmeta]# mfsmount -m /mnt/mfsmeta/
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@foundation15 mfsmeta]# cd
[root@foundation15 ~]# cd /mnt/mfsmeta/
[root@foundation15 mfsmeta]# ls
sustained trash
[root@foundation15 mfsmeta]# cd trash/
[root@foundation15 trash]# find -name *passwd*
./004/00000004|dir1|passwd
[root@foundation15 trash]# cd 00
[root@foundation15 00]# cd -
/mnt/mfsmeta/trash
[root@foundation15 trash]# cd 004
[root@foundation15 004]# ls
'00000004|dir1|passwd' undel
[root@foundation15 004]# mv 00000004\|dir1\|passwd undel/ #移动回去
[root@foundation15 004]# ls
undel
[root@foundation15 004]# cd
[root@foundation15 ~]# cd /mnt/mfs
[root@foundation15 mfs]# cd dir1/
[root@foundation15 dir1]# ls #查看,文件恢复
bigfile passwd
[root@foundation15 dir1]#
四、存储标签更改
[root@server2 chunk1]# cd /etc/mfs/
[root@server2 mfs]# ls
mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample
[root@server2 mfs]# vim mfschunkserver.cfg #更改储存标签
LABELS = A B
[root@server2 mfs]# systemctl restart moosefs-chunkserver.service
[root@server3 mfs]# ls
mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample
[root@server3 mfs]# vim mfschunkserver.cfg #更改储存标签
LABELS = A B H S
[root@server3 mfs]# systemctl restart moosefs-chunkserver.service
[root@server4 mfs]# ls
mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample
[root@server4 mfs]# vim mfschunkserver.cfg #更改储存标签
LABELS = A H
[root@server4 mfs]# systemctl restart moosefs-chunkserver.service
[root@foundation15 dir1]# mfsscadmin create 2A class2A #
storage class make class2A: ok
[root@foundation15 dir1]# mfsscadmin list
1
2
3
4
5
6
7
8
9
class2A
[root@foundation15 dir1]# ls
bigfile passwd
[root@foundation15 dir1]# cd ..
[root@foundation15 mfs]# cd dir2/
[root@foundation15 dir2]# ls
fstab
[root@foundation15 dir2]# mfsfileinfo fstab
fstab:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
copy 1: 172.25.15.2:9422 (status:VALID)
copy 2: 172.25.15.4:9422 (status:VALID)
[root@foundation15 dir2]#
[root@foundation15 dir2]# mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 7 classABS
storage class make classABS: ok
[root@foundation15 dir2]# mfssetsclass -r classABS fstab
fstab:
inodes with storage class changed: 1
inodes with storage class not changed: 0
inodes with permission denied: 0
[root@foundation15 dir2]# mfsfileinfo fstab
fstab:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
copy 1: 172.25.15.2:9422 (status:VALID)
copy 2: 172.25.15.3:9422 (status:VALID)
[root@foundation15 dir2]#