首页 > Storage > Mogilefs > Mogilefs安装使用
2016
04-03

Mogilefs安装使用

Mogilefs是一款由perl语言研发的轻量级的分布式存储系统。类似淘宝的TFS可以从应用层解决海量的小数据的存储,比如图片。可以支持由php,java,perl,python写的扩展API接口来提供服务

  • 特点:
  1. 支持多节点冗余
  2. 自动的文件复制
  3. 简单的命名空间,比如key,不多在当前domain全局惟一
  4. 不需要RAID,不共享任何东西,通过“集群”接口提供服务
  5. 不能追加写,随机写,因为它有自己的排列顺序,按照一定的编码来的
       ….
  • 三大主件
  1. Tracker:跟踪器,调度器
  2. TrackerDB:Mysql  ,主要用于存储数据的meta元数据
  3. Storage:存储真正的数据
三台centos6主机:
host1:172.16.52.61   作为tracker&&mysql
host2:172.16 .52.63   storage1
host3:172.16 .52.64    storage2
 
Install
host1: 需要的包可以到http://pkgs.org/去下载
yum install MogileFS-Server-2.46-2.el6.noarch.rpm MogileFS-Utils-2.19-1.el6.noarch.rpm MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm perl-Net-Netmask-1.9015-8.el6.noarch.rpm perl-Perlbal-1.78-1.el6.noarch.rpm perl-MogileFS-Client-1.14-1.el6.noarch.rpm MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm perl-Danga-Socket-1.61-5.el6.noarch.rpm perl-IO-AIO-3.71-2.el6.x86_64.rpm perl-common-sense-3.5-1.el6.noarch.rpm perl-Sys-Syscall-0.23-1.el6.noarch.rpm perl-IO-AIO-3.71-2.el6.x86_64.rpm perl-IO-stringy-2.110-10.1.el6.noarch.rpm
安装配置数据库:
yum install  mysql-server
~]#mysql
msyql>CREATE  DATABASE mogile  CHARACTOR SET utf8;
mysql> GRANT ALL ON mogile.* TO ‘mogile’@’127.0.0.1’ IDENTIFIED BY ‘mogile’;
mysql>exit;
测试连接数据库:
 ~]#mysql -umogile  -h127.0.0.1 -p
Configuration
 
host1:创建文件:
~]#mkdir /etc/mogilefs/mogile
编辑配置文件,主要修改如下:
 vim /etc/mogilefs/mogilefsd.conf

# Enable daemon mode to work in background and use syslog
daemonize = 1
# Where to store the pid of the daemon (must be the same in the init script)
pidfile = /var/run/mogilefsd/mogilefsd.pid
# Database connection information
db_dsn = DBI:mysql:mogile:host=127.0.0.1
db_user = mogile
db_pass = mogile
# IP:PORT to listen on for mogilefs client requests
listen = 0.0.0.0:7001

初始化mogilefs的数据库,创建完就可以在mysql查看到多出一些新的表了:

~]#mogdbsetup –dbhost=127.0.0.1 –dbname=mogile –dbuser=mogile –dbpass=mogile

启动mogilefsd服务:

/etc/init.d/mogilefsd start

添加Tracker:

mogadm –trackers=172.16.52.61:7001 check

host2和host3上分别安装存储,表示缺包找包这种苦力活略考验耐心。。。此生不想再有第二次。。。

yum install -y MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm perl-Perlbal-1.78-1.el6.noarch.rpm perl-IO-stringy-2.110-1.2.el6.rfx.noarch.rpm perl-Sys-Syscall-0.23-1.el6.noarch.rpm perl-Danga-Socket-1.61-5.el6.noarch.rpm perl-BSD-Resource-1.29.03-3.el6.x86_64.rpm  perl-IO-AIO-3.71-2.el6.x86_64.rpm perl-common-sense-3.5-1.el6.noarch.rpm  MogileFS-Utils-2.19-1.el6.noarch.rpm perl-MogileFS-Client-1.14-1.el6.noarch.rpm

创建存放数据的目录,不然会报错的:

mkdir /var/mogdata

启动mogstored服务:

经验告诉我,需要手动运行在后台,如果再去研究脚本,估计今天就过去了,故先手动起着用咯。。。–daemon是指运行在后台,可以简写为-d

mogstored /etc/mogilefs/mogstored.conf –daemon

Add storage nodes

host1:添加存储节点:

~]# mogadm –trackers=172.16.52.61:7001 host add 172.16.52.62 –status=alive
~]# mogadm –trackers=172.16.52.61:7001 host add 172.16.52.64 –status=alive

host2&&host3:创建磁盘,挂载到/var/mogdata下面,如图

Mogilefs安装使用 - 第1张  | 运维手册

接着w保存,通知内核当前磁盘的分区了,多刷两次。。。

]# partx -a /dev/sda

]# partx -a /dev/sda

格式化磁盘

]#mkfs.ext4 /dev/sda3

挂载:

mount  /dev/sda3   /var/mogdata

添加设备:

mogadm –trackers=172.16.52.61:7001 device add 172.16.52.63 1

到host2&&host3上面创建对应的dev#目录

mkdir /var/mogdata/dev#

回到host1,因为我只添加了一个dev设备,因此。。。

[root@localhost ~]# mogadm –trackers=172.16.52.61:7001 check
Checking trackers…
172.16.52.61:7001 … OK

Checking hosts…
[ 1] 172.16.52.62 … REQUEST FAILURE FETCHING: http://172.16.52.62:7500/
[ 2] 172.16.52.64 … REQUEST FAILURE FETCHING: http://172.16.52.64:7500/
[ 3] 172.16.52.63 … OK

Checking devices…
host device         size(G)    used(G)    free(G)   use%   ob state   I/O%
—- ———— ———- ———- ———- —— ———- —–
[ 3] dev2            14.374      0.038     14.336   0.26%  ?         N/A
—- ———— ———- ———- ———- ——
total:    14.374      0.038     14.336   0.26%

Add domain

添加domain:

~]# mogadm –trackers=172.16.52.61:7001 domain add fruit

查看domain, mindevcount选项是指副本,默认为2个副本,
[root@localhost ~]# mogadm –trackers=172.16.52.61:7001 domain list
domain               class                mindevcount   replpolicy   hashtype
——————– ——————– ————- ———— ——-
fruit                default                   2        MultipleHosts() NONE

Upload files to storage from Tracker

上传文件:将本地的chuju.jpg上传到存储,还记的 mindevcount是默认两个副本吗,如果两台存储主机都添加进去了,就会在两台storage上都存储下来

[root@localhost ~]# ls
anaconda-ks.cfg  chuju.jpg  Desktop  Documents  Downloads  install.log  install.log.syslog  Music  Pictures  Public  pxelinux.0  Templates  Videos
[root@localhost ~]# mogupload –trackers=172.16.52.61:7001 –domain=fruit –key=’/chuju.jpg’ –file=’./chuju.jpg’

到host2&&host3可以查看:

[root@localhost dev2]# cd /var/mogdata/dev2/
[root@localhost dev2]# ls
0  test-write  usage
[root@localhost dev2]# tree 0
0
└── 000
└── 000
└── 0000000004.fid

2 directories, 1 file

[root@localhost mogilefs]# mogfileinfo –tracker=172.16.52.61:7001 –domain=fruit –key=’/chuju.jpg’
– file: /chuju.jpg
class:              default
devcount:                    1
domain:                fruit
fid:                    4
key:           /chuju.jpg
length:                68316
– http://172.16.52.63:7500/dev2/0/000/000/0000000004.fid

Test

看到http://172.16.52.63:7500/dev2/0/000/000/0000000004.fid这个地址,我们用浏览器访问一下:如图

Mogilefs安装使用 - 第2张  | 运维手册

最后编辑:
作者:李国庆
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。