目录
一、mogileFS 介绍
1.1、环境
二、mogileFS 安装
2.1、MysqL安装
2.2、安装mogileFS 相关Perl模块
2.3、mogileFS Server 安装
2.4、mogileFS Storage 存储节点安装
三、mogileFS 配置
3.2、创建MysqL连接
3.3、创建Tracker配置文件
3.4、mogileFS 启动与停止
3.5、mogileFS Storage 节点配置
3.6、启动mogileFS Storage 节点
四、管理配置mogileFS
4.1、添加Storeage节点到Tracker
4.2、在存储节点中添加设备
4.3、在存储节点中使设备失效
4.4、添加域和类
4.5、查看域和tracker节点
4.6、mogadm 详细参数
7.1、创建文件
7.2、读取文件
8.1、安装操作系统相应fuse支持
8.2、安装Perl Fuse支持
九、mogileFS参考资料
一、MogileFS 介绍
mogileFS
是一个开源的分布式文件系统,用于组建分布式文件集群,由
LiveJournal
旗下
Danga Interactive
公司开发,
Danga
团队开发了包括
Memcached
、
mogileFS
、
Perlbal
等不错的开源项目:
(
注:
Perlbal
是一个强大的
Perl
写的反向代理服务器
)
。目前国内使用
mogileFS
的有图片托管网站
yupoo
等。
官方的介绍网站:
http://www.danga.com/mogilefs/
Google Code
上的信息
1.1、环境
mogileFS
相关服务器
|
IP
|
系统
|
|
Tracker (
调度器
)
|
192.168.0.11
|
Centos 5.5 x32
|
|
Storage Nodes 1 (
存储节点
1)
|
192.168.0.22
|
Centos 5.5 x32
|
|
Storage Nodes 2 (
存储节点
2)
|
192.168.0.33
|
Centos 5.5 x32
|
|
192.168.0.44
|
Centos 5.5 x32
|
|
2.1、MysqL安装
2.2、安装mogileFS 相关Perl模块
首先要安装
perl
# yum install perl
以下
Perl
模块均可使用以下命令进行安装
,
如安装
Sys::Syscall
模块。
# cpan –I Sys::Syscall
Danga::socket
BSD::Resource
common::sense
IO::AIO
Perlbal
ExtUtils::MakeMaker
Test::Simple
DBI
Net::Netmask
IO::WrapTie
mogileFS::Utils
Gearman::server
# tar zxvf Sys-Syscall-0.23.tar.gz
# cd Sys-Syscall-0.23
# perl Makefile.PL
# make
# make install
2.3、mogileFS Server 安装
# tar zxvf mogileFS-Server-2.44.tar.gz
# cd mogileFS-Server-2.44
# perl Makefile.PL
# make
# make install
2.4、mogileFS Storage 存储节点安装
三、MogileFS 配置
3.1、MysqL数据库设置
MysqL> flush privileges;
3.2、创建MysqL连接
3.3、创建Tracker配置文件
内容如下:
db_user = mogile
db_pass = 000000
conf_port = 7001
listener_jobs = 5
node_timeout = 5
rebalance_ignore_missing = 1
3.4、mogileFS 启动与停止
# Useradd mogile –s /sbin/nologin
3.5、mogileFS Storage 节点配置
内容如下
:
httplisten=0.0.0.0:7500
mgmtlisten=0.0.0.0:7501
docroot=/data/mogdata
3.6、启动mogileFS Storage 节点
mogstored –daemon
四、管理配置MogileFS
4.1、添加Storeage节点到Tracker
# mogadm --trackers=192.168.0.11:7001 host add mog_store_22 --ip= 192.168.0.22 --port=7500 --status=alive
4.2、在存储节点中添加设备
4.3、在存储节点中使设备失效
4.4、添加域和类
# mogadm domain add image
# mogadm class add image upload –mindevcount=2
4.5、查看域和tracker节点
# mogadm domain list
domain class mindevcount replpolicy
-------------------- -------------------- ------------- ---------------------------------------------------------
image default 2 MultipleHosts()
image upload 2 MultipleHosts()
# mogadm –trackers=192.168.0.11:7001 check
Checking trackers...
127.0.0.1:7001 ... OK
Checking hosts...
[ 1] mog_store_22 ... OK
[ 2] mog_store_33 ... OK
Checking devices...
host device size(G) used(G) free(G) use% ob state I/O%
---- ------------ ---------- ---------- ---------- ------ ---------- -----
[ 1] dev101 17.354 9.753 7.601 56.20% writeable 0.0
[ 2] dev201 13.456 1.491 11.965 11.08% writeable 0.0
[ 2] dev202 8.973 2.550 6.423 28.42% writeable 0.0
---- ------------ ---------- ---------- ---------- ------
total: 39.782 13.794 25.988 34.67%
4.6、mogadm 详细参数
# mogadm
Usage: (enter any command prefix,leaving off options,for further help)
mogadm host ...
host add ... Add a host to mogileFS.
host delete ... Delete a host.
host list List all hosts.
host mark ... Change the status of a host. (equivalent to 'modify --status')
host modify ... Modify a host's properties.
mogadm device ...
device add ... Add a device to a host.
device list ... List all devices,for each host.
device mark ... Mark a device as {alive,dead,down,drain,readonly}
device modify ... Modify a device's properties.
device summary ... List the summary of devices,for each host.
mogadm domain ...
domain add ... Add a domain (namespace)
domain delete ... Delete a domain.
domain list List all hosts.
mogadm class ...
class add ... Add a file class to a domain.
class delete ... Delete a file class from a domain.
class list List all classes,for each domain.
class modify ... Modify properties of a file class.
mogadm slave ...
slave add ... Add a slave node for store usage
slave delete ... Delete a slave node for store usage
slave list List current store slave nodes.
slave modify ... Modify a slave node for store usage
mogadm fsck ...
fsck clearlog Clear the fsck log
fsck printlog display the fsck log
fsck reset ... Reset fsck position back to the beginning
fsck start Start (or resume) background fsck
fsck status Show fsck status
fsck stop Stop (pause) background fsck
fsck taillog Tail the fsck log
mogadm settings ...
settings list List all server settings
settings set ... Set server setting 'key' to 'value'
五、MogileFS PHP扩展模块
5.1、安装mogileFS PHP扩展
# svn checkout
http://svn.usrportage.de/php-mogilefs/trunk
# cd trunk
# PHPize
# make
# make install
5.2、添加mogileFS PHP模块
JAVA –http://github.com/eml/java-mogilefs
Ruby – http://seattlerb.rubyforge.org/mogilefs-client/
Python – http://www.albany.edu/~ja6447/mogilefs.py
六、MogileFS Nginx 模块安装
6.1、下载Nginx_mogilefs_module
6.2、添加Nginx_mogilefs_module模块
# make
# make install
6.3、配置Nginx_mogilefs_module 模块
server {
listen 80;
server_name img.test.com;
index index.html;
location / {
mogilefs_tracker 192.168.0.11:7001;
mogilefs_domain image;
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
七、Mogtool 工具创建文件和读取文件内容
7.1、创建文件
# mogtool --trackers=192.168.0.11:7001 --domain=image inject /data/up.txt "upload/up.txt"
7.2、读取文件
# mogtool --trackers=192.168.0.11:7001 --domain=image extract upload/up.txt -
Fetching piece 1...
Trying http://192.168.0.22:7500/dev101/0/000/000/0000000001.fid...
up file txt
八、FUSE API 挂载 MogileFS文件系统
8.1、安装操作系统相应fuse支持
yum install fuse fuse-devel fuse-libs
8.2、安装Perl Fuse支持
cpan -i FUSE::Client
cpan -i FUSE::Server
cpan -i FUSE::Fuse
8.3、Mount mogileFS文件系统
下载
http://www.spicylogic.com/allenday/blog/2008/07/14/mogilefs-fuse-bigfile-support/
脚本,如文件名为
fuse.pl
# perl fuse.pl /mnt &
8.4、查看mogileFS系统文件
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 19G 9.8G 7.7G 57% /
/dev/hda1 99M 17M 78M 18% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/fuse 2 0 2 0% /mnt
# ls /mnt/
1111.jpg 1112.jpg upload/up.txt
九、MogileFS参考资料
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。