循序漸進 Linux (第2版) 『基礎知識、服務器搭建、系統管理、性能調優、虛擬化與集群應用』
內容描述
<內容簡介>
《循序漸進Linux(第2版)基礎知識服務器搭建系統管理性能調優虛擬化與集群應用》從基礎知識入手,系統講解了Linux系統結構、shell、主流服務器搭建及故障排除、用戶權限管理、磁盤存儲管理、文件系統管理、內存管理和系統進程管理等關鍵技術,深入研究了系統性能優化思路、系統性能評估與優化、集群技術、負載均衡等Linux熱點主題。《循序漸進Linux(第2版)基礎知識服務器搭建系統管理性能調優虛擬化與集群應用》強調學習方法以及技術能力的培養,在每個知識點後都給出了大量操作案例,包括了詳細的操作步驟,具有很強的可操作性,並對案例進行分析,提供瞭解決問題的思路和方法,做到了授人以漁。《循序漸進Linux(第2版)基礎知識服務器搭建系統管理性能調優虛擬化與集群應用》適合希望系統、全面學習Linux技術的初學者作為教材,也適合Linux系統管理員、數據庫管理人員、網絡安全管理人員、系統集成人員和系統架構師參考。
<章節目錄>
第一篇基礎知識篇第1章學習Linux的經驗與技巧3 1.1 Linux在各領域發展的現狀與趨勢4 1.1.1 Linux與開源軟件4 1.1.2 Linux在服務器領域的發展4 1.1.3 Linux在桌面領域的發展5 1.1.4 Linux在移動嵌入式領域的發展5 1.1.5 Linux在雲計算/大數據領域的發展5 1.2選擇適合自己的Linux發行版5 1.2.1常見的Linux發行版6 1.2 .2初學者入門首選— CentOS系列8 1.2.3桌面平臺首選— Ubuntu Linux 9 1.2.4企業級應用首選— RHEL/CentOS系列9 1.3養成良好的Linux操作習慣9 1.3.1一定要習慣命令行方式10 1.3.2理論結合實踐10 1.3.3學會使用Linux聯機幫助10 1.3.4學會獨立思考問題,獨立解決問題11 1.3.5學習專業英語11 1.3.6 Linux學習路線圖11 1.4用虛擬機技術學習Linux 13 1.4.1虛擬機技術13 1.4.2使用虛擬機技術的好處13 1.4.3虛擬機的運行環境和硬件需求13 1.4.4虛擬機的安裝與使用14 1.5 Linux學習資源20 1.5.1網絡資源、搜索引擎、論壇20 1.5.2有本書在身邊20 第2章Linux系統的安裝與基礎配置21 2.1安裝需求22 2.2 Linux的幾種安裝方式22 2.2.1硬盤安裝方式22 2.2.2 U盤安裝方式23 2.2.3網絡安裝方式23 2.2.4光驅安裝方式23 2.3光驅安裝過程24 2.3.1分區命名方案24 2.3.2開始安裝25 2.4 U盤安裝過程44 第3章Linux系統基本結構47 3.1 Linux控制台的使用48 3.2系統與硬件48 3.2.1 Linux硬件資源管理48 3.2.2 Linux外在設備的使用53 3.3文件系統結構介紹55 3.3.1目錄結構55 3.3.2系統核心組成60 3.4運行機制介紹61 3.4.1 Linux初始化init系統62 3.4.2 runlevel到target的改變62 3.4.3系統關機過程64 3.5系統服務管理工具systemd 66 3.5.1啟動、停止、重啟服務66 3.5.2查看、禁止、啟用服務67 3.5.3 systemd命令和sysvinit命令對比68 3.6 Linux與SecureCRT 69 3.6.1 SecureCRT概述69 3.6.2 SecureCRT的安裝與使用69 3.6.3與SecureCRT相關的Linux 命令70 第4章Linux常用命令及使用技巧72 4.1 Linux下的shell簡介73 4.1.1什麼是shell 73 4.1.2 shell命令的語法分析74 4.2系統管理與維護80 4.2.1 ls命令80 4.2.2 pwd命令82 4.2.3 cd命令82 4.2.4 date命令83 4.2.5 passwd命令84 4.2.6 su命令85 4.2.7 clear命令86 4.2.8 man命令86 4.2.9 who命令86 4.2.10 w命令87 4.2.11 uname命令88 4.2.12 uptime命令89 4.2.13 last命令90 4.2.14 dmesg命令90 4.2.15 free命令91 4.2.16 ps命令91 4.2.17 top命令92 4.3文件管理與編輯95 4.3.1 mkdir命令95 4.3 .2 more命令96 4.3.3 cat命令97 4.3.4 diff命令98 4.3.5 grep命令99 4.3.6 rm命令100 4.3.7 touch命令101 4.3.8 ln命令102 4.3.9 file命令104 4.3.10 cp命令105 4.3.11 find命令105 4.3.12 split命令108 4.3.13 mv命令109 4.4壓縮與解壓109 4.4.1 zip/unzip命令109 4.4.2 gzip/gunzip命令111 4.4.3 bzip2/bunzip2命令112 4.4.4 tar命令113 4.4.5 dd命令116 4.4.6 cpio命令117 4.5磁盤管理與維護118 4.5.1 df命令118 4.5.2 du命令119 4.5.3 fsck命令120 4.5.4 sync命令122 4.5. 5 eject命令122 4.5.6 mount/umount命令123 4.6網絡設置與維護126 4.6.1 ifconfig命令126 4.6.2 scp命令128 4.6.3 netstat命令129 4.6.4 traceroute命令131 4.6.5 telnet命令133 4.6. 6 wget命令134 4.7文本編輯工具vi 135 第5章Linux下軟件的安裝與管理139 5.1源碼安裝方式140 5.1.1下載、解壓源碼140 5.1.2分析安裝平臺環境140 5.1.3編譯、安裝軟件141 5.1.4通過源碼安裝Apache Http server 142 5.2 RPM包方式安裝143 5.2.1 RPM介紹143 5.2.2 RPM包的種類和組成144 5.2.3 RPM工具的使用145 5.3 yum安裝方式156 5.3.1 yum的安裝與配置157 5.3.2 yum的特點與基本用法158 5.3.3幾個不錯的yum源161 5.4二進制軟件安裝方式161 5.4.1安裝“.tar.gz、.bz2” 二進制軟件包162 5.4 .2提供安裝程序的軟件包162 第6章Linux服務器網絡配置165 6.1網卡驅動的安裝166 6.1.1網卡驅動安裝的一般思路166 6.1.2編譯安裝網卡172 6.2配置Linux網絡177 6.2.1不同Linux發行版的網絡配置文件177 6.2.2網絡配置文件詳解178 6.3 Linux網絡應用183 6.3.1 Linux下的IP別名功能183 6.3.2開啟Linux代理轉發功能185 6.3.3路由的概念與配置185 6.3. 4 Linux路由器的架設192 第7章架設Linux服務器196 7.1使用OpenSSH遠程管理Linux 服務器197 7.2 Web服務器的搭建198 7.2.1 Apache與Tomcat整合的必要性199 7.2.2 Apache和Tomcat連接器200 7.2.3 Apache與Tomcat以及JK模塊的安裝200 7.2.4 Apache與Tomcat整合配置202 7.3 LAMP服務器的搭建217 7.3.1 LAMP與WordPress概述217 7.3.2 LAMP服務環境的搭建218 7.3.3測試LAMP環境安裝的正確性226 7.4 DNS服務器的搭建227 7.4.1 DNS服務器概述227 7.4.2 DNS服務器的搭建227 7.5 Samba服務器的搭建235 7.5.1 Samba的概念和功能235 7.5.2 Samba的安裝與配置235 第8章構建高性能的MySQL數據庫系統246 8.1 MySQL與MariaDB 247 8.2常見的高可用MySQL解決方案247 8.2.1主從復制解決方案248 8.2.2 MMM高可用解決方案248 8.2.3 Heartbeat/SAN高可用解決方案248 8.2.4 Heartbeat/DRBD高可用解決方案249 8.2.5 MySQL Cluster高可用解決方案249 8.3通過Keepalived搭建MySQL 雙主模式的高可用集群系統249 8.3.1 MySQL複製介紹249 8.3.2 MySQL複製的實現原理250 8.3.3 MySQL複製的常用架構251 8.3.4 MySQL主主互備模式架構圖252 8.3.5 MySQL主主互備模式配置253 8.3.6配置Keepalived實現MySQL 雙主高可用257 8.3.7測試MySQL主從同步功能260 8.3.8測試Keepalived實現MySQL 故障切換261 8.4通過MMM構建MySQL高可用集群系統263 8.4.1 MMM高可用MySQL方案簡介263 8.4.2 MMM典型應用方案264 8.4.3 MMM高可用MySQL方案架構圖266 8.4.4 MMM的安裝與配置267 8.4.5 MMM的管理271 8.4.6測試MMM實現MySQL 高可用功能274 8.5 MySQL讀、寫分離解決方案277 8.5.1常見的MySQL讀、寫分離方案277 8.5.2通過Amoeba實現MySQL讀、寫分離278 第9章Linux服務器安全策略287 9.1網絡安全概述288 9.1.1常見攻擊類型288 9.1.2防範攻擊策略289 9.2操作系統常用安全策略290 9.2 .1軟件的升級290 9.2.2埠與服務291 9.2.3密碼登錄安全295 9.2.4其他安全設置298 9.3 Linux軟件防火牆iptables 301 9.3.1 iptables的使用環境302 9.3.2 iptables的使用規範與語法304 9.3.3防火牆規則的查看與清除308 9.3.4制定防火牆規則309 9.4 Linux系統的備份315 9.4.1為何要備份Linux系統315 9.4.2 Linux系統需要備份的數據316 9.4.3備份的介質與方式316 9.4.4制定備份策略318 9.4.5備份工具的選擇319 第10章Linux故障排查思路與案例325 10.1 Linux下常見系統故障的處理326 10.1.1處理Linux系統故障的思路326 10.1.2忘記Linux root密碼326 10.1.3 Linux系統無法啟動的解決辦法329 10.2 Linux下常見網絡故障處理337 10.3 “Read-only file system”錯誤與解決案例342 10.4通過su命令切換用戶帶來的困惑344 10.5因NAS存儲故障引起的Linux系統恢復案例347 10.5.1故障現象描述347 10.5.2問題判斷思路347 10.5.3問題處理過程348 10.5.4解決問題350 第11章Linux用戶權限管理353 11.1用戶與用戶組管理概述354 11.1.1用戶與組的概念354 11.1.2用戶配置文件概述355 11.2用戶管理工具介紹360 11.2.1 groupadd/newgrp/groupdel 命令360 11.2.2 useradd/usermod/userdel命令362 11.3文件與權限的設定366 11.3.1查看文件的權限屬性366 11.3.2利用chown改變屬主和屬組368 11.3.3利用chmod改變訪問權限369 第12章Linux磁盤存儲管理372 12.1磁盤管理的基本概念373 12.1. 1磁盤設備在Linux下的表示方法373 12.1.2設備的掛載與使用374 12.1.3磁盤分區的劃分標準375 12.2利用fdisk工具劃分磁盤分區377 12.2.1 fdisk參數含義介紹377 12.2.2 fdisk實例講解378 12.3利用parted工具規劃磁盤分區385 12.3.1 parted簡介385 12.3.2 parted使用方法385 12.3.3 parted應用實例386 12.4 LVM 389 12.4.1 LVM的基本概念389 12.4.2 LVM中的術語390 12.4 .3安裝LVM工具391 12.4.4 LVM的創建與管理391 第13章Linux文件系統管理401 13.1文件系統概述402 13.1.1什麼是文件系統402 13.1.2為什麼要使用文件系統402 13.1.3文件系統的使用流程403 13.2 Linux下常用文件系統介紹404 13.2.1 ext3和ext4文件系統404 13.2.2 ReiserFS 407 13.2.3 XFS 408 13.3選擇文件系統的標準411 13.4 NFS的使用411 13.4.1 NFS簡介411 13.4 .2 NFS的實現原理412 13.4.3 NFS的安裝與配置413 13.5 Linux下常用的數據恢復工具419 13.5.1如何使用“rm -rf”命令419 13.5.2 extundelete與ext3grep的異同419 13.5.3 extundelete的恢復原理419 13.5.4安裝extundelete 420 13.5.5 extundelete用法詳解420 13.5.6實戰:通過extundelete 恢復數據的過程421 第14章Linux內存管理426 14.1物理內存和虛擬內存427 14.2內存的監控428 14.3交換空間的使用430 14.4查看進程佔用內存432 第15章Linux系統進程管理434 15.1進程的概念和分類435 15.2進程的監控與管理437 15.2.1利用ps命令監控系統進程437 15.2.2利用pstree監控系統進程438 15.2.3利用top監控系統進程440 15.2.4利用lsof監控系統進程與程序441 15.2.5利用pgrep查詢進程ID 443 15.3任務調度進程crond的使用444 15.3.1 crond簡介444 15.3.2 crontab工具的使用445 15.3.3使用crontab工具的註意事項447 15.4用kill和killall終止進程448 15.4.1用kill終止進程448 15.4.2用killall終止進程449 第16章Linux系統優化思路453 16.1性能問題綜述454 16.2影響Linux性能的因素454 16.2.1系統硬件資源454 16.2.2操作系統相關資源456 16.2.3應用程序軟件資源457 16.3分析系統性能涉及的人員458 16.3.1 Linux運維人員458 16.3.2系統架構設計人員458 16.3.3軟件開發人員458 16.4系統性能分析工具459 16.5系統性能分析標準461 16.6本章總結462 第17章Linux系統性能評估與優化案例463 17.1 CPU性能評估464 17.1.1 vmstat命令464 17.1. 2 sar命令465 17.1.3 iostat命令467 17.1.4 uptime命令467 17.1.5本節小結467 17.2內存性能評估468 17.2.1 free命令468 17.2.2通過watch與free相結合動態監控內存狀況469 17.2. 3 vmstat命令監控內存469 17.2.4 “sar –r”命令組合470 17.2.5本節小結470 17.3磁盤I/O性能評估470 17.3.1 “sar –d”命令組合471 17.3.2 “iostat –d ”命令組合472 17.3.3 “vmstat –d”命令組合474 17.3.4本節小結474 17.4網絡性能評估475 17.4.1通過ping命令檢測網絡的連通性475 17.4.2通過“netstat –I”命令組合檢測網絡接口狀況475 17.4.3通過“netstat –r”命令組合檢測系統的路由表信息476 17.4.4通過“sar –n”命令組合顯示系統的網絡運行狀態477 17.4.5本節小結478 17.5基於Web應用的性能分析及優化案例478 17.5.1基於動態內容的網站優化案例478 17.5.2基於動態、靜態內容結合的網站優化案例480 第18章虛擬化雲計算平臺Proxmox VE 485 18.1 OpenVZ簡介486 18.2 KVM簡介486 18.3 Proxmox VE簡介486 18.4安裝Proxmox VE 487 18.5 Proxmox VE的使用492 18.5.1 Proxmox VE功能選項說明492 18.5.2創建OpenVZ虛擬機496 18.5.3創建KVM 500 第19章高性能集群軟件Keepalived 506 19.1集群的定義507 19.2集群的特點與功能507 19.2.1高可用性與可擴展性507 19.2.2負載均衡與錯誤恢復508 19.2.3心跳監測與漂移IP地址508 19.3集群的分類509 19.3.1高可用集群509 19.3.2負載均衡集群510 19.3.3分佈式計算集群511 19.4 HA集群中的相關術語511 19.5 Keepalived簡介512 19.5.1 Keepalived的用途512 19.5.2 VRRP與工作原理513 19.5.3 Keepalived工作原理513 19.5.4 Keepalived的體系結構514 19.6 Keepalived安裝與配置516 19.6.1 Keepalived的安裝過程516 19.6.2 Keepalived的全局配置518 19.6.3 Keepalived的VRRPD配置518 19.6.4 Keepalived的LVS配置522 19.7 Keepalived基礎功能應用實例526 19.7.1 Keepalived基礎HA功能演示526 19.7.2通過vrrp_script實現對集群資源的監控532 19.7.3 Keepalived集群中Master和Backup角色選舉策略535 第20章負載均衡集群LVS與HAProxy 537 20.1 LVS簡介538 20.2 LVS體系結構538 20.3 LVS集群的特點539 20.3.1 IP負載均衡與負載調度算法539 20.3.2高可用性541 20.3.3高可靠性542 20.3.4適用環境542 20.3.5開源軟件542 20.4 LVS的安裝與使用542 20.4.1安裝IPVS管理軟件542 20.4.2 ipvsadm的用法543 20.5通過Keepalived搭建LVS 高可用性集群系統545 20.5.1實例環境545 20.5.2配置Keepalived 546 20.5.3配置Real Server節點549 20.5.4啟動Keepalived+LVS集群系統550 20.6測試高可用LVS負載均衡集群系統551 20.6.1高可用性功能測試551 20.6.2負載均衡測試552 20.6.3故障轉移測試552 20.7高性能負載均衡軟件HAProxy 553 20.7.1 HAProxy簡介553 20.7.2 4層和7層負載均衡器的區別554 20.7.3 HAProxy與LVS的異同555 20.8 HAProxy基礎配置與應用實例556 20.8.1快速安裝HAProxy集群軟件556 20.8 .2 HAProxy基礎配置文件詳解556 20.8.3通過HAProxy的ACL規則實現智能負載均衡563 20.8.4管理與維護HAProxy 565 20.8.5使用HAProxy的Web監控平臺569 20.9搭建HAProxy+Keepalived 高可用負載均衡系統570 20.9.1搭建環境描述570 20.9.2配置HAProxy負載均衡服務器571 20.9.3配置主、備用KeepAlived 服務器573 20.10測試HAProxy+Keepalived 高可用負載均衡集群576 20.10.1測試Keepalived的高可用功能576 20.10.2測試負載均衡功能578
<作者介紹>
高俊峰,網名南非螞蟻,Linux專家,知名IT作家。畢業於西安電子科技大學通信工程專業。曾就職於新浪網、阿裡雲(原萬網),任職系統架構師。具有多年的自動化運維和管理經驗,擅長Linux、集群應用、Mysql、Oracle等方面的系統管理、性能調優,規劃設計,實戰經驗豐富。曾出版《循序漸進Linux》、《高性能Linux服務器構建實戰》等暢銷Linux書籍。