Linux安装rocks集群怎样设置gateway,DNS nameserver等

Linux安装rocks集群怎样设置gateway,DNS nameserver等,第1张

可以手动设置你的ip地址和dns服务器地址,当然也可以使用dhcp自动分配

手动设置ip地址的方法,最简单的当然是输入setup命令进行设置。

第一个解决方法,打开你的Windows系统,查看你的DNS服务器地址设置的是什么,然后进入Linux,输入vi

/etc/resolvconf,在这个文件里面添加nameserver

<ip_address>

其中<ip_address>为DNS服务器的地址

第二个解决方法,在你的系统上安装DNS服务器。具体方法么就是在你的Linux系统上安装bind,bind-utils,bind-chroot,caching-nameserver这几个软件包(这些软件包在iso安装镜像中都有),安装完后,输入命令/etc/initd/named

start;chkconfig

named

on,然后vi

/etc/resolvconf,在这个文件里面添加nameserver

127001,保存退出就可以了~

它非常适合用来快速配置一个集群中的所有运行相同服务和具备相同配置的计算机节点。现在有大量的开源管理工具,都可以实现这样的管理,比如dsh、SUSE Manager等。下面是用ClusterSSH管理多台Linux服务器的具体过程。

如果你是一名Linux系统管理员,那你每天一定会和许许多多的机器打交道,因为你要定期监测和维护这些机器,如一批Web服务器,如果你要同时在多台机器上敲入相同的命令,你可能会通过SSH登录,然后逐台敲入,如果使用ClusterSSH,可以为你节省不少类似的工作时间。

ClusterSSH是用Tk/Perl包装XTerm和SSH后形成的新工具,就其本身而言,它可以运行在任何兼容POSIX的操作系统上,我曾经在Linux,Solaris和Mac OS X上运行过它,它需要Perl库Tk(在Debian或Ubuntu上就是perl-tk)和X11::Protocol(在Debian或Ubuntu上就是libx11-protocol-perl),此外,xterm和OpenSSH是必不可少的。

安装在Debian或Ubuntu上安装ClusterSSH是相当简单的,只需要敲入sudo apt-get install clusterssh就可以安装好,至于依赖包你也不必担心,一切都会为你装好的,它也提供了适合Fedora的rpm包,在FreeBSD上可通过port系统安装,还为Mac OS X准备了MacPort版本,因此你可以在你的苹果电脑上安装ClusterSSH,当然,如果你是极客,也可以下载源代码自己编译。

配置可以通过ClusterSSH的全局配置文件/etc/clusters,或用户home目录下的。csshrc文件来配置它,我喜欢用户级的配置方式,这样同一个系统中的不同用户可以根据自己的喜好进行配置,ClusterSSH定义了一个“cluster”机器组,你可以通过一个界面来控制这个组中的所有机器,在配置文件的顶端“clusters”部分,你可以详尽地列出你的集群,然后用独立的段落来描述每个集群。

例如,假设我有两个集群,每个集群由两台机器组成,“Cluster1”由“Test1”和“Test2”两台机器组成,“Cluster2”由“Test3”和“Test4”两台机器组成,~csshrc(或/etc/clusters)配置文件的内容看起来应该是:

clusters = cluster1 cluster2

cluster1 = test1 test2

cluster2 = test3 test4你也可以创建中间集群(包含其它集群的集群),如果你想创建一个名叫“all”的集群包含所有的机器,有两种实现手段,首先,你可以创建一个包含所有机器的集群,如:

clusters = cluster1 cluster2 all

cluster1 = test1 test2

cluster2 = test3 test4

all = test1 test2 test3 test4但我更喜欢的方法是使用一个包含其它集群的中间集群:

clusters = cluster1 cluster2 allcluster1 = test1 test2

环境:

操作系统均为:CentOS 51

Apache2X服务器一台:IP地址1921682324;安装路径/usr/local/apache;

Tomcat6服务器一台:IP地址1921682325;安装路径/usr/local/tomcat;

Tomcat6服务器一台:IP地址1921682326;安装路径/usr/local/tomcat;

配置:

Apache安装:

#/configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite

注释:激活tomcat集群需要的 enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必须依赖proxy,如果是自定义的编译除了以上几个必须的模块外,mod_status也要编译进去,切记。enable-proxy-ftp可以不编译。

#make;make install

制作Apache启动项:

#cp support/apachectl /etc/rcd/initd/httpd

#vi /etc/rcd/initd/httpd

添加以下内容:(包括#号)

# Startup script for the Apache Web Server

# chkconfig: 2345 85 15

# description: Apache is a World Wide Web server It is used to server

# HTML files and CGI

# processname: httpd

# pidfile: /usr/local/apache/log/httpdpid

# config: /usr/local/apache/conf/httpdconf

增加服务项

#chkconfig --add httpd

#chmod 755 /etc/rcd/initd/httpd

#chkconfig --level 345 httpd on

JDK安装:

#chmod a+x jdk-6u4-linux-i586-rpmbin

#/jdk-6u4-linux-i586-rpmbin

JAVA环境变量设置:

#vi /etc/profile

在文件最后添加以下内容:

JAVA_HOME=/usr/java/jdk160_04

CLASSPATH=:$JAVA_HOME/lib/toolsjar:$JAVA_HOME/lib/dtjar

PATH=$JAVA_HOME/bin:$PATH

CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME CLASSPATH PATH CATALINA_HOME

执行如下命令使环境变量生效:

source /etc/profile

测试配置是否成功:

java –version

Tomcat安装:

#wget [url]http://apachemirrorphpchinacom/tomcat/tomcat-6/v6016/bin/apache-tomcat-6016targz[/url]

#tar zxvf apache-tomcat-6016targz

#mv apache-tomcat-6016 /usr/local/tomcat

Tomcat随机启动:

#vi /etc/rclocal

添加以下内容:

/usr/local/tomcat/bin/startupsh

tomcat6配置文件serverxml:

<!-- You should set jvmRoute to support load-balancing via AJP ie :

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">

-->

<Engine name="Catalina" defaultHost="localhost">

改成

<!-- You should set jvmRoute to support load-balancing via AJP ie :

-->

<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcatX">

<!--

<Engine name="Catalina" defaultHost="localhost">

-->

说明:

第一台tomcat就把jvmRoute="tomcat1"

第二台tomcat就把jvmRoute="tomcat2"

<!--

<Cluster className="orgapachecatalinahatcpSimpleTcpCluster"/>

-->

去掉注释变为

<Cluster className="orgapachecatalinahatcpSimpleTcpCluster"/>

群集详细配置

<Cluster className="orgapachecatalinahatcpSimpleTcpCluster"

channelSendOptions="8">

<Manager className="orgapachecatalinahasessionDeltaManager"

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"/>

<Channel className="orgapachecatalinatribesgroupGroupChannel">

<Membership className="orgapachecatalinatribesmembershipMcastService"

address="228004"

port="45564"

frequency="500"

dropTime="3000"/>

<Receiver className="orgapachecatalinatribestransportnioNioReceiver"

address="auto"

port="4000"

autoBind="100"

selectorTimeout="5000"

maxThreads="6"/>

<Sender className="orgapachecatalinatribestransportReplicationTransmitter">

<Transport className="orgapachecatalinatribestransportnioPooledParallelSender"/>

</Sender>

<Interceptor className="orgapachecatalinatribesgroupinterceptorsTcpFailureDetector"/>

<Interceptor className="orgapachecatalinatribesgroupinterceptorsMessageDispatch15Interceptor"/>

</Channel>

<Valve className="orgapachecatalinahatcpReplicationValve"

filter=""/>

<Valve className="orgapachecatalinahasessionJvmRouteBinderValve"/>

<Deployer className="orgapachecatalinahadeployFarmWarDeployer"

tempDir="/tmp/war-temp/"

deployDir="/tmp/war-deploy/"

watchDir="/tmp/war-listen/"

watchEnabled="false"/>

<ClusterListener className="orgapachecatalinahasessionJvmRouteSessionIDBinderListener"/>

<ClusterListener className="orgapachecatalinahasessionClusterSessionListener"/>

</Cluster>

配置应用的webxml:

在每个webapps应用中,修改配置文件webxml文件 添加元素<distributable/>

在webxml文件中<web-app>元素下增加以下内容:

<!--此应用将与群集服务器复制Session-->

<distributable/>

具体修改如下:

修改前:

<xml version="10" encoding="ISO-8859-1">

<web-app xmlns="[url]http://javasuncom/xml/ns/javaee[/url]"

xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"

xsi:schemaLocation="http://javasuncom/xml/ns/javaee [url]http://javasuncom/xml/ns/javaee/web-app_2_5xsd[/url]"

version="25">

</web-app>

修改后:

<xml version="10" encoding="ISO-8859-1">

<web-app xmlns="[url]http://javasuncom/xml/ns/javaee[/url]"

xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"

xsi:schemaLocation="http://javasuncom/xml/ns/javaee [url]http://javasuncom/xml/ns/javaee/web-app_2_5xsd[/url]"

version="25">

<!--此应用将与群集服务器复制Session-->

<distributable/>

</web-app>

配置apache的ajp负载均衡功能:

确保将以下Module的注释去掉

LoadModule proxy_module modules/mod_proxyso

LoadModule proxy_connect_module modules/mod_proxy_connectso

LoadModule proxy_ftp_module modules/mod_proxy_ftpso

LoadModule proxy_http_module modules/mod_proxy_httpso

LoadModule proxy_ajp_module modules/mod_proxy_ajpso

LoadModule proxy_balancer_module modules/mod_proxy_balancerso

LoadModule status_module modules/mod_statusso

增加以下内容:

# Proxypass Config

Include conf/extra/httpd-modproxyconf

建立文件httpd-modproxyconf输入内容:

<Location /server-status>

SetHandler server-status

Order Deny,Allow

Deny from all

Allow from all

</Location>

<Location /balancer-manager>

SetHandler balancer-manager

Order Deny,Allow

Deny from all

Allow from all

</Location>

ProxyRequests Off

ProxyPass / balancer://tomcatcluster stickysession=jsessionid nofailover=On

<Proxy balancer://tomcatcluster>

BalancerMember [url]http://1921682325:8080[/url] loadfactor=1

BalancerMember [url]http://1921682326:8080[/url] loadfactor=2

</Proxy>

注释:

ProxyRequests Off 表示启用反向代理,必须开启;

ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://tomcatcluster,这里为/即将所有访问/的请求转发到群集balancer://tomcatcluster的/test目录;

BalancerMember为群集的成员,即群集服务器1或2,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember;

调试负载均衡集群系统:

访问apache服务器的web服务:[url]http://1921682324/balancer-manager[/url]

如果显示负载均衡有关信息则说明成功了,接着可以访问[url]http://1921682324/[/url]即访问到了tomcat的应用

必须先启动Tomcat服务再启动Apache服务!

参考文档:

[url]http://tomcatapacheorg/tomcat-60-doc/cluster-howtohtml[/url]

[url]http://tomcatapacheorg/tomcat-60-doc/balancer-howtohtml[/url]

[url]http://manchinaunixnet/newsoft/ApacheMenual_CN_22new/mod/mod_proxyhtml[/url]

[url]http://manchinaunixnet/newsoft/ApacheMenual_CN_22new/mod/mod_proxy_balancerhtml[/url]

本文介绍在Linux HA集群中的仲裁和分区概念。

集群正常工作时,所有节点都在一个分区内(partition),分区内的所有节点将选举出一个仲裁节点,这个仲裁节点负责向其他节点发送集群控制命令。当网络发生故障时,集群中的节点发现无法和仲裁节点通信,则会在可通信的范围内重新选举一个新的仲裁节点。此时集群内可能出现多个仲裁节点,每个仲裁节点的管理范围为一个分区。

下文中将通过防火墙策略的设置模拟集群网络中通信出现异常的各种情况,如:

通过防火墙策略可以精准控制两两节点之间的连通性,使我们能更准确的了解在网络连通性发生变化对集群的影响。

在所有节点上启动防火墙,并添加策略对整个管理网络192168560/24放通。

保存上述策略,之后在实验过程会使用iptables命名加入新策略模拟网络通信异常效果,如果需要恢复网络通信正常状态,直接不保存策略重启firewalld服务即可。

通过pcs status查看集群状态:

上述结果显示当前集群只有一个分区,分区内的节点包括全部3台主机,仲裁节点是ha-host3,这表示集群间的通信是完好的。下图显示当前集群状态:

在ha-host1上添加以下策略:

该策略将使得ha-host1和ha-host3之间的通信中断,在所有节点上查看集群状态:

上面的结果显示,ha-host1失去和当前仲裁节点ha-host3的联系之后,和ha-host2一起组成新的分区并选举出ha-host2作为新的仲裁节点。有趣的是ha-host2和ha-host3的通信并未中断,但是他被“优先级较高的ha-host1抢走并推举为老大”,剩下ha-host3独自留在其自身所在的分区。此时ha-host3所在的分区提示了“partition WITHOUT quorum”,表示该分区中的节点数目不超过一半。

下图显示当前集群状态:

在ha-host1上再添加策略:

使其和当前的仲裁节点ha-host2的通信中断,集群状态变为:

发现ha-host2和ha-host3一起组成了新的分区,由于ha-host1所在分区节点数不足一半,无法启动资源,虚拟ip资源vip被切换到了ha-host2上。下图显示当前集群状态:

如果再把ha-host2和ha-host3直接的通信中断,此时3个节点间两两均无法通信。每个节点都是一个分区,每个分区的主机数均不过半,因此无法启动任何资源,原先运行在ha-host2上的vip也停止了。

当前集群状态如下图:

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux安装rocks集群怎样设置gateway,DNS nameserver等

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情