实验环境:centos7系统服务器4台、 一台作为mysql, 三台作为存储节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信,我的就是四台做的,五台分开也行。
实验原理:
每次文件的上传和读取,都经过前端TrackerServer服务器,trackerServer服务器受到client端的请求,查询数据库,返回一个上传或者是读取的可用的后端StorageServer的地址,然后由client端直接操作后端StorageServer服务器。upload操作返回就是成功或者失败的结果,read操作就是返回对应的查询数据。
实验架构:
实验步骤:
第一步:下载安装mogilefs的包,每台主机都要做
MogileFS-Server-2.46-2.el7.centos.noarch.rpm
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
MogileFS-Server-mogilefsd-2.46-2.el7.centos.noarch.rpm
perl-MogileFS-Client-1.14-1.el7.centos.noarch.rpm
MogileFS-Server-mogstored-2.46-2.el7.centos.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm
MogileFS-Utils-2.19-1.el7.centos.noarch.rpm
第二步:安装同步复制的包,需要自己下载源码包然后降级编译包,每台主机都要做
1、准备Perl环境
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes
2、下载包编译安装
wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz
tar -xvf Sys-Syscall-0.23.tar.gz
cd Sys-Syscall-0.23/
perl Makefile.PL
make
make install
3、重启mogilefs和mogstore,每台机器都需要重启。
以上第二步:可以留在最后配置完成后,需要同步文件存储的时候做。
第三步:配置数据库主从架构
详情见数据库主从配置
第四步:mogilefs服务初始化
1、数据库授权
GRANT ALL PRIVILEGES ON . TO 'mogile' @'127.0.0.1' IDENTIFIED BY 'mogile' WITH GRANT OPTION;
2、设定数据库:
mogdbsetup --dbpass=mogpass 其他的配置默认都设好了,而且主上设置的信息也会同步到从上。
3、修改tracker的配置文件配置文件:
/etc/mogilefs/mogilefsd.conf
master:
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
db_user = mogile
db_pass = mogile
listen = 172.17.254.124:7001
slave(storage1):
db_dsn = DBI:mysql:mogilefs:host=172.17.254.124 主上的数据库
db_user = mogile
db_pass = mogile
IP:PORT to listen on for mogilefs client requests
listen = 172.17.254.125:7001
Storage2:
db_dsn = DBI:mysql:mogilefs:host=172.17.254.124
db_user = mogile
db_pass = mogile
listen = 172.17.254.130:7001
Storage3:
db_dsn = DBI:mysql:mogilefs:host=172.17.254.124
db_user = mogile
db_pass = mogile
listen = 172.17.254.181:7001
4、启动服务 (tracker 服务为 mogilefsd ) (storage服务为mogstored)
/etc/init.d/mogilefsd start
第五步:修改storage的配置文件,每个节点都要作如下操作
/etc/mogilefs/mogstored.conf
docroot = /data/mogdata
mkdir /data/mogdata -p 加上数据的存储目录chown mogilefs.mogilefs mogdata/ -R 修改权限
/etc/init.d/mogstored start 启动storage
第六步:在tracker上加上host节点,可以加上一个客户端的配置文件,就不用一直写tracker了。
mogadm --trackers=172.17.254.124:7001 host add node1 --ip=172.17.254.125 --port=7500 --status=alive
mogadm host add node2 --ip=172.17.254.125 --port=7500 --status=alive
mogadm host add node3 --ip=172.17.254.181 --port=7500 --status=alive
mogadm check 检测节点的状态
第七步:建一个目录(并且需要mount一个硬盘给这个目录)给这个"设备" 使用,我们这的例子是使用
dev1在主机中建一个目录,建目录使用dev+ID这种格式,记的所有系统中ID不能重复.也必须和配置文件中的路径一样
如下:
Node1:
mkdir -p /data/mogdata/dev1
chown mogilefs.mogilefs . -R
Node2:
mkdir -p /data/mogdata/dev2
chown mogilefs.mogilefs . -R
Node3:
mkdir -p /data/mogdata/dev3
chown mogilefs.mogilefs . -R
记住:这里面也需要更改权限
第八步:一定要注意, 给相对应用的块设备 mount 到这个点, 软链也行. 不然写文件都会写到系统硬上,其它的硬盘都是空的。
给"设备"加入”存储的节点“当中,相当于为每个设备加入 MogileFS 的存储系统,这个节点容易加错。
mogadm device add node1 1
mogadm device add node2 2
mogadm device add node3 3
mogadm device list
第九步:当上面的准备好了,MogileFS 是运行中时,接下来我们要建一个我们自己的'名字空间'和加入文
件到存储当中。
我们使用mogadm的工具来能创建一个"域"和"类".也可以使用这个来增加文件到"类"中。
mogadm domain add img
mogadm domain list
mogadm class add img m26 --mindevcount=4 在img中建立一个类。
mogadm domain list
第十步:上传文件,然后检测一下是否可用。
mogupload --domain=img --key=test --file=1.jpg
mogfileinfo --domain=img --key=test
第十一步:降级操作,实现数据同步复制,每台机器都需要执行下面的操作
首先安装Perl的环境
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes
然后需要自己下载组件安装:
wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz
tar -xvf Sys-Syscall-0.23.tar.gz
cd Sys-Syscall-0.23/
perl Makefile.PL
make
make install
最后重启mogilefsd 和mogstored ,每台机器都要重启
第十二步:测试界面
易错点:不要把节点和设备加错,不然无法数据复制。
mogilefs实现企业级分布式存储
原创
©著作权归作者所有:来自51CTO博客作者疯帽爱丽丝的原创作品,请联系作者获取转载授权,否则将追究法律责任
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mogilefs-企业级分布式存储应用与实战
mogilefs-实现分布式存储
linux mogilefs 分布式存储 -
Fastdfs-企业级分布式存储应用
fastdfs分布式存储
fastdfs 分布式 存储