1、MFS安装
[root@server1 ~]# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo 下载mfs仓库
[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# cat MooseFS.repo
[MooseFS]
name=MooseFS $releasever - $basearch
baseurl=http://ppa.moosefs.com/moosefs-3/yum/el7
gpgcheck=0 不需要校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
enabled=1
[root@server1 yum.repos.d]# yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y 安装
[root@server1 mfs]# vim /etc/hosts 添加解析,将server1设置为master
172.25.50.1 server1 mfsmaster
[root@server1 mfs]# systemctl start moosefs-master 启动
[root@server1 mfs]# systemctl start moosefs-cgiserv.service 启动
访问:172.25.50.1:9425
在server2上安装moosefs-chunkserver
[root@server1 yum.repos.d]# scp MooseFS.repo server2:/etc/yum.repos.d/
[root@server2 ~]# yum install moosefs-chunkserver -y server2上安装chunkserver
[root@server2 mfs]# vim /etc/hosts 添加解析
172.25.50.1 server1 mfsmaster
[root@server2 ~]# cd /etc/mfs/ 指定存储点
[root@server2 mfs]# mkdir /mnt/chunk1 创建存储目录
[root@server2 mfs]# vim mfshdd.cfg
注意:在生产环境中此目录一定挂载的是一个分区
[root@server2 mfs]# chown mfs.mfs /mnt/chunk1 chunkserver是以mfs用户身份运行的,所以需要给存储目录mfs身份权限 server3进行同样操作
[root@server2 mfs]# systemctl start moosefs-chunkserver 启动
在server3上安装 moosefs-chunkserver
[root@server1 yum.repos.d]# scp MooseFS.repo server3:/etc/yum.repos.d/
[root@server3~]# yum install moosefs-chunkserver -y server2上安装chunkserver
[root@server3 mfs]# vim /etc/hosts 添加解析
172.25.50.1 server1 mfsmaster
[root@server3 ~]# cd /etc/mfs/
[root@server3 mfs]# mkdir /mnt/chunk2
[root@server3 mfs]# vim mfshdd.cfg
[root@server3 mfs]# chown mfs.mfs /mnt/chunk2
[root@server3 mfs]# systemctl start moosefs-chunkserver 启动
下载mfs客户端:
为了不多开虚拟机将宿主机作为客户端,客户端系统是redhat8
[root@foundation50 ~]# curl "http://ppa.moosefs.com/MooseFS-3-el8.repo" > /etc/yum.repos.d/MooseFS.repo 下载mfs仓库
[root@foundation50 ~]# yum install moosefs-client -y 安装客户端
[root@foundation50 ~]# cd /mnt/
[root@foundation50 mnt]# mkdir /mfs
[root@foundation50 mfs]# cd /etc/mfs/
[root@foundation50 mfs]# ls
mfsmount.cfg mfsmount.cfg.sample
[root@foundation50 mfs]# vim mfsmount.cfg 编辑客户端配置文件
[root@foundation50 mfs]# vim /etc/hosts 添加解析
[root@foundation50 mfs]# 172.25.50.1 server1 mfsmaster
[root@foundation50 mfs]# mfsmount 自动读取刚才我们配置的mfsmount.cfg文件
[root@foundation50 mfs]# df
mfs#mfsmaster:9421 35622912 2855936 32766976 9% /mnt/mfs 客户端连接的是9421端口
9420端口连接的是chunkserver,9419连接的是原数据服务器
[root@foundation50 ~]# cd /mnt/mfs/
[root@foundation50 mfs]# mkdir dr1 创建目录
[root@foundation50 mfs]# mkdir dr2 创建目录
[root@foundation50 mfs]# mfsgetgoal dr1 查看副本数
dr1: 2 副本数为2
[root@foundation50 mfs]# mfsgetgoal dr2 查看副本数
dr2: 2 副本数为2
[root@foundation50 mfs]# mfssetgoal -r 1 dr1/ 设置dr1副本数为1
[root@foundation50 mfs]# cd dr1/
[root@foundation50 dr1]# cp /etc/passwd . 将passwd文件拷贝到dr1里
[root@foundation50 dr1]# cd ..
[root@foundation50 mfs]# cp /etc/fstab dr2/ 将fstab文件拷贝到dr2里
[root@foundation50 dr1]# mfsfileinfo passwd 查看具体文件信息
passwd:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1) 一个副本,存储到server3上
copy 1: 172.25.50.3:9422 (status:VALID)
[root@foundation50 mfs]# cd dr2/
[root@foundation50 dr2]# mfsfileinfo fstab 查看具体文件信息
fstab:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
copy 1: 172.25.50.2:9422 (status:VALID) 有两个副本
copy 2: 172.25.50.3:9422 (status:VALID)
[root@server3 ~]# systemctl stop moosefs-chunkserver 当我们停掉server3的chunkserver
[root@foundation50 dr2]# mfsfileinfo fstab 发现两个副本的还可以用
fstab:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
copy 1: 172.25.50.2:9422 (status:VALID)
[root@foundation50 dr2]# cd ..
[root@foundation50 mfs]# cd dr1/
[root@foundation50 dr1]# mfsfileinfo passwd 发现一个副本就不可以使用了
passwd:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
no valid copies !!!
注:只要集群中master不出问题,chunkserver停止开启后数据不会丢失
扩容chunkserver
再开启一台虚拟机server4,作为chunkserver
[root@server2 yum.repos.d]# scp MooseFS.repo server4:/etc/yum.repos.d/ 将server2配置过的MooseFS软件仓库给server4拷贝一份
[root@server4 ~]# yum install moosefs-chunkserver -y 安装chunkserver
[root@server4 ~]# vim /etc/hosts 添加解析
172.25.50.1 server1 mfsmaster
[root@server4 ~]# mkdir /mnt/chunk3 创建存储目录
[root@server4 ~]# chown mfs.mfs /mnt/chunk3/ 给mfs用户写入权限
[root@server4 ~]# vim /etc/mfs/mfshdd.cfg 最后一行,添加存储路经
/mnt/chunk3/
[root@server4 ~]# systemctl start moosefs-chunkserver 启动
[root@foundation50 isos]# cd /mnt/mfs/
[root@foundation50 mfs]# cd dr1/
[root@foundation50 dr1]# dd if=/dev/zero of=bigfile bs=1M count=200 压测,每块chunk默认64M,200M需要四个
[root@foundation50 dr1]# mfsfileinfo bigfile 只有一个副本,分为四个块,读取数据需要四个快一起读取,其中一个坏了数据就不完整了
bigfile:
chunk 0: 0000000000000003_00000001 / (id:3 ver:1)
copy 1: 172.25.50.3:9422 (status:VALID)
chunk 1: 0000000000000004_00000001 / (id:4 ver:1)
copy 1: 172.25.50.4:9422 (status:VALID)
chunk 2: 0000000000000005_00000001 / (id:5 ver:1)
copy 1: 172.25.50.2:9422 (status:VALID)
chunk 3: 0000000000000006_00000001 / (id:6 ver:1)
copy 1: 172.25.50.4:9422 (status:VALID)
删除文件如何撤销
[root@foundat