linux搭建伺服器集群
① 什麼是linux集群架構師
現在比較大型點的系統基本上是AP+DB的架構:
AP指應用程序,DB指資料庫端AP放在一個伺服器上,DB放在另一個伺服器上當一個系統比較大,訪問的用戶數量比較多的時候,比如QQ,上億用戶.這時一個伺服器就吃不消了,這樣就想到多個伺服器跑同一個AP應用.DB端也一樣.linux集群
指的就是多個伺服器跑同一個AP應用,系統管理員的工作資料庫集群
指的就是多個伺服器跑同一個DB資料庫.資料庫管理員的工作。
集群方面就得需要集群架構師來操作了
② 什麼是Linux集群
集群通信系統是一種計算機系統,
它通過一組鬆散集成的計算機軟體和/或硬體連接起來高度緊密地協作完成計算工作。簡單地說,集群(cluster)就是一組計算機,它們作為一個整體向用戶提供一組網路資源。這些單個的計算機系統就是集群的節點(node)。一個理想的集群,用戶是不會意識到集群系統底層的節點的。在他們看來,集群是一個系統,而非多個計算機系統。並且集群系統的管理員可以隨意增加和刪改集群系統的節點。
集群已不是一個全新的概念,早在七十年代計算機廠商和研究機構就對集群系統進行了研究和開發。這些系統不為大家熟知,是因為它主要用於科學工程計算。直到Linux集群的出現,集群的概念才得以廣泛傳播。集群系統主要分為高可用(High
Availability)集群,簡稱HA集群,和高性能計算(High Perfermance Computing)集群,簡稱HPC集群。
在Linux出現前,集群系統採用的操作系統主要有VMS、UNIX和WindowsNT。到九十年代末期,linux操作系統不斷走向成熟,它的健壯性不斷增強,並且提供了GNU軟體和標准化的PVM、MPI消息傳遞機制,最重要的是Linux在普通PC機上提供了對高性能網路的支持,這樣就大大推動了基於Linux的集群系統的普及和發展。
③ 請問有誰安裝過linux的apache的httpd集群的
環境:
操作系統均為:CentOS 5.1
Apache2.X伺服器一台:IP地址192.168.232.4;安裝路徑/usr/local/apache;
Tomcat6伺服器一台:IP地址192.168.232.5;安裝路徑/usr/local/tomcat;
Tomcat6伺服器一台:IP地址192.168.232.6;安裝路徑/usr/local/tomcat;
配置:
Apache安裝:
#./configure --prefix=/usr/local/apache --enable-moles=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/rc.d/init.d/httpd
#vi /etc/rc.d/init.d/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/httpd.pid
# config: /usr/local/apache/conf/httpd.conf
增加服務項
#chkconfig --add httpd
#chmod 755 /etc/rc.d/init.d/httpd
#chkconfig --level 345 httpd on
JDK安裝:
#chmod a+x jdk-6u4-linux-i586-rpm.bin
#./jdk-6u4-linux-i586-rpm.bin
java環境變數設置:
#vi /etc/profile
在文件最後添加以下內容:
JAVA_HOME=/usr/java/jdk1.6.0_04
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
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://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.tar.gz[/url]
#tar zxvf apache-tomcat-6.0.16.tar.gz
#mv apache-tomcat-6.0.16 /usr/local/tomcat
Tomcat隨機啟動:
#vi /etc/rc.local
添加以下內容:
/usr/local/tomcat/bin/startup.sh
tomcat6配置文件server.xml:
把
<!-- 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="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
去掉注釋變為
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
***群集詳細配置***
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session."/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
配置應用的web.xml:
在每個webapps應用中,修改配置文件web.xml文件 添加元素<distributable/>
在web.xml文件中<web-app>元素下增加以下內容:
<!--此應用將與群集伺服器復制Session-->
<distributable/>
具體修改如下:
修改前:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
</web-app>
修改後:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
<!--此應用將與群集伺服器復制Session-->
<distributable/>
</web-app>
配置apache的ajp負載均衡功能:
確保將以下Mole的注釋去掉
LoadMole proxy_mole moles/mod_proxy.so
LoadMole proxy_connect_mole moles/mod_proxy_connect.so
LoadMole proxy_ftp_mole moles/mod_proxy_ftp.so
LoadMole proxy_http_mole moles/mod_proxy_http.so
LoadMole proxy_ajp_mole moles/mod_proxy_ajp.so
LoadMole proxy_balancer_mole moles/mod_proxy_balancer.so
LoadMole status_mole moles/mod_status.so
增加以下內容:
# Proxypass Config
Include conf/extra/httpd-modproxy.conf
建立文件httpd-modproxy.conf輸入內容:
<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://192.168.232.5:8080[/url] loadfactor=1
BalancerMember [url]http://192.168.232.6:8080[/url] loadfactor=2
</Proxy>
注釋:
ProxyRequests Off 表示啟用反向代理,必須開啟;
ProxyPass為代理轉發的Url,即將所有訪問/的請求轉發到群集balancer://tomcatcluster,這里為/即將所有訪問/的請求轉發到群集balancer://tomcatcluster的/test目錄;
BalancerMember為群集的成員,即群集伺服器1或2,負載均衡伺服器會根據均衡規則來將請求轉發給BalancerMember;
調試負載均衡集群系統:
訪問apache伺服器的web服務:[url]http://192.168.232.4/balancer-manager[/url]
如果顯示負載均衡有關信息則說明成功了,接著可以訪問[url]http://192.168.232.4/[/url]即訪問到了tomcat的應用
***必須先啟動Tomcat服務再啟動Apache服務!***
參考文檔:
[url]http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html[/url]
[url]http://tomcat.apache.org/tomcat-6.0-doc/balancer-howto.html[/url]
[url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy.html[/url]
[url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy_balancer.html[/url]
④ 同一網段三台linux伺服器怎樣搭建集群
三台只能是互相切換,真正的負載集群,一般常規構架:前端一台調度器,中間三台或以上web處理伺服器,後端一台文件伺服器(文件伺服器上存放web和資料庫)
⑤ 如何將兩台物理伺服器和一磁碟陣列在linux環境下集群成一台虛擬化伺服器
這不叫虛擬化,虛擬化的意思是一台機器上虛擬出幾台機器跑好幾個應用,對外看起來就好像是好幾個伺服器一樣。
兩個機器干一個事情推薦你搜HA(high availabilty)(高可用集群)或者負載均衡
說兩種最常用的方法
第一種是每台機器有一個虛擬ip,訪問哪一個都可以獲得服務,如果其中一台掛了,那麼另外一台就把掛了的那一台的虛擬ip也弄到自己機器上,相當於訪問兩台機器的請求都到了一台,這種可以通過各種ha軟體配合分布式文件系統或者各種集群的應用軟體比如oracle rac實現。
第二種方案是集群前面再放一個或幾個設備,所有訪問都到前面的設備上,前面的設備把請求分發給後面的幾個伺服器,後面處理完了再返回給前面的設備再返回用戶,外面看起來就好像全是前面那個機器處理的一樣,這種方式可以用各種反向代理軟體,專用負載均衡設備等實現。
也有兩種方法配合使用的
⑥ 如何最快搭建LINUX伺服器集群
1.2.並行技術
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.使用MPICH構建一個四節點的集群系統
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.1 所需設備
1).4台採用Pentium II處理器的PC機,每台配
置64M內存,2GB以上的硬碟,和EIDE介面的光碟驅動器。
2).5塊100M快速乙太網卡,如SMC 9332 EtherPower 10/100(其中四塊卡用於連接集群中的結點,另外一塊用於將集群中的其中的一個節點與其它網路連接。)
3).5根足夠連接集群系統中每個節點的,使用5類非屏蔽雙絞線製作的RJ45纜線
4).1個快速乙太網(100BASE-Tx)的集線器或交換機
5).1張Linux安裝盤
2.2 構建說明
對計算機硬體不熟的人,實施以下這些構建步驟會感到吃力。如果是這樣,請找一些有經驗的專業人士尋求幫助。
1. 准備好要使用的採用Pentium II處理器的PC機。確信所有的PC機都還沒有接上電源,打開PC機的機箱,在准備與網路上的其它設備連接的PC機上安裝上兩塊快速乙太網卡,在其它的 PC機上安裝上一塊快速乙太網卡。當然別忘了要加上附加的內存。確定完成後蓋上機箱,接上電源。
2. 使用4根RJ45線纜將四台PC機連到快速乙太網的集線器或交換機上。使用剩下的1根RJ45線將額外的乙太網卡(用於與其它網路相連的那塊,這樣機構就可以用上集群)連接到機構的區域網上(假定你的機構區域網也是快速乙太網),然後打開電源。
3. 使用LINUX安裝盤在每一台PC機上安裝。請確信在LINUX系統中安裝了C編譯器和C的LIB庫。當你配置TCP/IP時,建議你為四台PC分別指定為192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC為你的伺服器節點(擁有兩塊網卡的那台)。在這個伺服器節點上的那塊與機構區域網相連的網卡,你應該為其指定一個與機構區域網吻合的IP地址。
4.當所有PC都裝好Linux系統後,編輯每台機器的/etc/hosts文件,讓其包含以下幾行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
編輯每台機器的/etc/hosts.equiv文件,使其包含以下幾行:
node1
node2
node3
node4
$p#
以下的這些配置是為了讓其能使用MPICH』s p4策略去執行分布式的並行處理應用。
1. 在伺服器節點
,建一個/mirror目錄,並將其配置成為NFS伺服器,並在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他節點上,也建一個/mirror目錄,關在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror這個目錄從伺服器上輸出,裝載在各個客戶端,以便在各個節點間進行軟體任務的分發。
4. 在伺服器節點上,安裝MPICH。MPICH的文檔可在
5.任何一個集群用戶(你必須在每一個節點新建一個相同的用戶),必須在/mirror目錄下建一個屬於它的子目錄,如 /mirror/username,用來存放MPI程序和共享數據文件。這種情況,用戶僅僅需要在伺服器節點上編譯MPI程序,然後將編譯後的程序拷貝到在/mirror目錄下屬於它的的子目錄中,然後從他在/mirror目錄下屬於它的的子目錄下使用p4 MPI策略運行MPI程序。
2.3 MPICH安裝指南
1.如果你有gunzip,就d下載mpich.tar.gz,要不然就下載mpich.tar.Z。你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下載,也可以使用匿名FTP到ftp.mcs.anl.gov的pub/mpi目錄拿。(如果你覺得這個東西太大,你可以到pub/mpi/mpisplit中取分隔成塊的幾個小包,然後用cat命令將它們合並)
2.解壓:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Ztar xovf-)
3.進入mpich目錄
4.執行:./configure為MPICH選擇一套適合你的實際軟硬體環境的參數組,如果你對這些默認選擇的參數不滿意,可以自己進行配置(具體參見MPICH的配置文檔)。最好選擇一個指定的目錄來安裝和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.執行:make >&make.log 這會花一段較長的時間,不同的硬體環境花的時間也就不同,可能從10分鍾到1個小時,甚至更多。
6.(可選)在工作站網路,或是一台單獨的工作站,編輯mpich/util/machines/machines.xxx(xxx是MPICH對你機器體系結構取的名稱,你能很容易的認出來)以反映你工作站的當地主機名。你完全可以跳過這一步。在集群中,這一步不需要。
7.(可選)編譯、運行一個簡單的測試程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此時,你就在你的系統上運行了一個MPI程序。
8.(可選)構建MPICH其餘的環境,為ch_p4策略使
用安全的服務會使得任何啟動速度加快,你可以執行以下命令構建:
make serv_p4
(serv_p4是一個較新的P4安全服務的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一個更快版本,但他需要tk 3.6版的源代碼。如果你有這個包,你就用以下命令可以構建它:
make nupshot
9.(可選)如果你想將MPICH安裝到一個公用的地方讓其它人使用它,你可以執行:
make install 或 bin/mpiinstall
你可以使用-prefix選項指定MPICH安裝目錄。安裝後將生成include、lib、bin、sbin、www和man目錄以及一個小小的示例目錄,
到此你可以通告所有的用戶如何編譯、執行一個MPI程序。
⑦ linux 的伺服器群集怎麼建啊
集群最少要有scsi硬碟和scsi卡,需要有共享的硬碟,最好用磁碟陣列櫃。
其它的如多網卡,串口心跳線等等。
使用MOSIX的Linux集群這樣的方案或許比真正的cluser要好些。附件是文檔。請改附件的文件名為rar,這樣就可以了。
⑧ linux上安裝集群怎麼起不來
Linux集群系統包括集群節點和集群管理器兩部分。集群節點有時簡稱為節點、伺服器或伺服器節點,是提供處理資源的系統,它進行集群的實際工作。一般來講,它必須進行配置才能成為集群的一部分,也必須運行集群的應用軟體。應用軟體可以是專用於集群的軟體,也可以是設計用於分布式系統的標准軟體。Linux集群管理器則是將節點捆綁在一起,以構成單一系統外觀的邏輯結構,它用於將任務分解到所有的節點。
集群因多種不同的原因而有著不同的類型,建立Linux集群的最直接原因是共享CPU資源,在多個機器之間平衡負載,獲得更多的系統可靠性,或在主機失敗時提供後備系統(切換)。
通過對相關軟體的分析,實現集群負載的功能是通過流量管理實現的,具體有以下幾種實現方法:直接路由(Direct Forwarding)、網路地址轉換(NAT)和隧道技術(Tunneling)。
直接路由(Direct Forwarding)是當參與集群的計算機和作為控制管理的計算機在同一個網段時可以使用此法。控制管理的計算機接收到請求包時,直接送到參與集群的節點。它的優點是返回給客戶的流量不經過控制主機,速度快、開銷少。
可能大家比較熟悉網路地址轉換(NAT)這種方法。地址轉換器有能被外界訪問到的合法IP地址,它修改來自專有網路的流出包的地址,外界看起來包是來自地址轉換器本身。當外界包送到轉換器時,它能判斷出應該將包送到內部網的哪個節點。它的優點是節省IP地址,能對內部進行偽裝;缺點是效率低,因為返回給請求方的流量要經過轉換器。
隧道技術(Tunneling)這種方式是Linux集群的節點不在同一個網段時採用的轉發機制,是將IP包封裝在其它網路流量中。從安全形度考慮,應該使用隧道技術中的VPN,也可使用租用專線。
Linux集群所能提供的服務是基於TCP/IP的Web服務、Mail服務、News服務、DNS服務和Proxy伺服器等。下面我就以一個具體的產品TurboLinux Cluster Server 來實現一個負載均衡Linux集群系統,用於提供Web和FTP服務。
⑨ 請教neo4j3.0.7 Linux下集群的配置
CentOS 7下怎麼搭建高可用集群。高可用集群是指以減少服務中斷時間為目的的伺服器集群技術。它通過保護用戶的業務程序對外不間斷提供的服務,把因軟體/硬體/人為造成的故障對業務的影響降低到最小程度。那麼新的centos下怎麼來搭建高可用集群。 ...
⑩ rocketmq單個機器怎麼搭建集群在linux
linux伺服器集群平台的搭建比較簡單,有專門的均衡軟體,比如lvs,lvs是一個集群系統,由很多伺服器組成,可以根據需要,把它門分為三層,一層是前端機,用於均衡,相當於公平為系統分配工作,二層是伺服器群,比如web伺服器群,DNS,mail群等,這些就是接待員,把均衡器分配的工作進行處理,第三層是存儲設備,用於存儲數據,相當於檔案庫。
知道這些後,要搭建就非常容易,有現成的軟體,比如我有四台web伺服器,2台資料庫,1台前置機 ,安裝linux系統,安裝lvs軟體,比如
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
heartbeat-devel-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
當然還需要配置,你可以自己網路有關lvs集群的詳細安裝說明。希望能幫助你。