- 论坛徽章:
- 0
|
安装步骤
获得MogileFS
由于我的安装环境无法上外网,故先下载到本地机器上,再Ftp到虚拟机上安装.下载 svn-1.4.5-setup.exe(window版)
建本地目录 mogilefs-src
svn checkout
http://code.sixapart.com/svn/mogilefs/trunk
安装Database
下载 mysql-5.1.22-rc.tar.tar 并上传到 虚拟机.
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure –prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db –user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe –user=mysql &
或者你用.rpm的包来安装都可以,总之就是要安装正确,并且可以用就行了.
启动mysql,输入下面命令创建MogileFS需要的databse(其实我在安装过程中发现,下面这步可以不用做,后面的命令会自动创建).
# mysql
mysql> CREATE DATABASE mogilefs;
mysql> GRANT ALL ON mogilefs.* TO ‘mogile’@'%’;
mysql> SET PASSWORD FOR ‘mogile’@'%’ = OLD_PASSWORD( ’sekrit’ );
mysql> FLUSH PRIVILEGES;
mysql> quit
安装 Trackers and Storage Servers
就是把下载下来的MogileFS源码上传到虚拟机上了,我是放在/home/zhoucw目录下面,输入
# cd trunk/server/
# perl Makefile.PL
这个时候,系统会提醒你要先安装如下包,我的提示是这样的:
Warning: prerequisite Danga::Socket 1.56 not found.
Warning: prerequisite Gearman::Client 1.07 not found.
Warning: prerequisite Gearman::Client::Async 0.93 not
Warning: prerequisite Gearman::Server 1.08 not found.
Warning: prerequisite Net::Netmask 0 not found.
Warning: prerequisite Perlbal 1.53 not found.
Warning: prerequisite Sys::Syscall 0.22 not found.
那就尽量找一样的版本来装,不要只讨苦事.到
http://danga.com/dist/
去下载,如果在安装上面包的过程,系统什么东西的话,都到
http://cpan.org/
去找吧.基本都有.
对了,你的perl版本很关键,一定要用perl5.8.8,我开始就是用的perl5.8.0没有安装成功.
# make
# make test
# make install
如果在make test出现文件路径找不到的错误的话,可以不用理会,继续安装就是了.
接下来我安装了一些工具,其实这不是必须的,不过为了测试用,还是装一下.
# cd trunk/utils/
# perl Makefile.PL
# make
# make test
# make install
如果碰到包没有安装的问题,都可以参照上面步骤的方法解决.我会把要用到的包都放上去.
如果一切顺利,MogileFS安装就结束了.
配置系统
数据库的配置
在 ‘ trunk/server’ 目录下面有个工具叫 ‘mogdbsetup’ ,用它可以自动配置数据库.我虚拟机的IP地址是 192.200.6.111
#mogdbsetup –dbhost=192.200.6.111 –dbname=mogilefs –dbuser=mogile –dbpassword=sekrit
出现确认提示的时候,就填 y.
Tracker配置
新建文件 at /etc/mogilefs/mogilefsd.conf.,文件内容,
db_dsn DBI:mysql:mogilefs
db_user mogile
db_pass sekrit
conf_port 6001
listener_jobs 5
db_dsn指向的是你数据库的位置,如果你数据库不在同一个机器上,请改为:
db_dsn DBI:mysql:mogilefs:mogiledb.yourdomain.com
mogiledb.yourdomain.com是你机器的名,用ip地址应该也可以吧.
由于mogilefsd不能用root用户启动.所以添加mogile用户.
# adduser mogile
在配置下面以前先启动 trackers server.
# su mogile
mogilefsd -c /etc/mogilefs/mogilefsd.conf –daemon
Storage Server 配置
建个存放文件的目录
# mkdir /var/mogdata
生成配置文件 at /etc/mogilefs/mogstored.conf内容是
httplisten=0.0.0.0:7500
mgmtlisten=0.0.0.0:7501
docroot=/var/mogdata
用 ‘mogadm’工具将 storage server 加到数据库中.
# mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 host add mogilestorage –ip=192.200.8.111 –port=7500 –status=alive
由于我是在一台机器上配,故 trackers的地址和ip地址是一样的,你们在配的时候要根据实际情况来.
用下面命令来检测是否成功.
mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 host list
加入一个设备到你的storage server.
mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 device add mogilestorage 1
用下面命令来检测是否成功.
mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 device list
在存放文件的目录下面在建个目录
# mkdir -p /var/mogdata/dev1
运行MogileFS
启动 storage server
# mogstored –daemon
这里可能需要打一个包
perl-IO-AIO-2.51-1.el5.rf.x86_64.rpm
启动 Trackers(上面已经启动了,就不用再起了)
su mogile
mogilefsd -c /etc/mogilefs/mogilefsd.conf –daemon
查看你所有的服务都起来没有
ps -ef | grep mogilefsd,
ps -ef | grep mogstored
大功告成.
测试阶段
生成domain
# mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 domain add testdomain
加一个 class 到domain
mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 class add testdomain testclass
写一个perl文件试一下test.pl
use MogileFS::Client;
my $mogfs = MogileFS::Client->new(domain => ‘testdomain’,
hosts => ['192.200.8.111:6001'],
root =>’/var/mogdata’,);
my $fh = $mogfs->new_file(”file_key”, “testclass”);
die $fh unless $fh->print($mogfs->readonly);
my $content = “test_file.exe”;
@num = $mogfs->store_content(”file_key”,”testclass”,$content);
print “@num \n”;
my $file_contents = $mogfs->get_file_data(”file_key”);
print “$file_contents \n”;
#$mogfs->delete(”file_key”);
$fh->print($file_contents);
@urls = $mogfs->get_paths(”file_key”);
print “@urls \n”;
die $mogfs->errstr unless $fh->close;
返回的内容是
[root@TESTZHOU MFSC]# perl test.PL
13
SCALAR(0×740d9f0)
http://192.200.8.111:7500/dev1/0/000/000/0000000032.fid
需要下载的包名
IO-AIO-2.51.tar.gz或perl-IO-AIO-2.51-1.el5.rf.x86_64.rpm
Gearman-Server-1.08.tar.tar
Perlbal-1.54.tar.tar
Gearman-Client-Async-0.93.tar.tar
MogileFS-Client-1.08.tar.tar
Net-Netmask-1.9015.tar.tar
Gearman-1.07.tar.tar
Danga-Socket-1.56.tar.tar
Sys-Syscall-0.22.tar.tar
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2914/showart_1134573.html |
|