2008年2月4日星期一

简单5个步骤设置Web服务器集群

http://www.bianceng.cn/Servers/web/200712/5794_4.htm

Redhat Linux AS4下安装LAMP与Discuz

http://www.bianceng.cn/OS/Linux/200711/5596.htm
LAMP最简单的配置

  做这个东西,刚开始觉得挺难的,不想试,后来朋友说弄个论坛试试,所以就先试了。本来想先学iptables的。现在先学基础的LAMP.

  看了网上介绍以及鸟哥的东西,安装过程基本如下:

  软件如下:

  Mysql: mysql-4.0.21.tar.gz (刚开始装的是rpm的,可是找不到配置的文件之类的,所以就自己编译了)

  Php:php-4.4.2.tar.gz

  Apache:httpd-2.2.0.tar.bz2

  Discuz!_4.1.0_SC_GBK.zip (都在CU上下载的)

  一、先安装Mysql

mkdir /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql4.0.21.tar.gz -C /usr/local/src
cd /usr/local/src/mysql4.0.21
./configure --prefix=/usr/local/mysql --with-charset='gbk'

  #这里后来看到很多相关的,在安装Discuz!的时候会出现gbk错误,加上--with-charset='gbk'就可以

  make

  make install

  cp support-files/my-medium.cnf /etc/my.cnf

  #(这个文件夹是原来编译的目录下的)询问你是否要覆盖时,输入"y"

  cd /usr/local/mysql

  cd bin

  ./mysql_install_db --user=mysql

  #这儿的user一定是mysql

  chown -R root .

  chown -R mysql var

  chown -R mysql .

  bin/mysqld_safe --user=mysql &

  #也要用mysql用户运行

  #如果这里没什么问题的话,应该是可以了,安装好了。

  再把mysql加入启动:

  #鸟哥是这样讲的:

  開機後立即啟動!

  # vi /etc/rc.d/rc.local

  # 將底下這一行加入這個檔案的最後面一行喔!


  cd /usr/local/mysql; /usr/local/mysql/bin/safe_mysqld --user=mysql &

  # 這樣一來,每次開機就可以自動的啟動 MySQL 囉!

  進階設定內容:

  vi ~/.bashrc 加入

  export PATH=“$PATH: /usr/local/mysql/bin“ //把mysqlin下的命令都加入到系统PATH里

  #这个加入到setup那个系统服务里。

  cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql //复制mysql服务启动项文件。

  chmod +x /etc/rc.d/init.d/mysql //执行权限

  useradd mysql //建mysql用户

  chown -R mysql /usr/local/mysql

  chown -R mysql /etc/rc.d/init.d/mysql //给mysql用户权限

  /sbin/chkconfig --del mysql

  /sbin/chkconfig --add mysql //把mysql放到启动项列表里

  到这里应该是ok了,再作的话可以把接下来论坛的数据库"bbs"建立好。并为mysql的root用户加密码

  #mysqladmin -u root password '123456'

  #mysql -u root -p

  Enter password:

  Welcome to the MySQL monitor. Commands end with ; or g.

  Your MySQL connection id is 476 to server version: 4.1.20-log

  Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

  mysql> create database bbs;

  要查看的话可以

  mysql>show databases; 应该是出现三个数据库

  二、安装Apache

  mkdir /usr/local/apache

  tar -jxvf Apache:httpd-2.2.0.tar.bz2 -C /usr/local/src

  ./configure --prefix=/usr/localapache --enable-module=most --enable-shared=max --enable-so


#--enable-so这个特别重要

  make

  make install

  #启动文件为 /usr/local/apache/bin/apachectl start (那个httpd -k start一样的)

  vi conf/httpd.conf

  #修改默认启动页

  DirectoryIndex index.html index.htm default.htm default.html index.php index.php3 index.jsp

  加入启动:

  将/usr/local/apache2/bin/apachectl start (我用的是/usr/local/apache2/bin/httpd -k start)

  放在 /etc/rc.d/rc.local里

  #鸟哥上是这样讲的:

  /etc/rc.d/rc.local里加,使mysql和apache启动

  cd /usr/local/mysql;/usr/local/mysql/bin/safe_mysql --user=mysql &

  /usr/local/apache/bin/httpd -k start &

  三、安装PHP

  mkdir /usr/local/php4

  tar -zxvf php-4.4.2.tar.gz -C /usr/local/src

  cd /usr/local/src

  ./configure --prefix=/usr/local/php4 --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/

  bin/apxs --with-config-file-path=/usr/local/php4

  make

  make install

  cp php.ini-dist /usr/local/php4/php.ini

  vi /usr/local/apache/config/httpd.conf

  #启动Apache中的php选项,找到下面两行

  LoadModule php4_module modules/libphp4.so

  AddType application/x-httpd-php .php

  测试PHP

  重起下Apache: /usr/local/apache/bin/apachectl stop/start

  cd /usr/local/apache/htdocs

  vi test.php

  输入:

  <?php

  phpinfo( );

  ?>

  保存后,/test.php看效果图~~~

  足够详细了。

  四、安装Discuz!

  解压后把upload放到默认的htdocs下,把所有文件权限改为777,再修改config.inc.php

  vi /usr/local/apache/htdocs/config.inc.php

  数据库设置为刚开始建立的bbs,用户为root……

  这样之前没什么问题的话,输入http://yourdomain/install.php就可以开始配置了。由于之前配置mysql时加入了gbk支持,所以这里的设置应该是没什么问题了。

  当然你要先建好了DNS,传文件的时候用samba (我用samba的,应该是ftp).

  完了,足够详细了,下次再配应该没什么问题了。



linux下安装vmware过程详解

linux下安装vmware过程详解

来源:网络 作者:未知

由于项目需要,要在Linux下虚拟一个Windows,经过查找些资料,发现可一用VMware来实现,当然还有其他一些虚拟机可以使用如Win4lin,bochs等,但经过试用,只有VMware还好用.以下就是安装的步骤.

首先到https://www.vmware.com/ 下载最新的安装包,比如VMware-workstation-4.0.5-6030.tar.gz,假设放在“/tmp"下.然后使用下面的命令解压后安装.

1、tar –zxvf VMware-workstation-4.0.5-6030.tar.gz

2、cd ./vmware-distrib

3、./vmware-install.pl

下面按照提示选择就可以了,如果没有特殊要求,直接回车即可.

4、安装完启动VM,提示符下输入命令:vmware,或者按照提示输入就可以起动,就可以看到VMware的界面了.

如果是用rpm包安装:

1、rpm -ivh VMware-workstation-4.0.5-6030.i386.rpm

Preparing... ########################################### [100%]

1:VMwareWorkstation ###########################################[100%]

2、安装完现用下面命令启动:vmware &

3、提示要配置vmware-install.pl,仔细查看“vmware-install.pl”他的位置,并进入他的文件夹,用命令./vmware-install.pl,进行配置,根据提示做就行。

4、完成之后就可以用命令:“vmware”启动了。

起动后就可以添加的你自己的虚拟机了,我这里添加的windows 2000 prwfessnal,把虚拟机的CDROM设置成光驱,就可以从光盘安装操作系统了.

当然这里有很关键的一步,就是先到VMware的网站申请30天试用的序列号,在打开虚拟机之前要输入注册号,否则没办法Pow on。

OK,现在你可以使用了。

BIND+SNMP+cacti

BIND設定

[root@fedora ~]# vi /var/named/chroot/etc/named.conf ← BIND設定ファイル編集
options {
#listen-on port 53 { 127.0.0.1; };
#listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
zone-statistics yes; ← 追加
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; localnets; };
recursion yes;
forwarders{
192.168.1.1;
};

[root@fedora ~]# /etc/rc.d/init.d/named reload ← BIND設定反映
named を再読み込み中: [ OK ]

■BINDアクセス統計監視グラフ追加

(1)BINDアクセス統計収集設定
[root@fedora ~]# wget http://www.bayour.com/bind9-snmp/bind9-snmp_1.7.tar.bz2 ← BINDアクセス統計収集機能ダウンロード

[root@fedora ~]# tar jxvf bind9-snmp_1.7.tar.bz2 ← BINDアクセス統計収集機能展開

[root@fedora ~]# cp bind9-snmp-1.7/BAYOUR-COM-MIB.txt /usr/share/snmp/mibs/
 ← BINDアクセス統計収集用MIB設定ファイルを所定のディレクトリへコピー

[root@fedora ~]# cp bind9-snmp-1.7/BayourCOM_SNMP.pm /usr/lib/perl5/site_perl/
 ← BINDアクセス統計収集用Perlスクリプトを所定のディレクトリへコピー

[root@fedora ~]# cp bind9-snmp-1.7/bind9-snmp-stats.pl /etc/snmp/ ← BINDアクセス統計収集スクリプトを所定のディレクトリへコピー

[root@fedora ~]# vi /etc/snmp/bind9-snmp-stats.pl ← BINDアクセス統計収集スクリプト編集
my $CFG_FILE = "/etc/bind/.bindsnmp";
↓
my $CFG_FILE = "/etc/snmp/.bindsnmp"; ← BINDアクセス統計収集スクリプト設定ファイル場所変更

[root@fedora ~]# vi /etc/snmp/.bindsnmp ← BINDアクセス統計収集スクリプト設定ファイル作成
DEBUG=4
DEBUG_FILE=/var/log/bind9-snmp-stats.log
STATS_FILE=/var/named/chroot/var/named/data/named_stats.txt
STATS_FILE_OWNER_GROUP=named.named
RNDC=/usr/sbin/rndc
DELTA_DIR=/var/tmp/

[root@fedora ~]# cat bind9-snmp-1.7/snmp.conf.stub >> /etc/snmp/snmp.conf ← BINDアクセス統計収集用SNMP設定追加

[root@fedora ~]# cat bind9-snmp-1.7/snmpd.conf.stub >> /etc/snmp/snmpd.conf ← BINDアクセス統計収集用SNMPD設定追加

[root@fedora ~]# /etc/rc.d/init.d/snmpd restart ← Net-SNMP再起動
snmpd を停止中: [ OK ]
snmpd を起動中: [ OK ]

[root@fedora ~]# cp bind9-snmp-1.7/bind9-stats_*.xml /var/www/cacti/resource/snmp_queries/
 ← BINDアクセス統計収集用xmlを所定のディレクトリへコピー

[root@fedora ~]# rm -rf bind9-snmp* ← BINDアクセス統計収集機能展開先ディレクトリを削除

(2)BINDアクセス統計監視グラフ追加※Webブラウザから行う
Cacti用BINDアクセス統計監視グラフテンプレートをダウンロード&展開する。

http://サーバー名/cacti/へアクセスしてadminでログインする。

consoleタブ
Import Templates
Import Template from Local FileでCacti用BINDアクセス統計監視グラフテンプレート展開先フォルダ内のcacti_host_template_bind9_snmp_machine.xmlを選択
save

consoleタブ
Devices⇒Localhost
Host Template・・・Bind9 SNMP Machine選択
save
Create Graphs for this Host
Data Query [SNMP - Local - Bind9 Statistics - totals - QUERY] を全てチェック
create

■BINDアクセス統計監視グラフ確認

約10分後graphsタブをクリックしてグラフが表示されることを確認。

2008年2月3日星期日

heartbeat热备服务集群架设笔记

heartbeat热备服务集群架设笔记
[ 作者: 加入时间:2007-10-19 12:40:54 来自:Linux联盟收集整理 ]

www.xxlinux.com
第一次接触集群,用了快三天的时间了还没真正实现点什么,在CU上也相对比较少这方面的资料,但为了你我方便还是记下点东西来。下面是我从网上收集的一些相关资料。RPCLinux联盟
RPCLinux联盟
首先说下集群的概念吧.RPCLinux联盟
可以把Linux集群分为三类。一类是高可用性集群,运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集群中比较著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。第二类是负载均衡集群,目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量的Web服务。负载均衡集群往往也具有一定的高可用性特点。Turbolinux Cluster Server、Linux Virtual Server都属于负载均衡集群。另一类是超级计算集群,按照计算关联程度的不同,又可以分为两种。一种是任务片方式,要把计算任务分成任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果。另一种是并行计算方式,节点之间在计算过程中大量地交换数据,可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类型的数据处理工作。有了超级计算集群软件,企业利用若干台PC机就可以完成通常只有超级计算机才能完成的计算任务。这类软件有Turbolinux EnFusion、SCore等。 RPCLinux联盟
RPCLinux联盟
到网上找了找相关软件,于是觉得heartbeat挺不错的,配置有简单方便。那介绍下heartbeat吧。RPCLinux联盟
heartbeat 自动把ip 服务 通过心跳监测 主服务器瘫痪时 自动切到备用机器 做高可用性集群用。RPCLinux联盟
大致阐述一下heartbeat的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。RPCLinux联盟
RPCLinux联盟
软件准备:RPCLinux联盟
heartbeat-2.0.6.tar.gz 下载地址:http://download.chinaunix.net/download.php?id=24742&ResourceID=67RPCLinux联盟
我在rh环境下编译过程中缺少libnet库,翻遍光盘网上也找了好多好久都没有合适的最后发现软来用FC里边的RPM包libnet-devel- 1.1.2.1-6.fc4.i386.rpm挺管用!下载地址:http: //rpmfind.net/linux/rpm2html/search.php?query=libnet-develRPCLinux联盟
RPCLinux联盟
编译完成后需要找到三个主配置文件,复制到/etc/ha.d/ha.cf、/etc/ha.d/haresources、/etc/ha.d/authkeys。RPCLinux联盟
RPCLinux联盟
三个文件的主要配置如下: RPCLinux联盟
/etc/ha.d/ha.cf RPCLinux联盟
# If any of debugfile, logfile and logfacility are defined then they RPCLinux联盟
# will be used. If debugfile and/or logfile are not defined and RPCLinux联盟
# logfacility is defined then the respective logging and debug RPCLinux联盟
# messages will be loged to syslog. If logfacility is not defined RPCLinux联盟
# then debugfile and logfile will be used to log messges. If RPCLinux联盟
# logfacility is not defined and debugfile and/or logfile are not RPCLinux联盟
# defined then defaults will be used for debugfile and logfile as RPCLinux联盟
# required and messages will be sent there. RPCLinux联盟
# RPCLinux联盟
# File to wirte debug messages to RPCLinux联盟
debugfile /var/log/ha-debug RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# File to write other messages to RPCLinux联盟
# RPCLinux联盟
logfile /var/log/ha-log RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# Facility to use for syslog()/logger RPCLinux联盟
# RPCLinux联盟
logfacility local0 RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# keepalive: how many seconds between heartbeats RPCLinux联盟
# RPCLinux联盟
keepalive 2 RPCLinux联盟
# RPCLinux联盟
# deadtime: seconds-to-declare-host-dead RPCLinux联盟
# RPCLinux联盟
deadtime 10 RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# Very first dead time (initdead) RPCLinux联盟
# RPCLinux联盟
# On some machines/OSes, etc. the network takes a while to come up RPCLinux联盟
# and start working right after you've been rebooted. As a result RPCLinux联盟
# we have a separate dead time for when things first come up. RPCLinux联盟
# It should be at least twice the normal dead time. RPCLinux联盟
# RPCLinux联盟
initdead 120 RPCLinux联盟
# RPCLinux联盟
# hopfudge maximum hop count minus number of nodes in config RPCLinux联盟
#hopfudge 1 RPCLinux联盟
# RPCLinux联盟
# serial serialportname ... RPCLinux联盟
serial /dev/ttyS0 RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# Baud rate for serial ports... RPCLinux联盟
# RPCLinux联盟
baud 19200 RPCLinux联盟
# RPCLinux联盟
# What UDP port to use for communication? RPCLinux联盟
# RPCLinux联盟
udpport 694 RPCLinux联盟
# RPCLinux联盟
# What interfaces to heartbeat over? RPCLinux联盟
# RPCLinux联盟
udp eth1 RPCLinux联盟
# RPCLinux联盟
# Set up a multicast heartbeat medium RPCLinux联盟
# mcast [dev] [mcast group] [port] [ttl] [loop] RPCLinux联盟
# RPCLinux联盟
# [dev] device to send/rcv heartbeats on RPCLinux联盟
# [mcast group] multicast group to join (class D multicast address RPCLinux联盟
# 224.0.0.0 - 239.255.255.255) RPCLinux联盟
# [port] udp port to sendto/rcvfrom (no real reason to differ RPCLinux联盟
# from the port used for broadcast heartbeats) RPCLinux联盟
# [ttl] the ttl value for outbound heartbeats. this effects RPCLinux联盟
# how far the multicast packet will propagate. (0-255) RPCLinux联盟
# [loop] toggles loopback for outbound multicast heartbeats. RPCLinux联盟
# if enabled, an outbound packet will be looped back and RPCLinux联盟
# received by the interface it was sent on. (0 or 1) RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
mcast eth1 225.0.0.1 694 1 1 RPCLinux联盟
# RPCLinux联盟
# Watchdog is the watchdog timer. If our own heart doesn't beat for RPCLinux联盟
# a minute, then our machine will reboot. RPCLinux联盟
# RPCLinux联盟
watchdog /dev/watchdog RPCLinux联盟
# RPCLinux联盟
# "Legacy" STONITH support RPCLinux联盟
# Using this directive assumes that there is one stonith RPCLinux联盟
# device in the cluster. Parameters to this device are RPCLinux联盟
# read from a configuration file. The format of this line is: RPCLinux联盟
# RPCLinux联盟
# stonith RPCLinux联盟
#333 RPCLinux联盟
# NOTE: it is up to you to maintain this file on each node in the RPCLinux联盟
# cluster! RPCLinux联盟
# RPCLinux联盟
#stonith baytech /etc/ha.d/conf/stonith.baytech RPCLinux联盟
# RPCLinux联盟
# STONITH support RPCLinux联盟
# You can configure multiple stonith devices using this directive. RPCLinux联盟
# The format of the line is: RPCLinux联盟
# stonith_host RPCLinux联盟
# is the machine the stonith device is attached RPCLinux联盟
# to or * to mean it is accessible from any host. RPCLinux联盟
# is the type of stonith device (a list of RPCLinux联盟
# supported drives is in /usr/lib/stonith.) RPCLinux联盟
# are driver specific parameters. To see the RPCLinux联盟
# format for a particular device, run: RPCLinux联盟
# stonith -l -t RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# Note that if you put your stonith device access information in RPCLinux联盟
# here, and you make this file publically readable, you're asking RPCLinux联盟
# for a denial of service attack ;-) RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
#stonith_host * baytech 10.0.0.3 mylogin mysecretpassword RPCLinux联盟
#stonith_host ken3 rps10 /dev/ttyS1 kathy 0 RPCLinux联盟
#stonith_host kathy rps10 /dev/ttyS1 ken3 0 RPCLinux联盟
# RPCLinux联盟
# Tell what machines are in the cluster RPCLinux联盟
# node nodename ... -- must match uname -n RPCLinux联盟
node xuanfei1-server RPCLinux联盟
node xuanfei2-server RPCLinux联盟
RPCLinux联盟
/etc/ha.d/haresources RPCLinux联盟
# RPCLinux联盟
#just.linux-ha.org 135.9.216.110 RPCLinux联盟
# RPCLinux联盟
#------------------------------------------------------------------- RPCLinux联盟
# RPCLinux联盟
# Assuming the adminstrative addresses are on the same subnet... RPCLinux联盟
# A little more complex case: One service address, default subnet RPCLinux联盟
# and netmask, and you want to start and stop http when you get RPCLinux联盟
# the IP address... RPCLinux联盟
# RPCLinux联盟
#just.linux-ha.org 135.9.216.110 http RPCLinux联盟
#------------------------------------------------------------------- RPCLinux联盟
# RPCLinux联盟
# A little more complex case: Three service addresses, default subnet RPCLinux联盟
# and netmask, and you want to start and stop http when you get RPCLinux联盟
# the IP address... RPCLinux联盟
# RPCLinux联盟
#just.linux-ha.org 135.9.216.110 135.9.215.111 135.9.216.112 httpd RPCLinux联盟
#------------------------------------------------------------------- RPCLinux联盟
# RPCLinux联盟
# One service address, with funny subnet and bcast addr RPCLinux联盟
# Stop and start httpd service with the subnet address RPCLinux联盟
# RPCLinux联盟
#just.linux-ha.org 135.9.216.3/4/135.9.216.12 httpd RPCLinux联盟
# RPCLinux联盟
#------------------------------------------------------------------- RPCLinux联盟
# RPCLinux联盟
# An example where a shared filesystem is to be used. RPCLinux联盟
# Note that multiple aguments are passed to this script using RPCLinux联盟
# the delimiter '::' to separate each argument. RPCLinux联盟
# RPCLinux联盟
#node1 10.0.0.170 Filesystem::/dev/sda1::/data1::ext2 RPCLinux联盟
RPCLinux联盟
RPCLinux联盟
xuanfei.com 10.0.0.10 httpd smb RPCLinux联盟
RPCLinux联盟
RPCLinux联盟
/etc/ha.d/authkeys RPCLinux联盟
# Authentication file. Must be mode 600 RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# Must have exactly one auth directive at the front. RPCLinux联盟
# auth send authentication using this method-id RPCLinux联盟
# RPCLinux联盟
# Then, list the method and key that go with that method-id RPCLinux联盟
# RPCLinux联盟
# Available methods: crc sha1, md5. Crc doesn't need/want a key. RPCLinux联盟
# RPCLinux联盟
# You normally only have one authentication method-id listed in this file RPCLinux联盟
# RPCLinux联盟
# Put more than one to make a smooth transition when changing auth RPCLinux联盟
# methods and/or keys. RPCLinux联盟
# RPCLinux联盟
# RPCLinux联盟
# sha1 is believed to be the "best", md5 next best. RPCLinux联盟
# RPCLinux联盟
# crc adds no security, except from packet corruption. RPCLinux联盟
# Use only on physically secure networks. RPCLinux联盟
# RPCLinux联盟
auth 1 RPCLinux联盟
1 crc RPCLinux联盟
#2 sha1 HI! RPCLinux联盟
#3 md5 Hello! RPCLinux联盟
记得修改文件authkeys的属性为600 chmod 600 /etc/ha.d/authkeysRPCLinux联盟
RPCLinux联盟
copy配置文件到其它节点:RPCLinux联盟
scp /etc/ha.d/ha.cf /etc/ha.d/haresources /etc/ha.d/authkeys root@xuanfei2:/etc/ha.d/RPCLinux联盟
RPCLinux联盟
#vi /etc/hostsRPCLinux联盟
node1的hosts内容如下:RPCLinux联盟
127.0.0.1 localhost.localdomain localhostRPCLinux联盟
10.0.0.1 xuanfei1 HA01RPCLinux联盟
192.168.0.1 HA01RPCLinux联盟
192.168.0.2 HA02RPCLinux联盟
10.0.0.2 xuanfei2
node2的hosts内容如下:RPCLinux联盟
127.0.0.1 localhost.localdomain localhostRPCLinux联盟
10.0.0.2 xuanfei2 HA02RPCLinux联盟
192.168.0.2 HA02RPCLinux联盟
192.168.0.1 HA01RPCLinux联盟
10.0.0.1 xuanfei1RPCLinux联盟
RPCLinux联盟
RPCLinux联盟
设置ipvsadm的巡回监测RPCLinux联盟
---------------------------RPCLinux联盟
ipvsadm -A -t 10.0.0.10:80 -s rrRPCLinux联盟
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.1:80 -mRPCLinux联盟
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.2:80 -m
执行后进行监测:RPCLinux联盟
#ipvsadm --listRPCLinux联盟
如果返回结果与下相同,则设置正确。RPCLinux联盟
IP Virtual Server version 1.2.0 (size=4096)RPCLinux联盟
Prot LocalAddress:Port Scheduler FlagsRPCLinux联盟
-> RemoteAddress:Port Forward Weight ActiveConn InActConnRPCLinux联盟
TCP 10.0.0.10:http rrRPCLinux联盟
-> xuanfei2:http Local 1 0 0RPCLinux联盟
-> xuanfei1:http Masq 1 0 0
RPCLinux联盟
RPCLinux联盟
HA服务的启动、关闭RPCLinux联盟
首先关闭两台机器需要集群的服务,因为heartbeat 启动时会自动服务打开(测试的时候会有几秒钟的滞后)RPCLinux联盟
/etc/rc.d/init.d/httpd stop RPCLinux联盟
/etc/rc.d/init.d/smb stop RPCLinux联盟
启动HA: service heartbeat startRPCLinux联盟
关闭HA; service heartbeat stopRPCLinux联盟
防火墙设置RPCLinux联盟
/bin/iptables -A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPTRPCLinux联盟
测试RPCLinux联盟
在别的机器里输入:http://10.0.0.10 (虚拟的地址) RPCLinux联盟
可以看到xuanfei1-server ,想办法让xuanfei1-server死机,大概3-5秒,可以看到页面变成xuanfei2-server,服务成功的转换了,等xuanfei1-server服务起来后,页面又切换到 RPCLinux联盟
xuanfei1-server,几乎没有延时。这样就提高了系统的高可用性。
www.xxlinux.com
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论

在centos中配置高可用性集群

在centos中配置高可用性集群

2007-11-02 11:45:16 Linux联盟收集整理

一、概述:
系统:Centos5.0
集群软件:Heartbeat
节点1IP(主):192.168.1.105
节点2IP(从):192.168.1.106
virtual IP:192.168.1.102
在节点1上使用uname -n 结果必须是node01,在节点2上同样使用uname -n结果也必须是node02。IP 192.168.1.102是一个虚拟IP用来供webserver使用的。
二、下载安装软件包和配置:
1、需要以下软件包:
heartbeat-2.1.2
heartbeat-2.1.2
heartbeat-stonith-2.1.2
也可以使用yum -y install heartbeat来进行安装,附件为所需要的软件包:
文件:heartbeat.rar
大小:2627KB
下载:下载
2、在每个节点上配置heartbeat,需要有以下三个文件:
authkeys、ha.cf、haresources,它们存在于/etc/ha.d/目录里。
3、创建以上提到的三个文件:
cp /usr/share/doc/heartbeat-2.1.2/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.2/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.2/haresources /etc/ha.d/
4、配置:
4.1、首先编辑authkeys文件:
vi /etc/ha.d/authkeys
添加以下行:在这里我们使用的是第二种认证方式(shal)
auth 2
2 sha1 test-ha
接着把文件的权限改为600:
chmod 600 /etc/ha.d/authkeys
4.2、编辑/etc/ha.d/ha.cf文件:
vi /etc/ha.d/ha.cf加入如下行:
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node node01
node node02
4.3、编辑/etc/ha.d/haresources文件:
这个文件中包含了使那个服务具有高可用性,在这里我们使用的是httpd;
vi /etc/ha.d/haresources加入下行:
node01 172.16.4.82 httpd
4.4、我们把node01上的/etc/ha.d/目录复制到节点node02上的/etc目录里。
scp -r /etc/ha.d/ root@node02:/etc/
4.5、在httpd.conf文件里我们添加如下行:
vi /etc/httpd/conf/httpd.conf
Listen 192.168.1.102:80
4.6、把节点node01上的/etc/httpd/conf/httpd.conf文件复制到节点node02相应的目录里:
scp /etc/httpd/conf/httpd.conf root@node02:/etc/httpd/conf/
4.7、在两个节点上分别创建一个index文件来进行测试:
在node01上:
echo "node01 apache test server" > /var/www/html/index.html
在node02上:
echo "node02 apache test server" > /var/www/html/index.html
4.8、在两个节点上分别启动heartbeat:
/etc/init.d/heartbeat start
4.9、在node01上,开启一个浏览器:输入http://192.168.1.102并回车,将会看到
node01 apache test server
4.10、停止node01上的heartbeat进程,然后再浏览器里输入http://192.168.1.102并回车,将会看到node02 apache test server.
三、补充:
这里不需要创建一个虚拟网络接口和配置一个IP(192.168.1.102)给它,因为heartbeat会帮助我们来完成的,并启动httpd server。

linux上的 heartbeat 双机热备服务架设

linux上的 heartbeat 双机热备服务架设

2007-03-29 11:04:10 Camor.cublog.cn

【一】 安装前环境设定
==========================================================
两台主机硬件环境(不必完全一致):
CPU: Xeon 3G *2 (EM64T)
MEM: 2G
NIC: Intel 1G *2
eth0: 对外IP
eth1: 对内IP(HA专用)
两台主机的eht1使用双机对联线直接连接。
分区方式:
Filesystem 容量 挂载点
/dev/sda2 9.7G /
/dev/sda6 45G /Datas
/dev/sda1 99M /boot
none2.0G /dev/shm
/dev/sda3 9.7G /opt
另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。
操作系统:
RedHat Enterprise 4 Update2 (2.6.9-22 EL)
预安装软件:
@ X Window System
@ GNOME Desktop Environment
@ KDE Desktop Environment
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Authoring and Publishing
@ Server Configuration Tools
@ Development Tools
@ Kernel Development
@ X Software Development
@ GNOME Software Development
@ KDE Software Development
@ Administration Tools
@ System Tools
【二】安装前网络环境设定:
========================================================
node1: 主机名:servers201 ( HA01 )
eth0: 192.168.10.201 //对外IP地址
eth1: 10.0.0.201 //HA心跳使用地址
node2: 主机名:servers202 ( HA02 )
eth0: 192.168.10.202 //对外IP地址
eth1: 10.0.0.202 //HA心跳使用地址
特别注意要检查以下几个文件:
/etc/hosts
/etc/host.conf
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitch.conf
#vi /etc/hosts
node1的hosts内容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.201 servers201 HA01
10.0.0.201 HA01
10.0.0.202 HA02
192.168.10.202 server202
node2的hosts内容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.202 servers202 HA02
10.0.0.202 HA02
10.0.0.201 HA01
192.168.10.201 server201
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 61.139.2.69 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers201 //主机名
GATEWAY="192.168.10.1" //网关
GATEWAY="eth0" //网关使用网卡
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.201
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
TYPE=Ethernet
IPV6INIT=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.201
NETMASK=255.255.255.0
TYPE=Ethernet
[node1] 与 [node2] 在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:
/root#ping HA02
PING HA02 (10.0.0.202) 56(84) bytes of data.
64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms
--- HA02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2
【三】安装HA 与HA依赖包
===========================================================
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不装
rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
rpm -Uvh ipvsadm-1.24-5.i386.rpm
【四】 配置 HA的各配置文件
============================================================
---------------------------
配置心跳的加密方式:authkeys
---------------------------
#vi /etc/ha.d/authkeys
如果使用双机对联线(双绞线),可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存盘退出,然后
#chmod 600 authkeys
---------------------------
配置心跳的监控:haresources
---------------------------
#vi /etc/ha.d/haresources
各主机这部分应完全相同。
server201 IPaddr::192.168.10.200 ipvsadm httpd
指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 192.168.10.200 给eth0:0
这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 192.168.10.200给server202的eth0:0
---------------------------
配置心跳的配置文件:ha.cf
---------------------------
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log ## ha的日志文件记录位置。如没有该目录,则需要手动添加
bcast eth1 ##使用eht1做心跳监测
keepalive 2 ##设定心跳(监测)时间时间为2秒
warntime 10
deadtime 30
initdead 120
hopfudge 1
udpport 694 ##使用udp端口694 进行心跳监测
auto_failback on
node server201 ##节点1,必须要与 uname -n 指令得到的结果一致。
node server202 ##节点2
ping 192.168.10.1 ##通过ping 网关来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
debugfile /Datas/logs/ha_log/ha-debug.log
---------------------------
设置ipvsadm的巡回监测
---------------------------
ipvsadm -A -t 192.168.10.200:80 -s rr
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m
执行后进行监测:
#ipvsadm --list
如果返回结果与下相同,则设置正确。
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.200:http rr
-> server202:http Local 1 0 0
-> server201:http Masq 1 0 0
【五】 HA服务的启动、关闭以及测试
=================================================
启动HA: service heartbeat start
关闭HA; service heartbeat stop
系统在启动时已经自动把heartbeat 加载了。
使用http服务测试 heartbeat
首先启动httpd服务
#service httpd start
编辑各自主机的测试用html文件,放到/var/www/html/目录下。
启动node1的heartbeat,并执行这个指令进行监控: heartbeat status
【六】 防火墙设置
====================================================
heartbeat 默认使用udp 694端口进行心跳监测。 如果系统有使用iptables 做防火墙,应记住把这个端口打开。
#vi /etc/sysconfig/iptables
加入以下内容
-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT
意思是udp 694端口对 对方的心跳网卡地址 10.0.0.201 开放。
#service iptables restart
重新加载iptables。

说 明:本文于2006-10月间大体完成。期间在2台Server和2个虚拟机上均测试通过。但在写下这个文档的时候,因粗心而忘记了第五步骤里的[监控指 令]了! 并且2台服务器也分别另作他用;系统重装又失去了虚拟机,所以无从再次验证。文中所说"并执行这个指令进行监控: heartbeat status"有可能有出入。具体修正,得等什么时候对服务器进行实际操作或者重装2个虚拟机,或找网络上其他文档。



http://www.xxlinux.com/linux/article/network/app/20070329/8009.html