集群和分布式
系統性能擴展方式:
- Scale UP:垂直擴展,向上擴展,增強,性能更強的計算機運行同樣的服務
- Scale Out:水平擴展,向外擴展,增加設備,并行地運行多個服務調度分配問題,Cluster
垂直擴展不再提及:
隨著計算機性能的增長,其價格會成倍增長
單臺計算機的性能是有上限的,不可能無限制地垂直擴展
多核CPU意味著即使是單臺計算機也可以并行的。那么,為什么不一開始就并行化技術?
集群 Cluster
Cluster:集群,為解決某個特定問題將多臺計算機組合起來形成的單個系統
Cluster分為三種類型:
LB:Load Balancing,負載均衡,多個主機組成,每個主機只承擔一部分訪問請求
HA:High Availiablity,高可用,避免SPOF(single Point Of failure)
? MTBF:Mean Time Between Failure 平均無故障時間,正常時間
? MTTR:Mean Time To Restoration( repair)平均恢復前時間,故障時間
? A = MTBF /(MTBF+MTTR) (0,1):99%,99.5%,99.9%,99.99%,99.999%
SLA:服務等級協議(簡稱:SLA,全稱:service level agreement)。是在一定開銷下為保障服務的性能和可用性,服務提供商與用戶間定義的一種雙方認可的協定。通常這個開銷是驅動提供服務質量的主要因素。在常規的領域中,總是設定所謂的三個9,四個9來進行表示,當沒有達到這種水平的時候,就會有一些列的懲罰措施,而運維,最主要的目標就是達成這種服務水平。
1年 = 365天 = 8760小時
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小時
99.99 = 8760 * 0.0001 = 0.876小時 = 0.876 * 60 = 52.6分鐘
99.999 = 8760 * 0.00001 = 0.0876小時 = 0.0876 * 60 = 5.26分鐘
停機時間又分為兩種,一種是計劃內停機時間,一種是計劃外停機時間,而運維則主要關注計劃外停機時間。
- HPC:High-performance computing,高性能 www.top500.org
分布式系統
? 分布式存儲: Ceph,GlusterFS,FastDFS,MogileFS
? 分布式計算:hadoop,Spark
分布式常見應用
- 分布式應用-服務按照功能拆分,使用微服務
- 分布式靜態資源–靜態資源放在不同的存儲集群上
- 分布式數據和存儲–使用key-value緩存系統
- 分布式計算–對特殊業務使用分布式計算,比如Hadoop集群
集群和分布式
集群:同一個業務系統,部署在多臺服務器上。集群中,每一臺服務器實現的功能沒有差別,數據和代碼都是一樣的
分布式:一個業務被拆成多個子業務,或者本身就是不同的業務,部署在多臺服務器上。分布式中,每一臺服務器實現的功能是有差別的,數據和代碼也是不一樣的,分布式每臺服務器功能加起來,才是完整的業務
分布式是以縮短單個任務的執行時間來提升效率的,而集群則是通過提高單位時間內執行的任務數來提升效率。
對于大型網站,訪問用戶很多,實現一個群集,在前面部署一個負載均衡服務器,后面幾臺服務器完成同一業務。如果有用戶進行相應業務訪問時,負載均衡器根據后端哪臺服務器的負載情況,決定由給哪一臺去完成響應,并且一臺服務器垮了,其它的服務器可以頂上來。分布式的每一個節點,都完成不同的業務,如果一個節點垮了,那這個業務可能就會失敗
集群設計原則
可擴展性—集群的橫向擴展能力
可用性—無故障時間 (SLA service level agreement)
性能—訪問響應時間
容量—單位時間內的最大并發吞吐量(C10K 并發問題)
集群設計實現
基礎設施層面
提升硬件資源性能—從入口防火墻到后端 web server 均使用更高性能的硬件資源
多域名—DNS 輪詢A記錄解析
多入口—將A記錄解析到多個公網IP入口
多機房—同城+異地容災
CDN(Content Delivery Network)—基于GSLB(Global Server Load Balance)實現全局負載均衡,如:DNS
業務層面
分層:安全層、負載層、靜態層、動態層、(緩存層、存儲層)持久化與非持久化
分割:基于功能分割大業務為小服務
分布式:對于特殊場景的業務,使用分布式計算
本文鏈接:http://www.royaladd.com/35565.html
網友評論comments