MogileFS 安装笔记

本文详细介绍MogileFS分布式文件系统的安装与配置流程,包括MySQL数据库设置、Perl依赖安装及Tracker服务启动等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 准备工作

     1. 装好Mysql (请确认操作系统版本是64位还是32位,请装对应的版本,安装过程省略)

     2. 为mogile创建用户

            # useradd mogile

     3.用Mysql客户端为MogileFS创建数据库和用户

              >create database mogilefs;

              >grant all privileges on mogilefs.* to 'mogile'@'%' identified by '123456';

              >flush privileges;

              >exit;

      4.下载MogileFS

             # mkdir /usr/local/src/mogilefs

             # cd /usr/local/src/mogilefs

             # svn checkout http://code.sixapart.com/svn/mogilefs/trunk

 

二.安装Tracker

     1. # cd /usr/loca/src/mogilefs/trunk/server

     2. # perl Makefile.PL   提示一堆perl包没安装

     3. # perl -MCPAN -e shell

            cpan> install ABC::abc  逐一安装上面提示的包(不要安装DBD::mysql这个不要用cpan装)

     4. # perl Makefile.PL (没有错误后就执行第5步,还有包没安装就执行第3步)

     5. # make; make test       test出现下面错误先忽略

------------------------------------------------------------------------------------------------------------------------------------------------

Test returned status 2 (wstat 512, 0x200)
t/replpolicy................ok                                              
t/store.....................Can't locate MogileFS/RebalancePolicy/DrainDevices.pm in @INC (@INC contains: /usr/local/src/mogileFS/server/blib/lib /usr/local/src/mogileFS/server/blib/arch /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . /usr/local/src/mogileFS/server/blib/lib/mogdeps) at /usr/local/src/mogileFS/server/blib/lib/MogileFS/Worker/Replicate.pm line 14.
BEGIN failed--compilation aborted at /usr/local/src/mogileFS/server/blib/lib/MogileFS/Worker/Replicate.pm line 14.
Compilation failed in require at /usr/local/src/mogileFS/server/blib/lib/MogileFS/Server.pm line 61.
BEGIN failed--compilation aborted at /usr/local/src/mogileFS/server/blib/lib/MogileFS/Server.pm line 61.
Compilation failed in require at t/store.t line 8.
BEGIN failed--compilation aborted at t/store.t line 8.
t/store.....................dubious                                         
        Test returned status 2 (wstat 512, 0x200)
t/util......................ok                                              
Failed Test                Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/00-startup.t                2   512    ??   ??       %  ??
t/10-weighting.t              2   512    ??   ??       %  ??
t/20-filepaths.t              2   512    ??   ??       %  ??
t/30-rebalance.t              2   512    ??   ??       %  ??
t/domains-classes.t           2   512    ??   ??       %  ??
t/hosts-devices.t             2   512    ??   ??       %  ??
t/mogstored-shutdown.t        2   512    ??   ??       %  ??
t/multiple-hosts-replpol.t    2   512    ??   ??       %  ??
t/replpolicy-parsing.t        2   512    ??   ??       %  ??
t/store.t                     2   512    ??   ??       %  ??
Failed 10/13 test scripts, 23.08% okay. 0/23 subtests failed, 100.00% okay.
make: *** [test_dynamic] 错误 255

---------------------------------------------------------------------------------------------------------------------------------------------------------

     6.# make install

     7.安装 utils 

        # cd /usr/local/src/mogilefs/trunk/until

        # perl Makefile.PL

        # make;make install

 

     8.安装 api

        # cd /usr/local/src/mogileFS/api/perl/MogileFS-Client

        # perl Makefile.PL

        # make;make install

 

        # cd /usr/local/src/mogileFS/api/perl/MogileFS-Client-FilePaths

        # perl Makefile.PL

        # make;make install

-----------------------------------------------------------------------------------------------------------------------------------------------------------

     9.设置数据库连接

        # mogdbsetup --dbhost=127.0.0.1 dbport=3306 --dbname=mogilefs dbuser=mogile dbpass=123456 --yes

        报错如下(是因为DBD::mysql的perl包没有装)

Failed to load MogileFS::Store::MySQL: Can't locate DBD/mysql.pm in @INC (@INC contains: lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/MogileFS/Store/MySQL.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/MogileFS/Store/MySQL.pm line 5.
Compilation failed in require at (eval 8) line 1.
BEGIN failed--compilation aborted at (eval 8) line 1.

        下载DBD::mysql包并安装(请不要使用CPAN安装,否则会出错,因为CPAN安装的话不能加入安装选项)

        # wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz

        # perl Makefile --help     查看安装选项

        # perl Makefile.PL  --libs="-L/usr/local/mysql/lib -lmysqlclient -L/usr/lib -lz " --cflags=-I/usr/local/mysql/include  --mysql_config=/usr/local/mysql/bin/mysql_config  --testhost=127.0.0.1--testsocket=tmp/mysql5.sock --testdb=test --testuser=root --testpassword=123456

         # make ; make install     装成功后,再一次设置数据库连接 

         # mogdbsetup --dbhost=127.0.0.1 dbport=3306 --dbname=mogilefs dbuser=mogile dbpass=123456 --yes
 --------------------------------------------------------------------------------------------------------------------------------------------------

        如果出现以下错误

/usr/local/bin/mogdbsetup: symbol lookup error: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: undefined symbol: mysql_init  

         说明DBD::mysql包安装不正确, 估计是--libs选项不正确 --libs="-L/usr/local/mysql/lib -lmysqlclient -L/usr/lib -lz "

         删除原有DBD::mysql

         # rm -rf /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql

         重新编译安装DBD::mysql

         # perl Makefile.PL  --libs="-L/usr/local/mysql/lib -lmysqlclient -L/usr/lib -lz " --cflags=-I/usr/local/mysql/include  --mysql_config=/usr/local/mysql/bin/mysql_config  --testhost=127.0.0.1--testsocket=tmp/mysql5.sock --testdb=test --testuser=root --testpassword=123456

          再一次设置数据库连接

         # mogdbsetup --dbhost=127.0.0.1 dbport=3306 --dbname=mogilefs dbuser=mogile dbpass=123456 --yes

            OK!!!!!

----------------------------------------------------------------------------------------------------------------------------------------------------

    10. 拷贝配置文件到/etc/mogilefs/下

        # mkdir /etc/mogilefs

        如果这台是Tracker

        # cp /usr/local/src/mogileFS/trunk/server/conf/mogilefsd.conf /etc/mogilefs/     ---mogilefs主配置文件(tracker的)

        如果这台是Host

        # cp /usr/local/src/mogileFS/trunk/server/conf/mogstored.conf /etc/mogilefs/   ---Storage Server的配置文件(host的)

 

 

三. 启动Tracker

    1.修改配置文件参数 (不多说)

         # vi /etc/mogilefs/mogilefsd.conf
         数据库监听地址不要使用127.0.0.1不然 su mogile -c "mogilefsd -c /etc/mogilefs/mogiled.conf --deamon" 启动会报错

         listen=127.0.0.1:7001   把监听地址改成0.0.0.0或者网卡的地址

    2. 启动mogilefsd

         # su mogile -c "mogilefsd  -c /etc/mogilefs/mogilefsd.conf --daemon"

          报错

Can't locate MogileFS/RebalancePolicy/DrainDevices.pm in @INC (@INC contains: lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . /usr/lib/perl5/site_perl/5.8.8/mogdeps) at /usr/lib/perl5/site_perl/5.8.8/MogileFS/Worker/Replicate.pm line 14.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/MogileFS/Worker/Replicate.pm line 14.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/MogileFS/Server.pm line 61.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/MogileFS/Server.pm line 61.
Compilation failed in require at /usr/local/bin/mogilefsd line 16.
BEGIN failed--compilation aborted at /usr/local/bin/mogilefsd line 16.

          解决办法

          下载 http://cpansearch.perl.org/src/BRADFITZ/mogilefs-server-2.17/lib/MogileFS/RebalancePolicy/DrainDevices.pm
          放进 /usr/lib/perl5/site_perl/5.8.8/MogileFS/RebalancePolicy/

          如果目录不存在则 # mkdir /usr/lib/perl5/site_perl/5.8.8/MogileFS/RebalancePolicy/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值