遊戲伺服器運維疑惑?

求教各位高手,最近在了解網遊伺服器的運維工作。但是先前完全沒有經驗,希望有行業前輩可以不吝賜教。

比如對於遊戲伺服器,那麼多組的伺服器,如何進行遊戲文件的批量部署,使自己的更新工作不重複操作。另外還有資料庫的備份恢復機制,例如MySQL的話,是直接寫腳本設定好時間周期自動備份,然後將備份文件保存嗎。


1、必須要有cmdb,這個是大腦,自動化監控,成本控制,批量操作等等都依賴其

2、用puppet,salkstack,或者ansible等工具

3、用虛擬機

4、要有日誌收集分析集群,遊戲數據和日誌分離

5、資料庫要做主從,在從上面做備份


好吧,我來自己回答-。-

這幾天看了些分散式的工具,最終選擇saltstack開始自動化運維。剛好它有

salt * cp.get_dir salt://文件路徑 /遠程主機路徑

的命令,試用了一下,發布7個G的文件夾,內網的話大概二三十分鐘吧。感覺還可以。

saltstack文件伺服器的解釋可見圖靈社區 : 閱讀 : SaltStack中的文件伺服器

詳細功能可以參考中文手冊salt 目錄


遊戲公司從100台伺服器發展到10000+伺服器,架構和運維方式都會有所不同。

第一個階段,公司一般採用手工運維,技術含量並不高,純粹是採用人與實踐堆積進行。運維同學需要登錄每一台伺服器,順序執行相關的命令和腳本。就你的問題來看應該已經過了這個階段了。

在第二個階段,通過自動化工具進行批量運維,使用expect寫的auto批量腳本,所有操作只需登錄一台集控伺服器執行批量並發操作的腳本,獨立的版控伺服器,通過並行的主動推送;

第三個階段,可以實現系統化運維,多個運維繫統相互協調配合實現,例如:CMDB、業務樹、作業平台等。遊戲區組搭建的時間基本上可以忽略(可按需求實現按條件觸發或手動觸發搭建操作),所有的更新操作在WEB管理平台就可完成。

至於mysql的備份,採用Xtrabackup在主庫上直接備份數據文件方式,備份文件暫存本地;本地備份完成後在備份系統選舉一台遠程伺服器進行異地備份;備份策略每小時一次備份,半小時本地備份半小時遠程備份。

這種方法在單主庫業務場景下是最靠譜的備份方案,但是備份過程會對主庫有影響。所以數據恢復也是很重要的。


批量伺服器管理方面,可以用ansible

建議學一下python,用於運維工具開發

一個管理伺服器配置信息的後台,可以讓會PHP的人開發,當然用python也可以

一個儲存伺服器配置信息的cmdb

運維工具通過cmdb獲取遊戲伺服器信息(IP、埠……),然後調用ansible的介面。


初級階段,全手工操作

中級階段,腳本操作

高級階段,寫專門工具點點點


建議搞個一鍵裝環境腳本,每出一個新伺服器,一鍵腳本部署環境


可了解一下騰訊遊戲運維平台「藍鯨」


puppet


推薦閱讀:

關於固態硬碟的定址原理和定址速度的一個疑問?
作為一個機房運維維護人員,對linux的學習多深才算合格??
PHP在IIS8 Apache Nginx 哪個性能更好?
你覺得最實用的linux腳本哪些?
像蘋果Time Machine 一樣備份Linux伺服器(基於rsync)

TAG:Linux | 運維 | 遊戲伺服器 |