主机名 | 功能 |
---|---|
server1 | master server |
server2 | chunk servers |
server3 | chunk servers |
foundation8.ilt.example.com | client |
MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
体系结构:
1、管理服务器(master server)
一台管理整个文件系统的独立主机,存储着每个文件的元数据(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)
2、数据服务器群(chunk servers)
任意数目的商用服务器,用来存储文件数据并在彼此之间同步(如果某个文件有超过一个备份的话)
3、元数据备份服务器(metalogger server)
任意数量的服务器,用来存储元数据变化日志并周期性下载主要元数据文件,以便用于管理服务器意外停止时好接替其位置。
4、访问mfs的客户端
任意数量的主机,可以通过mfsmount进程与管理服务器(接收和更改元数据)和数据服务器(改变实际文件数据)进行交流
MooseFS读取过程:
1.客户端询问master服务端,查看的数据在哪里
2.master服务端返回chunk server列表,告诉客户端数据在哪个clunk server端
3.客户端向存储数据的clunk server端发送请求
4.clunk server端将数据发送给客户端
MooseFS写入过程:
1.客户端询问master服务器,将数据写入到哪里
2.在clunks server端创建clunks,用于写入数据
3.master服务器告诉客户端数据写入到哪里
4.客户端在某个clunks server端写入数据
5.在其他clunks server端同步写入的数据
管理服务器(master server)配置:(server1)
1.安装软件包
yum install -y moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cgi-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cgiserv-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cli-3.0.103-1.rhsystemd.x86_64.rpm
systemctl start moosefs-master
systemctl start moosefs-cgiserv
3.查看端口号
netstat -antlp
vim /etc/hosts
172.25.8.1 server1 mfsmaster
5.将chunkserver安装包传给chunkserver(server2和server3)
scp moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm server2:
scp moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm server3:
数据服务器群(chunk servers)配置:(server2)
1.安装安装包
yum install -y moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm
2.新加一块虚拟磁盘virto
3.查看fdisk -l
4.分区(只有一个分区)
fdisk /dev/vda
5.mkfs.xfs /dev/vda1
6.新建/mnt/chunk1
mkdir /mnt/chunk1
7.mount /dev/vda1 /mnt/chunk1
8.
vim /etc/mfs/mfshdd.cfg
##末尾添加:/mnt/chunk1
9.修改权限,加可执行权限
ll -d /mnt/chunk1/
chown mfs.mfs /mnt/chunk1
10.开启chunkserver
systemctl start moosefs-chunkserver
数据服务器群(chunk servers)配置:(server3)
1.安装
rpm -ivh moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm
2.mkdir /mnt/chunk2
3.chown mfs.mfs /mnt/chunk2/
4.本地解析
vim /etc/hosts
172.25.8.1 server1 mfsmaster
5.配置文件修改
vim /etc/mfs/mfshdd.cfg
/mnt/chunk2
浏览器访问:172.25.8.1:9424/mfs.cgi
访问mfs的客户端配置:
1.安装客户端软件
rpm -ivh moosefs-client-3.0.103-1.rhsystemd.x86_64.rpm
2.在/mnt下创建目录mfs
3.修改mfsmount.cfg文件
vim /etc/mfs/mfsmount.cfg
/mnt/mfs
4.本地解析
/etc/hosts
172.25.8.1 server1 mfsmaster
5.mfsmount进程
客户端通过mfsmount进程与管理服务器(接收和更改元数据)和数据服务器(改变实际文件数据)进行交流
mfsmount
1.在client端创建目录
cd /mnt/mfs/
mkdir dir1
mkdir dir2
2.获取文件存储份数
mfsgetgoal dir1/ ##获取dir1目录下文件存储份数
mfsgetgoal dir2
mfssetgoal -r 1 dir1/
cd dir1
cp /etc/passwd .
mfsfileinfo passwd
cd ../dir2
cp /etc/fstab .
mfsfileinfo fstab
dd if=/dev/zero of=bigfile1 bs=1M count=200
mfsfileinfo bigfile1
dd if=/dev/zero of=bigfile2 bs=1M count=200
mfsfileinfo bigfile2
8.在chunk servers端(server2)将服务关闭
systemctl stop moosefs-chunkserver
7.在client端查看
8.将chunk servers端(server2)重新打开服务后,文件就会恢复
1.先将dir1下的passwd删除
rm -rf passwd
2.查看文件可以恢复的时间
mfsgettrashtime .
mkdir /mnt/mfsmeta
4.mfsmount -m /mnt/mfsmeta/
4. cd /mnt/mfsmeta/trash/
5. find -name *passwd ##查找passwd文件
6. cd 004 ##进入到该目录下
7. mv 00000004\|dir1\|passwd undel/ ##将该文件移动到undel下
9.cd /mnt/mfs/dir1 ##这时查看文件恢复
1.如果是正常关闭master,则在server1上的/var/lib/mfs 会看到metadata.mfs文件。
(正常关闭:metadata.mfs.back—>metadata.mfs)
2.当开启时会看到的是metadata.mfs.back文件
(正常开启:metadata.mfs—>metadata.mfs.back)
2.如果不是正常关闭,则看到是metadata.mfs.back文件。
(非正常关闭:metadata.mfs.back-不会自动变成metadata.mfs)
此时重新启动会报错!
解决方法:
如果不是正常关闭的条件下重新开启,则要moosefs-master -a可以成功打开