Filed under:
MogileFS交流区
-
安装环境
-
虚拟机 VMWARE 安装 86_64-redhat-linux AS5
-
gcc 版本 4.1.2 20070626 (Red Hat 4.1.2-14)
-
安装步骤
-
获得 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 < mysql-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