MogileFS 安裝與配置




MogileFS  安裝與配置 

目錄

一、MogileFS 介紹

1.1、環境

二、MogileFS 安裝

2.1、Mysql安裝

2.2、安裝MogileFS 相關Perl模塊

2.3、MogileFS Server 安裝

2.4、MogileFS Storage 存儲節點安裝

三、MogileFS 配置

3.1、mysql數據庫設置

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 詳細參數

五、MogileFS PHP擴展模塊

5.1、安裝MogileFS PHP擴展

5.2、添加MogileFS PHP模塊

5.3、MogileFS 客戶端 API 調用資料

六、MogileFS Nginx 模塊安裝

6.1、下載Nginx_mogilefs_module

6.2、添加Nginx_mogilefs_module模塊

6.3、配置Nginx_mogilefs_module 模塊

七、Mogtool 工具創建文件和讀取文件內容

7.1、創建文件

7.2、讀取文件

八、FUSE API 掛載 MogileFS文件系統

8.1、安裝操作系統相應fuse支持

8.2、安裝Perl Fuse支持

8.3、Mount MogileFS文件系統

8.4、查看MogileFS系統文件

九、MogileFS參考資料

一、MogileFS 介紹< xmlnamespace prefix ="o" />

MogileFS  是一個開源的分佈式文件系統,用於組建分佈式文件集羣,由  LiveJournal  旗下 Danga Interactive  公司開發, Danga  團隊開發了包括  Memcached  MogileFS  Perlbal  等不錯的開源項目: ( 注: Perlbal  是一個強大的  Perl  寫的反向代理服務器 ) 。目前國內使用 MogileFS  的有圖片託管網站  yupoo  等。

官方的介紹網站:

http://www.danga.com/mogilefs/

Google Code  上的信息

http://code.google.com/p/mogilefs/

詳細內容請見  http://www.tech-q.cn/thread-12293-1-1.html

 





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

Mysql

192.168.0.44

Centos 5.5 x32


 

 

2.1、Mysql安裝


請參考 http://www.chinasa.net/archives/17/

2.2、安裝MogileFS 相關Perl模塊


首先要安裝 perl

# yum install perl

以下 Perl 模塊均可使用以下命令進行安裝 , 如安裝 Sys::Syscall 模塊。

# cpan –I Sys::Syscall

Sys::Syscall

Danga::socket

 BSD::Resource

common::sense

IO::AIO

  Perlbal

ExtUtils::MakeMaker

Test::Simple

DBI

Net::Netmask

IO::WrapTie

MogileFS::Client

DBD::mysql

MogileFS::Utils

Gearman::Client

Gearman::server

 

注 : 存儲節點服務器不用安裝 DBD::mysql 模塊

以上 Perl 模塊也可到 http://search.cpan.org/   網站上下載安裝,如安裝 Sys::Syscall 模塊。

 

# wget  http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz

# tar zxvf Sys-Syscall-0.23.tar.gz

# cd Sys-Syscall-0.23

# perl Makefile.PL

# make

# make install

 

2.3、MogileFS Server 安裝


# wget  http://search.cpan.org/CPAN/authors/id/D/DO/DORMANDO/MogileFS-Server-2.44.tar.gz

# tar zxvf MogileFS-Server-2.44.tar.gz

# cd MogileFS-Server-2.44

# perl Makefile.PL

# make

# make install

2.4、MogileFS Storage 存儲節點安裝


參考 2.2 、 2.3 。 DBD::mysql   可不用安裝

三、MogileFS 配置


3.1、mysql數據庫設置


mysql> create database mogilefs;

mysql> grant all on mogilefs.* to 'mogile'@'%' identified '000000'

mysql> flush privileges;

3.2、創建mysql連接


# /usr/lib/mogdbsetup --dbhost=192.168.0.144 --dbname=mogilefs --dbuser=mogile --dbpassword=000000

3.3、創建Tracker配置文件


# vi /etc/mogliefs/mogilefsd.conf

內容如下:

db_dsn = DBI:mysql:mogilefs:host=192.168.0.144;port=3306;mysql_connect_timeout=5

db_user = mogile

db_pass = 000000

conf_port = 7001

listener_jobs = 5

node_timeout = 5

rebalance_ignore_missing = 1

 

3.4、MogileFS 啓動與停止


由於 mogilefs 不能以 root 用戶運行 , 創建 mogile 用戶

# Useradd mogile –s /sbin/nologin

# su mogile –c “mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon”

使用 pkill mogilefsd  來停止 mogilefs  服務

3.5、MogileFS Storage 節點配置


創建 Storage 配置文件

vi /etc/mogilefs/mogstored.conf

內容如下 :

httplisten=0.0.0.0:7500

mgmtlisten=0.0.0.0:7501

docroot=/data/mogdata

3.6、啓動MogileFS Storage 節點


Mogstored –daemon

使用 pkill mogstored  來停止 mogstored  服務

四、管理配置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、在存儲節點中添加設備


# mogadm --trackers=192.168.0.11:7001 device add  mog_store_22  101

在 /data/mogdata/ 目錄中創建 dev201 文件夾

4.3、在存儲節點中使設備失效


# mogadm device mark mog_store_22 dev101 dead

 

4.4、添加域和類


添加 image 域

# mogadm domain add image

在 image 域中添加 upload 類   存儲份數爲  2

# 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 check                     Check the state of the MogileFS world.

  mogadm stats                     Show MogileFS system statistics.  (DEPRECIATED: use mogstats instead)

  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

# ../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.3 MogileFS  客戶端 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 txt  upload/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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章