Facebook揭密:如何讓MySQL數(shù)據(jù)庫集群自主運行
Facebook運行著全球***的MySQL數(shù)據(jù)庫集群,該集群分布在兩個大洲上的多個數(shù)據(jù)中心中數(shù)以千計的服務(wù)器上。讓人不解的是,F(xiàn)acebook只動用了一個很小的團隊來管理這個龐大的MySQL數(shù)據(jù)庫集群。
近日Facebook的Shlomo Priymak在Facebook博客上發(fā)文揭開了這個秘密。Facebook的秘訣就是Facebook自己開發(fā)的MySQL Pool Scanner(MPS),MPS能完成一個MySQL數(shù)據(jù)庫管理員(BDA)的幾乎所有運營維護工作,使得Facebook的數(shù)據(jù)庫集群運營能夠?qū)崿F(xiàn)高度的自動化。
據(jù)Priymak介紹,MPS非常復(fù)雜,代碼大部分由Python寫成,不但能夠保證集群的可用性,同時還讓管理員能夠輕松完成很多復(fù)雜任務(wù)(升級內(nèi)核、調(diào)整分區(qū)大小、升級控制器固件等),例如只用單條命令就拷貝整個Facebook數(shù)據(jù)中心的數(shù)據(jù)集。以下是一些常見的能用單條命令操作的數(shù)據(jù)庫集群維護工作:
- 將任意數(shù)量的數(shù)據(jù)庫機架清空維護,并移出生產(chǎn)環(huán)境。(大多數(shù)操作在24小時內(nèi)完成)
- 在特定的并發(fā)數(shù)時刻重新鏡像數(shù)千臺機器(例如進行內(nèi)核升級)
- 將任意數(shù)量的可用資源分配給新的項目或者測試任務(wù)。例如一次分配200臺服務(wù)器用于測試。
- 為整個新數(shù)據(jù)中心建立拷貝,例如Facebook的呂勒奧數(shù)據(jù)中心。
























