《LINUX企业集群 用商用硬件和免费软件构建高可用集群》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)KARL KOPPER著;沈金河,李秋霞等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2007
  • ISBN:7508443047
  • 页数:276 页
图书介绍:本书带领读者快速了解构建Linux企业集群的许多方面。本书分为四部分进行介绍:第一部分介绍了集群资源,第二部分介绍了高可用性,第三部分介绍了集群理论和实践,第四部分介绍了维护和监视。而且,在每部分中都有一些实际的例子来加深读者对理论知识的了解。本书内容新颖、层次分明,特别是对如何使用Linux构建企业集群作了深入浅出的论述,适合对Linux感兴趣的各个层次的读者。如果您是一名Linux用户,熟悉Linux系统,有了这本书,您就会很快成为一名构建Linux企业集群的专家。如果您是一名初学人员,对构建Linux企业集群有兴趣,您也能从本书中获取许多关于构建Linux企业集群的知识。本书适合于Linux用户以及Linux初学者。

译者序 1

致谢 1

前言 1

绪论 1

第一部分 集群资源 3

第1章 启动服务 3

1.1 如何启动集群服务 3

1.2 使用init启动服务 3

1.2.1 /etc/inittab文件 4

1.2.2 使用init重新生成服务 4

1.2.3 使用chkconfig管理init脚本符号的链接 5

1.2.4 使用ntsysv管理init脚本的符号链接 6

1.2.5 移除不需要的服务 7

1.3 在集群节点上使用Red Hat初始化脚本 7

1.4 小结 14

第2章 处理数据包 15

2.1 Netfilter 15

2.2 Netfilter简史 16

2.3 设置默认链策略 19

2.4 使用iptables和ipchains 19

2.4.1 清除现有规则 19

2.4.2 设置默认INPUT链策略 19

2.4.3 FTP 20

2.4.7 SSH 21

2.4.6 Telnet 21

2.4.4 被动FTP 21

2.4.5 DNS 21

2.4.8 Email 22

2.4.9 HTTP 22

2.4.10 ICMP 22

2.4.11 检查并保存规则 22

2.5 使用Linux内核路由数据包 23

2.5.1 匹配发往特定目的地网络的数据包 23

2.5.2 匹配发往特定目的地主机的数据包 24

2.5.4 查看路由规则 25

2.5.5 使路由规则具有永久性 25

2.5.3 匹配发往任何目的地或主机的数据包 25

2.5.6 iptables和路由资源脚本 26

2.5.7 ip命令 28

2.6 小结 29

第3章 编译内核 30

3.1 您需要做什么 30

3.2 步骤1:得到源代码 30

3.2.1 使用stock内核 31

3.2.2 使用您的发行版提供的内核 31

3.2.3 决定将要使用的内核版本 31

3.3.3 由发行版供应商升级内核 32

3.3.2 升级或用补丁修补内核 32

3.3 步骤2:设置所需选项 32

3.3.1 安装新内核 32

3.3.4 设置内核选项 33

3.4 步骤3:编译代码 34

3.5 步骤4:安装目标代码和配置文件 35

3.5.1 安装System.map 36

3.5.2 保存内核配置文件 36

3.6 步骤5:配置启动加载器 36

3.7 小结 38

第4章 使用rsync和SSH同步服务器 39

4.1 rsync 39

第二部分 高可用性 39

4.2 Open SSH2和rsync 40

4.2.1 SSH:安全数据传输 40

4.2.2 SSH密钥 41

4.2.3 建立双向信任关系:第一部分 41

4.2.4 建立双向信任关系:第二部分 44

4.3 双节点SSH客户端/服务器方案 45

4.3.1 创建有自己的数据文件的用户账户 45

4.3.2 在SSH服务器上配置Open SSH2主机密钥 46

4.3.3 为SSH客户机上的新账户创建一个用户密钥 46

4.3.4 将用户密钥的公共部分从SSH客户端复制到SSH服务器 47

4.3.5 测试SSH客户端到SSH服务器的连接 48

4.3.8 SSH上的rsync 52

4.3.7 改进的安全 52

4.3.6 使用安全数据传输 52

4.3.9 使用rsync复制单个文件 54

4.3.10 通过慢速WAN连接的rsync 54

4.3.11 调度的rsync快照 54

4.3.12 rsync和SSH的ipchains/iptables防火墙规则 56

4.4 小结 56

第5章 使用SystemImager克隆系统 58

5.1 SystemImager 58

5.2 SystemImager方案 59

5.2.1 在SystemImager服务器上安装SystemImager服务器软件 59

5.2.2 使用SystemImager中的Installer程序 60

5.2.3 在Golden Client上安装SystemImager客户端软件 60

5.2.4 在SystemImager服务器上创建Golden Client的系统映像 61

5.2.5 使主数据服务器成为DHCP服务器 62

5.2.6 为Golden Client创建启动软盘 64

5.2.7 在主数据服务器上将rsync作为守护程序启动 66

5.2.8 在新克隆系统上安装Golden Client系统映像 66

5.2.9 安装后的注意事项 67

5.3 执行维护:更新客户端 67

5.3.1 SystemInstaller 67

5.3.2 System Configurator 68

5.4 小结 68

第6章 Heartbeat及其理论介绍 69

6.1 Heartbeat的物理路径 69

6.1.3 分区集群和Stonith 70

6.1.1 串行电缆连接 70

6.1.2 以太网电缆连接 70

6.2 Heartbeat控制消息 71

6.2.1 心跳 71

6.2.2 集群转换消息 71

6.2.3 重传请求 71

6.2.4 以太网心跳控制消息 71

6.2.5 安全性与心跳控制消息 72

6.3 客户端计算机如何访问资源 72

6.4 辅助IP地址和IP别名 73

6.4.1 以太网NIC设备名称 73

6.4.4 IP别名 75

6.4.5 使用ifconfig命令创建和删除IP别名 75

6.4.3 使用ip命令创建和删除辅助IP地址 75

6.4.2 辅助IP地址名称 75

6.4.6 提供服务 76

6.4.7 免费的ARP(GARP)广播 77

6.5 资源脚本 79

6.5.1 资源的状态 80

6.5.2 资源所有权 80

6.5.3 将初始化脚本用作Heartbeat资源脚本 82

6.6 Heartbeat配置文件 83

6.7 小结 83

7.1 方案 84

7.2 准备工作 84

第7章 Heartbeat示范配置 84

7.3 步骤1:安装Heartbeat 85

7.4 步骤2:配置/etc/ha.d/ha.cf 86

7.5 步骤3:配置/etc/ha.d/haresources 87

7.6 步骤4:配置/etc/ha.d/authkeys 89

7.7 步骤5:在备份服务器上安装Heartbeat 89

7.8 步骤6:设置系统时间 90

7.9 步骤7:启动Heartbeat 90

7.9.1 在主服务器上启动Heartbeat 90

7.9.2 在备份服务器上启动Heartbeat 92

7.9.3 检查主服务器上的日志文件 92

7.10 停止并启动Heartbeat 93

7.12 小结 94

7.11 监视资源 94

第8章 Heartbeat资源及维护 95

8.1 haresources文件语法 95

8.1.1 Haresources文件语法:主服务器名称 95

8.1.2 Haresources文件语法:IP别名 95

8.1.3 Heartbeat的自动网络接口卡选择过程 96

8.1.4 指定网络接口卡 97

8.1.5 使用iptakeover脚本定制IP地址接管 98

8.1.6 Haresources文件语法:资源 98

8.2 使用Heartbeat的负载共享 99

8.2.1 使用Heartbeat的负载共享:循环DNS 100

8.2.3 广域网负载平衡 101

8.2.2 循环DNS负载平衡的问题 101

8.4 操作员警报:电子邮件警报 102

8.5 Heartbeat维护 102

8.3 操作员警报:有声警报 102

8.5.1 修改Heartbeat配置文件 103

8.5.2 服务器维护和Heartbeat auto failback选项 103

8.5.3 强制主服务器进入备用模式 104

8.5.4 调整Heartbeat的deadtime值 104

8.5.5 Heartbeat日志中的情报消息 105

8.5.6 故障转移与重新生成(自动重启失败的资源) 105

8.5.7 许可证管理器故障转移 105

8.6 小结 106

9.1 Stonith 107

第9章 Stonith和ipfail 107

9.2 非传统的方法:使用单个Stonith设备 108

9.2.1 Heartbeat与Stonith示例配置 108

9.2.2 Stonith事件顺序 110

9.2.3 Stonith设备 110

9.2.4 查看当前的受支持Stonith设备清单 111

9.2.5 Stonith Meatware“设备” 111

9.2.6 将Stonith Meatware与Heartbeat一起使用 112

9.2.7 使用“真实的”Stonith设备 114

9.2.8 避免多个Stonith事件 114

9.3 网络故障 115

9.4.1 在内核中启用看门狗 116

9.4 看门狗和软狗 116

9.4.3 配置Heartbeat来支持看门狗 117

9.4.2 内核恐慌——挂起或重启 117

9.5 测试Heartbeat配置 118

9.6 小结 119

第三部分 集群理论与实践 120

第10章 如何构建Linux企业集群 120

10.1 构建Linux企业集群的步骤 120

10.1.1 NAS服务器 120

10.1.5 将系统配置更改应用到所有节点 121

10.1.7 构建LVS-DR集群 121

10.1.6 构建LVS-NAT集群 121

10.1.4 集群命名方案 121

10.1.3 克隆Linux机器 121

10.1.2 Kernel Netfilter和内核数据包路由 121

10.1.8 安装软件来删除故障的集群节点 122

10.1.9 安装软件来监视集群节点 122

10.1.10 监视集群节点的性能 122

10.1.11 更新集群节点和服务器上的软件 123

10.1.12 集中用户账户管理 123

10.1.13 安装打印服务 123

10.1.14 安装高可用批作业调度系统 123

10.1.15 采购集群节点 123

10.2 小结 124

11.1 LVS IP地址命名约定 125

11.1.1 虚拟IP(VIP) 125

第11章 Linux虚拟服务器:简介和理论 125

11.1.2 真实IP(RIP) 126

11.1.3 Director的IP(DIP) 126

11.1.4 客户端计算机的IP(CIP) 126

11.1.5 LVS集群中的IP地址 126

11.2 LVS集群的类型 127

11.2.1 网络地址转换(LVS-NAT) 127

11.2.2 直接路由(LVS-DR) 128

11.2.3 IP隧道(LVS-TUN) 130

11.3.1 固定(或非动态)调度方法 131

11.3 LVS调度方法 131

11.3.2 动态调度方法 132

11.4 小结 135

第12章 LVS-NAT集群 136

12.1 客户端计算机如何访问LVS-NAT集群资源 136

12.2 构建LVS-NAT Web集群 141

12.2.1 LVS-NAT的方案 142

12.2.2 步骤1:安装操作系统 142

12.2.3 步骤2:在真实服务器上配置和启动Apache 142

12.2.4 步骤3:在真实服务器上设置默认路由 143

12.2.5 步骤4:在Director上安装LVS软件 144

12.2.6 步骤5:在Director上配置LVS 145

12.2.7 步骤6:测试集群配置 147

12.3 LocalNode:将Director用作真实服务器 150

12.4 小结 151

第13章 LVS-DR集群 152

13.1 客户端计算机如何访问LVS-DR集群服务 152

13.2 ARP广播和LVS-DR集群 155

13.3 客户端计算机和ARP广播 156

13.4 小结 157

第14章 负载平衡器 158

14.1 LVS和Netfilter 158

14.2.2 控制散列桶 160

14.2.3 查看连接跟踪表 160

14.2.1 散列表结构 160

14.2 Director的连接跟踪表 160

14.3 连接跟踪记录的超时值 161

14.4 返回数据包和Netfilter挂钩 162

14.5 非持久LVS 163

14.6 LVS持久性 164

14.6.1 持久性连接模板 164

14.6.2 持久性连接的类型 164

14.6.3 持久性客户端连接(PCC) 165

14.6.4 持久性端口连接(PPC) 165

14.6.5 端口亲缘性 166

14.6.6 Netfilter标记数据包 166

14.7 小结 168

第15章 高可用性集群 169

15.1 冗余LVS Director 169

15.2 高可用性集群设计目标 169

15.3 高可用性LVS-DR集群 170

15.4 Idirectord简介 171

15.5 LVS、Heartbeat和ldirectord方案 173

15.5.1 隐藏环回接口 173

15.5.2 在主Director和备份Director上安装Heartbeat 175

15.5.3 安装ldirectord及其所需的软件组件 175

15.5.5 测试安装的ldirectord 177

15.5.4 安装ldirectord 177

15.5.6 创建ldirectord配置文件 178

15.5.7 创建健康检查Web页 181

15.5.8 手工启动ldirectord并测试其配置 182

15.5.9 添加ldirectord到Heartbeat配置 182

15.5.10 IPVS表的有状态故障转移 183

15.5.11 修改以允许故障转移到集群内部的真实服务器 184

15.6 小结 185

第16章 网络文件系统 186

16.1 锁仲裁 186

16.2 锁仲裁程序 187

16.3 网络锁管理器(NLM) 188

16.4.1 NLM和内核BSD flock 189

16.4 NLM和内核锁仲裁 189

16.4.2 NLM和内核System V lockf 190

16.4.3 NLM和内核Posix fcntl 190

16.5 NFS和文件锁(dotlock)仲裁 190

16.6 查找Linux内核持有的锁 191

16.7 与NFS有关的性能问题——瓶颈和感知 192

16.7.1 单事务和NFS性能的用户感知 193

16.7.2 多事务和用户对NFS性能的感知 194

16.8 在集群环境中管理锁和GETATTR操作 194

16.9 管理属性缓存 194

16.10.1 在集群外部运行批作业 195

16.10.2 使用多个NAS服务器 195

16.10 在集群环境中管理交互式用户应用程序和批作业 195

16.11 测量NFS延迟 196

16.12 测量I/O总操作数 196

16.13 取得可能的最佳NAS性能 197

16.14 NFS客户端配置选项 198

16.15 开发NFS 199

16.16 Linux和NFS上的信息的其他起始点 199

16.17 小结 200

第四部分 维护和监视 201

第17章 简单网络管理协议和Mon 201

17.1 Mon 201

17.1.1 Mon警报 201

17.1.2 Mon监视脚本 201

17.3 基本Mon方案 202

17.2 从哪里运行Mon 202

17.3.1 步骤1:编译和安装fping软件包 203

17.3.2 步骤2:安装SNMP数据包 203

17.3.3 步骤3:为Mon安装所需的CPAN模块 204

17.3.4 步骤4:安装Mon软件 204

17.3.5 步骤5:创建/etc/mon/mon.cf配置文件 205

17.3.6 步骤6:通过手工运行fping.monitor和mail.alert脚本进行测试 206

17.3.7 步骤7:创建Mon日志目录和Mon日志文件 207

17.3.8 步骤8:在调试模式启动Mon程序并进行测试 207

17.4 Mon和SNMP“弹性概念”方案 207

17.4.1 步骤1:在每个集群节点上安装Net-SNMP客户端软件 207

17.4.3 步骤3:启动SNMP代理 208

17.4.2 步骤2:创建snmp.conf配置文件 208

17.4.4 步骤4:本地查看SNMP MIB 209

17.4.5 步骤5:安装SNMP监视代理 210

17.4.6 检查netsnmp-freespace.monitor的输出 210

17.4.7 在所有集群节点上安装Mon 211

17.5 Mon和SNMP“真实世界”方案 211

17.5.1 步骤1:在所有集群节点上创建snmpd.conf 212

17.5.2 步骤2:在集群节点管理器上安装netsnmp-proc.monitor和新的mon.cf文件 213

17.5.3 步骤3:安装Mon初始脚本 214

17.5.4 步骤4:运行SNMP和Mon 214

17.6 来自Mon的电子邮件警报 215

17.7 创建自己的SNMP脚本 215

17.8 用Mon监视自己的SNMP脚本 216

17.9 用SNMP监视脚本进行监视的一些事情 217

17.10 用Mon强制Stonith事件 218

17.11 用Mon强制Heartbeat故障转移 219

17.12 小结 220

第18章 Ganglia 221

18.1 Ganglia简介 221

18.1.1 gmond 221

18.1.2 gmetad 221

18.2 安装Ganglia的必备软件包 222

18.2.1 安装PHP 222

18.2.2 安装RRDtool 222

18.2.3 在集群节点管理器上安装Apache 222

18.5 在集群节点管理器上配置gmetad和gmond 223

18.3 在集群节点管理器上安装Ganglia 223

18.4 在集群节点上安装Ganglia 223

18.5.1 修改/etc/gmetad.conf 224

18.5.2 修改/etc/gmond.conf 224

18.5.3 启动gmond和gmetad 224

18.5.4 添加Ganglia页到Apache配置 225

18.6 Ganglia Web软件包 225

18.6.1 标题部分 225

18.6.2 节点快照部分 226

18.6.3 从Ganglia Web软件包检查集群节点 227

18.6.4 从外壳提示检查集群节点 228

18.7 用gmetric创建定制度量 229

18.6.5 gstat 229

18.6.6 使用gstat在最轻负载的集群节点上运行命令 229

18.8 小结 231

第19章 集群管理中的案例研究 232

19.1 在没有Active Directory的情况下管理账户 232

19.1.1 遗留UNIX账户管理方法:问题 232

19.1.2 两个世界中最好的 233

19.2 构建可靠的集群账户验证机制 233

19.2.1 在每个集群节点上使用本地密码和组文件 233

19.2.2 简单脚本 234

19.3.2 LPRng:Linux企业集群打印系统 235

19.3.3 节点和打印作业 235

19.3.1 集群节点和作业排序 235

19.3 构建容错后台打印处理程序 235

19.3.4 基于LPRng构建集群打印系统 236

19.3.5 在中央打印服务器上安装LPRng 236

19.3.6 在集群节点上安装LPRng 237

19.3.7 修改集群节点上的/etc/printcap.local文件 237

19.3.8 修改中央打印服务器上的/etc/printcap文件 238

19.3.9 管理中央打印服务器上的打印作业 239

19.3.10 从集群节点管理打印服务业 239

19.4.2 将集群节点的权重更改为0 240

19.4.3 禁用对集群节点之一的Telnet访问 240

19.4.1 使用ipvsadm命令删除集群节点 240

19.4 为预防性维护重启节点 240

19.5 在集群环境中发送和接收电子邮件 241

19.6 创建没有单点故障的作业调度系统 242

19.6.1 运行ssh-keygen 242

19.6.2 修改每个集群节点上的sshd_config文件 242

19.6.3 在集群节点管理器上创建(RSA)known_hosts项 242

19.6.4 批作业调度程序 243

19.7 小结 244

第20章 Linux集群环境 245

20.1 Linux企业集群 245

20.2 集群节点管理器 246

20.3 客户端 247

20.4 NAS服务器 248

20.5 高可用串行设备 249

20.5.1 “串行到IP”通信设备 249

20.5.2 高可用性调制解调器 249

20.6 高可用性数据库服务器 250

20.7 把这些结合起来 251

20.8 小结 252

附录A 从Internet(文本终端)下载软件 253

附录B 用tcpdump工具进行疑难解答 257

附录C 添加网络接口卡到系统中 259

附录D 针对依赖性故障的策略 264

附录E 其他潜在的集群文件系统和锁仲裁方法 269

附录F LVS集群和Apache配置文件 270