发表于2024-11-22
OpenStack是一个云管理操作系统,用来控制数据中心中的计算、存储、网络资源池
《每天5分钟玩转OpenStack》是一本OpenStack的教程和参考。读者在学习的过程中,可以跟着教程进行操作,在实践中掌握 OpenStack 的核心技能。在之后的工作中,则可以将本教程作为参考书,按需查找相关知识点。
《每天5分钟玩转OpenStack》共分为两大部分。第一部分介绍虚拟化和云计算基础知识,重点讲解 KVM 的理论和实践。第二部分首先介绍 OpenStack 架构,演示如何搭建 OpenStack 环境,然后逐一详细讲解 OpenStack 各个核心模块,包括 Keystone、 Glance、Nova、Cinder 和 Neutron。
《每天5分钟玩转OpenStack》适合OpenStack初学者、云计算技术人员、云计算研究人员等使用,也适合高校和培训学校相关专业的师生教学参考。
CloudMan,云计算技术专家,就职于国际知名 IT 企业,负责OpenStack相关项目的规划和实施。十多年一直专注 IT 前沿技术的钻研与实践,目前重点研究OpenStack、容器技术栈、DevOps等技术领域。
第一篇 预备知识
第 1 章 虚拟化 2
1.1 1型虚拟化 2
1.2 2型虚拟化 2
1.3 KVM 3
1.3.1 基本概念 3
1.3.2 KVM实操 4
1.4 KVM 虚拟化原理 11
1.4.1 CPU 虚拟化 11
1.4.2 内存虚拟化 12
1.4.3 存储虚拟化 13
1.5 网络虚拟化 19
1.5.1 Linux Bridge 19
1.5.2 VLAN 28
1.5.3 Linux Bridge + VLAN = 虚拟交换机 35
第 2 章 云 计 算 36
2.1 基本概念 36
2.2 云计算和 OpenStack 38
第二篇 OpenStack 核心
第 3 章 OpenStack 架构 41
3.1 Conceptual Architecture 41
3.2 Logical Architecture 42
第 4 章 搭建实验环境 45
4.1 部署拓扑 45
4.2 物理资源需求 46
4.3 网络规划 47
4.4 部署 DevStack 47
第 5 章 Identity Service——Keystone 55
5.1 概念 55
5.1.1 User 55
5.1.2 Credentials 57
5.1.3 Authentication 57
5.1.4 Token 57
5.1.5 Project 58
5.1.6 Service 59
5.1.7 Endpoint 60
5.1.8 Role 60
5.2 通过例子学习 62
5.2.1 第1步 登录 62
5.2.2 第2步 显示操作界面 62
5.2.3 第3步 显示image列表 63
5.2.4 Troubleshoot 64
第 6 章 Image Service——Glance 65
6.1 理解 Image 65
6.2 理解 Image Service 66
6.3 Glance 架构 66
6.4 Glance 操作 69
6.4.1 创建 image 70
6.4.2 删除 image 72
6.5 如何使用 OpenStack CLI 74
6.6 如何 Troubleshooting 77
第 7 章 Compute Service——Nova 79
7.1 Nova架构 80
7.1.1 架构概览 80
7.1.2 物理部署方案 82
7.1.3 从虚机创建流程看 nova-* 子服务如何协同工作 84
7.1.4 OpenStack 通用设计思路 85
7.2 Nova 组件详解 88
7.2.1 nova-api 88
7.2.2 nova-scheduler 90
7.2.3 nova-compute 97
7.2.4 nova-conductor 104
7.3 通过场景学习 Nova 105
7.3.1 看懂 OpenStack 日志 105
7.3.2 Launch 108
7.3.3 Shut Off 108
7.3.4 Start 112
7.3.5 Soft/Hard Reboot 114
7.3.6 Lock/Unlock 114
7.3.7 Terminate 115
7.3.8 Pause/Resume 116
7.3.9 Suspend/Resume 118
7.3.10 Rescue/Unrescue 119
7.3.11 Snapshot 122
7.3.12 Rebuild 125
7.3.13 Shelve 128
7.3.14 Unshelve 130
7.3.15 Migrate 133
7.3.16 Resize 139
7.3.17 Live Migrate 144
7.3.18 Evacuate 150
7.3.19 Instance 操作总结 154
7.4 小节 156
第 8 章 Block Storage Service ——Cinder 157
8.1 理解 Block Storage 157
8.2 理解 Block Storage Service 157
8.2.1 Cinder 架构 158
8.2.2 物理部署方案 159
8.2.3 从volume创建流程看cinder-*子服务如何协同工作 160
8.2.4 Cinder 的设计思想 161
8.2.5 Cinder组件详解 163
8.2.6 通过场景学习 Cinder 170
8.3 小节 220
第 9 章 Networking Service ——Neutron 221
9.1 Neutron 概述 221
9.1.1 Neutron 功能 221
9.1.2 Neutron 网络基本概念 222
9.2 Neutron 架构 224
9.2.1 物理部署方案 227
9.2.2 Neutron Server 228
9.2.3 Neutron 如何支持各种 network provider 229
9.2.4 ML2 Core Plugin 231
9.2.5 Service Plugin / Agent 234
9.2.6 小结 235
9.3 为Neutron 准备物理基础设施 237
9.3.1 1控制节点 + 1 计算节点的部署方案 237
9.3.2 配置多个网卡区分不同类型的网络数据 238
9.3.3 网络拓扑 239
9.3.4 安装和配置节点 240
9.4 Linux Bridge 实现 Neutron 网络 244
9.4.1 配置 linux-bridge mechanism driver 244
9.4.2 初始网络状态 245
9.4.3 了解Linux Bridge 环境中的各种网络设备 247
9.4.4 local network 248
9.4.5 flat network 262
9.4.6 DHCP 服务 270
9.4.7 vlan network 274
9.4.8 Routing 285
9.4.9 vxlan network 307
9.4.10 Securet Group 321
9.4.11 Firewall as a Service 328
9.4.12 Load Balancing as a Service 337
9.5 Open vSwitch 实现 Neutron 网络 358
9.5.1 网络拓扑 358
9.5.2 配置 openvswitch mechanism driver 359
9.5.3 初始网络状态 360
9.5.4 了解 Open vSwitch 环境中的各种网络设备 362
9.5.5 local network 362
9.5.6 flat network 377
9.5.7 vlan network 386
9.5.8 Routing 399
9.5.9 vxlan network 411
9.6 总结 421
写在最后 422
第 6 章
? Image Service——Glance ?
6.1 理解 Image
要理解 Image Service 先得搞清楚什么是 Image,以及为什么要用 Image?
在传统 IT 环境下,安装一个系统要么从安装 CD 开始安装,要么用 Ghost 等克隆工具恢复。这两种方式有如下几个问题:
? 如果要安装的系统多了效率就很低
? 时间长,工作量大
? 安装完还要进行手工配置,比如安装其他的软件,设置 IP 等
? 备份和恢复系统不灵活
云环境下需要更高效的解决方案,这就是 Image。
Image 是一个模板,里面包含了基本的操作系统和其他的软件。
举例来说,有家公司需要为每位员工配置一套办公用的系统,一般需要一个Windows 7系统再加 MS office 软件。
OpenStack 是这么玩的:
(1)先手工安装好这么一个虚机。
(2)然后对虚机执行 snapshot,这样就得到了一个 image。
(3)当有新员工入职需要办公环境时,立马启动一个或多个该 image 的 instance(虚机)就可以了。
在这个过程中,第 1 步跟传统方式类似,需要手工操作和一定时间,但第2步、第3 步非常快,全自动化,一般都是秒级别。
而且第2步、第3步可以循环做。比如,公司新上了一套 OA 系统,每个员工的 PC 上都得有客户端软件,那么可以在某个员工的虚机中手工安装好 OA 客户端,然后执行 snapshot ,得到新的 image,以后直接使用新 image 创建虚机就可以了。
另外,snapshot 还有备份的作用,能够非常方便地恢复系统。
6.2 理解 Image Service
Image Service 的功能是管理 Image,让用户能够发现、获取和保存 Image。
在 OpenStack 中,提供 Image Service 的是 Glance,其具体功能如下:
? 提供 REST API,让用户能够查询和获取 image 的元数据和 image 本身。
? 支持多种方式存储 image,包括普通的文件系统、Swift、Amazon S3 等。
? 对 Instance 执行 Snapshot 创建新的 image。
6.3 Glance 架构
Glance的架构如图6-1所示。
图6-1
从图6-1可以看到,Glance主要由三部分组成。
1. glance-api
glance-api 是系统后台运行的服务进程,对外提供 REST API,响应 image 查询、获取和存储的调用,glance-api 不会真正处理请求。
如果是与 image metadata(元数据)相关的操作,glance-api 会把请求转发给 glance-registry;如果是与 image 自身存取相关的操作,glance-api 会把请求转发给该 image 的 store backend。
在控制节点上可以查看 glance-api 进程,如图6-2所示。
图6-2
2. glance-registry
glance-registry 是系统后台运行的服务进程,负责处理和存取 image 的 metadata,例如 image 的大小和类型。
在控制节点上可以查看 glance-registry 进程,如图6-3所示。
图6-3
Glance支持多种格式的 image,包括如图6-4所示的文件格式。
图6-4
3. Database
Image 的 metadata 会保持到 database 中,默认是 MySQL。
在控制节点上可以查看 glance 的 database 信息,如图6-5所示。
图6-5
4. Store backend
Glance 自己并不存储 image,真正的 image 是存放在 backend 中的。
Glance 支持多种 backend,包括:
? A directory on a local file system(这是默认配置)
? GridFS
? Ceph RBD
? Amazon S3
? Sheepdog
? OpenStack Block Storage (Cinder)
? OpenStack Object Storage (Swift)
? VMware ESX
具体使用哪种 backend,是在 /etc/glance/glance-api.conf 中配置的。
在我们的 devstack 环境中,image 存放在控制节点本地目录 /opt/stack/data/glance/images/ 中,配置信息如图6-6所示。
图6-6
其他 backend 的配置可参考这个网址:
http://docs.openstack.org/liberty/config-reference/content/configuring-image-service-backends.html
查看目前已经存在的 image,命令及其执行结果如图6-7所示。
图6-7
查看保存目录,命令及其执行结果如图6-8所示。
图6-8
每个 image 在目录下都对应有一个文件,文件以 image 的 ID 命名。
6.4 Glance 操作
本节将讨论 Glance 的主要操作。
OpenStack 为终端用户提供了 Web UI(Horizon)和命令行 CLI 两种交换界面,两种方式我们都要会用。可能有些同学觉得既然有更友好的 Web UI 了,为什么还要用CLI?
这里 CloudMan 给出下面的理由:
? Web UI 的功能没有 CLI 全,有些操作只提供了 CLI。 即便是都有的功能,CLI 可以使用的参数更多。
? 一般来说,CLI 返回结果更快,操作起来更高效。
? CLI 可放在脚本中进行批处理。
? 有些耗时的操作 CLI 更合适,比如创建镜像(后面将涉及)。
6.4.1 创建 image
1. Web UI
admin 登录后,单击Project → Compute → Images,界面如图6-9所示。
图6-9
单击右上角“Create Image”按钮,为新 image 命名。如图6-10所示。
图6-10
这里我们上传一个 image。
单击“浏览”,选择镜像文件 cirros-0.3.4-x86_64-disk.img。这个cirros 是一个很小的 linux 镜像,非常适合测试用。大家可以到 http://download.cirros-cloud.net/ 下载。
格式选择 QCOW2,如图6-11所示。
图6-11
如果选中“Public”,该image可以被其他 Project 使用,如果选中“Protected”,该image不允许被删除。
单击“Create Image”,文件上传到 OpenStack 并创建新的 image,如图6-12所示。
单击image链接“cirros”,显示详细信息,如图6-13所示。
图6-12 图6-13
2. CLI
cirros 这个Linux镜像很小,通过 Web UI 上传很快,操作会很顺畅。
但如果我们要上传的镜像比较大(比如好几个GB),那么,操作会长时间停留在上传的 Web 界面,我们也不知道目前到底处于什么状态。
对于这样情形下的操作,CLI 是更好的选择。
? 将 image 上传到控制节点的文件系统中,例如 /tmp/cirros-0.3.4-x86_64-disk.img,设置环境变量,如图6-14所示。
图6-14
Devstack 的安装目录下有个 openrc 文件。source 该文件就可以配置 CLI 的环境变量。这里我们传入了两个参数,第一个参数是 OpenStack 用户名 admin,第二个参数是 Project 名 admin。
? 执行 image 创建命令
glance image-create --name cirros --file /tmp/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --progress
命令执行结果如图6-15所示。
图6-15
在创建 image 的 CLI 参数中,我们用 --progress 让其显示文件上传的百分比 %,这样是不是比 Web UI更直观呢?
在 /opt/stack/data/glance/images/下查看新的 Image,如图6-16所示。
图6-16
6.4.2 删除 image
1. Web UI
admin 登录后,单击Project → Compute → Images,打开如图6-17所示的界面。
图6-17
在列表中选择格式为 ARI 和 AKI 的 image,单击“Delete lmages”,打开如图6-18所示的界面。
图6-18
单击“Delete Images”确认删除操作成功,如图6-19所示。
图6-19
2. CLI
设置环境变量,如图6-20所示。
图6-20
查询现有image ,如图6-21所示。
图6-21
删除image,如图6-22所示。
每天5分钟玩转OpenStack 下载 mobi epub pdf txt 电子书 格式
每天5分钟玩转OpenStack 下载 mobi pdf epub txt 电子书 格式 2024
每天5分钟玩转OpenStack 下载 mobi epub pdf 电子书一如既往的好,一如既往的好
评分OpenStack方面最好的一本书
评分很好…………
评分写的挺好
评分比较实用
评分先说说快递包装吧,不知道是不是快递的原因,书中有一页是脏的,有一些黄黄的东西。再说一下书本的印刷质量吧,整本书的纸张颜色偏黄,个人不是很喜欢这种风格,感觉印刷质量不是很好。然后再说一下书本内容吧,书本内容语言比较简洁,比较易懂,内容不是太深奥,适合我这种初学者。最后,最重要的是,这本书的内容和作者的公众号里面推送的一模一样,一字不差,完全没有必要买书!整体来说,这本书不值这个价格。
评分书到手看了两三天了, 书内容写的很好,思路清晰。唯一不足是书中截图的地方印刷后不太清晰,不过不影响阅读。总之是个很实在用的书籍。
评分物美价廉,不可多得,建议购买,京东商品,值得信赖
评分老公很喜欢这本书
每天5分钟玩转OpenStack mobi epub pdf txt 电子书 格式下载 2024