##########################################################################################
第4章《構建高可用Linux集羣》
一、負載均衡器
1. F5 BIG-IP硬件負載均衡器
2. LVS(Linux virtual servers)負載均衡器
(1) NAT實現虛擬服務器:流量都要經過負載均衡器,存在瓶頸;-> 最普遍,通過混合下面兩種方法改善
(2) 通過IP隧道實現虛擬服務器:負載調度器只負責調度請求,由後端服務器建立IP隧道直接返回給客戶;—>需要後端服務器都支持 IP tunneling/IP Encapsulation.
(3) 直接路由實現虛擬服務器:不改目標IP,只修改MAC爲後端服務器的MAC地址在本地局域網發送(ARP)。響應報文直接由IP地址路由出去 -> 因此要求調度器和後端服務器有一塊網卡在同一物理網段上。
3. Nginx 負載均衡器
工作在網絡7層之上,依賴小;只支持http和Email,不支持Session的直接保持。
4. HAProxy 負載均衡器
工作在第四層TCP和第七層HTTP,支持Session保持,Cookie引導
5. 高可用軟件Keepalived:對故障進行隔離及負載均衡器間的失敗切換。
6. 高可用軟件Heartbeat:資源接管,共享IP轉移
7. 高可用塊設備DRBD
二、回話保持Session同步(幾個連續地請求需要在同一個服務器上完成,比如一筆交易/在這個界面上輸入用戶名密碼)
1. 方法:Cookie、數據庫、Memcache內存共享
2. 保持機制:
(1)簡單會話保持:通過子網掩碼,將同個網段保持在相同服務器 -> 容易導致負載均衡失調;
(2)Cookie會話保持:插入、重寫、Passive、Hash模式等 -> Cookie相當於標識符;
(3)ssh會話保持:通過交換密鑰/證書識別用戶
3. LVS、Nginx ip_hash、HAProxy balance source會話保持
4. VRRP(虛擬路由冗餘協議):主控路由和備份路由。主控路由故障,能迅速切換默認網關到備份路由。
三、案例:
1. Nginx + Keepalived作爲Web負載均衡高可用;
2. 一些簡單的服務檢測並重啓的shell腳本也是高可用的體現;
四、網站架構
1. 網頁緩存層 -> CDN租賃
2. 負載均衡層 -> Nginx/HAproxy
3. Web層 -> Apache
4. 文件服務器層
(1) 單NFS + 備NFS
(2) DRBD + Heartbeat + NFS
(3) 分佈式文件系統MFS、Gluster
5. 數據庫層 (頻繁讀寫,IO問題)
##########################################################################################
第5章《MySQL性能調優和高可用》
一、數據庫性能調優
1. 硬件優化:用RAID1+0,而不用RAID5
2. my.cnf 參數優化
3. 根據實際情況調整 如連接數、進程使用率、文件打開數
4. DRBD + Heartbeat + MySQL雙機高可用,可以用兩根心跳線
5. MySQL Proxy 讀寫分離
6. MySQL 數據庫備份
(1) 邏輯備份:mysqldump得到.sql文件
(2) 物理備份:其實就是複製。冷備份、熱備份:mysqlhotcopy
##########################################################################################
第6章《分佈式自動化部署管理工具puppet》
1. C/S工作模式
2. 功能
(1) 自動安裝軟件包 package{}
(2) 自動執行shell腳本 file + exec
(3) 同步puppet + rsync
(4) ERB模版自動配置Apache虛擬主機
3. 優化
puppet-master 解析緩慢 -> 配置多端口 + Nginx
第8章 《Linux防火牆及系統安全》
1. TCP 建立連接三次握手和斷開連接4次握手;
2. ...