2008年2月4日星期一
Redhat Linux AS4下安装LAMP与Discuz
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設定
|
■BINDアクセス統計監視グラフ追加
| (1)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热备服务集群架设笔记
[ 作者: 加入时间: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
#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
#
# to or * to mean it is accessible from any host. RPCLinux联盟
#
# supported drives is in /usr/lib/stonith.) RPCLinux联盟
#
# format for a particular device, run: RPCLinux联盟
# stonith -l -t
# 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来进行安装,附件为所需要的软件包:
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个虚拟机,或找网络上其他文档。 |