Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

25.2. 機房遷移

總結一下5年前的工作,在不寫下來自己都快忘光了,工作關係現在已經不涉及運維這塊的工作。

25.2.1. 拓撲確立

首先制定伺服器拓撲圖,拓撲圖應該有兩套,一套是物理拓撲圖,另一套是基于業務的虛擬拓撲圖。

物理拓撲圖包含機櫃,機位,例如防火牆,核心交換機,機櫃交換機,伺服器,存儲等等他們之間的物理關係。如果是雲主機也許標註出來。

接下來分配IP地址以及服務連接埠號

最後製定虛擬拓撲圖,是各種服務間的關係圖,由IP地址和連接埠組成,標住出他們之間的關係。

25.2.2. 存儲規劃

什麼東西放在什麼地方,怎麼規劃空間等等。

25.2.2.1. RAID Disk Group 規劃

根據不同用途使用不同的RAID,這主要跟IO密集都與數據安全性有關。

Virtual Disk 技術很有用,我使用這種技術兩RAID劃分為兩個設備,一個用來安裝操作系統,另一個用於數據存儲,方便系統重做。

SSD 機械故障為零,整體故障率低於傳統硬碟。我通常做RAID0用與負載均衡場景。

25.2.2.2. 檔案系統規劃

我通常使用btrfs,LVM/EXT4已經過時。

/ 分區EXT4 安裝操作系統,swap 分區不一定是內存2倍,因為現在的伺服器都是8~16GB,OS很少能使用到交換分區,但是像Oracle這樣強制交換分區為內存兩倍。

其餘所有空間分區格式化為btrfs mount 到 /srv 目錄,在通過子卷(subvolume)分配給各個應用。

[提示]提示
子卷(subvolume) 有個特點是不能rm -rf 刪除子卷的,也起到一定的安全性。

25.2.2.3. 目錄規劃

以Tomcat為例

Tomcat 的虛擬機功能基本沒用,因為需要升級需要頻繁啟動,會影響其他業務,所以採用每個項目一個實例的方式。

			
/srv/apache-tomcat/ 是Tomcat目錄
/srv/apache-tomcat/www.netkiller.cn 每個實例一個目錄
/srv/apache-tomcat/other.netkiller.cn
			
			

以PHP為例

/srv/php-7.0.0
ln -s /srv/php-7.0.0 /srv/php
			

通過 /srv/php 符號連結可以任意切換PHP版本

代碼目錄與伺服器目錄分開

			
/www/netkiller.cn/www.netkiller.cn
/www/netkiller.cn/other.netkiller.cn
			
			

25.2.3. 設備上架

按照物理圖譜圖,對應機位安裝設備,連結網綫,整理機櫃。

注意強弱電分離,以免強電磁場干擾弱電。以Dell系列伺服器為例,電源通常在右邊,網口在中間左邊,這樣電源走機會右側理綫架,網綫走左側理綫架。

我通常每個機櫃放兩台千兆交換機,一台放在機櫃最頂端,通過10GB萬兆乙太網連結至核心交換機,走核心業務數據;另一台放在機櫃最底端,負責其他次要業務,例如遠程控制口,資料庫備份等等。

上電,接通電源,開機。觀察機櫃的電壓/電流變化。

25.2.4. 操作系統初始化

安裝操作系統,系統裁剪,內核優化,時區設置,配置history格式(記錄每條發出命令的時間點),TCP棧優化

安裝自動化運維客戶端,監控客戶端

25.2.5. 伺服器及運行環境

通過腳本或者自動化運維工具按照並配置。

安裝各種伺服器軟件如 nginx, apache-httpd, apache-tomcat ......

軟件運行環境,例如Java,PHP, Node.js, Ruby, Python ......

安裝資料庫,配置複製策略,備份計劃

25.2.6. 部署應用程序

配置管理員通過虛擬拓撲提供的IP地址,連接埠號以及運維提供的賬號密碼配置應用程序。

然後部署應用程序到遠程伺服器

25.2.7. 監控系統

應用程序部署完畢後不要急着測試,可能很多IP地址以及連接埠不通,這時候測試只能是頻繁報BUG。

我們先讓將監控系統建立起來,監控所有伺服器IP地址與連接埠,以及各種應用服務監控。

硬件監控: 溫度監控,風扇監控,RAID卡監控,內存監控,PCI設備監控...

操作監控:負載,CPU,內存,用戶登陸監控,磁碟空間監控,網絡流量監控,TCP/IP狀態監控,進程數量,綫程監控,殭屍進程,進程退出...

伺服器監控:連接數,綫程數,進程數,內存開銷,節點狀態...

日誌監控:如果監控到日誌中出現某些關鍵次,發出警報。

服務監控:HTTP,SMTP,POP,AJAX/JSON,XML

25.2.8. 日誌中心

所有的日誌應該實時同步到日誌中心,便于開發與測試人員實時觀察伺服器的狀態

25.2.9. 測試

當我們看到監控系統報表中的各種伺服器都暢通無阻時就可以進行驗收測試,測試的時候需要關注監控系統的表徵圖,與日誌中心的日誌變化。

安全測試:硬件防火牆規則,伺服器防火牆規則,SSL證書,伺服器版本號隱藏,操作系統權限檢查

壓力與性能測試

業務功能測試