前言
第1篇 Web应用篇
第1章 轻量级HTTP服务器Nginx / 2
1.1 什么是Nginx / 2
1.2 为什么要选择Nginx / 2
1.2.1 Nginx与Apache的异同 / 2
1.2.2 选择Nginx的优势所在 / 2
1.3 Nginx的模块与工作原理 / 3
1.4 Nginx的安装与配置 / 4
1.4.1 下载与安装Nginx / 4
1.4.2 Nginx配置文件的结构 / 5
1.4.3 配置与调试Nginx / 6
1.4.4 Nginx的启动、关闭和平滑重启 / 13
1.5 Nginx常用配置实例 / 14
1.5.1 虚拟主机配置实例 / 14
1.5.2 负载均衡配置实例 / 15
1.5.3 防盗链配置实例 / 17
1.5.4 日志分割配置实例 / 17
1.6 Nginx性能优化技巧 / 18
1.6.1 编译安装过程优化 / 18
1.6.2 利用TCMalloc优化Nginx的性能 / 19
1.6.3 Nginx内核参数优化 / 20
1.7 实战Nginx与PHP(FastCGI)的安装、配置与优化 / 22
1.7.1 什么是 FastCGI / 22
1.7.2 Nginx+FastCGI运行原理 / 22
1.7.3 spawn-fcgi与PHP-FPM / 22
1.7.4 PHP与PHP-FPM的安装及优化 / 23
1.7.5 配置Nginx来支持PHP / 26
1.7.6 测试Nginx对PHP的解析功能 / 27
1.7.7 优化Nginx中FastCGI参数的实例 / 27
1.8 实战Nginx与Perl、Java的安装与配置 / 28
1.8.1 Perl(FastCGI)的安装 / 29
1.8.2 为Nginx添加FCGI支持 / 30
1.8.3 测试Nginx +Perl(FastCGI) / 31
1.8.4 搭建Nginx+Java环境 / 32
1.9 本章小结 / 34
第2章 高性能HTTP加速器Varnish / 35
2.1 初识Varnish / 35
2.1.1 Varnish概述 / 35
2.1.2 Varnish的结构与特点 / 35
2.1.3 Varnish与Squid的对比 / 36
2.2 开始安装Varnish / 36
2.2.1 安装前的准备 / 36
2.2.2 获取Varnish软件 / 37
2.2.3 安装pcre / 37
2.2.4 安装Varnish / 37
2.3 配置Varnish / 38
2.3.1 VCL使用说明 / 38
2.3.2 配置一个简单的Varnish实例 / 42
2.3.3 Varnish对应多台Web服务器的配置实例 / 44
2.4 运行Varnish / 48
2.4.1 varnishd指令 / 48
2.4.2 配置Varnish运行脚本 / 48
2.4.3 管理Varnish运行日志 / 49
2.5 管理Varnish / 51
2.5.1 查看Varnish进程 / 51
2.5.2 查看Varnish缓存效果与状态 / 51
2.5.3 通过端口管理Varnish / 53
2.5.4 管理Varnish缓存内容 / 55
2.6 Varnish优化 / 58
2.6.1 优化Linux内核参数 / 58
2.6.2 优化系统资源 / 59
2.6.3 优化Varnish参数 / 61
2.7 Varnish的常见应用实例 / 62
2.7.1 利用Varnish实现图片防盗链 / 62
2.7.2 利用Varnish实现静态文件压缩处理 / 62
2.8 本章小结 / 64
第3章 Memcached应用实战 / 65
3.1 Memcached基础 / 65
3.1.1 什么是Memcached / 65
3.1.2 Memcached的特征 / 66
3.1.3 Memcached的安装 / 67
3.1.4 Memcached的简单使用过程 / 70
3.2 剖析Memcached的工作原理 / 71
3.2.1 Memcached的工作过程 / 71
3.2.2 Slab Allocation的工作机制 / 72
3.2.3 Memcached的删除机制 / 72
3.2.4 Memcached的分布式算法 / 73
3.3 Memcached的管理与性能监控 / 75
3.3.1 如何管理Memcached / 75
3.3.2 Memcached的监控 / 77
3.3.3 Memcached变种产品介绍 / 81
3.4 通过UDFs实现Memcached与MySQL的自动更新 / 82
3.4.1 UDFs使用简介 / 82
3.4.2 memcached_functions_mysql应用实例 / 84
3.4.3 对memcached_functions_mysql的简单功能进行测试 / 87
3.4.4 使用memcached_functions_mysql的经验与技巧 / 88
3.5 本章小结 / 89
第2篇 数据备份恢复篇
第4章 开源网络备份软件bacula / 92
4.1 bacula总体概述 / 92
4.1.1 bacula是什么 / 92
4.1.2 bacula适合哪些用户 / 92
4.1.3 bacula的功能特点 / 93
4.1.4 bacula的工作原理 / 95
4.2 安装bacula / 96
4.2.1 bacula的几种网络备份拓扑 / 96
4.2.2 编译与安装bacula / 97
4.2.3 初始化MySQL数据库 / 98
4.3 配置一个bacula备份系统 / 98
4.3.1 配置bacula的Console端 / 98
4.3.2 配置bacula的Director端 / 99
4.3.3 配置bacula的SD / 103
4.3.4 配置bacula的FD端 / 104
4.4 启动与关闭bacula / 105
4.4.1 启动bacula的Director daemon与Storage daemon / 105
4.4.2 在客户端FD启动File daemon / 106
4.5 实战bacula备份恢复过程 / 106
4.5.1 实例演示bacula的完全备份功能 / 106
4.5.2 实例演示bacula的增量备份功能 / 109
4.5.3 实例演示bacula的差异备份功能 / 110
4.5.4 实例演示bacula的完全恢复功能 / 116
4.5.5 实例演示bacula的不完全恢复功能 / 122
4.6 本章小结 / 125
第5章 数据镜像备份工具rsync与unison / 126
5.1 rsync简介 / 126
5.1.1 什么是rsync / 126
5.1.2 rsync的功能特性 / 126
5.1.3 下载与安装rsync软件 / 127
5.2 利用rsync搭建数据镜像备份系统 / 127
5.2.1 rsync的应用模式 / 127
5.2.2 企业案例:搭建远程容灾备份系统 / 129
5.3 通过rsync+inotify实现数据的实时备份 / 133
5.3.1 rsync的优点与不足 / 133
5.3.2 初识inotify / 133
5.3.3 安装inotify工具inotify-tools / 133
5.3.4 inotify相关参数 / 134
5.3.5 inotifywait相关参数 / 134
5.3.6 企业应用案例:利用rsync+inotify搭建实时同步系统 / 135
5.4 unison简介 / 139
5.5 安装unison / 139
5.6 配置双机ssh信任 / 140
5.6.1 在两台机器上创建 RSA密钥 / 140
5.6.2 添加密钥到授权密钥文件中 / 141
5.7 unison的使用 / 141
5.7.1 本地使用unison / 142
5.7.2 远程使用unison / 143
5.7.3 unison参数说明 / 144
5.7.4 通过配置文件来使用unison / 145
5.8 本章小结 / 147
第6章 ext3文件系统反删除利器ext3grep / 148
6.1 “rm–rf”带来的困惑 / 148
6.2 ext3grep的安装与使用 / 148
6.2.1 ext3grep的恢复原理 / 148
6.2.2 ext3grep的安装过程 / 149
6.3 通过ext3grep恢复误删除的文件与目录 / 150
6.3.1 数据恢复准则 / 150
6.3.2 实战ext3grep恢复文件 / 150
6.4 通过ext3grep恢复误删除的MySQL表 / 154
6.4.1 MySQL存储引擎介绍 / 154
6.4.2 模拟MySQL表被误删除的环境 / 154
6.4.3 通过ext3grep分析数据、恢复数据 / 155
6.5 本章小结 / 159
第3篇 网络存储应用篇
第7章 IP网络存储iSCSI / 162
7.1 存储的概念与术语 / 162
7.1.1 SCSI介绍 / 162
7.1.2 FC介绍 / 162
7.1.3 DAS介绍 / 162
7.1.4 NAS介绍 / 163
7.1.5 SAN介绍 / 163
7.2 iSCSI的概念 / 163
7.3 FC SAN与IP SAN / 164
7.4 iSCSI的组成 / 164
7.4.1 iSCSI Initiator / 165
7.4.2 iSCSI Target / 166
7.5 iSCSI的工作原理 / 166
7.6 搭建基于IP SAN的iSCSI存储系统 / 167
7.6.1 安装iSCSI Target软件 / 168
7.6.2 配置一个简单的iSCSI Target / 169
7.6.3 在Windows上配置iSCSI Initiator / 169
7.6.4 在Linux上配置iSCSI Initiator / 172
7.7 iSCSI 在安全方面的相关设定 / 176
7.7.1 Initiator主机以IP认证方式获取iSCSI Target资源 / 176
7.7.2 Initiator主机以密码认证方式获取iSCSI Target资源 / 177
7.8 iSCSI性能优化方案 / 181
7.8.1 iSCSI性能瓶颈 / 181
7.8.2 iSCSI性能优化 / 181
7.9 本章小结 / 183
第8章 分布式存储系统MFS / 184
8.1 MFS概论 / 184
8.2 MFS 文件系统 / 185
8.2.1 MFS文件系统结构 / 185
8.2.2 MFS的编译与安装实例 / 186
8.3 编译与使用MFS的经验总结 / 199
8.3.1 安装选项说明 / 199
8.3.2 管理服务器 / 200
8.3.3 元数据日志服务器 / 201
8.3.4 数据存储服务器 / 201
8.3.5 客户端挂载 / 203
8.4 管理与使用MFS / 203
8.4.1 在客户端挂载文件系统 / 203
8.4.2 MFS常用操作 / 204
8.4.3 为垃圾箱设定隔离时间 / 207
8.4.4 快照 / 209
8.4.5 MFS的其他命令 / 209
8.5 维护MFS / 210
8.5.1 启动MFS集群 / 210
8.5.2 停止MFS集群 / 210
8.5.3 MFS 数据存储服务器的维护 / 210
8.5.4 MFS元数据的备份 / 211
8.5.5 MFS 管理服务器的恢复 / 211
8.5.6 从备份恢复MFS 管理服务器 / 211
8.6 通过冗余实现失败防护的解决方案 / 212
8.7 本章小结 / 212
第4篇 运维监控与性能优化篇
第9章 运维监控利器Nagios / 216
9.1 Nagios综述 / 216
9.1.1 什么是Nagios / 216
9.1.2 Nagios的结构与特点 / 216
9.2 Nagios的安装与配置 / 217
9.2.1 安装Nagios / 217
9.2.2 配置Nagios / 221
9.3 Nagios的运行和维护 / 231
9.3.1 验证Nagios配置文件的正确性 / 231
9.3.2 启动与停止Nagios / 231
9.3.3 Nagios故障报警 / 232
9.4 Nagios性能分析图表的实现 / 234
9.4.1 Nagios性能分析图表的作用 / 234
9.4.2 PNP的概念与安装环境 / 234
9.4.3 安装PNP / 234
9.4.4 配置PNP / 235
9.4.5 修改Nagios配置文件 / 236
9.4.6 测试PNP功能 / 237
9.5 利用插件扩展Nagios的监控功能 / 238
9.5.1 利用NRPE外部构件监控远程主机 / 238
9.5.2 利用飞信实现Nagios短信报警功能 / 243
9.6 本章小结 / 247
第10章 基于Linux服务器的性能分析与优化 / 248
10.1 系统性能分析的目的 / 248
10.1.1 找到系统性能的瓶颈 / 248
10.1.2 提供性能优化方案 / 248
10.1.3 使系统硬件和软件资源的使用达到平衡 / 249
10.2 分析系统性能涉及的人员 / 249
10.2.1 Linux系统管理人员 / 249
10.2.2 系统架构设计人员 / 249
10.2.3 软件开发人员 / 250
10.3 影响Linux性能的各种因素 / 250
10.3.1 系统硬件资源 / 250
10.3.2 操作系统相关资源 / 252
10.3.3 应用程序软件资源 / 253
10.4 系统性能分析标准和优化原则 / 253
10.5 几种典型应用对系统资源使用的特点 / 254
10.5.1 以静态内容为主的Web应用 / 254
10.5.2 以动态内容为主的Web应用 / 254
10.5.3 数据库应用 / 255
10.5.4 软件下载应用 / 255
10.5.5 流媒体服务应用 / 256
10.6 Linux下常见的性能分析工具 / 256
10.6.1 vmstat命令 / 256
10.6.2 sar命令 / 258
10.6.3 iostat命令 / 260
10.6.4 free命令 / 262
10.6.5 uptime命令 / 263
10.6.6 netstat命令 / 263
10.6.7 top命令 / 265
10.7 基于Web应用的性能分析及优化案例 / 268
10.7.1 基于动态内容为主的网站优化案例 / 268
10.7.2 基于动态、静态内容结合的网站优化案例 / 270
10.8 本章小结 / 272
第5篇 集群高级应用篇
第11章 构建高可用的LVS负载均衡集群 / 274
11.1 LVS集群的组成与特点 / 274
11.1.1 LVS集群的组成 / 274
11.1.2 LVS集群的特点 / 275
11.1.3 LVS集群系统的优缺点 / 278
11.2 高可用 LVS负载均衡集群体系结构 / 278
11.3 高可用性软件Heartbeat与Keepalived / 279
11.3.1 开源HA软件Heartbeat的介绍 / 279
11.3.2 安装heartbeat / 280
11.3.3 开源HA软件Keepalived的介绍 / 280
11.3.4 安装Keepalived / 281
11.4 安装LVS软件 / 282
11.4.1 配置与检查安装环境 / 282
11.4.2 在Director Server上安装IPVS管理软件 / 282
11.5 搭建高可用 LVS集群 / 283
11.5.1 通过heartbeat搭建LVS高可用性集群 / 284
11.5.2 通过Keepalived搭建LVS高可用性集群系统 / 288
11.5.3 通过piranha搭建LVS高可用性集群 / 291
11.6 测试高可用LVS负载均衡集群系统 / 293
11.6.1 高可用性功能测试 / 293
11.6.2 负载均衡测试 / 294
11.6.3 故障切换测试 / 294
11.7 本章小结 / 295
第12章 RHCS集群 / 296
12.1 RHCS集群概述 / 296
12.2 RHCS集群的组成与结构 / 297
12.2.1 RHCS集群的组成 / 297
12.2.2 RHCS集群结构 / 298
12.3 RHCS集群的运行原理及功能 / 299
12.3.1 分布式集群管理器(CMAN)/ 299
12.3.2 锁管理(DLM) / 299
12.3.3 配置文件管理(CCS) / 300
12.3.4 栅设备(Fence) / 301
12.3.5 高可用性服务管理器 / 302
12.3.6 集群配置和管理工具 / 304
12.3.7 Redhat GFS / 304
12.4 安装RHCS / 305
12.4.1 安装前准备工作 / 306
12.4.2 配置共享存储和RHCS管理端Luci / 307
12.4.3 在集群节点上安装RHCS软件包 / 308
12.4.4 在集群节点上安装和配置iSCSI客户端 / 309
12.5 配置RHCS高可用集群 / 309
12.5.1 创建一个cluster / 310
12.5.2 创建Failover Domain / 314
12.5.3 创建Resources / 315
12.5.4 创建Service / 319
12.5.5 配置存储集群GFS / 322
12.5.6 配置表决磁盘 / 325
12.5.7 配置Fence设备 / 328
12.6 管理和维护RHCS集群 / 333
12.6.1 启动RHCS集群 / 333
12.6.2 关闭RHCS集群 / 334
12.6.3 管理应用服务 / 334
12.6.4 监控RHCS集群状态 / 336
12.6.5 管理和维护GFS2文件系统 / 338
12.7 RHCS集群功能测试 / 340
12.7.1 高可用集群测试 / 340
12.7.2 存储集群测试 / 352
12.8 本章小结 / 352
第13章 Oracle RAC集群 / 353
13.1 Oracle集群体系结构 / 353
13.2 Oracle ClusterWare体系结构与进程介绍 / 355
13.2.1 Oracle ClusterWare 简介 / 355
13.2.2 Oracle ClusterWare 进程介绍 / 355
13.3 RAC数据库体系结构与进程 / 356
13.3.1 RAC 简介 / 356
13.3.2 Oracle RAC的特点 / 357
13.3.3 RAC进程管理 / 358
13.3.4 RAC数据库存储规划 / 359
13.4 安装Oracle RAC数据库 / 361
13.4.1 安装前的系统配置需求 / 361
13.4.2 设置数据库安装资源 / 363
13.4.3 配置主机解析文件 / 363
13.4.4 检查所需软件包 / 364
13.4.5 配置系统内核参数 / 364
13.4.6 设置 Shell对Oracle用户的限制 / 365
13.4.7 配置hangcheck-timer内核模块 / 366
13.4.8 配置系统安全设置 / 367
13.4.9 创建Oracle用户和组 / 367
13.4.10 设置Oracle用户环境变量 / 367
13.4.11 配置节点间SSH信任 / 368
13.4.12 配置共享存储系统 / 369
13.4.13 安装Oracle Clusterware / 373
13.4.14 安装Oracle数据库 / 381
13.4.15 配置Oracle Net / 387
13.4.16 创建RAC数据库 / 390
13.5 Oracle CRS的管理与维护 / 404
13.5.1 查看集群状态 / 404
13.5.2 启动与关闭集群服务资源 / 405
13.5.3 启动与关闭CRS / 406
13.5.4 管理voting disk / 407
13.5.5 管理OCR / 408
13.5.6 快速卸载CRS / 410
13.6 ASM基本操作维护 / 411
13.6.1 ASM的特点 / 411
13.6.2 ASM的体系结构与后台进程 / 412
13.6.3 管理ASM实例 / 413
13.7 利用srvctl管理RAC数据库 / 421
13.7.1 查看实例状态(srvctl status) / 422
13.7.2 查看RAC数据库配置信息(srvctl config) / 422
13.7.3 启动/关闭实例(srvctl start/stop) / 423
13.7.4 增加/删除/修改实例(srvctl add/remove/modify) / 423
13.8 测试RAC数据库集群的功能 / 424
13.8.1 负载均衡测试 / 424
13.8.2 透明应用失败切换测试 / 427
13.9 本章小结 / 428
第14章 构建MySQL+heartbeat+DRBD+LVS集群应用系统 / 430
14.1 MySQL高可用集群概述 / 430
14.2 heartbeat + DRBD高可用性方案的实现原理 / 431
14.3 部署MySQL高可用高扩展集群 / 432
14.3.1 配置之前的准备 / 433
14.3.2 DRBD的部署 / 434
14.3.3 DRBD的配置 / 434
14.3.4 DRBD的维护和管理 / 439
14.3.5 DRBD的性能优化 / 440
14.3.6 MySQL的部署 / 441
14.3.7 heartbeat的部署 / 445
14.4 搭建Slave集群 / 448
14.4.1 为什么要搭建Slave集群 / 448
14.4.2 利用LVS+Keepalived搭建高可用MySQL Slave集群 / 448
14.4.3 高可用Slave集群的一些注意点 / 451
14.5 部署MySQL集群要考虑的问题 / 451
14.6 本章小结 / 452
· · · · · · (
收起)