高性能Linux伺服器構建實戰

高性能Linux伺服器構建實戰

《高性能Linux伺服器構建實戰》是2012年機械工業出版社出版的書籍,作者是高俊峰。

內容簡介

《高性能Linux伺服器構建實戰:運維監控、性能調優與集群套用》一書以構建高性能Linux伺服器為核心內容,從Web套用、數據備份與恢復、網路存儲套用、運維監控與性能最佳化、集群高級套用等多個方面深入講解了如何構建高性能的Linux伺服器。全書以實戰性為導向,所有內容都來自於作者多年實踐經驗的總結,同時從社區中收集了大量Linux運維人員遇到的有代表性的疑難問題,並給出了優秀的解決方案,實踐指導意義極強。

全書分為5個部分。Web套用篇詳細介紹了Nginx、Varnish和Memcached這三款Linux伺服器上極為常用的Web套用軟體的安裝、配置、管理、使用方法、工作原理和性能調優技巧。數據備份與恢復篇首先講述了開源備份軟體bacula的使用與管理技巧,並通過實例講解了在bacula上進行各種備份與恢復操作的具體方法;其次講解了開源數據鏡像備份工具rsync和unison的使用,並通過兩個企業級案例演示了這兩個工具在生產環境中的使用過程;最後講解了如何利用ext3grep工具來恢復誤刪除的數據檔案和MySQL資料庫的方法。網路存儲套用篇首先系統地講解了網路存儲技術iSCSI的配置和使用,然後講解了分散式存儲系統MFS的使用和維護。運維監控與性能最佳化篇通過理論與實踐相結合的方法講解了如何利用Nagios進行性能監控,以及Linux伺服器的性能分析原則和最佳化方法。集群高級套用篇是前面內容的綜合,也是本書的核心,主要講述了如何通過LVS+heartbeat、piranha、LVS+Keepalived來構建高可用的負載均衡集群,其次講解了紅帽集群套件RHCS的配置、管理、維護和監控,然後講解了Oracle集群解決方案,即Oracle RAC資料庫的構建、使用和維護。最後以構建一個MySQL+heartbeat+DRBD+LVS集群系統的實戰案例結束全書,巧妙地將本書的所有核心內容都融合到了一起。

作品目錄

前言

第1篇 Web套用篇

第1章 輕量級HTTP伺服器Nginx

1.1 什麼是Nginx

1.2 為什麼要選擇Nginx

1.2.1 Nginx與Apache的異同

1.2.2 選擇Nginx的優勢所在

1.3 Nginx的模組與工作原理

1.4 Nginx的安裝與配置

1.4.1 下載與安裝Nginx

1.4.2 Nginx配置檔案的結構

1.4.3 配置與調試Nginx

1.4.4 Nginx的啟動、關閉和平滑重啟

1.5 Nginx常用配置實例

1.5.1 虛擬主機配置實例

1.5.2 負載均衡配置實例

1.5.3 防盜鏈配置實例

1.5.4 日誌分割配置實例

1.6 Nginx性能最佳化技巧

1.6.1 編譯安裝過程最佳化

1.6.2 利用TCMalloc最佳化Nginx的性能

1.6.3 Nginx核心參數最佳化

1.7 實戰Nginx與PHP(FastCGI)的安裝、配置與最佳化

1.7.1 什麼是 FastCGI

1.7.2 Nginx+FastCGI運行原理

1.7.3 spawn-fcgi與PHP-FPM

1.7.4 PHP與PHP-FPM的安裝及最佳化

1.7.5 配置Nginx來支持PHP

1.7.6 測試Nginx對PHP的解析功能

1.7.7 最佳化Nginx中FastCGI參數的實例

1.8 實戰Nginx與Perl、Java的安裝與配置

1.8.1 Perl(FastCGI)的安裝

1.8.2 為Nginx添加FCGI支持

1.8.3 測試Nginx +Perl(FastCGI)

1.8.4 搭建Nginx+Java環境

1.9 本章小結

第2章 高性能HTTP加速器Varnish

2.1 初識Varnish

2.1.1 Varnish概述

2.1.2 Varnish的結構與特點

2.1.3 Varnish與Squid的對比

2.2 開始安裝Varnish

2.2.1 安裝前的準備

2.2.2 獲取Varnish軟體

2.2.3 安裝pcre

2.2.4 安裝Varnish

2.3 配置Varnish

2.3.1 VCL使用說明

2.3.2 配置一個簡單的Varnish實例

2.3.3 Varnish對應多台Web伺服器的配置實例

2.4 運行Varnish

2.4.1 varnishd指令

2.4.2 配置Varnish運行腳本

2.4.3 管理Varnish運行日誌

2.5 管理Varnish

2.5.1 查看Varnish進程

2.5.2 查看Varnish快取效果與狀態

2.5.3 通過連線埠管理Varnish

2.5.4 管理Varnish快取內容

2.6 Varnish最佳化

2.6.1 最佳化Linux核心參數

2.6.2 最佳化系統資源

2.6.3 最佳化Varnish參數

2.7 Varnish的常見套用實例

2.7.1 利用Varnish實現圖片防盜鏈

2.7.2 利用Varnish實現靜態檔案壓縮處理

2.8 本章小結

第3章 Memcached套用實戰

3.1 Memcached基礎

3.1.1 什麼是Memcached

3.1.2 Memcached的特徵

3.1.3 Memcached的安裝

3.1.4 Memcached的簡單使用過程

3.2 剖析Memcached的工作原理

3.2.1 Memcached的工作過程

3.2.2 Slab Allocation的工作機制

3.2.3 Memcached的刪除機制

3.2.4 Memcached的分散式算法

3.3 Memcached的管理與性能監控

3.3.1 如何管理Memcached

3.3.2 Memcached的監控

3.3.3 Memcached變種產品介紹

3.4 通過UDFs實現Memcached與MySQL的自動更新

3.4.1 UDFs使用簡介

3.4.2 memcached_functions_mysql套用實例

3.4.3 對memcached_functions_mysql的簡單功能進行測試

3.4.4 使用memcached_functions_mysql的經驗與技巧

3.5 本章小結

第2篇 數據備份恢復篇

第4章 開源網路備份軟體bacula

4.1 bacula總體概述

4.1.1 bacula是什麼

4.1.2 bacula適合哪些用戶

4.1.3 bacula的功能特點

4.1.4 bacula的工作原理

4.2 安裝bacula

4.2.1 bacula的幾種網路備份拓撲

4.2.2 編譯與安裝bacula

4.2.3 初始化MySQL資料庫

4.3 配置一個bacula備份系統

4.3.1 配置bacula的Console端

4.3.2 配置bacula的Director端

4.3.3 配置bacula的SD

4.3.4 配置bacula的FD端

4.4 啟動與關閉bacula

4.4.1 啟動bacula的Director daemon與Storage daemon

4.4.2 在客戶端FD啟動File daemon

4.5 實戰bacula備份恢復過程

4.5.1 實例演示bacula的完全備份功能

4.5.2 實例演示bacula的增量備份功能

4.5.3 實例演示bacula的差異備份功能

4.5.4 實例演示bacula的完全恢復功能

4.5.5 實例演示bacula的不完全恢復功能

4.6 本章小結

第5章 數據鏡像備份工具rsync與unison

5.1 rsync簡介

5.1.1 什麼是rsync

5.1.2 rsync的功能特性

5.1.3 下載與安裝rsync軟體

5.2 利用rsync搭建數據鏡像備份系統

5.2.1 rsync的套用模式

5.2.2 企業案例:搭建遠程容災備份系統

5.3 通過rsync+inotify實現數據的實時備份

5.3.1 rsync的優點與不足

5.3.2 初識inotify

5.3.3 安裝inotify工具inotify-tools

5.3.4 inotify相關參數

5.3.5 inotifywait相關參數

5.3.6 企業套用案例:利用rsync+inotify搭建實時同步系統

5.4 unison簡介

5.5 安裝unison

5.6 配置雙機ssh信任

5.6.1 在兩台機器上創建 RSA密鑰

5.6.2 添加密鑰到授權密鑰檔案中

5.7 unison的使用

5.7.1 本地使用unison

5.7.2 遠程使用unison

5.7.3 unison參數說明

5.7.4 通過配置檔案來使用unison

5.8 本章小結

第6章 ext3檔案系統反刪除利器ext3grep

6.1 “rm–rf”帶來的困惑

6.2 ext3grep的安裝與使用

6.2.1 ext3grep的恢復原理

6.2.2 ext3grep的安裝過程

6.3 通過ext3grep恢復誤刪除的檔案與目錄

6.3.1 數據恢復準則

6.3.2 實戰ext3grep恢復檔案

6.4 通過ext3grep恢復誤刪除的MySQL表

6.4.1 MySQL存儲引擎介紹

6.4.2 模擬MySQL表被誤刪除的環境

6.4.3 通過ext3grep分析數據、恢複數據

6.5 本章小結

第3篇 網路存儲套用篇

第7章 IP網路存儲iSCSI

7.1 存儲的概念與術語

7.1.1 SCSI介紹

7.1.2 FC介紹

7.1.3 DAS介紹

7.1.4 NAS介紹

7.1.5 SAN介紹

7.2 iSCSI的概念

7.3 FC SAN與IP SAN

7.4 iSCSI的組成

7.4.1 iSCSI Initiator

7.4.2 iSCSI Target

7.5 iSCSI的工作原理

7.6 搭建基於IP SAN的iSCSI存儲系統

7.6.1 安裝iSCSI Target軟體

7.6.2 配置一個簡單的iSCSI Target

7.6.3 在Windows上配置iSCSI Initiator

7.6.4 在Linux上配置iSCSI Initiator

7.7 iSCSI 在安全方面的相關設定

7.7.1 Initiator主機以IP認證方式獲取iSCSI Target資源

7.7.2 Initiator主機以密碼認證方式獲取iSCSI Target資源

7.8 iSCSI性能最佳化方案

7.8.1 iSCSI性能瓶頸

7.8.2 iSCSI性能最佳化

7.9 本章小結

第8章 分散式存儲系統MFS

8.1 MFS概論

8.2 MFS 檔案系統

8.2.1 MFS檔案系統結構

8.2.2 MFS的編譯與安裝實例

8.3 編譯與使用MFS的經驗總結

8.3.1 安裝選項說明

8.3.2 管理伺服器

8.3.3 元數據日誌伺服器

8.3.4 數據存儲伺服器

8.3.5 客戶端掛載

8.4 管理與使用MFS

8.4.1 在客戶端掛載檔案系統

8.4.2 MFS常用操作

8.4.3 為垃圾箱設定隔離時間

8.4.4 快照

8.4.5 MFS的其他命令

8.5 維護MFS

8.5.1 啟動MFS集群

8.5.2 停止MFS集群

8.5.3 MFS 數據存儲伺服器的維護

8.5.4 MFS元數據的備份

8.5.5 MFS 管理伺服器的恢復

8.5.6 從備份恢復MFS 管理伺服器

8.6 通過冗餘實現失敗防護的解決方案

8.7 本章小結

第4篇 運維監控與性能最佳化篇

第9章 運維監控利器Nagios

9.1 Nagios綜述

9.1.1 什麼是Nagios

9.1.2 Nagios的結構與特點

9.2 Nagios的安裝與配置

9.2.1 安裝Nagios

9.2.2 配置Nagios

9.3 Nagios的運行和維護

9.3.1 驗證Nagios配置檔案的正確性

9.3.2 啟動與停止Nagios

9.3.3 Nagios故障報警

9.4 Nagios性能分析圖表的實現

9.4.1 Nagios性能分析圖表的作用

9.4.2 PNP的概念與安裝環境

9.4.3 安裝PNP

9.4.4 配置PNP

9.4.5 修改Nagios配置檔案

9.4.6 測試PNP功能

9.5 利用外掛程式擴展Nagios的監控功能

9.5.1 利用NRPE外部構件監控遠程主機

9.5.2 利用飛信實現Nagios簡訊報警功能

9.6 本章小結

第10章 基於Linux伺服器的性能分析與最佳化

10.1 系統性能分析的目的

10.1.1 找到系統性能的瓶頸

10.1.2 提供性能最佳化方案

10.1.3 使系統硬體和軟體資源的使用達到平衡

10.2 分析系統性能涉及的人員

10.2.1 Linux系統管理人員

10.2.2 系統架構設計人員

10.2.3 軟體開發人員

10.3 影響Linux性能的各種因素

10.3.1 系統硬體資源

10.3.2 作業系統相關資源

10.3.3 應用程式軟體資源

10.4 系統性能分析標準和最佳化原則

10.5 幾種典型套用對系統資源使用的特點

10.5.1 以靜態內容為主的Web套用

10.5.2 以動態內容為主的Web套用

10.5.3 資料庫套用

10.5.4 軟體下載套用

10.5.5 流媒體服務套用

10.6 Linux下常見的性能分析工具

10.6.1 vmstat命令

10.6.2 sar命令

10.6.3 iostat命令

10.6.4 free命令

10.6.5 uptime命令

10.6.6 netstat命令

10.6.7 top命令

10.7 基於Web套用的性能分析及最佳化案例

10.7.1 基於動態內容為主的網站最佳化案例

10.7.2 基於動態、靜態內容結合的網站最佳化案例

10.8 本章小結

第5篇 集群高級套用篇

第11章 構建高可用的LVS負載均衡集群

11.1 LVS集群的組成與特點

11.1.1 LVS集群的組成

11.1.2 LVS集群的特點

11.1.3 LVS集群系統的優缺點

11.2 高可用 LVS負載均衡集群體系結構

11.3 高可用性軟體Heartbeat與Keepalived

11.3.1 開源HA軟體Heartbeat的介紹

11.3.2 安裝heartbeat

11.3.3 開源HA軟體Keepalived的介紹

11.3.4 安裝Keepalived

11.4 安裝LVS軟體

11.4.1 配置與檢查安裝環境

11.4.2 在Director Server上安裝IPVS管理軟體

11.5 搭建高可用 LVS集群

11.5.1 通過heartbeat搭建LVS高可用性集群

11.5.2 通過Keepalived搭建LVS高可用性集群系統

11.5.3 通過piranha搭建LVS高可用性集群

11.6 測試高可用LVS負載均衡集群系統

11.6.1 高可用性功能測試

11.6.2 負載均衡測試

11.6.3 故障切換測試

11.7 本章小結

第12章 RHCS集群

12.1 RHCS集群概述

12.2 RHCS集群的組成與結構

12.2.1 RHCS集群的組成

12.2.2 RHCS集群結構

12.3 RHCS集群的運行原理及功能

12.3.1 分散式集群管理器(CMAN)

12.3.2 鎖管理(DLM)

12.3.3 配置檔案管理(CCS)

12.3.4 柵設備(Fence)

12.3.5 高可用性服務管理器

12.3.6 集群配置和管理工具

12.3.7 Redhat GFS

12.4 安裝RHCS

12.4.1 安裝前準備工作

12.4.2 配置共享存儲和RHCS管理端Luci

12.4.3 在集群節點上安裝RHCS軟體包

12.4.4 在集群節點上安裝和配置iSCSI客戶端

12.5 配置RHCS高可用集群

12.5.1 創建一個cluster

12.5.2 創建Failover Domain

12.5.3 創建Resources

12.5.4 創建Service

12.5.5 配置存儲集群GFS

12.5.6 配置表決磁碟

12.5.7 配置Fence設備

12.6 管理和維護RHCS集群

12.6.1 啟動RHCS集群

12.6.2 關閉RHCS集群

12.6.3 管理套用服務

12.6.4 監控RHCS集群狀態

12.6.5 管理和維護GFS2檔案系統

12.7 RHCS集群功能測試

12.7.1 高可用集群測試

12.7.2 存儲集群測試

12.8 本章小結

第13章 Oracle RAC集群

13.1 Oracle集群體系結構

13.2 Oracle ClusterWare體系結構與進程介紹

13.2.1 Oracle ClusterWare 簡介

13.2.2 Oracle ClusterWare 進程介紹

13.3 RAC資料庫體系結構與進程

13.3.1 RAC 簡介

13.3.2 Oracle RAC的特點

13.3.3 RAC進程管理

13.3.4 RAC資料庫存儲規劃

13.4 安裝Oracle RAC資料庫

13.4.1 安裝前的系統配置需求

13.4.2 設定資料庫安裝資源

13.4.3 配置主機解析檔案

13.4.4 檢查所需軟體包

13.4.5 配置系統核心參數

13.4.6 設定 Shell對Oracle用戶的限制

13.4.7 配置hangcheck-timer核心模組

13.4.8 配置系統安全設定

13.4.9 創建Oracle用戶和組

13.4.10 設定Oracle用戶環境變數

13.4.11 配置節點間SSH信任

13.4.12 配置共享存儲系統

13.4.13 安裝Oracle Clusterware

13.4.14 安裝Oracle資料庫

13.4.15 配置Oracle Net

13.4.16 創建RAC資料庫

13.5 Oracle CRS的管理與維護

13.5.1 查看集群狀態

13.5.2 啟動與關閉集群服務資源

13.5.3 啟動與關閉CRS

13.5.4 管理voting disk

13.5.5 管理OCR

13.5.6 快速卸載CRS

13.6 ASM基本操作維護

13.6.1 ASM的特點

13.6.2 ASM的體系結構與後台進程

13.6.3 管理ASM實例

13.7 利用srvctl管理RAC資料庫

13.7.1 查看實例狀態(srvctl status)

13.7.2 查看RAC資料庫配置信息(srvctl config)

13.7.3 啟動

13.7.4 增加

13.8 測試RAC資料庫集群的功能

13.8.1 負載均衡測試

13.8.2 透明套用失敗切換測試

13.9 本章小結

第14章 構建MySQL+heartbeat+DRBD+LVS集群套用系統

14.1 MySQL高可用集群概述

14.2 heartbeat + DRBD高可用性方案的實現原理

14.3 部署MySQL高可用高擴展集群

14.3.1 配置之前的準備

14.3.2 DRBD的部署

14.3.3 DRBD的配置

14.3.4 DRBD的維護和管理

14.3.5 DRBD的性能最佳化

14.3.6 MySQL的部署

14.3.7 heartbeat的部署

14.4 搭建Slave集群

14.4.1 為什麼要搭建Slave集群

14.4.2 利用LVS+Keepalived搭建高可用MySQL Slave集群

14.4.3 高可用Slave集群的一些注意點

14.5 部署MySQL集群要考慮的問題

14.6 本章小結

媒體評論

本書很有可能成為Linux伺服器構建與運維領域的經典著作之一,從運維監控、性能最佳化和集群套用等多方面對如何構建高性能的Linux伺服器進行了細緻的講解和全面的解析,蘊含了豐富的運維經驗。更為重要的是,本書的內容不受硬體環境的限制,同時包含大量實用性極強的案例。對於廣大Linux伺服器運維人員來說,真可謂“一書在手,運維不愁”。

——ITPUB技術論壇

開源賦予了Linux強大的生命力,Linux因為開源而聚集了全球技術精英的智慧。本書圍繞“高性能”這個話題,先從實用的角度詳細講解了各種與構建高性能Linux伺服器相關的開源軟體的配置、使用、管理和維護;然後結合實際生產環境講解了Web套用、數據備份與恢復、網路存儲套用、性能最佳化與運維監控、集群高級套用等方面的知識,能給Linux運維人員和系統管理人員非常實用的指導。

——51CTO

從內容上講,本書基本涵蓋了當前Linux伺服器系統運維所需要的主流技術。與大部分運維手冊性質的書籍不同的是,本書注重於實踐,包含大量來自於實際生產環境中的案例,能幫助我們解決很多實際工作中會遇到的問題,實踐指導意義很強。我將這本書推薦本給所有從事Linux伺服器運維的同行,希望它能幫助大家提高技能、收穫經驗,最終實現升職加薪的願望。

——田逸 資深系統架構師/《網際網路運營智慧:高可用可擴展網站技術實戰》作者

“南非螞蟻”是我多年的好友,也是我的同行,我深知他的系統運維功底相當深厚,在這個領域積累豐富的經驗。他能將自己的這些經驗梳理、總結並以書的方式分享出來,實在是難能可貴。本書從Web套用、數據備份與恢復、網路存儲套用、性能最佳化與運維監控、集群高級套用等方面講解了構建高性能Linux伺服器的方法與最佳實踐。此外,本書的敘述通俗易懂、語言幽默風趣,可讀性也很好。如果你拿起了這本書,就建議你不要再猶豫了,按照書中的內容去實踐吧,相信你一定會大有收穫。

——楊向勇 51JOB系統運維經理兼首席DBA

作者簡介

高俊峰(南非螞蟻),資深系統管理員、系統架構師、DBA和技術顧問,從事Linux+Oracle伺服器系統的運維和管理多年,在系統管理、故障診斷與排除、性能調優、集群和虛擬化等方面積累了大量的實戰經驗。國內知名IT技術社區51CTO的部落格專家和IXPUB論壇Linux版塊的版主,同時還活躍於ChinaUnix和ITPUB等技術社區,在社區和論壇里發表了大量技術文章,深受歡迎。此外,他還著有暢銷書《循序漸進Linux》,廣獲讀者好評。

相關詞條

熱門詞條

聯絡我們