MogileFS分布式文件系统搭建详解

MogileFS是一套开源的分布式存储软件,适用于存储海量小文件。由tracker,mogstore,database三个部分组成。
Tracker:它通过数据库来保存元数据信息,包括站点domain、class、host等;主要功能包括监控后端Storage节点,及指示Storage节点完成数据的添加、删除、查询,及节点之间数据的复制等。
mogstored 实际存储数据的位置,默认监听在7500端口,接受客户端的文件存储请求。
database:用来做数据key  value 映射,可用mysql,还保存节点设置的全局信息

MogileFS工作流程图:

MogileFS分布式文件系统搭建详解

实验环境 tracker节点martin
storage 节点 martin lucia

部署Tracker Nodes
[root@martin ~]# yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-HiRes
 
cpan 
          install MogileFS::Server
          install MogileFS::Utils
 
----------------------------------------------------------------------
---- Unsatisfied dependencies detected during ----
----  DORMANDO/MogileFS-Server-2.72.tar.gz  ----
    MogileFS::Client [requires]
    Sys::Syscall [requires]
    Perlbal [requires]
    Test::More [requires]
    Net::Netmask [requires]
    Danga::Socket [requires]
    IO::AIO [requires]
 
---- Unsatisfied dependencies detected during ----
----  DORMANDO/MogileFS-Client-1.17.tar.gz  ----
    IO::WrapTie [requires]
    Test::More [requires]
---- Unsatisfied dependencies detected during ----
----      DORMANDO/Perlbal-1.80.tar.gz      ----
    Danga::Socket [requires]
    BSD::Resource [requires]
---- Unsatisfied dependencies detected during ----
----        MLEHMANN/IO-AIO-4.34.tar.gz      ----
    Canary::Stability [build_requires]
  DORMANDO/MogileFS-Server-2.72.tar.gz
  /usr/bin/make install  -- OK

#Sys::Syscall的0.25版本 数据副本只能保存一份  需要降级到0.23
 
[root@martin ~]# wget
[root@martin ~]# tar xf Sys-Syscall-0.23.tar.gz 
[root@martin ~]# cd Sys-Syscall-0.23
[root@martin Sys-Syscall-0.23]# perl Makefile.PL 
[root@martin Sys-Syscall-0.23]# make && make install

初始化数据库:
12345678 mysql> create database mogilefs;
Query OK, 1 row affected (0.02 sec)
 
mysql> grant all on mogilefs.* to 'mogilefs'@'192.168.*.*' identified by '222222';
Query OK, 0 rows affected (0.01 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

1 [root@martin ~]# mogdbsetup --dbhost=192.168.1.222 --dbname=mogilefs --dbuser=mogilefs --dbpass=222222  --dbrootpass=123321

12345678910111213141516171819202122 mysql> show tables;
+----------------------+
| Tables_in_mogilefs  |
+----------------------+
| checksum            |
| class                |
| device              |
| domain              |
| file                |
| file_on              |
| file_on_corrupt      |
| file_to_delete      |
| file_to_delete2      |
| file_to_delete_later |
| file_to_queue        |
| file_to_replicate    |
| fsck_log            |
| host                |
| server_settings      |
| tempfile            |
| unreachable_fids    |
+----------------------+

添加启动用户:(只能以普通用户)

[root@martin ~]# useradd -r mogilefs

配置文件:
[root@martin Sys-Syscall-0.23]# mkdir /etc/mogilefs
[root@martin Sys-Syscall-0.23]# cd /etc/mogilefs

[root@martin mogilefs]# vim mogilefsd.conf
daemonize = 1              #是否在后台以守护进程运行
pidfile = /var/run/mogilefsd/mogilefsd.pid
db_dsn = DBI:mysql:mogilefs:host=localhost;port=3306;mysql_connect_timeout=5  #连接数据库的信息
db_user = mogilefs          #数据库上的用户名
db_pass = mogilefs          #用户名对应的密码
listen = 0.0.0.0:7001      #监听的地址和端口
conf_port = 7001            #配置接口
query_jobs = 10            #用于查询的进程数 可调大  看需求
delete_jobs = 1            #用于删除操作的进程数 可调大  看需求
replicate_jobs = 5          #用于复制的进程数 可调大  看需求
reaper_jobs = 1            #用于回收资源的进程数 可调大  看需求

运行时目录:
[root@martin mogilefs]# mkdir /var/run/mogilefsd
[root@martin mogilefs]# chown -R mogilefs /var/run/mogilefsd

启动脚本:
[root@martin mogilefs]# su - mogilefs -c "mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2d8f8f7ed2f865e88bc0228966aab8cc.html