第一部分 实验目的
- 理解Glassfish V3.1.2.2 Cluster的工作原理
- 理解Apache HTTPD 软件负载均衡的工作原理
- 理解如何使用Glassfish的内存复制功能
- 验证是否或者如何通过Apache HTTPD + Glassfish完成故障转移
第二部分 实验环境设计与搭建 2.1 实验环境拓扑 为了方便起见,实验环境由如简化过的 络拓扑示意图所示,有两个子 构成,分别为Glassfish Cluster Web Subnet和Glassfish Cluster Admin Subnet。
- Web Gateway, 拥有公 IP地址,作为互联 业务请求的入口。
- Load Balance(以下简称LB),软件负载均衡器,将互联 的业务请求按照一定规则转交给4个Glassfish Server Instances以均衡负载。
- Glassfish Node 1~2,每一个Glassfish Node当中包含两个Glassfish Server Instance。
- Instance 1 ~ 4, 为4个Glassfish Server的实例。
此外Glassfish Cluster Admin Subnet作为应用服务器管理的子 ,由以下元素构成:
- Admin Gateway, 可以拥有公 IP地址,作为系统管理员完成日常维护工作的入口。
- Domain Administration Server,域管理服务器,为Glassfish服务器的术语,用来管理domain下的各个Clusters, Nodes, Instances, Resources, Applications 和其他组件。
- Glassfish Node 1~2,同上段介绍。
注意:对应Glassfish Cluster的概念, 一个Glassfish Cluster由DAS, Node, 以及各个instance构成。 由于资源有限且为了方便实验环境的构建,两个 关部分暂时省去,两个子 也可以暂时合并为一个子 。 2.2 实验环境描述 笔者采用VMware虚拟机构建目标环境,构建环境的大部分过程可以重用于云端虚拟环境。以下为实验环境清单:
- 物理主机:MacOS 10.8.3 + 2.7 GHz Intel Core i7 + 16GB 1600 MHz DDR3 + 512G SSD
- 虚拟机软件:VMware Fusion 5.0.3
- 虚拟主机:
- LB
- 1GB MEM + 1 CPU + 20G + NAT (192.168.107.130) (load-balancer)
- DAS
- 1GB MEM + 1 CPU + 20G + NAT (192.168.107.131) (das)
- Glassfish Node 1
- 1GB MEM + 1 CPU + 20G + NAT (192.168.107.129) (gnode-1)
- Glassfish Node 2
- 1GB MEM + 1 CPU + 20G + NAT (192.168.107.128) (gnode-2)
- LB
- ubuntu安装镜像
- ubuntu-12.10-server-amd64.iso
- ubuntu基本安装配置
- 软件列表配置为VMware默认列表
- 安装过程为VMware默认的无人参与安装
- 虚拟资源配置参考“虚拟主机”部分
- 服务器软件安装
- LB
- openssh
- httpd
- DAS
- openssh
- sun-java6-jdk
- glassfish
- Glassfish Node 1~2
- openssh
- sun-java6-jdk
- glassfish (集群Node设定过程中自动安装)
- LB
- 服务器账户
- username:asadmin
- password:adminadmin
- 相关目录设定
- glassfish
- /home/asadmin/runtimes/glassfish3
- glassfish
- 相关端口设定
- ssh, 22
- httpd, 80
- glassfish das admin console, 4848
注解:
- NAT为虚拟主机 络配置选项,Network Address Translation 络地址转换
- IP地址通过DHCP获得
- 由于Glassfish集群配置过程中需要用到各个Glassfish Node的主机名称,所以建议为每个主机设定有意义的名称。同时可以在各个虚拟主机的/etc/hosts文件中指定各个主机名与IP地址映射关系,例如下面文本片段
/etc/hosts 192.168.107.131 das
192.168.107.130 load-balancer
192.168.107.129 gnode-1
192.168.107.128 gnode-2
2.3 实验环境搭建过程 2.3.1 在VMware Fusion上安装虚拟机 根据上一节对实验环境的描述,需要安装配置4台虚拟主机。为了节省安装时间,可以采取下面的安装配置步骤来完成:
- 安装模板虚拟主机
- 在模板主机中配置安装openssh-server
- 如果计划使用指定IP地址的情况下,可预先在模板主机中的/etc/hosts文件中增加前述文本片段,否则可跳过这一步
- 复制模板虚拟主机为load-balancer虚拟主机,并通过VMware生成新的MAC地址
- 在load-balancer虚拟主机中安装apache web server
- 复制模板虚拟主机为glassfish-node模板虚拟主机模板,并通过VMware生成新的MAC地址
- 在glassfish-node虚拟主机模板中安装sun-java6-jdk
- 在glassfish-node虚拟主机模板中创建/home/asadmin/runtimes目录
- 复制glassfish-node虚拟主机模板为glassfish-node 1
- 复制glassfish-node虚拟主机模板为glassfish-node 2
- 复制glassfish-node虚拟主机模板为domain administration server
- 更改各个虚拟机主机名称和配置所有虚拟主机/etc/hosts文件
- 在domain administration server中安装glassfish v3.1.2.2
2.3.1.1 安装模板虚拟主机
使用VMware Fusion安装ubuntu-12.10-amd64-server, 包括设定用户名和密码(asadmin, adminadmin), 注解:在VMware Fusion安装的过程中,基本采用默认的配置方式(选择“下一步”,暂时忽略自定义部分),VMware会提示输入目标虚拟主机的用户名和密码,此时填入配置中给出用户名和密码。 2.3.1.2 在模板主机中配置安装openssh-server 在采用VMware Fusion默认安装的版本中,openssh-server不是默认安装内置,需要手动安装。但是ssh服务的配置文件ssh_config在未手动安装之前就已经存在/etc/ssh/目录下。 为了简化安全配置,本次试验选用用户名密码登陆方式(而不是key文件登录方式),所以首先通过下列命令打开文件
sudo vi /etc/ssh/ssh_config
然后将PasswordAuthentication yes前面的#去掉 PasswordAuthentication yes
保存退出(esc :wq) 然后使用下面的命令安装openssh,安装后服务会自动启动。 sudo apt-get install openssh-server
最后,使用下面命令关闭虚拟模板主机 sudo shutdown -P 0
注:首先配置文件然后再安装openssh-server减少一次ssh服务重启。 2.3.1.4 复制虚拟主机模板为load-balancer虚拟主机在MacOS中使用Finder程序,到个人的“文稿”(Documents)目录下,进入“虚拟机”目录,复制刚刚安装好的虚拟主机模板,将其重命名(比如load-balancer)。 在未启动load-balancer的状态下,打开load-balancer虚拟主机窗口,点击窗口上方的 设定(扳手)按钮。在打开的设定面板窗口中,选择 络适配器。点击底部的“高级选项”,如下图所示,最后点击“生成”按钮用来生成新的MAC地址。
sudo apt-get purge sun-java
* #You need to do that if you want the mozilla plugin to work without conflict with java7 for instance.mkdir ~/src
cd ~/src
git clone https://github.com/flexiondotorg/oab-java6.git
cd ~/src/oab-java6
sudo ./oab-java.sh
Then when its finished, install java:sudo apt-get install sun-java6-plugin sun-java6-jre sun-java6-bin sun-java6-jdk
You can follow the installation process with:tail -f ~/src/oab-java6/oab-java.sh.log
Note: If you do not need Java 6 it’s much safer to stick to the current Oracle Java 7release. 2.3.1.8 在glassfish-node虚拟主机模板中创建/home/asadmin/runtimes目录 通过下面命令创建相应目录
mkdir runtimes
最后,使用下面命令关闭load-balancer虚拟主机 sudo shutdown -P 0
按照2.3.1.4所提供的步骤完成下面三步 2.3.1.9 复制glassfish-node虚拟主机模板为glassfish-node 12.3.1.10 复制glassfish-node虚拟主机模板为glassfish-node 22.3.1.11 复制glassfish-node虚拟主机模板为glassfish domain administration server2.3.1.12 更改所有虚拟主机主机名称以及配置/etc/hosts文件 启动所有虚拟主机,通过下列命令获取各个虚拟主机的IP地址
asadmin@localhost:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:7b:ab:a3
inet addr:192.168.107.130 Bcast:192.168.107.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe7b:aba3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3858 errors:0 dropped:0 overruns:0 frame:0
TX packets:1579 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4790744 (4.7 MB) TX bytes:105902 (105.9 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!