遊戲伺服器運維疑惑?
01-27
求教各位高手,最近在了解網遊伺服器的運維工作。但是先前完全沒有經驗,希望有行業前輩可以不吝賜教。
比如對於遊戲伺服器,那麼多組的伺服器,如何進行遊戲文件的批量部署,使自己的更新工作不重複操作。另外還有資料庫的備份恢復機制,例如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)