知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
總結一下5年前的工作,在不寫下來自己都快忘光了,工作關係現在已經不涉及運維這塊的工作。
首先制定伺服器拓撲圖,拓撲圖應該有兩套,一套是物理拓撲圖,另一套是基于業務的虛擬拓撲圖。
物理拓撲圖包含機櫃,機位,例如防火牆,核心交換機,機櫃交換機,伺服器,存儲等等他們之間的物理關係。如果是雲主機也許標註出來。
接下來分配IP地址以及服務連接埠號
最後製定虛擬拓撲圖,是各種服務間的關係圖,由IP地址和連接埠組成,標住出他們之間的關係。
什麼東西放在什麼地方,怎麼規劃空間等等。
根據不同用途使用不同的RAID,這主要跟IO密集都與數據安全性有關。
Virtual Disk 技術很有用,我使用這種技術兩RAID劃分為兩個設備,一個用來安裝操作系統,另一個用於數據存儲,方便系統重做。
SSD 機械故障為零,整體故障率低於傳統硬碟。我通常做RAID0用與負載均衡場景。
我通常使用btrfs,LVM/EXT4已經過時。
/ 分區EXT4 安裝操作系統,swap 分區不一定是內存2倍,因為現在的伺服器都是8~16GB,OS很少能使用到交換分區,但是像Oracle這樣強制交換分區為內存兩倍。
其餘所有空間分區格式化為btrfs mount 到 /srv 目錄,在通過子卷(subvolume)分配給各個應用。
提示 | |
---|---|
子卷(subvolume) 有個特點是不能rm -rf 刪除子卷的,也起到一定的安全性。 |
以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
按照物理圖譜圖,對應機位安裝設備,連結網綫,整理機櫃。
注意強弱電分離,以免強電磁場干擾弱電。以Dell系列伺服器為例,電源通常在右邊,網口在中間左邊,這樣電源走機會右側理綫架,網綫走左側理綫架。
我通常每個機櫃放兩台千兆交換機,一台放在機櫃最頂端,通過10GB萬兆乙太網連結至核心交換機,走核心業務數據;另一台放在機櫃最底端,負責其他次要業務,例如遠程控制口,資料庫備份等等。
上電,接通電源,開機。觀察機櫃的電壓/電流變化。
通過腳本或者自動化運維工具按照並配置。
安裝各種伺服器軟件如 nginx, apache-httpd, apache-tomcat ......
軟件運行環境,例如Java,PHP, Node.js, Ruby, Python ......
安裝資料庫,配置複製策略,備份計劃
應用程序部署完畢後不要急着測試,可能很多IP地址以及連接埠不通,這時候測試只能是頻繁報BUG。
我們先讓將監控系統建立起來,監控所有伺服器IP地址與連接埠,以及各種應用服務監控。
硬件監控: 溫度監控,風扇監控,RAID卡監控,內存監控,PCI設備監控...
操作監控:負載,CPU,內存,用戶登陸監控,磁碟空間監控,網絡流量監控,TCP/IP狀態監控,進程數量,綫程監控,殭屍進程,進程退出...
伺服器監控:連接數,綫程數,進程數,內存開銷,節點狀態...
日誌監控:如果監控到日誌中出現某些關鍵次,發出警報。
服務監控:HTTP,SMTP,POP,AJAX/JSON,XML