(1)高性能html
一些國家重要的計算密集型應用(如天氣預報,核試驗模擬等),須要計算機有很強的運算處理能力。以全世界現有的技術,即便是大型機,其計算能力也是有限的,很難單獨完成此任務。由於計算時間可能會至關長,也許幾天,甚至幾年或更久。所以,對於這類複雜的計算業務,便使用了計算機集羣技術,集中幾十上百臺,甚至成千上萬臺計算機進行計算。nginx
假如你配一個LNMP環境,每次只須要服務10個併發請求,那麼單臺服務器必定會比多個服務器集羣要快。只有當併發或總請求數量超過單臺服務器的承受能力時,服務器集羣纔會體現出優點。數據庫
(2)價格有效性編程
一般一套系統集羣架構,只須要幾臺或數十臺服務器主機便可。與動輒價值上百萬元的專用超級計算機相比便宜了不少。在達到一樣性能需求的條件下,採用計算機集羣架構比採用同等運算能力的大型計算機具備更高的性價比。vim
早期的淘寶,支付寶的數據庫等核心系統就是使用上百萬元的小型機服務器。後因使用維護成本過高以及擴展設備費用成幾何級數翻倍,甚至成爲擴展瓶頸,人員維護也十分困難,最終使用PC服務器集羣替換之,好比,把數據庫系統從小機結合Oracle數據庫遷移到MySQL開源數據庫結合PC服務器上來。不但成本降低了,擴展和維護也更容易了。服務器
(3)可伸縮性架構
一般狀況下,硬件設備若想擴展性能,不得不增長新的CPU和存儲器設備,若是加不上去了,就不得不夠買更高性能的服務器,就拿咱們如今的服務器來說,能夠增長的設備老是有限的。若是採用集羣技術,則只須要將新的單個服務器加入現有集羣架構中便可,從訪問的客戶角度來看,系統服務不管是連續性仍是性能上都幾乎沒有變化,系統在不知不覺中完成了升級,加大了訪問能力,輕鬆地實現了擴展。集羣系統中的節點數目能夠增加到幾千乃至上萬個,其伸縮性遠超過單臺超級計算機併發
(4)高可用性app
單一的計算機系統總會面臨設備損毀的問題,如CPU,內存,主板,電源,硬盤等,只要一個部件壞掉,這個計算機系統就可能會宕機,沒法正常提供服務。在集羣系統中,儘管部分硬件和軟件也仍是會發生故障,但整個系統的服務能夠是7*24小時可用的。負載均衡
集羣架構技術可使得系統在若干硬件設備故障發生時仍能夠繼續工做,這樣就將系統的停機時間減小到了最小。集羣系統在提升系統可靠性的同時,也大大減少了系故障帶來的業務損失,目前幾乎100%的互聯網網站都要求7*24小時提供服務。
(5)透明性
多個獨立計算機組成的鬆耦合集羣系統構成一個虛擬服務器。用戶或客戶端程序訪問集羣系統時,就像訪問一臺高性能,高可用的服務器同樣,集羣中一部分服務器的上線,下線不會中斷整個系統服務,這對用戶也是透明的
(6)可管理性
整個系統可能在物理上很大,但其實容易管理,就像管理一個單一映像系統同樣。在理想情況下,軟硬件模塊的插入能作到即插即用。
(7)可編程性
在集羣系統上,容易開發及修改各種應用程序。
計算機集羣架構按功能和結構能夠分紅如下幾類:
負載均衡集羣的做用爲:
負載均衡集羣典型的開源軟件包括LVS,Nginx,Haproxy等。以下圖所示:
(2)高可用性集羣的做用爲
通常是指在集羣中任意一個節點失效的狀況下,該節點上的全部任務會自動轉移到其餘正常的節點上。此過程並不影響整個集羣的運行。
- 當集羣中的一個節點系統發生故障時,運行着的集羣服務會迅速做出反應,將該系統的服務分配到集羣中其餘正在工做的系統上運行。考慮到計算機硬件和軟件的容錯性,高可用性集羣的主要目的是使集羣的總體服務儘量可用。若是高可用性集羣中的主節點發生了故障,那麼這段時間內將由備節點代替它。備節點一般是主節點的鏡像。當它代替主節點時,它能夠徹底接管主節點(包括IP地址及其餘資源)提供服務,所以,使集羣系統環境對於用戶來講是一致的,既不會影響用戶的訪問。
- 高可用性集羣使服務器系統的運行速度和響應速度會盡量的快。他們常常利用在多臺機器上運行的冗餘節點和服務來相互跟蹤。若是某個節點失敗,它的替補者將在幾秒鐘或更短期內接管它的職責。所以,對於用戶而言,集羣裏的任意一臺機器宕機,業務都不會受影響(理論狀況下)
(3) 高性能計算集羣
高性能計算集羣也稱並行計算。一般,高性能計算集羣涉及爲集羣開發的並行應用程序,以解決複雜的科學問題(天氣預報,石油勘探,核反應模擬等)。高性能計算集羣對外就好像一個超級計算機,這種超級計算機內部由數十至上萬個獨立服務器組成,而且在公共消息傳遞層上進行通訊以運行並行應用程序。在生產環境中實際就是把任務切成蛋糕,而後下發到集羣節點計算,計算後返回結果,而後繼續領新任務計算,如此往復。
(1)安裝依賴軟件包命令集合。
[root@localhost ~]# yum -y install openssl openssl-devel pcre pcre-devel
[root@localhost ~]# rpm -qa openssl openssl-devel pcre pcre-devel
(2)安裝Nginx軟件包命令集合
[root@localhost ~]# tar xf nginx-1.10.2.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/nginx-1.10.2/
[root@localhost nginx-1.10.2]# useradd -M -s /sbin/nologin nginx
[root@localhost nginx-1.10.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
#1主機安裝如下命令
#vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream default_server {
server 192.168.184.152 weight=1;
server 192.168.184.153 weight=1;
}
server {
listen 80;
server_name www.yunjisuan.com;
location / {
proxy_pass http://default_server;
#root html;
#index index.html index.htm;
}
}
}
#cd /usr/local/nginx/html
#mkdir www
#echo "`hostname -I` www.yunjisuan.com" > www/index.html
#vim /etc/hosts
#192.168.184.137 www.yunjisuan.com
#/usr/local/nginx/sbin/nginx
2和3主機安裝如下
#vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr-$remote_user[$time_local]"$request"'
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent""$http_x_forwarded_for"';
server {
listen 80;
server_name yyy.yunjisuan.com;
location / {
root html/yyy;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.yunjisuan.com;
location / {
root html/www;
index index.html index.htm;
}
access_log logs/access_www.log main;
}
}
#cd /html
#mkdir yyy www
#echo "`hostname -I` www.yunjisuan.com" > www/index.html
#echo "`hostname -I` yyy.yunjisuan.com" > yyy/index.html
#vim /etc/hosts
#192.168.184.152 yyy.yunjisuan.com
#192.168.184.152 www.yunjisuan.com
另外一個也是像上面寫 只是改下IP地址
#/usr/local/nginx/sbin/nginx
完成