Linux下的实时数据镜像[3]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

    可从SGI的网站下载FAM和IMON,具体详情请查看后面的资源列表。IMON是一个内核补丁,内核通过它监视内部信息节点。安装补丁的方法如下:在内核的源文件目录下运行补丁程序
  
  
  cd/usr/src/linux
  pathch –pi  
  
  
    然后运行config或menuconfig,在”文件系统选择”这部分选择”Inode Monitor(imon) support (EXPERIMENTAL)”,编译内核重启系统。编译FAM本身是很简单的,在fam的源文件目录下运行./configure和make all install就大功告成了。
  
    下面我们将要安装SGI::FAM调用的Perl模块,我们可以用perl来编写事件处理程序
  
    安装 SGI::FAM Perl模块
  
    你不会真的要用C/C++来编程吧?我不了解你的情况,但是我很懒惰,而且我这个人也缺乏耐心,所以我用perl编写复制管理程序
  
    有关下载安装SGI::FAM的问题可以找Jesse N.Glick(jglick@sig.bsh.com)联系。安装这些模快很简单,运行CPAN模块:
  
  
  perl –MCPAN –e shell
  install SGI::FAM
  
  
  
    这样就安装了SGI::FAM及全部必须模块。
  
    用fam_mirror实现复制
  
    fam_mirror是我写的用于自动复制的script程序。要了解fam_mirror的具体情况,你可以在http://www.linuxfocus.org/common/src/article199/fam_mirror.html去查看,如果要下载fam_mirror,请到http://www.linuxfocus.org/common/src/article199/fam_mirror。你可以重新编辑这个程序,将$replicaHosts改为当前的主机、$rsh改为当前使用的shell,也可以将$rsync改为实现相同功能的命令。
  
    下面我们来看第一个方案:
  
    有两台机器做WEB服务器(web1,web2)。其中一个为主服务器(如web1),另外一个为从服务器(web2)。第一个FTP服务器是web1,web2上根本不能运行FTP服务(否则,系统工作于备份方式时用户还可能会向文件中写数据)。
  
    在两台服务器中,web文档都放在/var/www目录中,在两台机器中设置rsh或ssh,使web1无需口令就可以在web2上运行远程命令。我通常是在复制主机中的authorized_keys中填加我的ssh_key来实现这个要求的。将web1的数据远程同步到web2上的命令是:
  
  
  rsync –avz /var/wwwweb2:/var/www/
  
  
  
    编辑fam_mirror文件,将@replicaHosts改为:
  
  
  @replicaHosts=qw(web2)
  
  
  
    在web1上运行fam_mirror:
  
  
  fam_mirror /var/www &
  
  
  
    这样,如果web1上的文件发生了变化,这种变化也会写到web2上的文件中。
  
    现在我们来看看方案2:(系统中有多台WEB服务器
  
    主机linuxweb1、linuxweb2、linuxweb3和linuxweb4都是web服务器。主机Linuxftp 1是ftp服务器(主服务器)。Web主机不向用户开放FTP服务。
  
    在主机linuxftp1上安装fam和imon、SGI::FAM及fam_mirror。在每台主机上置rsh或ssh。linuxftp1无需口令就可以在四台WEB服务器上运行远程命令。
  
    编辑fam_mirror,将@replicaHosts设置为:
  
  
  @replicaHosts=qw(linuxweb1 linuxweb2 linuxweb3 linuxweb4);
  
  
  
    如果有需要也可以改动$rsh和$rsync,假设WEB文本放在各个机器的/var/www目录下。
  
    在linuxftp 1上运行:INIT_MIRROR=1 fam_mirror /var/www &
  

本文关键:Linux下的实时数据镜像
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top