`
zhoucw
  • 浏览: 21429 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Mogile安装实践

阅读更多

我已经自己建了网站:请大家到我的网站看贴子.
http://www.playits.cn

 

  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没有安装成功.
tar -xzvf  Sys-Syscall-0.22.tar.tar
rpm –ivh  perl-IO-AIO-2.51-1.el5.rf.x86_64.rpm
# 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.1.104
  #mogdbsetup --dbhost=192.200.1.104 --dbname=mogilefs --dbuser=mogile --dbpassword=sekrit
   出现确认提示的时候,就填 y.
Tracker配置
   新建文件  /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.1.104:6001 host add mogilestorage --ip=192.200.1.104 --port=7500 --status=alive
由于我是在一台机器上配,trackers的地址和ip地址是一样的,你们在配的时候要根据实际情况来.
用下面命令来检测是否成功.
mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=192.200.1.104:6001 host list
 
加入一个设备到你的storage server.
mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=192.200.1.104:6001 device add mogilestorage 1
用下面命令来检测是否成功.
mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=192.200.1.104: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.1.104:6001 domain add testdomain
  加一个 class domain
 mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=192.200.1.104: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(0x740d9f0) 
http://192.200.8.111:7500/dev1/0/000/000/0000000032.fid
 
~
Mysql复制配置
  •    假定你ip:192.200.1.104,想要创建用户名为repl的一个账户,从服务器可以使用该账户从你的域内的任何主机使用密码slavepass来访问主服务器。要创建该 账户,可使用GRANT语句:
  • mysql> GRANT REPLICATION SLAVE ON *.*   
  • ->TO 'repl'@'%' IDENTIFIED BY 'slavepass';
  •  
  •     在主服务器上执行FLUSH TABLES WITH READ LOCK语句来刷新表,同时阻止写操作.
  • mysql> FLUSH TABLES WITH READ LOCK
  • 创建快照最简单的途径是使用归档程序对主服务器上的数据目录中的数据库进行二进制备份。要使用tar来创建包括所有数据库的归档文件,进入主服务器的数据目录,然后执行命令
  • shell> tar -cvf /tmp/mysql-snapshot.tar .
  • 然后将归档文件复制到从服务器的/tmp目录。
  • 在从服务器上,进入数据库的数据目录,并使用下述命令解压缩归档文件:
  • shell> tar -xvf /tmp/mysql-snapshot.tar
  •  
  • FLUSH TABLES WITH READ LOCK所置读锁定有效时(这就是刚刚所说不要退出mysql提示符的原因),读取主服务器上当前的二进制日志名和偏移量值,直接输入命令SHOW MASTER STATUS.
  • mysql > SHOW MASTER STATUS;
  •  
  •    File列显示日志名,而Position显示偏移量。在该例子中,二进制日志值为mysql-bin.000045偏移量为947。记录该值。以后设置从服务器时需要使用这些值。它们表示复制坐标,告诉从服务器应从该点开始从主服务器上进行更新。
  • 取得快照并记录日志名和偏移量后,可以在主服务器上重新启用写活动:
  • mysql> UNLOCK TABLES
  •   
  • 确保主服务器上my.cnf文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项,其中master_id必须为1232–1之间的一个正整数值。例如:
  •     [mysqld]
  •      log-bin=mysql-bin
  •      server-id=1
  •  
  •    停止从服务器
  •  
  • my.cnf文件中添加下面的行:
  •      [mysqld]
  •      server-id=slave_id
  • slave_id值同Master_id值一样,必须为1232–1之间的一个正整数值。并且,从服务器的ID必须与主服务器的ID不相同。例如:
  • [mysqld]
  • server-id=2
  • 如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。
  • 注意:这里的设置与上面的有很大不同.其实默认的my.cnf中已经有相应的设置,前面已经说过,对于主服务器基本不用修改,对于从服务器,修改也很简单.(其实文件中说的满清楚的,E文好的应该没问题)
  • 必须将主服务器打开的那两个选项注释掉
  • # Replication Master Server (default)
  • # binary logging is required for replication
  • # log-bin=mysql-bin
  • # required unique id between 1 and 2^32 - 1
  • # defaults to 1 if master-host is not set
  • # but will not function as a master if omitted
  • # server-id     = 1
  • 然后把从服务器的对应的选项打开
  • # Replication Slave (comment out master section to use this)
  • ……(省略)
  • # required unique id between 2 and 2^32 - 1
  • # (and different from the master)
  • # defaults to 2 if master-host is set
  • # but will not function as a slave if omitted
  • server-id       = 2 (对于多个从服务器,就依此类推,2,3,4…)
  •  
  •    .启动从服务器。
  • mysqld_safe --user=mysql &
  •  
  • 在从服务器上执行下面的语句:
  • mysql> CHANGE MASTER TO                         
  •     -> MASTER_HOST='192.200.1.104',         
  •            //写主服务器的名称或者IP
  •     -> MASTER_USER='repl',        
  •            //写用来复制的帐号,前面说明过我直接用的root
  •     -> MASTER_PASSWORD=' slavepass ',      
  •       //复制帐号的密码,这里就是指root的密码
  •     -> MASTER_LOG_FILE=' mysql-bin.000008 ',        
  •            //之前记录的日志名
  •     -> MASTER_LOG_POS= 106;        
  •            //之前记录的偏移量
  • 启动从服务器线程:
  •    mysql> START SLAVE
  • 执行这些程序后,从服务器应连接主服务器,并补充自从快照以来发生的任何更新。
  •  
  •    在从服务器上查看
  • mysql> SHOW SLAVE STATUS\G
  •  
分享到:
评论

相关推荐

    MySQL-5.6.37-MogileFS的相关依赖包

    MogileFS(Mogile File System)则是一个分布式文件系统,用于存储和检索大量文件,通常与Web服务、媒体托管等场景配合使用。在安装和配置 MySQL 5.6.37 与 MogileFS 的集成时,了解它们的相关依赖包是至关重要的。 ...

    Nginx+MogileFS

    1. **安装与配置MariaDB**:MariaDB作为MogileFS的数据库,需要进行安装与配置。包括创建用户、授权以及初始化数据库等工作。 2. **配置Tracker**:需要配置tracker节点,使其能够正常工作并与数据库连接。 3. **...

    使用Mogilefs做海量图片的分布式存储 安装配置.doc

    3. **数据库安装**:推荐使用MySQL,通过RPM安装后设置权限,如创建mogile用户并分配相应的权限。 4. **安装Perl模块**:包括perl-DBI、perl-DBD-MySQL、perl-Compress-Zlib等,以支持Tracker Server、Storage和...

    MogileFs文件系统部署方案v1.1

    - **Tracker节点**:Mogile_Tracker01 (170.10.10.170) 和 Mogile_Tracker01 (170.10.10.171)。 - **Store节点**:Mogile_Stored01 (170.10.10.180) 和 Mogile_Stored02 (170.10.10.181)。 - **MySQL Cluster节点...

    jqm_esst:jQuery Mogile 基础培训

    jQuery 移动版 这是一个用于开发 jQuery Mobile 应用程序的存储库。 它基于 Joe Marini 的 lynda.com 在线课程:[jQuery Mobile Essential Training] ( ) 指示 资源

    Java高级架构之FastDFS分布式文件集群详解

    4. MogileFS(Mogile分布式文件系统):MogileFS是一个基于Mogile的分布式文件系统,能够提供高性能的文件存储服务。 FastDFS的安装和配置: 1. 安装依赖项:gcc、gcc-c++、make、cmake、libevent等。 2. 下载...

    mogileFS帮助文档

    MogileFS的安装包括数据库的设置、跟踪器和存储节点的配置,以及客户端的接入。具体步骤涉及数据库的初始化、配置文件的编辑、服务的启动等环节,需严格按照官方文档指导进行。 #### 五、MogileFS的测试 MogileFS...

    豆瓣网站的技术总监洪强宁先生和产品经理张贝宁女士采访稿-豆瓣架构

    mogile FS用于分布式文件存储,支持大规模的图片和其他静态资源服务;Xapian用于搜索引擎,提供高效的全文检索功能;而Gentoo Linux作为操作系统,提供了高度定制化的环境;spreadps则可能涉及到了进程间通信或者...

    从MySQL到MongoDB——视觉中国的NoSQL之路.pdf

    使用Mogile FS进行分布式存储;进一步优化MySQL的性能,同时增加MySQL节点等。 NoSQL的方案 但是,很快发现,即便实施了上述方案,也很难完全解决存在的问题。于是,我们投向了NoSQL的方案。我们对NoSQL的候选...

    mogdash:MogileFS 的 dashing.io 小部件

    将 jobs/trackers.rb 文件复制到您的作业文件夹将 widgets/mogile 文件夹复制到您的 widgets 文件夹将 tracker.rb 文件复制到您的 lib 文件夹编辑jobs/tracker.rb 文件。 在顶部,您将看到一个跟踪器阵列。 在那里...

    MogileFS-Client.zip_client

    MogileFS,全称为Mogile File System,是由Danga Interactive公司开发的一个开源的、可扩展的分布式文件系统。它的设计目标是提供高可用性和容错性,同时保持简单易用的API,适用于存储大量小到中等大小的文件。...

    mogilefs相关

    MogileFS,全称为Mogile File System,是由Danga Interactive公司开发的一种分布式文件系统,主要用于存储和检索大量文件。这个系统设计的目标是提供高可用性、可扩展性和容错性,适合处理海量数据的互联网服务。...

    Hadoop架构设计文档

    - **数据趋势:**随着半结构化数据(如Mogile、Bigtable、HDFS)的增多,Hadoop提供了有效的解决方案来管理和处理这些数据。 - **计算趋势:**MapReduce作为一种新的分析工具,能够处理大规模数据集的复杂运算任务。...

Global site tag (gtag.js) - Google Analytics