五、MogileFS PHP扩展模块

5.1、安装MogileFS PHP扩展

# svn checkout http://svn.usrportage.de/php-mogilefs/trunk

# cd trunk

# phpize

# ../configure --with-php-config=/opt/php/bin/php-config

# make

# make install

5.2、添加MogileFS PHP模块

修改/opt/php/etc/php.ini配置文件,添加以下内容:

 extension=mogilefs.so

重启web服务器,使用phpinfo()函数可看见mogilefs已经被加载,如下图所示:

5.3MogileFS 客户端 API 调用资料

JAVA –http://github.com/eml/java-mogilefs

Ruby – http://seattlerb.rubyforge.org/mogilefs-client/

PHP – http://projects.usrportage.de/index.fcgi/php-mogilefs

Python – http://www.albany.edu/~ja6447/mogilefs.py

六、MogileFS Nginx 模块安装

安装了Nginx_mogilefs_module 可使用Nginx直接读取Mogilefs文件系统里的文件。

配置文档请看: http://www.grid.net.ru/nginx/mogilefs.en.html

6.1、下载Nginx_mogilefs_module

# wget http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.4.tar.gz

6.2、添加Nginx_mogilefs_module模块

# tar zxvf nginx_mogilefs_module-1.0.4.tar.gz

# ./configure --prefix=/opt/nginx --add-module=/data/mfs/nginx_mogilefs_module-1.0.4

# make

# make install

6.3、配置Nginx_mogilefs_module 模块

nginx配置文件中加入以下内容:

 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;

 

                    }

                }

 

注:mogilefs_domain image 这里的image就是mogilefs中创建的域

 

七、Mogtool 工具创建文件和读取文件内容

7.1、创建文件

如将/data/up.txt文件创建到image域中upload/up.txt文件。命令如下:

# mogtool --trackers=192.168.0.11:7001 --domain=image inject /data/up.txt  "upload/up.txt"

 

:/data/up.txt  为本地系统文件

   Upload/up.txt mogilefs文件内文件

   Mogilefs文件系统中没有目录概念,将创建的文件名以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...

Wide character in print at /usr/bin/mogtool line 1285, <Sock_192.168.0.11:7001> line 1.

up file txt

 

: upload/up.txt -  这里的 号不能却少,否则会出现语法错误

http://192.168.0.22:7500/dev101/0/000/000/0000000001.fid  upload/up.txt文件的实际地址

up file txtupload/up.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.3Mount MogileFS文件系统

下载

http://www.spicylogic.com/allenday/blog/2008/07/14/mogilefs-fuse-bigfile-support/脚本,如文件名为 fuse.pl

MogileFS文件系统挂载到/mnt目录下。命令如下:

# 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

:这里挂载MogileFS 文件系统到 /mnt 下,文件大小显示 2 ,这里不是很清楚,希望大家多研究。

# ls /mnt/

1111.jpg  1112.jpg  upload/up.txt

这样使用起来比较直观,操作文件就与本地文件系统一样。

九、MogileFS参考资料

http://www.admindigest.com/4/

http://www.tech-q.cn/thread-12293-1-1.html