- 論壇徽章:
- 0
|
安裝步驟
獲得MogileFS
由于我的安裝環(huán)境無法上外網(wǎng),故先下載到本地機(jī)器上,再Ftp到虛擬機(jī)上安裝.下載 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 并上傳到 虛擬機(jī).
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的包來安裝都可以,總之就是要安裝正確,并且可以用就行了.
啟動(dòng)mysql,輸入下面命令創(chuàng)建MogileFS需要的databse(其實(shí)我在安裝過程中發(fā)現(xiàn),下面這步可以不用做,后面的命令會(huì)自動(dòng)創(chuàng)建).
# 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源碼上傳到虛擬機(jī)上了,我是放在/home/zhoucw目錄下面,輸入
# cd trunk/server/
# perl Makefile.PL
這個(gè)時(shí)候,系統(tǒng)會(huì)提醒你要先安裝如下包,我的提示是這樣的:
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/
去下載,如果在安裝上面包的過程,系統(tǒng)什么東西的話,都到
http://cpan.org/
去找吧.基本都有.
對了,你的perl版本很關(guān)鍵,一定要用perl5.8.8,我開始就是用的perl5.8.0沒有安裝成功.
# make
# make test
# make install
如果在make test出現(xiàn)文件路徑找不到的錯(cuò)誤的話,可以不用理會(huì),繼續(xù)安裝就是了.
接下來我安裝了一些工具,其實(shí)這不是必須的,不過為了測試用,還是裝一下.
# cd trunk/utils/
# perl Makefile.PL
# make
# make test
# make install
如果碰到包沒有安裝的問題,都可以參照上面步驟的方法解決.我會(huì)把要用到的包都放上去.
如果一切順利,MogileFS安裝就結(jié)束了.
配置系統(tǒng)
數(shù)據(jù)庫的配置
在 ‘ trunk/server’ 目錄下面有個(gè)工具叫 ‘mogdbsetup’ ,用它可以自動(dòng)配置數(shù)據(jù)庫.我虛擬機(jī)的IP地址是 192.200.6.111
#mogdbsetup –dbhost=192.200.6.111 –dbname=mogilefs –dbuser=mogile –dbpassword=sekrit
出現(xiàn)確認(rèn)提示的時(shí)候,就填 y.
Tracker配置
新建文件 at /etc/mogilefs/mogilefsd.conf.,文件內(nèi)容,
db_dsn DBI:mysql:mogilefs
db_user mogile
db_pass sekrit
conf_port 6001
listener_jobs 5
db_dsn指向的是你數(shù)據(jù)庫的位置,如果你數(shù)據(jù)庫不在同一個(gè)機(jī)器上,請改為:
db_dsn DBI:mysql:mogilefs:mogiledb.yourdomain.com
mogiledb.yourdomain.com是你機(jī)器的名,用ip地址應(yīng)該也可以吧.
由于mogilefsd不能用root用戶啟動(dòng).所以添加mogile用戶.
# adduser mogile
在配置下面以前先啟動(dòng) trackers server.
# su mogile
mogilefsd -c /etc/mogilefs/mogilefsd.conf –daemon
Storage Server 配置
建個(gè)存放文件的目錄
# mkdir /var/mogdata
生成配置文件 at /etc/mogilefs/mogstored.conf內(nèi)容是
httplisten=0.0.0.0:7500
mgmtlisten=0.0.0.0:7501
docroot=/var/mogdata
用 ‘mogadm’工具將 storage server 加到數(shù)據(jù)庫中.
# 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
由于我是在一臺(tái)機(jī)器上配,故 trackers的地址和ip地址是一樣的,你們在配的時(shí)候要根據(jù)實(shí)際情況來.
用下面命令來檢測是否成功.
mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 host list
加入一個(gè)設(shè)備到你的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
在存放文件的目錄下面在建個(gè)目錄
# mkdir -p /var/mogdata/dev1
運(yùn)行MogileFS
啟動(dòng) storage server
# mogstored –daemon
這里可能需要打一個(gè)包
perl-IO-AIO-2.51-1.el5.rf.x86_64.rpm
啟動(dòng) Trackers(上面已經(jīng)啟動(dòng)了,就不用再起了)
su mogile
mogilefsd -c /etc/mogilefs/mogilefsd.conf –daemon
查看你所有的服務(wù)都起來沒有
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
加一個(gè) class 到domain
mogadm –lib=/usr/lib/perl5/5.8.8 –trackers=192.200.8.111:6001 class add testdomain testclass
寫一個(gè)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;
返回的內(nèi)容是
[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博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/2914/showart_1134573.html |
|