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

一、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/

测试: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
[[email protected] 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分布式文件系统集群讲解配置

时间: 2024-10-09 16:43:17

Moosefs分布式文件系统集群讲解配置的相关文章

GFS分布式文件系统集群(实例!!!)

GFS分布式文件系统集群项目 群集环境 卷类型 卷名称 卷类型 空间大小 Brick dis-volume 分布式卷 40G node1(/b1).node2(/b1) stripe-volume 条带卷 40G node1(/c1).node2(/c1) rep-volume 复制卷 20G node3(/b1).node4(/b1) dis-stripe 分布式条带卷 40G node1(/d1).node2(/d1).node3(/d1).node4(/d1) dis-rep 分布式复制卷

GFS分布式文件系统集群(理论篇)

GlusterFS概述 GlusterFS简介 开源的分布式文件系统 由存储服务器,客户端以及NFS/Samba存储网关组成 无元数据服务器 GlusterFS的特点 扩展性和高性能 高可用性 全局统一的命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick : 存储节点 Volume : 卷 FUSE : 内核模块,用户端的交互模块 VFS : 虚拟端口 Glusterd : 服务 模块化堆栈架构 模块化.堆栈式的架构 通过对模块的组合,实现负责的功能 GlusterFS工作模

FastDFS分布式文件系统集群安装

文档修订记录 跟踪服务器: Tracker Server1 IP:  10.10.16.201 FASTDFS-TRACKER-01 Tracker Server2 IP:  10.10.16.202 FASTDFS-TRACKER-02 存储服务器: Storage Server1 IP:  10.10.16.203 FASTDFS-STORAGE-01 Storage Server2 IP:  10.10.16.204 FASTDFS-STORAGE-02 集群中各操作系统环境设置: (1)

FastDFS分布式文件系统集群

环境 ip fastdfs-role 192.168.1.115 Tracker +Storage 192.168.1.104 Tracker +Storage 192.168.1.106 Tracker +Storage FastDFS安装配置 安装开发环境 # yum groupinstall "Development Tools" "Server platform Development" -y 安装libfastcommon # git clone http

高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 为了部署HA集群,应该准备以下事情: namenode服务器: 运行namenode的服务器应该有相同的硬件配置. journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的

基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南

(WJW)基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南 [X] 前提条件 服务器列表: 192.168.1.84 hbase84 #hbase-master 192.168.1.85 hbase85 #hbase-regionserver,zookeeper 192.168.1.86 hbase86 #hbase-regionserver,zookeeper 192.168.1.87 hbase87 #hbase-regionserver,z

Hadoop全分布式集群环境配置

Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS

Hadoop 分布式集群搭建 & 配置

一. 安装Java Java下载 官网下载合适的jdk,本人使用的是jdk-7u79-linux-x64.tar.gz,接下来就以该版本的jdk为例,进行Java环境变量配置 创建Java目录 在/usr/local目录下创建java目录,用于存放解压的jdk cd /usr/local mkdir java 解压jdk 进入java目录 cd java tar zxvf jdk-7u79-linux-x64.tar.gz 配置环境变量 编辑profile文件 cd /etc vim profi

分布式ActiveMQ集群

分布式ActiveMQ集群的部署配置细节: 官方资料:http://activemq.apache.org/clustering.html 基本上看这个就足够了,本文就不具体分析配置文件了. 1.Queue consumer clusters: 同一个queue,如果一个consumer失效,那么未被确认的消息都会被发送到这个queue的其它consumer上.如果某个consumer处理消息比较快,那么它将处理更多的消息. Queue consumer clusters 不需要特殊的配置. 2