MogileFS-2.44 安裝與配置

MogileFS-2.44 安裝與配置 

目錄
1、MogileFS 介紹
1.一、環境
2、MogileFS 安裝
2.一、Mysql安裝
2.二、安裝MogileFS 相關Perl模塊
2.三、MogileFS Server 安裝
2.四、MogileFS Storage 存儲節點安裝
3、MogileFS 配置
3.一、mysql數據庫設置
3.二、建立mysql鏈接
3.三、建立Tracker配置文件
3.四、MogileFS 啓動與中止
3.五、MogileFS Storage 節點配置
3.六、啓動MogileFS Storage 節點
4、管理配置MogileFS
4.一、添加Storeage節點到Tracker
4.二、在存儲節點中添加設備
4.三、在存儲節點中使設備失效
4.四、添加域和類
4.五、查看域和tracker節點
4.六、mogadm 詳細參數
5、MogileFS PHP擴展模塊
5.一、安裝MogileFS PHP擴展
5.二、添加MogileFS PHP模塊
5.三、MogileFS 客戶端 API 調用資料
6、MogileFS Nginx 模塊安裝
6.一、下載Nginx_mogilefs_module
6.二、添加Nginx_mogilefs_module模塊
6.三、配置Nginx_mogilefs_module 模塊
7、Mogtool 工具建立文件和讀取文件內容
7.一、建立文件
7.二、讀取文件
8、FUSE API 掛載 MogileFS文件系統
8.一、安裝操做系統相應fuse支持
8.二、安裝Perl Fuse支持
8.三、Mount MogileFS文件系統
8.四、查看MogileFS系統文件
9、MogileFS參考資料

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

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
Mysql
192.168.0.44
Centos 5.5 x32

 
 

2.1Mysql安裝

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
 
: 存儲節點服務器不用安裝 DBD::mysql 模塊
以上 Perl 模塊也可到 http://search.cpan.org/   網站上下載安裝,如安裝 Sys::Syscall 模塊。
 
# tar zxvf Sys-Syscall-0.23.tar.gz
# cd Sys-Syscall-0.23
# perl Makefile.PL
# make
# make install
 

2.3MogileFS Server 安裝

# tar zxvf MogileFS-Server-2.44.tar.gz
# cd MogileFS-Server-2.44
# perl Makefile.PL
# make
# make install

2.4MogileFS Storage 存儲節點安裝

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

3、MogileFS 配置

3.1mysql數據庫設置

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.4MogileFS 啓動與中止

因爲 mogilefs 不能以 root 用戶運行 , 建立 mogile 用戶
# Useradd mogile –s /sbin/nologin
# su mogile –c 「mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon」
使用 pkill mogilefsd  來中止 mogilefs  服務

3.5MogileFS 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  服務

4、管理配置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.6mogadm 詳細參數

#  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'
 
  

5、MogileFS PHP擴展模塊

5.1、安裝MogileFS PHP擴展

# 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

6、MogileFS Nginx 模塊安裝

安裝了 Nginx_mogilefs_module  可以使用 Nginx 直接讀取 Mogilefs 文件系統裏的文件。

6.1、下載Nginx_mogilefs_module

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 中建立的域
 
 
 
 

7、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 文件內容

8、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文件系統

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
這樣使用起來比較直觀,操做文件就與本地文件系統同樣。

9、MogileFS參考資料

相關文章
相關標籤/搜索