阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MooseFS分布式文件系统集群配置讲解

110次阅读
没有评论

共计 8690 个字符,预计需要花费 22 分钟才能阅读完成。

本篇为大家分享一下关于 MooseFS 的相关知识,以及简单的安装配置介绍。MooseFS 是一种分布式文件系统,它通过四个节点服务器来进行整个分布式文件系统的正常运作,包括管理服务器,元数据日志服务器,存储服务器和客户端挂载。本章将通过实验环境为大家介绍整个集群的运行原理以及工作方式。如有更多方案或者简介,欢迎多多交流!

1 管理服务器(master-server): 负责各个数据存储服务器的管理, 文件读写调度, 文件空间回收以及恢复. 多节点拷贝

2 元数据日志服务器(changelog-server): 负责备份 master 服务器的变化,(一般情况下可以和管理服务器放在一起)文件类型为 changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作

3 数据存储服务器(chunk-server): 负责连接管理服务器, 听从管理服务器调度, 提供存储空间,并为客户提供数据传输.

4 客户端(clients): 通过 fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,. 看起来共享的文件系统和本地 unix 文件系统使用一样的效果.

MFS 文件系统的读写原理:

MFS 分布式文件系统搭建:

系统环境:

                RHEL6.4 

                selinux is disabled

                iptables is flush

相关阅读

分布式文件系统 MooseFS http://www.linuxidc.com/Linux/2012-06/62008.htm

在 CentOS 上安装部署 MooseFS 分布式文件系统 http://www.linuxidc.com/Linux/2013-06/85753.htm

MooseFS 分布式文件系统安装配置常见问题集 http://www.linuxidc.com/Linux/2013-06/85752.htm

MooseFS 分布式文件系统安装向导 PDF http://www.linuxidc.com/Linux/2013-06/85751.htm

DRBD+Heartbeat+Pacemaker 实现 MFS(MooseFS)的高可用 http://www.linuxidc.com/Linux/2012-05/60699.htm

一、yum 源定义,用来解决软件包的依赖性问题
# cat yum.repo
[base]
name=yum
baseurl=ftp://192.168.2.234/pub/RHEL6.4
gpgcheck=0
[HA]
name=ha
baseurl=ftp://192.168.2.234/pub/RHEL6.4/HighAvailability
gpgcheck=0
[lb]
name=LB
baseurl=ftp://192.168.2.234/pub/RHEL6.4/LoadBalancer
gpgcheck=0
[Storage]
name=St
baseurl=ftp://192.168.2.234/pub/RHEL6.4/ResilientStorage
gpgcheck=0
[SFS]
name=FS
baseurl=ftp://192.168.2.234/pub/RHEL6.4/ScalableFileSystem
gpgcheck=0
二、主机解析准备
# cat /etc/hosts
192.168.2.88 node1        mfsmaster
192.168.2.89 node2
192.168.2.90 node3
192.168.2.82 node4
192.168.2.85 node5
实验将用 node1 作为 master-server
node3 和 node4 作为 chunk-server
node5 作为 clients
所有节点必须有以上准备

三、安装准备
#yum install rpm-build gcc make fuse-devel zlib-devel -y        安装编译环境使用的依赖(其实安装过程中会提示安装)
#rpmbuild -tb mfs-1.6.27.tar.gz                              将 gz 包构建成 rpm 包的方式  注意:包的格式很重要(只支持大的版本)

## ls /root/rpmbuild/RPMS/x86_64/                            生成的 rpm 包
mfs-cgi-1.6.27-2.x86_64.rpm          mfs-client-1.6.27-2.x86_64.rpm
mfs-cgiserv-1.6.27-2.x86_64.rpm      mfs-master-1.6.27-2.x86_64.rpm
mfs-chunkserver-1.6.27-2.x86_64.rpm  mfs-metalogger-1.6.27-2.x86_64.rpm

1.master-server 安装:
# yum localinstall mfs-cgi-1.6.27-2.x86_64.rpm mfs-master-1.6.27-2.x86_64.rpm mfs-cgiserv-1.6.27-2.x86_64.rpm -y
可以用 cgi 进行页面监控

master-server:主要文件和目录
/var/lib/mfs            mfs 数据目录
metadata.mfs            mfs 启动文件
/etc/mfs                    主目录(存储配置文件)
mfsmaster.cfg            mfs 主配置文件(定义相关参数,用户、组等设定)
mfsexports.cfg            mfs 被挂接目录及其权限控制文件
mfstopology.cfg            定义 MFS 网络拓扑结构的文件

配置文件默认不需要修改就可以使用
#chown -R nobody /var/lib/mfs      注意给数据目录以 mfs 的权限

# mfsmaster            启动 mfs
#mfsmaster stop            关闭 mfs

#netstat  -antlpe(mfsmaster 开启三个端口:客户端连接 9421 端口,监听 9422 端口; 数据节点 9420 端口)

#/usr/share/mfscgi
#chmod +x  *.cgi            给所有的 cgi 页面可执行权限(以便与在 web 下查看状态)
# mfscgiserv ——-        -》启动 cgi 监控

http://192.168.2.88:9425/
查看 mfs 监控信息

2.chunk-server 安装配置(node3 and node4)
#rpm -ivh mfs-chunkserver-1.6.27-2.x86_64.rpm
#cd /etc/mfs/
#cp mfschunkserver.cfg.dist mfschunkserver.cfg
# cp mfshdd.cfg.dist mfshdd.cfg
# vim mfshdd.cfg            存储文件
    /mnt/chunk            真正存储的目录(将客户端 /mnt/mfs 的文件存储)

#mkdir /mnt/chunk
#mkdir /var/lib/mfs
#chown nobody /var/lib/mfs/
#chown nobody /mnt/chunk

# mfschunkserver        启动 mfs 服务器(注意,mfsmaster 的解析必须到位)

#l.                                    产生一个隐藏锁文件
.mfschunkserver.lock

3.clients 端的安装与配置;
# yum localinstall mfs-client-1.6.27-2.x86_64.rpm
#cp mfsmount.cfg.dist mfsmount.cfg
#vim mfsmount.cfg
        修改 master 和分布式目录 /mnt/mfs
#mkdir /mnt/mfs
#mfsmounts        执行客户端挂载
mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root            挂载成功

# df                查看挂载设备
mfsmaster:9421        6714624        0  6714624  0% /mnt/mfs

# ll -d /mnt/mfs/            挂载后自动读写
drwxrwxrwx 2 root root 0 Jun  8 10:29 /mnt/mfs/

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103607p2.htm

测试:MFS 测试:
# mkdir hello{1,2}
# ls
hello1  hello2

# mfsdirinfo hello1/
hello1/:
 inodes:                          1
  directories:                    1
  files:                          0
 chunks:                          0
 length:                          0
 size:                            0
 realsize:                        0

# mfssetgoal -r 3 hello1/        设置备份次数
hello1/:
 inodes with goal changed:              1
 inodes with goal not changed:          0
 inodes with permission denied:          0

# mfsgetgoal hello1/        查看文件备份数
hello1/: 3
# mfsgetgoal hello2
hello2: 1

#cp /etc/fstab hello1/
# cp /etc/passwd hello2/

# mfsfileinfo /hello/fstab            查看文件具体信息
fstab:
    chunk 0: 000000000000000B_00000001 / (id:11 ver:1)
        copy 1: 192.168.2.82:9422
        copy 2: 192.168.2.90:9422

# mfscheckfile passwd

测试存储关系:

# mfsfileinfo fstab
fstab:
    chunk 0: 000000000000000B_00000001 / (id:11 ver:1)
        copy 1: 192.168.2.90:9422
[root@node5 hello1]# mfsfileinfo ../hello2/passwd
../hello2/passwd:
    chunk 0: 000000000000000C_00000001 / (id:12 ver:1)
        no valid copies !!!

客户端:误删除文件(不小心删除 /mnt/mfs/hello*/passwd)
# mfsmount -m /mnt/test/ -H mfsmaster        恢复目录挂载到 mfsmaster 上
mfsmaster accepted connection with parameters: read-write,restricted_ip
# mount

#cd /mnt/test/
## mfscheckfile passwd
# mv 00000005\|hello2\|passwd undel/
直接恢复到之前的 mfs 目录中
# umount /mnt/meta/

mfschunk-server 可以自动检测客户端的配置文件:
# mfschunkserver stop

在客户端重新拷贝文件,
#cp /etc/inittab /mnt/mfs/hello1
#mfsgetgoal hello1/fstab        查看文件份数
#mfsgetgoal hello1/inittab

# mfsfileinfo inittab            刚开始只有一个 chukserver,只能保存一份

开启 chunkserver
#mfschunkserver

# mfsfileinfo inittab            查看文件的备份数,恢复成 chunkserver 的数
inittab:
    chunk 0: 0000000000000006_00000001 / (id:6 ver:1)
        copy 1: 192.168.2.184:9422
        copy 2: 192.168.2.185:9422

注意:
在 mfsmaster 中,正常运行时,数据文件为 metadata.mfs.back
当主机出现故障,数据文件会保存成 metadata.mfs

使用非正常关闭,(kill -9  pid) 数据文件将不会恢复

# mfsmetarestore -a-            非正常启动后会丢失 metadata.mfs 文件,必须恢复一下

然后重新启动 mfsmaster(mfsmaster 启动必须有 metadata.mfs 文件)

MooseFS 的详细介绍:请点这里
MooseFS 的下载地址:请点这里

本篇为大家分享一下关于 MooseFS 的相关知识,以及简单的安装配置介绍。MooseFS 是一种分布式文件系统,它通过四个节点服务器来进行整个分布式文件系统的正常运作,包括管理服务器,元数据日志服务器,存储服务器和客户端挂载。本章将通过实验环境为大家介绍整个集群的运行原理以及工作方式。如有更多方案或者简介,欢迎多多交流!

1 管理服务器(master-server): 负责各个数据存储服务器的管理, 文件读写调度, 文件空间回收以及恢复. 多节点拷贝

2 元数据日志服务器(changelog-server): 负责备份 master 服务器的变化,(一般情况下可以和管理服务器放在一起)文件类型为 changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作

3 数据存储服务器(chunk-server): 负责连接管理服务器, 听从管理服务器调度, 提供存储空间,并为客户提供数据传输.

4 客户端(clients): 通过 fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,. 看起来共享的文件系统和本地 unix 文件系统使用一样的效果.

MFS 文件系统的读写原理:

MFS 分布式文件系统搭建:

系统环境:

                RHEL6.4 

                selinux is disabled

                iptables is flush

相关阅读

分布式文件系统 MooseFS http://www.linuxidc.com/Linux/2012-06/62008.htm

在 CentOS 上安装部署 MooseFS 分布式文件系统 http://www.linuxidc.com/Linux/2013-06/85753.htm

MooseFS 分布式文件系统安装配置常见问题集 http://www.linuxidc.com/Linux/2013-06/85752.htm

MooseFS 分布式文件系统安装向导 PDF http://www.linuxidc.com/Linux/2013-06/85751.htm

DRBD+Heartbeat+Pacemaker 实现 MFS(MooseFS)的高可用 http://www.linuxidc.com/Linux/2012-05/60699.htm

一、yum 源定义,用来解决软件包的依赖性问题
# cat yum.repo
[base]
name=yum
baseurl=ftp://192.168.2.234/pub/RHEL6.4
gpgcheck=0
[HA]
name=ha
baseurl=ftp://192.168.2.234/pub/RHEL6.4/HighAvailability
gpgcheck=0
[lb]
name=LB
baseurl=ftp://192.168.2.234/pub/RHEL6.4/LoadBalancer
gpgcheck=0
[Storage]
name=St
baseurl=ftp://192.168.2.234/pub/RHEL6.4/ResilientStorage
gpgcheck=0
[SFS]
name=FS
baseurl=ftp://192.168.2.234/pub/RHEL6.4/ScalableFileSystem
gpgcheck=0
二、主机解析准备
# cat /etc/hosts
192.168.2.88 node1        mfsmaster
192.168.2.89 node2
192.168.2.90 node3
192.168.2.82 node4
192.168.2.85 node5
实验将用 node1 作为 master-server
node3 和 node4 作为 chunk-server
node5 作为 clients
所有节点必须有以上准备

三、安装准备
#yum install rpm-build gcc make fuse-devel zlib-devel -y        安装编译环境使用的依赖(其实安装过程中会提示安装)
#rpmbuild -tb mfs-1.6.27.tar.gz                              将 gz 包构建成 rpm 包的方式  注意:包的格式很重要(只支持大的版本)

## ls /root/rpmbuild/RPMS/x86_64/                            生成的 rpm 包
mfs-cgi-1.6.27-2.x86_64.rpm          mfs-client-1.6.27-2.x86_64.rpm
mfs-cgiserv-1.6.27-2.x86_64.rpm      mfs-master-1.6.27-2.x86_64.rpm
mfs-chunkserver-1.6.27-2.x86_64.rpm  mfs-metalogger-1.6.27-2.x86_64.rpm

1.master-server 安装:
# yum localinstall mfs-cgi-1.6.27-2.x86_64.rpm mfs-master-1.6.27-2.x86_64.rpm mfs-cgiserv-1.6.27-2.x86_64.rpm -y
可以用 cgi 进行页面监控

master-server:主要文件和目录
/var/lib/mfs            mfs 数据目录
metadata.mfs            mfs 启动文件
/etc/mfs                    主目录(存储配置文件)
mfsmaster.cfg            mfs 主配置文件(定义相关参数,用户、组等设定)
mfsexports.cfg            mfs 被挂接目录及其权限控制文件
mfstopology.cfg            定义 MFS 网络拓扑结构的文件

配置文件默认不需要修改就可以使用
#chown -R nobody /var/lib/mfs      注意给数据目录以 mfs 的权限

# mfsmaster            启动 mfs
#mfsmaster stop            关闭 mfs

#netstat  -antlpe(mfsmaster 开启三个端口:客户端连接 9421 端口,监听 9422 端口; 数据节点 9420 端口)

#/usr/share/mfscgi
#chmod +x  *.cgi            给所有的 cgi 页面可执行权限(以便与在 web 下查看状态)
# mfscgiserv ——-        -》启动 cgi 监控

http://192.168.2.88:9425/
查看 mfs 监控信息

2.chunk-server 安装配置(node3 and node4)
#rpm -ivh mfs-chunkserver-1.6.27-2.x86_64.rpm
#cd /etc/mfs/
#cp mfschunkserver.cfg.dist mfschunkserver.cfg
# cp mfshdd.cfg.dist mfshdd.cfg
# vim mfshdd.cfg            存储文件
    /mnt/chunk            真正存储的目录(将客户端 /mnt/mfs 的文件存储)

#mkdir /mnt/chunk
#mkdir /var/lib/mfs
#chown nobody /var/lib/mfs/
#chown nobody /mnt/chunk

# mfschunkserver        启动 mfs 服务器(注意,mfsmaster 的解析必须到位)

#l.                                    产生一个隐藏锁文件
.mfschunkserver.lock

3.clients 端的安装与配置;
# yum localinstall mfs-client-1.6.27-2.x86_64.rpm
#cp mfsmount.cfg.dist mfsmount.cfg
#vim mfsmount.cfg
        修改 master 和分布式目录 /mnt/mfs
#mkdir /mnt/mfs
#mfsmounts        执行客户端挂载
mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root            挂载成功

# df                查看挂载设备
mfsmaster:9421        6714624        0  6714624  0% /mnt/mfs

# ll -d /mnt/mfs/            挂载后自动读写
drwxrwxrwx 2 root root 0 Jun  8 10:29 /mnt/mfs/

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103607p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计8690字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中