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

[经验分享] Linux运维学习之分布式存储mogilefs实现

[复制链接]

尚未签到

发表于 2019-2-1 07:47:03 | 显示全部楼层 |阅读模式
今天来坐下关于分布式存储应用的mogilefs的实现。
首先我们先准备四台机器,其中两台配置数据的主从复制,每台都配置tracker,三台配置store。
ip1:172.17.254.111   mysql-master+tracker
ip2:172.17.254.112   mysql-slave+tracker+store
ip3:172.17.254.113   tracker+store
ip4:172.17.245.114   tracker+store
然后我们在上面进行配置,在所有的机器上进行安装mogilefs的相关包。
yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO -y
#安装相关的perl的包,mogilefs是由perl编写的
MogileFS-Server-2.46-2.el6.noarch.rpm #核心服务
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm #socket
MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm # tracker节点
perl-MogileFS-Client-1.14-1.el6.noarch.rpm #客户端
MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm #Storage存储节点
MogileFS-Utils-2.19-1.el6.noarch.rpm #主要是MogileFS的一些管理工具,例如mogadm。
#本地安装rpm包,可以在https://pkgs.org/download/mogilefs 下载
主程序:/usr/bin/mogilefsd
命令行管理工具程序:/usr/bin/mogadm
主配置文件(Tracker):/etc/mogilefs/mogilefsd.conf
主配置文件(Storage Nodes):/etc/mogilefs/mogstored.conf
然后在 所有哦的机器上上进行配置/etc/mogilefs/mogilefsd.conf
db_dsn = DBI:mysql:mogilefs:host=172.17.254.111   #配置数据库的所在ip
db_user = mogile  
db_pass = mogile  
#配置数据库连接相关信息
listen = 127.0.0.1:7001
然后我们再去配置除了ip1之外的其他三台的mogstored.conf,大部分都不用改动,只需改动此项:
docroot = /data/mogilefs/      #此目录为我们存储数据的实际位置,最好是单块硬盘
之后,我们对数据库所在的机器(ip1)进行服务初始化
首先对数据库进行授权:
grant all on mogilefs.* to 'mogile'@'172.17.254.111' identified by 'mogile';   
#此处账户密码,应与上面配置文件相同
然后设置数据库:
mogdbsetup --dbhost=127.0.0.1 --dbpass=mogpass
#可以进入数据库查看,表库都已经自动设置完成
/etc/init.d/mogilefsd start
启动失败,我们可以通过/var/log/messages看到这样的报错:
couldn't create pidfile '/var/run/mogilefsd/mogilefsd.pid': Permission denied
然后我们更改此目录所属人、所属组(ip2,3,4都需要更改此项,不然tracker启动不起来)
chown -R mogilefs.mogilefs /var/run/mogilefsd,再次启动成功运行!
我们的调度器做好了,各个storage node也配置好了(只改了一个docroot),然后就是把彼此链接:
mogadm host add node1 --ip=172.17.254.112 --port=7500 --status=alive
#把ip2添加到存储节点中,以此类推
mogadm host add node2 --ip=172.17.254.113 --port=7500 --status=alive
mogadm host add node3 --ip=172.17.254.114 --port=7500 --status=alive
然后可以通过mogadm host list查看,出来下面三项成功。
node1 [1]: alive
IP:       172.17.254.112:7500
node2 [2]: alive
IP:       172.17.254.113:7500
node3 [3]: alive
IP:       172.17.254.114:7500
存储节点建立了,我们通过mogadm check查看一直都显示Checking devices..,很明显我们要添加devices了,那么怎么
添加呢?上面的docroot已经指明路径,所以我们新建一个目录把硬盘挂载上就ok了,建目录使用 dev + ID 这种格式,记的所
有系统中 ID 不能重复.也必须和配置文件中的路径一样.
如下:ip2:mkdir -p /data/mogdata/dev1
然后我们还在ip1上执行添加硬盘命令:
mogadm device add node1 1
mogadm device add node2 2
mogadm device add node3 3
使用mogadm device list命令可以查看每块硬盘的状态、大小。
当上面的准备好了,MogileFS 是运行中时,接下来我们要建一个我们自己的'名字空间'和加入文件到存储当中;我们使用
mogadm 的工具来能创建一个"域"和"类".也可以使用这个来增加文件到"类"中。
mogadm domain add test(随便取的域名)
mogadm class add test testclass --mindevcount=3
# --mindevcount=3 指明该class可以有三份副本,也就是备份到三台机器上
我们可以使用上传来测试一下是否可以实现该功能:
mogupload --domain=test --key=test1 --file=1.jpg
mogfileinfo --domain=test --key=test1
然后发现有问题devcount:1 只有一份副本,这是因为该版本的mogilefs有BUG,我们通过官方文档发现需要降级来配置使用
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-Hi-
Res
#安装perl编译安装环境
wget http://www.cpan.org/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
/etc/init.d/mogilefsd  restart #重启服务
我们再次使用上传命令:mogupload --domain=test --key=test2 --file=1.jpg
发现还是不行,最多只能备份两份,找了半天才发现需要制定class,具体如下:
mogupload --domain=test --class=testclass --key=test3 --file=1.jpg
不加入class走了默认的class,参数为2,不得不说mogilefs的语法说明真的有点坑人。
好了,今天的分享就到此结束,分布式的存储在实际中应用很广泛,但是mogilefs的实现
并不是十分理想,那么我们是否有更好的代替方法呢?



运维网声明 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-670222-1-1.html 上篇帖子: mogilefs 下篇帖子: 分布式系统介绍及MogileFS安装、基本配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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