登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』KVM虚拟化技术:实战与原理解析(Intel虚拟化技术部门资深虚拟化技术专家和KVM研究者撰写,深入剖析KVM虚拟机的核心技术和原理)

書城自編碼: 2130735
分類: 簡體書→大陸圖書→計算機/網絡计算机理论
作者: 任永杰
國際書號(ISBN): 9787111439004
出版社: 机械工业出版社
出版日期: 2013-09-01
版次: 1 印次: 1
頁數/字數: 424/
書度/開本: 16开 釘裝: 平装

售價:NT$ 735

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
甲骨拼合六集
《 甲骨拼合六集 》

售價:NT$ 1520.0
视觉美食家:商业摄影实战与创意解析
《 视觉美食家:商业摄影实战与创意解析 》

售價:NT$ 602.0
中国经济发展的新阶段:机会与选择
《 中国经济发展的新阶段:机会与选择 》

售價:NT$ 454.0
DK月季玫瑰百科
《 DK月季玫瑰百科 》

售價:NT$ 959.0
为你想要的生活
《 为你想要的生活 》

售價:NT$ 301.0
关键改变:如何实现自我蜕变
《 关键改变:如何实现自我蜕变 》

售價:NT$ 352.0
超加工人群:为什么有些食物让人一吃就停不下来
《 超加工人群:为什么有些食物让人一吃就停不下来 》

售價:NT$ 454.0
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
《 历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解) 》

售價:NT$ 286.0

建議一齊購買:

+

NT$ 531
《 OpenStack部署实践 》
+

NT$ 441
《 VMware vSphere 5.0虚拟化架构实战指南 》
+

NT$ 531
《 海量运维、运营规划之道(全彩) 》
+

NT$ 549
《 深度解析SDN--利益、战略、技术、实践(实战派专家力作,业内众多专家推荐) 》
+

NT$ 828
《 VMware虚拟化与云计算应用案例详解(VMware虚拟化与云计算应用案头必备宝典,王春海老师十年实践经验凝结而成,所有案例皆来自近年亲历项目,随书光盘包含书中所有设置视频操作) 》
+

NT$ 549
《 云计算与OpenStack(虚拟机Nova篇) 》
編輯推薦:
首本Linux KVM虚拟化技术专著,由Intel虚拟化技术部门资深虚拟化技术专家和KVM研究者撰写
系统介绍KVM虚拟机的功能、特性和使用方法,深入剖析KVM虚拟机的核心技术和原理
內容簡介:
首本Linux KVM虚拟化技术专著,由Intel虚拟化技术部门资深虚拟化技术专家和国内KVM技术的先驱者撰写,权威性毋庸置疑。在具体内容上,本书不仅系统介绍了KVM虚拟机的功能、特性和使用方法,而且还深入地剖析了KVM虚拟机的核心技术和工作原理,对KVM做了全面而透彻的讲解。
全书一共9章:第1章介绍了云计算和虚拟化的概念,并对KVM等几种流行的虚拟化技术做了比较;第2章介绍了KVM的基本架构、QEMU的作用以及Intel的硬件虚拟化技术;第3章详细讲解了KVM依赖的硬件环境配置,编译和安装KVM和QEMU的步骤与方法,以及KVM客户机的启动;第4章深入讲解了KVM的基础功能,包括虚拟的CPU、内存、存储、网络、图形显示等的配置和基本原理,以及CPU和内存的过载使用;第5章讲解了KVM的高级功能,包括半虚拟化驱动virtio、设备直接分配VT-d、热插拔、动态迁移、嵌套虚拟化、KSM、透明大页、KVM安全技术、QEMU监控器、QEMU命令行参数以及从物理机或其他虚拟机迁移到KVM的方法;第6章介绍了管理KVM虚拟化的上层软件;第7章介绍了RHEL等所有流行的Linux发行版中的KVM虚拟化功能的使用;第8章首先介绍了虚拟化性能测试,然后详细介绍了对KVM虚拟化的CPU、内存、网络、磁盘IO等重要组件进行性能测试的方法、工具和步骤;第9章介绍了Linux、KVM、QEMU等开源社区的情况,KVM、QEMU和KVM单元测试代码的基本结构,以及如何向QEMUKVM开源社区贡献自己的代码和如何提交KVM相关的bug。
關於作者:
任永杰 
资深虚拟化技术工程师和Linux技术工程师,现就职于Intel开源技术中心,担任虚拟化测试团队负责人,负责KVM的功能测试、性能分析及与开源社区的交流工作。对KVMXen等主流虚拟化技术有非常深入的研究,曾参与KVMXen开源社区的upstream和release测试,以及Redhat和Suse等Linux发行版中虚拟化功能的测试。此外,还精通Linux内核和Linux服务器管理,以及Shell、Python等脚本语言,熟悉C、Java编程。活跃于KVMXenQemu等开源社区,以及CSDN、ChinaUnix、51testing等论坛,在水木社区担任虚拟化技术版和软件测试版版主。
单海涛 
资深虚拟化技术专家和系统软件工程师,现就职于Intel,担任虚拟化相关
技术开发团队的经理,负责KVM、Xen等虚拟化软件的开发以及开发团队的管理。对KVM的原理和应用有非常深入的研究和认识,在Intel工作期间负责开发过与处理器、内存、IO等相关的虚拟化软件,经验十分丰富。
目錄
目录
前言
第1章 虚拟化与云计算 1
1.1 云计算概念 1
1.1.1 发展历史和现状 1
1.1.2 概念 2
1.1.3 云计算模式 3
1.2 云计算技术 4
1.2.1 MapReduce 4
1.2.2 资源管理平台 5
1.2.3 虚拟化 5
1.3 虚拟化技术 5
1.3.1 软件虚拟化和硬件虚拟化 6
1.3.2 准虚拟化与全虚拟化 8
1.4 KVM简介 9
1.4.1 KVM的历史 9
1.4.2 KVM功能概览 9
1.4.3 KVM的前景 11
1.5 Xen简介 11
1.5.1 Xen的历史 11
1.5.2 Xen功能概览 12
1.5.3 Xen的前景 13
1.6 其他虚拟化方案简介 13
1.6.1 VMware 14
1.6.2 VirtualBox 14
1.6.3 Hyper-V 15
1.7 本章小结 15
1.8 本章注释 15
第2章 KVM原理简介 17
2.1 Linux操作系统简介 17
2.2 虚拟化模型 18
2.3 KVM架构 19
2.4 KVM模块 21
2.5 QEMU设备模型 22
2.6 Intel虚拟化技术 22
2.7 本章小结 23
第3章 构建KVM环境 24
3.1 硬件系统的配置 24
3.2 安装宿主机Linux系统 26
3.3 编译和安装KVM 28
3.3.1 下载KVM源代码 28
3.3.2 配置KVM 30
3.3.3 编译KVM 33
3.3.4 安装KVM 35
3.4 编译和安装qemu-kvm 37
3.4.1 下载qemu-kvm源代码 37
3.4.2 配置和编译qemu-kvm 38
3.4.3 安装qemu-kvm 39
3.5 安装客户机 40
3.6 启动第一个KVM客户机 42
3.7 本章小结 43
3.8 本章注释和参考阅读 44
第4章 KVM核心基础功能 45
4.1 硬件平台和软件版本说明 45
4.2 CPU配置 48
4.2.1 vCPU的概念 48
4.2.2 SMP的支持 49
4.2.3 CPU过载使用 54
4.2.4 CPU模型 55
4.2.5 进程的处理器亲和性和vCPU的绑定 57
4.3 内存配置 61
4.3.1 内存设置基本参数 61
4.3.2 EPT和VPID简介 64
4.3.3 大页(Huge Page) 66
4.3.4 内存过载使用 68
4.4 存储配置 70
4.4.1 存储配置和启动顺序 70
4.4.2 qemu-img命令 75
4.4.3 QEMU支持的镜像文件格式 78
4.4.4 客户机存储方式 80
4.5 网络配置 82
4.5.1 QEMU支持的网络模式 83
4.5.2 使用网桥模式 85
4.5.3 使用NAT模式 90
4.5.4 QEMU内部的用户模式网络 98
4.5.5 其他网络选项 102
4.6 图形显示 103
4.6.1 SDL的使用 103
4.6.2 VNC的使用 105
4.6.3 VNC显示中的鼠标偏移 112
4.6.4 非图形模式 113
4.6.5 显示相关的其他选项 115
4.7 本章小结 116
4.8 本章注释和参考阅读 116
第5章 KVM高级功能详解 120
5.1 半虚拟化驱动 120
5.1.1 virtio概述 120
5.1.2 安装virtio驱动 122
5.1.3 使用virtio_balloon 128
5.1.4 使用virtio_net 133
5.1.5 使用virtio_blk 137
5.1.6 kvm_clock配置 138
5.2 设备直接分配(VT-d) 140
5.2.1 VT-d概述 140
5.2.2 VT-d环境配置 141
5.2.3 VT-d操作示例 150
5.2.4 SR-IOV技术 160
5.3 热插拔 170
5.3.1 PCI设备热插拔 170
5.3.2 PCI设备热插拔示例 171
5.3.3 CPU和内存的热插拔 176
5.4 动态迁移 177
5.4.1 动态迁移的概念 177
5.4.2 动态迁移的效率和应用场景 178
5.4.3 KVM动态迁移原理和实践 180
5.4.4 VT-dSR-IOV的动态迁移 187
5.5 嵌套虚拟化 188
5.5.1 嵌套虚拟化的基本概念 188
5.5.2 KVM嵌套KVM 188
5.6 KSM技术 191
5.6.1 KSM基本原理 191
5.6.2 KSM操作实践 193
5.7 KVM其他特性简介 197
5.7.1 1GB大页 197
5.7.2 透明大页 200
5.7.3 AVX和XSAVE 203
5.7.4 AES新指令 205
5.7.5 完全暴露宿主机CPU特性 210
5.8 KVM安全 212
5.8.1 SMEP 212
5.8.2 控制客户机的资源使用—cgroups 213
5.8.3 SELinux和sVirt 220
5.8.4 可信任启动—Tboot 228
5.8.5 其他安全策略 237
5.9 QEMU监控器 241
5.9.1 QEMU monitor的切换和配置 241
5.9.2 常用命令介绍 242
5.10 qemu-kvm命令行参数 249
5.10.1 回顾已用过的参数 249
5.10.2 其他常用参数 253
5.11 迁移到KVM虚拟化环境 261
5.11.1 virt-v2v工具介绍 261
5.11.2 从Xen迁移到KVM 262
5.11.3 从VMware迁移到KVM 265
5.11.4 从VirtualBox迁移到KVM 266
5.11.5 从物理机迁移到KVM虚拟化环境(P2V) 266
5.12 本章小结 267
5.13 注释和参考阅读 268
第6章 KVM管理工具 272
6.1 libvirt 272
6.1.1 libvirt简介 272
6.1.2 libvirt的编译、安装和配置 275
6.1.3 libvirt和libvirtd的配置 281
6.1.4 libvirt域的XML配置文件 285
6.1.5 libvirt API简介 297
6.1.6 建立到Hypervisor的连接 299
6.1.7 libvirt API使用示例 303
6.2 virsh 308
6.2.1 virsh简介 308
6.2.2 virsh常用命令 310
6.3 virt-manager 316
6.3.1 virt-manager简介 316
6.3.2 virt-manager编译和安装 317
6.3.3 virt-manager使用 317
6.4 virt-viewer、virt-install和virt-top 324
6.4.1 virt-viewer 324
6.4.2 virt-install 325
6.4.3 virt-top 327
6.5 OpenStack云计算平台 327
6.5.1 OpenStack简介 327
6.5.2 使用DevStack安装和配置OpenStack开发环境 330
6.5.3 在OpenStack中使用KVM 332
6.6 本章小结 334
6.7 本章注释和参考阅读 334
第7章 Linux发行版中的KVM 336
7.1 RHEL和Fedora中的KVM 336
7.1.1 Red Hat、RHEL、Fedora和CentOS简介 336
7.1.2 RHEL中的KVM 337
7.1.3 Fedora中的KVM 338
7.2 SLES和openSUSE中的KVM 339
7.2.1 SLES中的KVM 339
7.2.2 openSUSE中的KVM 341
7.3 Ubuntu中的KVM 341
7.4 本章小结 343
7.5 本章注释和参考阅读 344
第8章 KVM性能测试及参考数据 345
8.1 虚拟化性能测试简介 345
8.2 CPU性能测试 347
8.2.1 CPU性能测试工具 347
8.2.2 测试环境配置 349
8.2.3 性能测试方法 350
8.2.4 性能测试数据 352
8.3 内存性能测试 354
8.3.1 内存性能测试工具 355
8.3.2 测试环境配置 356
8.3.3 性能测试方法 356
8.3.4 性能测试数据 357
8.4 网络性能测试 360
8.4.1 网络性能测试工具 360
8.4.2 测试环境配置 361
8.4.3 性能测试方法 362
8.4.4 性能测试数据 364
8.5 磁盘IO性能测试 367
8.5.1 磁盘IO性能测试工具 367
8.5.2 测试环境配置 368
8.5.3 性能测试方法 369
8.5.4 性能测试数据 370
8.6 本章小结 373
8.7 本章注释和参考阅读 373
第9章 参与KVM开源社区 375
9.1 开源社区介绍 375
9.1.1 Linux开源社区 375
9.1.2 KVM开源社区 377
9.1.3 QEMU开源社区 377
9.1.4 其他开源社区 378
9.2 代码结构简介 379
9.2.1 KVM代码 379
9.2.2 QEMU代码 381
9.2.3 KVM单元测试代码 383
9.2.4 KVM Autotest代码 385
9.3 向开源社区贡献代码 386
9.3.1 开发者邮件列表 386
9.3.2 代码风格 387
9.3.3 生成patch 391
9.3.4 检查patch 394
9.3.5 提交patch 396
9.4 提交KVM相关的bug 399
9.4.1 通过邮件列表提交bug 399
9.4.2 使用bug管理系统提交bug 401
9.4.3 使用二分法定位bug 401
9.5 本章小结 404
9.6 本章注释和参考阅读 404
內容試閱
第1章 
虚拟化与云计算
本书是一本以KVM为例,讲解虚拟化技术的书。可是看到这一章的标题,有读者会问:虚拟化为什么会跟云计算扯到一起去呢?其实,作为两个时下比较热门的技术,它们之间有着密不可分的千丝万缕的联系。本章将试图为读者理清它们之间的关系,从简单介绍云计算的概念开始,逐步解释虚拟化技术在云计算中的作用,并对当前流行的虚拟化解决方案进行一些简单的对比。
1.1 云计算概念
云计算是一个本世纪初才方兴未艾的热门名词,其本身是由Google前首席执行官埃里克?施密特(Eric Schmidt)在2006年8月9日的搜索引擎大会(SES San Jose 2006)上首次提出的。在此之后,云计算变得炙手可热,很多公司趁势宣传,号称自己是先进的云计算公司。加之业界也一直没有对云计算形成一个统一的定义,各种各样的云变得“乱花渐欲迷人眼”。抛开形形色色的宣传,本书试图为读者一步步理清云计算的真实面目。
1.1.1 发展历史和现状
虽然云计算的提出距离现在还只是短短的几年,但是云计算并不算是个彻底的新事物,因为早在它之前已经有各种类似或关联的概念被先后提出。早在60年代麦卡锡(John McCarthy)就提出了把计算能力作为一种像水和电一样的公用事业提供给用户。1999年,Salesforce.com提出的通过一个网站向企业提供企业级的应用的概念,已经颇有云计算的雏形。另外,20世纪90年代,为了充分利用空闲的CPU资源,通过网络互联搭建平行分布式计算平台,诞生了网格计算,例如1999年出现的SETI@home[1]科学研究项目。在网格计算中,将一个大型的计算任务拆分,分配给各个网格终端计算然后组合的思想,与云计算中的MapReduce技术不谋而合。
这些早期的概念虽然与云计算相关,但是要么碍于当时的计算机和网络技术,要么只是作为一种研究项目,始终没有能够被广泛推广并形成规模。然而,在本世纪初,计算机网络的大量普及和Web数据中心的建立,为云计算提供了必要的硬件准备。
在现有的被大家熟知并使用的共有云计算平台中,最著名的是由Amazon(亚马逊)和Google(谷歌)公司提供的服务。
Amazon使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。月租费与电话月租费类似,存储服务器、带宽按容量收费,CPU根据时长(小时)运算量收费。Amazon把云计算做成一个大生意并没有花太长的时间:不到两年时间,在Amazon上注册的开发人员就达44万人,还有为数众多的企业级用户。云计算是Amazon增长最快的业务之一。Amazon的财报数据显示,在其2012年收入中,云计算相关业务的收入已经高达21亿美元。
Google则当数最大的云计算的使用者。Google搜索引擎就建立在分布在全世界200多个地点、超过100万台服务器的支撑之上,这些设施的数量正在迅猛增长。Google地球、地图、Gmail、Docs等也同样使用了这些基础设施。对于Google Docs[2]之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。Google于2008年4月推出了Google App Engine(GAE)云计算服务,GAE是采用“平台即服务”(PaaS)的云计算模式,可以让第三方开发者在GAE平台上快速地开发自己的Web应用程序,而且GAE还将开发者的Web应用程序部署在Google全球的数据中心。Google还于2012年6月底发布了自己的“基础设施即服务”(IaaS)模式的云计算平台—Google Compute Engine(GCE),GCE的底层采用的是KVM虚拟化技术,它提供了与亚马逊EC2类似的云计算服务。
随着云计算的价值被不断发掘,越来越多的大公司开始加入到研究和部署云计算技术的阵营。
2008年2月1日,IBM宣布将在中国无锡的太湖新城科教产业园为中国的软件公司建立全球第一个云计算中心。
2008年7月29日,雅虎、惠普和英特尔宣布一项涵盖美国、德国和新加坡的联合研究计划,推出云计算研究测试床,推进云计算。该计划要与合作伙伴创建6个数据中心作为研究试验平台,每个数据中心配置1400个至4000个处理器。这些合作伙伴包括新加坡资讯通信发展管理局、德国卡尔斯鲁厄大学Steinbuch计算中心、美国伊利诺伊大学香宾分校、英特尔研究院、惠普实验室和雅虎。
2010年7月,美国国家航空航天局和包括Rackspace、AMD、Intel、戴尔等支持厂商共同宣布“OpenStack”开放源代码计划,微软在2010年10月表示支持OpenStack与Windows Server 2008 R2的集成,而Ubuntu已把OpenStack添加到Ubuntu 11.04版本中。
2011年2月,思科系统正式加入OpenStack,重点研发OpenStack的网络服务。
1.1.2 概念
云计算自从提出,一直没有一个明确而统一的定义。维基百科对云计算做了如下的描述[3]:云计算是一种通过因特网以服务的方式提供动态可伸缩的虚拟化的资源的计算模式(Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet)。美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件和服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互(Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction)。
也有人基于云端计算的实现方式,认为云计算是分布式计算技术的一种,其最基本的概念是,透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交给由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。透过这项技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计字节的信息,实现和“超级计算机”同样强大效能的网络服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用。
1.1.3 云计算模式
云计算是推动IT转向以业务为中心模式的一次重大变革。它着眼于运营效率、竞争力和快速响应等实际成果。这意味着IT的作用正在从提供IT服务逐步过渡到根据业务需求优化服务的交付和使用。这种全新的模式将以前的信息孤岛转化为灵活高效的资源池和具备自我管理能力的虚拟基础架构,从而以更低的成本和更好的服务的形式提供给用户。IT即服务将提供业务所需要的一切,并在不丧失对系统的控制力的同时,保持系统的灵活性和敏捷性。
云计算的表现形式多种多样,简单的云计算在日常网络应用中随处可见,比如腾讯QQ空间提供的在线制作Flash图片,Google的搜索服务,Google Docs和 Google Apps等。目前,云计算的主要服务形式有:SaaS(Software as a Service,软件即服务)、PaaS(Platform as a Service,平台即服务)和IaaS(Infrastructure as a Service,基础设施即服务)。
1. 软件即服务
SaaS提供商将应用软件统一部署在自己的服务器上,用户根据需求通过互联网向厂商订购应用软件服务,服务提供商根据客户所定软件的数量、时间的长短等因素收费,并且通过浏览器向客户提供软件的模式。这种服务模式的优势是,由服务提供商维护和管理软件,提供软件运行的硬件设施,用户只需拥有能够接入互联网的终端,即可随时随地使用软件。在这种模式下,客户不再像传统模式那样花费大量资金在硬件、软件、维护人员上,只需要支出一定的租赁服务费用,通过互联网就可以享受到相应的硬件、软件和维护服务,这是网络应用最具效益的营运模式。对于小型企业来说,SaaS是采用先进技术的最好途径。
目前,Salesforce.com是提供这类服务最著名的公司,Google Docs、Google Apps和Zoho Office也属于这类服务。
2. 平台即服务
PaaS把开发环境作为一种服务来提供。这是一种分布式平台服务,厂商提供开发环境、服务器平台、硬件资源等服务给客户,用户在其平台基础上定制开发自己的应用程序并通过其服务器和互联网传递给其他客户。PaaS能够为企业或个人提供研发的中间件平台,提供应用程序开发、数据库、应用服务器、试验、托管及应用服务。
Google App Engine、Salesforce的force.com平台、八百客的800APP是PaaS的代表产品。以Google App Engine为例,它是一个由python应用服务器群、BigTable数据库及GFS组成的平台,为开发者提供一体化主机服务器及可自动升级的在线应用服务。用户编写应用程序并在Google的基础架构上运行就可以为互联网用户提供服务,Google提供应用运行及维护所需要的平台资源。
3. 基础设施即服务
IaaS即把厂商的由多台服务器组成的“云端”基础设施,作为计量服务提供给客户。它将内存、IO设备、存储和计算能力整合成一个虚拟的资源池为整个业界提供所需要的存储资源和虚拟化服务器等服务。这是一种托管型硬件方式,用户付费使用厂商的硬件设施。例如Amazon Web服务(AWS)、Google的Google Compute Engine、 IBM的BlueCloud等均将基础设施作为服务出租。
IaaS的优点是用户只需低成本获得所需的硬件资源,按需租用相应计算能力、存储容量、网络带宽,而且省去了硬件运维方面的成本,大大降低了用户在硬件上的开销。
1.2 云计算技术
云计算的兴起,改变了现有的以本地计算为主的应用模型。用户不再需要付费购买软件并将其安装到本地的计算机中执行。取而代之,大量的计算任务,由客户端通过网络发起,在云计算提供商的数据中心的服务器集群上进行计算,其结果经由网络返回,在客户端进行呈现。新的计算模型的提出,必然伴随着新的问题需要解决。在云计算的环境下,不同厂商对如何有效地管理云端的资源,为用户提供快捷的计算进行了大量研究,提出和总结了一些行之有效的云计算技术。
1.2.1 MapReduce
MapReduce是Google开发的编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇总输出。
MapReduce编程模型适用于很多应用,例如,分布式搜索、分布式排序、机器学习、基于统计的机器翻译等。在Google公司,互联网网页的搜索索引也是用MapReduce技术计算生成的。
MapReduce目前已经有基于各种不同计算机编程语言的库实现,其中相当流行的是有Apache基金会的用Java语言开发的开源的Hadoop。
1.2.2 资源管理平台
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效地管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。
云计算系统的平台管理技术能够使大量的服务器协同工作,方便进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
当前比较流行的云计算平台,主要有思杰的CloudStack,开源的Eucalyptus,VMware公司的vCloud Director和开源的OpenStack等。除了VMware公司的vCloud Director没有免费版本和只支持VMware自由的虚拟化产品以外,其余几个都提供免费版本,而且支持多个虚拟化产品。Eucalyptus和OpenStack还对亚马逊的API保持兼容,基于亚马逊API的所有的脚本和软件产品都可以轻松地进行私有云部署。
现在,CloudStack和OpenStack正处在激烈的竞争中,两者都希望自己能够成为开源社区云计算平台的事实标准。CloudStack在成熟度上面明显优于OpenStack,在培育客户方面也占了先机,但是背后的推手主要是思杰。OpenStack虽然是后起之秀,但是得到了诸如IBM、思科、英特尔、惠普和戴尔等大牌厂商的支持。究竟谁是未来的开源云平台老大,鹿死谁手,还未可知。
1.2.3 虚拟化
虚拟化是构建云基础架构不可或缺的关键技术之一。云计算的云端系统,其实质上就是一个大型的分布式系统。虚拟化通过在一个物理平台上虚拟出更多的虚拟平台,而其中的每一个虚拟平台则可以作为独立的终端加入云端的分布式系统。比起直接使用物理平台,虚拟化在资源的有效利用、动态调配和高可靠性方面有着巨大的优势。利用虚拟化,企业不必抛弃现有的基础架构即可构建全新的信息基础架构,从而更加充分地利用原有的IT投资。
可以说,虚拟化是云端系统部署必不可少的基础。正是因为虚拟化在云计算中的重要性,本书将集中篇幅以KVM为例,为各位读者讲解虚拟化从技术理解到实践部署的方方面面。从下一节开始,本书将进入虚拟化技术的专题。
1.3 虚拟化技术
虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理、优化资源的解决方案。
如图1-1所示,我们可以将一般的计算模型抽象成为一定的物理资源和运行于之上的计算元件,它们之间通过定义的物理资源接口进行交互。随着计算机硬件技术的发展,物理资源的容量越来越大而价格越来越低,在既有的计算元件架构下,物理资源不可避免地产生了闲置和浪费。为了充分利用新的物理资源,提高效率,一个比较直接的办法就是更新计算元件以利用更加丰富的物理资源。但是,人们往往出于对稳定性和兼容性的追求,并不情愿频繁地对已经存在的计算元件做大幅度的变更。虚拟化技术则是另辟蹊径,通过引入一个新的虚拟化层,对下管理真实的物理资源,对上提供虚拟的系统资源,从而实现了在扩大硬件容量的同时,简化软件的重新配置过程。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.