多集群下資源共享方案
在一些公司中,所有服務器按照業務邏輯被拆分成若干個集群,這些集群各自運行著相對獨立的業務,并由專門的運維人員管理。
然而,由于集群中應用特點不同,它們的利用率可能不一致,同一時間段,有的集群業務繁忙,資源利用率高,甚至可能出現排隊等待資源的情況,而另外一些集群則業務空閑,資源利用率很低。此外,多個集群也可能導致數據冗余度增加,比如一個集群中的業務需要另外一個集群中的數據,可能需要跨集群拷貝數據,進而占用更多的磁盤空間。
1. 集群共享帶來的好處
為了解決多集群帶來的問題,可將多個集群統一為一個集群,這將帶來以下幾個好處:
(1)提高集群整體利用率。所有業務運行在一個大的集群中,并按需分配給各個應用程序,可達到資源錯峰交谷的目的,提高系統整體利用率和均衡率。
(2)減少管理成本。多個集群合并成一個大集群后,便于統一管理和統一運維,可減少管理成本。
2. 多集群共享方案
有些公司中,同時存在多個Hadoop集群,這些集群運行著不同的業務線,并對實時性、資源需求、優先級等有不同要求。為了實現集群資源共享,可將多個Hadoop集群合并成一個,并由Hadoop作業調度器統負責資源管理和任務分配。為了對應原先的業務邏輯,作業調度器通常將用戶分成若干個隊列(每個業務線一個隊列),并給每個隊列分配一定比例的資源,作業調度器中包含資源分配邏輯,能夠按照一定的策略將資源分配各這些隊列,并靈活實現資源按需分配,以達到資源***利用。
3. 多服務共享方案
Hadoop只是當前比較流行的開源軟件之一,除了Hadoop,很多公司還有其他一些服務,比如Web Server,Thrift Server、DataBase Service等,同樣,通常考慮到服務的重要性和將來的發展,會將這些服務單獨部署到獨立的幾臺機器上,在大部分情況下,很多機器的資源利用率很低,為了提高機器整體利用率和支持服務自動化部署,可將這些服務混搭地部署到各個服務器上,于是資源統一管理系統誕生了,業界典型代表是Google的Borg和騰訊的Torca,開源界代表是Mesos和YARN。
資源統一管理系統的另外一個值得一提的動機是數據中心編程,也就是說,可以把數據中心看成一臺超大的服務器,由一個資源管理系統對所有的計算資源,包括CPU、內存、硬盤、端口號等,進行統一管理和調度,涉及到的關鍵技術包括資源分配、資源隔離、資源劃分等,具體可參考騰訊Torca的設計文檔。
4. 參考資料
(1)Torca:http://djt.qq.com/article-329-1.html
(2)Mesos:http://www.mesosproject.org/