设为首页 收藏本站
查看: 1019|回复: 0

[经验分享] mogilefs实现企业级分布式存储

[复制链接]

尚未签到

发表于 2019-2-1 07:30:04 | 显示全部楼层 |阅读模式
  实验环境: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 ,每台机器都要重启
第十二步:测试界面

易错点:不要把节点和设备加错,不然无法数据复制。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670206-1-1.html 上篇帖子: MogileFS高可用分布式文件系统详解 下篇帖子: 海量图片存储
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表