Welcome 微信登录

首页 / 操作系统 / Linux / 分布式文件系统MogileFS的使用

MogileFS简介MogileFS是一套开源的分布式存储组件,由LiveJournal旗下的Danga Interactive研发,主要应用于存储海量的小文件。MogileFS有3个组件:1)Tracker Nodes:是文件系统集群的核心节点,借助数据库节点保存元数据,主要功能包括监控后端Storage节点,及指示Storage节点完成数据的添加、删除、查询,及节点之间数据的复制等,该节点上运行的进程为mogilefsd。往往Tracker节点有多个,以实现负载均衡和高可用;2)Storage Nodes:实际存储数据的位置,基于WebDAV模式工作,能完成文件创建、删除、重命名等操作,运行的进程为mogstored;3)database Nodes:帮助Tracker节点存放元数据及全局信息,包括host,domain,class等。数据库建议使用高可用集群,防止单点故障。实现机制在该文件系统集群中,每一个数据块都会有多个副本,存放于多个Storage Node上,不同的文件系统副本的数量各不相同(一般建议为3份),在Tracker Node上会分别单独记录每一个数据块的存储位置(位于哪个Storage及路径)。若某个Storage节点不在线了,客户端向Tracker节点请求获取数据时,Tracker节点会返回用于冗余的副本的存储位置给客户端。这样就保证了整个文件系统中数据的高可用性。当有数据存储至某一storage节点后,各storage节点会根据Tracker的指示通过节点间通信将副本发送至其他节点上。若某一storage下线了,该节点上的副本会由其他节点重新提供,保证副本的个数不少于指定的值。MogileFS结构图工作原理:客户端需要存取数据时,首先与Tracker进行交互,Tracker通过查询数据库来获取客户端存取数据时所需要访问的元数据,然后返回给客户端,客户端利用Tracker返回的结果,与Storage Nodes节点进行交互完成数据存取(一次有可能联系一个也可能联系多个)。MogileFS 设置 Memcached http://www.linuxidc.com/Linux/2012-03/56905.htm在 MogileFS 中使用 Nginx http://www.linuxidc.com/Linux/2012-03/56904.htm在开源分布式文件系统MogileFS 中使用 Nginx http://www.linuxidc.com/Linux/2012-03/56573.htm自定义Nagios监控MogileFS存储节点脚本 http://www.linuxidc.com/Linux/2011-12/49394.htm部署MogileFS部署Tracker Nodes1)安装程序包使用cpan在线安装,首先安装必要的perl库。[root@node1 ~]# cpan Sys::Syscall[root@node1 ~]# cpan IO::WrapTie[root@node1 ~]# cpan Danga::Socket[root@node1 ~]# cpan IO::AIO[root@node1 ~]# cpan MogileFS::Client[root@node1 ~]# cpan Net::Netmask[root@node1 ~]# cpan Perlbal安装MogileFS Server:[root@node1 ~]# cpan MogileFS::Server或者下载源码包编译安装:[root@node1 ~]# wget http://mirrors.ustc.edu.cn/CPAN/authors/id/D/DO/DORMANDO/MogileFS-Server-2.72.tar.gz[root@node1 ~]# tar xf MogileFS-Server-2.72.tar.gz[root@node1 ~]# cd MogileFS-Server-2.72[root@node1 MogileFS-Server-2.72]# perl Makefile.PL[root@node1 MogileFS-Server-2.72]# make && make install2)完成配置创建配置文件目录并添加配置文件:[root@www ~]# mkdir /etc/mogilefs[root@node1 ~]# vim /etc/mogilefs/mogilefsd.confdaemonize = 1pidfile = /var/run/mogilefsd/mogilefsd.piddb_dsn = DBI:mysql:mogilefs:host=192.168.1.134;port=3306;mysql_connect_timeout=5  #连接数据库的信息db_user = mogilefs          #数据库上的用户名db_pass = mogilefs          #用户名对应的密码listen = 0.0.0.0:7001      #监听的地址和端口conf_port = 7001query_jobs = 10            #用于查询的进程数delete_jobs = 1            #用于删除操作的进程数replicate_jobs = 5          #用于复制的进程数reaper_jobs = 1            #用于回收资源的进程数在数据库节点上创建数据库,并授权用户:MariaDB [(none)]> create database mogilefs;Query OK, 1 row affected (0.04 sec)MariaDB [(none)]> grant all on mogilefs.* to "mogilefs"@"192.168.%.%" identified by "mogilefs";Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.00 sec)初始化数据库:[root@node1 ~]# mogdbsetup --dbhost=192.168.1.134 --dbname=mogilefs --dbuser=mogilefs --dbpass=mogilefs --dbrootpass=mogilefs若出现如下错误,是没有安装perl连接mysql的驱动引起的,安装perl-DBD-MySQL即可。Failed to load MogileFS::Store::MySQL: Can"t locate DBD/mysql.pm in @INC (@INC contains: lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/share/perl5/MogileFS/Store/MySQL.pm line 5.................###########################################[root@node1 ~]# yum install perl-DBD-MySQL3)启动服务mogilefsd不能以root身份运行,必须用其他用户运行,为此添加mogilefs用户,然后启动服务:[root@node1 ~]# useradd -r mogilefs[root@node1 ~]# su - mogilefs -c "mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon"更好的方式是添加服务脚本,然后通过脚本启动服务。这里有一项需要注意,Sys::Syscall的0.25版本存在bug,在文件系统运行过程中,向文件系统上添加数据,其不会按照默认策略保留2个副本,默认策略如下:上传的文件信息:可以看到,数据仅有一份,保存在192.168.1.127节点上。Sys::Syscall的0.25版本为最新版本,使用cpan默认安装的就是这个版本,降级到0.23版本即可,或者直接下载安装0.23版本。wget http://mirrors.ustc.edu.cn/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz###############################perl Makefile.PLmake && make install部署Storage Nodes1)安装程序包(与上述一致)[root@node2 ~]# cpan Sys::Syscall[root@node2 ~]# cpan IO::WrapTie[root@node2 ~]# cpan Danga::Socket[root@node2 ~]# cpan IO::AIO[root@node2 ~]# cpan MogileFS::Client[root@node2 ~]# cpan Net::Netmask[root@node2 ~]# cpan Perlbal[root@node2 ~]# cpan MogileFS::Server2)完成配置创建目录并添加配置文件:[root@node2 ~]# mkdir /etc/mogilefs[root@node2 ~]# vim /etc/mogilefs/mogstored.confmaxconns = 10000              #最大并发连接数httplisten = 0.0.0.0:7500    #http监听的地址mgmtlisten = 0.0.0.0:7501    #管理接口监听地址docroot = /mogdata/data      #用于存储的目录添加,挂载分区,根据/etc/mogilefs/mogstored.conf中的docroot配置信息添加目录,并修改属主属组:[root@node2 ~]# fdisk /dev/sdb[root@node2 ~]# mkfs -t ext4 -b 4096 /dev/sdb1[root@node2 ~]# mkdir -pv /mogdata/datamkdir: created directory `/mogdata"mkdir: created directory `/mogdata/data"[root@node2 ~]# mount /dev/sdb1 /mogdata/data/[root@node2 ~]# chown -R mogilefs.mogilefs /mogdata/3)启动服务添加用户,启动服务(同上述一样,最好使用脚本):[root@node2 ~]# useradd -r mogilefs[root@node2 ~]# su - mogilefs -c "mogstored -c /etc/mogilefs/mogstored.conf --daemon"安装MogileFS-Utils管理MogileFS在控制节点上安装MogileFS-Utils,可用于添加host,device,domain,class等管理操作。[root@node1 ~]# cpan MogileFS::Utils或者[root@node1 ~]# wget http://mirrors.ustc.edu.cn/CPAN/authors/id/D/DO/DORMANDO/MogileFS-Utils-2.29.tar.gz[root@node1 ~]# tar xf MogileFS-Utils-2.29.tar.gz[root@node1 ~]# cd MogileFS-Utils-2.29[root@node1 MogileFS-Utils-2.29]# perl Makefile.PL[root@node1 MogileFS-Utils-2.29]# make && make install建议直接使用cpan安装,可自动安装依赖的包。更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-09/122947p2.htm
  • 1
  • 2
  • 下一页
PXE+Kickstart实现自动安装CentOS 6.5Linux中history输出格式的定制相关资讯      MogileFS 
  • MogileFS分布式文件系统搭建详解  (06月10??)
  • MogileFS系统安装配置实例  (09/09/2015 08:09:30)
  • 分布式文件系统之MogileFS  (10/02/2014 19:45:36)
  • 分布式系统介绍及MogileFS安装、基  (05月05日)
  • 分布式文件系统 MogileFS 详述  (02/15/2015 10:28:37)
  • Web集群实现共享存储的架构演变及  (06/13/2014 10:11:31)
本文评论 查看全部评论 (0)
表情: 姓名: 字数