Mogile安装实践

  • 安装环境

  •         虚拟机 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

你可能感兴趣的:(vmware,虚拟机,mysql,SVN,perl)