高性能Linux服务器构建实战:运维监控、性能调优与集群应用(高俊峰)

高俊峰,(南非蚂蚁)资深系统管理员、系统架构师、DBA和技术顾问,从事Linux+Oracle服务器系统的运维和管理多年,在系统管理、故障诊断与排除、性能调优、集群和虚拟化等方面积累了大量的实战经验。

高性能linux服务器构建实战:运维监控、性能调优与集群应用 [平装]

编辑推荐

《高性能linux服务器构建实战:运维监控、性能调优与集群应用》编辑推荐:毫无疑问,linux服务器是企业级服务系统的主流,随着企业各种数据量的不断增加,企业对服务器系统可靠性、稳定性方面的要求越来越高,越来越突出,高可靠性、高稳定性已经成为评价业务系统性能的主要指标。影响linux服务器系统性能的因素有很多,改善linux服务器系统性能的方法和工具也很多,《高性能linux服务器构建实战:运维监控、性能调优与集群应用》紧紧围绕“高性能”这个话题,从web应用系统、数据备份恢复、网络存储、运维监控、性能优化、集群应用等多方面讲解了构建高性能linux服务器系统的方法和最佳实践,其中性能优化和集群应用这两个话题是本书的重点。
《高性能linux服务器构建实战:运维监控、性能调优与集群应用》抛弃了很多书籍重理论、轻实践的缺点,从实战的角度出发,理论与实践相结合,每个知识点都辅之以实际生产环境中的应用案例,通过案例帮助读者迅速掌握知识的要点和实质。“一看就能懂,一懂就会用”是本书要实现的目标。
从web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等多个方面深入讲解了如何构建高性能的linux服务器。

媒体推荐

本书很有可能成为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》,广获读者好评。

目录

前言
第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

文摘

版权页:



插图:



rhcs是redhatclustersuite的缩写,即红帽子集群套件。rhcs是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济实用的集群工具集合,它将集群系统中的三大集群架构融合为一体,可以为web应用、数据库应用等提供安全、稳定的运行环境。更确切地说,rhcs是一个功能完备的集群应用解决方案,从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现方案。通过rhcs提供的这种解决方案,不但能保证前端应用持久、稳定地提供服务,同时也保证了后端数据存储的安全。
高可用集群是rhcs的核心功能。当应用程序出现故障,或者系统硬件或网络出现故障时,应用可以通过rhcs提供的高可用性服务管理组件自动、快速地从一个节点切换到另一个节点。节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断地对外提供服务,这就是rhcs高可用集群实现的功能。
rhcs通过lvs来提供负载均衡集群,而lvs是一个开源的、功能强大的基于ip的负载均衡技术。lvs由负载调度器和服务访问节点组成,通过lvs的负载调度功能,可以将客户端请求平均分配到各个服务节点上,同时还可以定义多种负载分配策略。当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点上,然后,由分配到的节点响应客户端请求。lvs还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,lvs会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新分配到此节点的请求平滑转移到其他正常节点上;而在此故障节点恢复正常后,lvs又会自动将此节点加入到集群中去。这一系列切换动作,对用户来说都是透明的。通过故障转移功能,保证了服务不间断、稳定地运行。

编辑推荐:

最好的时光在路上(郭子鹰)

量子江湖+燕子坞(套装全2册)[平装]

覆雨翻云(黄易作品)

绿皮火车 [平装](周云蓬作品)

虚实之间(随书附赠:芮成钢专访全球政商领袖光盘)

更多图书资讯可访问读书人图书频道:http://www.reader8.net/book/