Dec
9
[原]安装及配置红旗高可用服务器 HA 5.0 [2] - 配置应用环境
前面写了如何安装HA配置工具Trekking Tool,见这里:[原]安装及配置红旗高可用服务器 HA 5.0 [1] - 安装Trekking Tool 。接下来,需要把应用软件部署为适合高可用集群的环境。这是非常重要的一步。
由于今后应用软件的启动、关闭、切换等操作,都会由HA软件来进行。所以,在部署应用软件时,需要考虑以下几点:
四、服务器系统环境准备
在使用Trekking Tool生成HA配置文件前,需要先把参与HA集群的两服务器环境设置好。以前面描述的系统架构为例。
1、设置服务器网卡地址
修改两服务器的网卡配置文件,设置为固定IP地址方式,其中,eth0用于外网,eth1用于两服务器互联心跳。
2、修改服务器主机名
在/etc/sysctl.conf的最后加入一行:
然后执行:
对于hatest2进行类似的设定。
3、修改hosts文件
两服务器修改/etc/hosts文件为如下内容:
☆ 务必在两服务器上,使用如ping hatest1等方式,测试网络状态、主机名设定是否正常。
4、连接共享盘柜
由于我使用的是VMware环境,要实现共享盘柜,需要在VMware的host主机环境中进行一些修改工作。
首先,使用Vmware Server的配置界面,给其中一台虚拟机hatest1添加一个磁盘,并选中File Options中“Allocate all disk space now”,以及Disk Mode中“Independent”--“Persistent”,还有Policies中“Optimize for safety”。
而Virtual Device Node,建议添加一个Adapter,即用SCSI 1(本地磁盘用SCSI 0)。
假设生成的文件存放在:
然后,在另外一台hatest2的配置界面上,添加一个磁盘,使用“Use an Existing Virtual Disk”,选择上面的磁盘分区,参数配置如上相同。完成后,修改两虚拟主机的配置文件,例如hatest1/rhel4.vmx,添加或修改原配置为:
保存后,启动hatest1主机。
在系统上用fdisk、mkfs.ext3等工具进行分区和格式化,并用用mount测试读写是否正常。再启动另外一台主机hatest2,检查/dev/sdb1是否可正常识别,在hatest1已经umount该设备的情况下,mount上/dev/sdb1读写。测试两机器是否可以单独对该盘柜进行操作。若成功,表示共享盘柜配置完成。
5、部署应用软件
如前面系统架构说明中描述的,这次我们的应用以httpd(Apache 2.0)为例。为方面演示,我们会建立一台虚拟主机,然后把其目录定义在共享盘柜上,也就是:
修改/etc/httpd/conf/httpd.conf,再最后添加:
6、测试脚本
在/data建立一个index.php的文件,内容如下:
7、测试应用
按今后HA启动、关闭应用时执行的步骤顺序手动运行,以测试应用是否可在各服务器上独立运行。
a、激活浮动IP
在hatest1上执行:
※ 命令arping的意思是用指定的浮动IP地址192.168.228.223作为源地址,尝试连接网关192.168.228.153。作用是强制更新交换机的缓存,让其他客户端访问服务器时,知道浮动IP对应这台服务器的eth0的MAC地址。不进行这步,可能会导致即使激活浮动IP,但客户端仍访问不到的问题。
b、挂载盘柜
在hatest1上执行:
c、启动应用
在hatest1上执行:
在客户端上使用浏览器访问http://haexample.linuxfly.cn,看结果是否正常。
(客户端需可以从DNS得到域名haexample.linuxfly.cn到浮动IP 192.168.228.223的对应关系。)
d、停止hatest1的服务
在hatest1上执行:
e、在备机上启动应用
确认hatest1上停止应用、卸载盘柜后,在hatest2上执行:
再次从客户端浏览器访问http://haexample.linuxfly.cn,看结果是否正常。
经上述的步骤,即可验证应用是否可在两服务器上独立运行。至此,适合HA环境的应用部署完毕。
※ 千万要注意,不要在两服务器上同时挂载及读写盘柜,否则会导致数据损坏
由于今后应用软件的启动、关闭、切换等操作,都会由HA软件来进行。所以,在部署应用软件时,需要考虑以下几点:
引用
1、应用务必可在各服务器上独立运行;
2、因应用可能需运行在不同的服务器上,所以,若应用有保存数据,这些数据需放在共享盘柜上,以便应用切换后可以继续访问;
3、HA集群通常使用浮动IP地址对外提供服务,所以,应用需要在浮动IP地址上监听,而不是服务器的实际IP地址;
2、因应用可能需运行在不同的服务器上,所以,若应用有保存数据,这些数据需放在共享盘柜上,以便应用切换后可以继续访问;
3、HA集群通常使用浮动IP地址对外提供服务,所以,应用需要在浮动IP地址上监听,而不是服务器的实际IP地址;
四、服务器系统环境准备
在使用Trekking Tool生成HA配置文件前,需要先把参与HA集群的两服务器环境设置好。以前面描述的系统架构为例。
1、设置服务器网卡地址
修改两服务器的网卡配置文件,设置为固定IP地址方式,其中,eth0用于外网,eth1用于两服务器互联心跳。
引用
hatest1:
eth0:192.168.228.221 eth1:10.0.0.1
hatest2:
eth0:192.168.228.222 eth1:10.0.0.2
eth0:192.168.228.221 eth1:10.0.0.1
hatest2:
eth0:192.168.228.222 eth1:10.0.0.2
2、修改服务器主机名
在/etc/sysctl.conf的最后加入一行:
引用
kernel.hostname=hatest1
然后执行:
# sysctl -p
对于hatest2进行类似的设定。
3、修改hosts文件
两服务器修改/etc/hosts文件为如下内容:
引用
# cat /etc/hosts
192.168.228.221 hatest1
192.168.228.222 hatest2
192.168.228.223 hatestvip
10.0.0.1 hatest1_ip
10.0.0.2 hatest2_ip
127.0.0.1 localhost.localdomain localhost
192.168.228.221 hatest1
192.168.228.222 hatest2
192.168.228.223 hatestvip
10.0.0.1 hatest1_ip
10.0.0.2 hatest2_ip
127.0.0.1 localhost.localdomain localhost
☆ 务必在两服务器上,使用如ping hatest1等方式,测试网络状态、主机名设定是否正常。
4、连接共享盘柜
由于我使用的是VMware环境,要实现共享盘柜,需要在VMware的host主机环境中进行一些修改工作。
首先,使用Vmware Server的配置界面,给其中一台虚拟机hatest1添加一个磁盘,并选中File Options中“Allocate all disk space now”,以及Disk Mode中“Independent”--“Persistent”,还有Policies中“Optimize for safety”。
而Virtual Device Node,建议添加一个Adapter,即用SCSI 1(本地磁盘用SCSI 0)。
假设生成的文件存放在:
引用
share/share-flat.vmdk
然后,在另外一台hatest2的配置界面上,添加一个磁盘,使用“Use an Existing Virtual Disk”,选择上面的磁盘分区,参数配置如上相同。完成后,修改两虚拟主机的配置文件,例如hatest1/rhel4.vmx,添加或修改原配置为:
引用
scsi1.present = "TRUE"
scsi1.sharedBus = "virtual"
scsi1.virtualDev = "lsilogic"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "/vmware/share/share.vmdk"
scsi1:0.writeThrough = "TRUE"
scsi1:0.mode = "independent-persistent"
disk.locking="false"
tools.syncTime = "TRUE"
scsi1.sharedBus = "virtual"
scsi1.virtualDev = "lsilogic"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "/vmware/share/share.vmdk"
scsi1:0.writeThrough = "TRUE"
scsi1:0.mode = "independent-persistent"
disk.locking="false"
tools.syncTime = "TRUE"
保存后,启动hatest1主机。
在系统上用fdisk、mkfs.ext3等工具进行分区和格式化,并用用mount测试读写是否正常。再启动另外一台主机hatest2,检查/dev/sdb1是否可正常识别,在hatest1已经umount该设备的情况下,mount上/dev/sdb1读写。测试两机器是否可以单独对该盘柜进行操作。若成功,表示共享盘柜配置完成。
5、部署应用软件
如前面系统架构说明中描述的,这次我们的应用以httpd(Apache 2.0)为例。为方面演示,我们会建立一台虚拟主机,然后把其目录定义在共享盘柜上,也就是:
引用
/dev/sdb1 --- /data
修改/etc/httpd/conf/httpd.conf,再最后添加:
引用
<VirtualHost *:80>
ServerAdmin webmaster@linuxfly.cn
DocumentRoot /data
ServerName haexample.linuxfly.cn
ErrorLog logs/haexample.linuxfly.cn-error_log
CustomLog logs/haexample.linuxfly.cn-access_log common
</VirtualHost>
ServerAdmin webmaster@linuxfly.cn
DocumentRoot /data
ServerName haexample.linuxfly.cn
ErrorLog logs/haexample.linuxfly.cn-error_log
CustomLog logs/haexample.linuxfly.cn-access_log common
</VirtualHost>
6、测试脚本
在/data建立一个index.php的文件,内容如下:
引用
HTTP_HOST: <? echo $_SERVER["HTTP_HOST"] ?> <br>
IP: <? echo $_SERVER["SERVER_ADDR"] ?> <br>
PORT: <? echo $_SERVER["SERVER_PORT"] ?> <br>
HOSTNAME:
<?
// php v5.1
//echo $_ENV["HOSTNAME"];
// php v5.0
system("hostname")
?> <br>
DOCUMENT_ROOT: <? echo $_SERVER["DOCUMENT_ROOT"] ?> <br>
SCRIPT_FILENAME: <? echo $_SERVER["SCRIPT_FILENAME"] ?> <br>
CLIENT_IP: <? echo $_SERVER["REMOTE_ADDR"] ?> <br>
IP: <? echo $_SERVER["SERVER_ADDR"] ?> <br>
PORT: <? echo $_SERVER["SERVER_PORT"] ?> <br>
HOSTNAME:
<?
// php v5.1
//echo $_ENV["HOSTNAME"];
// php v5.0
system("hostname")
?> <br>
DOCUMENT_ROOT: <? echo $_SERVER["DOCUMENT_ROOT"] ?> <br>
SCRIPT_FILENAME: <? echo $_SERVER["SCRIPT_FILENAME"] ?> <br>
CLIENT_IP: <? echo $_SERVER["REMOTE_ADDR"] ?> <br>
7、测试应用
按今后HA启动、关闭应用时执行的步骤顺序手动运行,以测试应用是否可在各服务器上独立运行。
a、激活浮动IP
在hatest1上执行:
# ifconfig eth0:0 192.168.228.223 netmask 255.255.255.0 up
# arping -c 5 -s 192.168.228.223 192.168.228.153
# arping -c 5 -s 192.168.228.223 192.168.228.153
※ 命令arping的意思是用指定的浮动IP地址192.168.228.223作为源地址,尝试连接网关192.168.228.153。作用是强制更新交换机的缓存,让其他客户端访问服务器时,知道浮动IP对应这台服务器的eth0的MAC地址。不进行这步,可能会导致即使激活浮动IP,但客户端仍访问不到的问题。
b、挂载盘柜
在hatest1上执行:
# mkdir /data
# mount /dev/sdb1 /data
# mount /dev/sdb1 /data
c、启动应用
在hatest1上执行:
# /etc/init.d/httpd start
在客户端上使用浏览器访问http://haexample.linuxfly.cn,看结果是否正常。
(客户端需可以从DNS得到域名haexample.linuxfly.cn到浮动IP 192.168.228.223的对应关系。)
d、停止hatest1的服务
在hatest1上执行:
# /etc/init.d/httpd stop
# umount /data
# ifconfig eth0:0 down
# umount /data
# ifconfig eth0:0 down
e、在备机上启动应用
确认hatest1上停止应用、卸载盘柜后,在hatest2上执行:
# ifconfig eth0:0 192.168.228.223 netmask 255.255.255.0 up
# arping -c 5 -s 192.168.228.223 192.168.228.153
# mkdir /data
# mount /dev/sdb1 /data
# /etc/init.d/httpd start
# arping -c 5 -s 192.168.228.223 192.168.228.153
# mkdir /data
# mount /dev/sdb1 /data
# /etc/init.d/httpd start
再次从客户端浏览器访问http://haexample.linuxfly.cn,看结果是否正常。
经上述的步骤,即可验证应用是否可在两服务器上独立运行。至此,适合HA环境的应用部署完毕。
※ 千万要注意,不要在两服务器上同时挂载及读写盘柜,否则会导致数据损坏