【转】《从入门到精通云服务器》第六讲—OpenStack基础
前五期的《从入门到精通云服务器》受到了广泛好评,收到留言,有很多读者对云计算相关的技术非常感兴趣。应观众要求,我们这期要安利一条纯技术内容。准备好瓜子、花生,随小编一起进入OpenStack 基础知识大讲堂吧。
了解OpenStack
OpenStack 是最火的开源软件之一,活跃度呈指数级别上升;它是一组开源项目,诞生之初是由两个项目组成,目前十几个项目;它是一个云操作系统,OpenStack is a cloud operating system that …
OpenStack 管理的资源不是单机的而是一个分布的系统,把分布的计算、存储、网络、设备、资源组织起来,形成一个完整的云计算系统;OpenStack 也提供一个 UI,这里包括一个图形化的 UI:Horizon,也提供命令行的界面,还提供了一套 API 支持用户开发自己的软件……
OpenStack 是用 Python 实现的软件。
分布式系统的逻辑非常复杂,所以用更高级的语言去做,可以把精力更多的放在逻辑上,而不是说纠结与底层的细节,因为高级语言的底层机制已经优化的非常好了,C/C++ 写出来的东西性能不一定就真高;事实上在分布式系统这个领域,有很多很好的例证,比方说 OpenStack 用 Python 写的,Hadoop 使用 Java 写的,UC Berkeley 的 Spark 使用 Scala 语言写的,Twitter Storm 是用 Clojure 语言开发的,这些都是很著名的分布式系统,都是用的更高层的语言而不是 C
OpenStack的特点
OpenStack 是一套框架 —— API,它有两个特点:
它是一个中间层,可以创建、管理和销毁虚拟机,但是要完成这些操作需要依赖于第三方的 Hypervisor,通过这个 Hypervisor 去完成虚拟化的工作,OpenStack 并不能自己去提供一个虚拟化的运行环境,OpenStack 有个组件叫 Cinder(用来提供块存储服务的),但是 OpenStack 自己并不能进行数据的存储和读写,它需要依赖一个实际的块存储设备的支持,这个设备可以是一个分布式的存储系统,比如说 Ceph,也可以是一个存储设备,比如说 EMC 的 SAN,也可以是存储服务器的本地硬盘,但是它必须依赖一个存储设备的支持,OpenStack 本身并不具备这个功能。OpenStack 是一个中间层。
框架有一个很重要的特点,那就是它能提供一批 API 去支持应用的开发,这也是我们业内对框架的一个定义,OpenStack 当然也有这个特点,云计算的愿景就是让用户能够像用电一样去使用计算,OpenStack 的设计也是朝着这个愿景去做设计的,但是实际上我们平时是不能直接用电的,我们需要用的是电冰箱、电脑、电视等等这些电器。同理,对于云计算来说,提供 API 去支持开发应用这个事情就合情合理的非常的重要了,具有完备的 API 是 OpenStack 的突出优点。
OpenStack ≠虚拟化软件
第一,它不是虚拟化软件(必须知道这点),OpenStack 虽然管理虚拟机,但不具备虚拟化的功能,它给上层提供一个虚拟化的运行环境,必须得依赖一个第三方的虚拟化软件来实现,比如默认支持的 Linux 内核虚拟机,装完 Linux 之后就自动带了,集成到 Linux 内核里面了(KVM),另外它还支持 Xen,还支持微软的 Hyper-V,支持 VMware 的 Vshpere,还支持像 Linux Container 和 Docker 这样轻量级的虚拟化技术。总之,OpenStack 本身不提供虚拟化,依赖第三方软件。
需要了解的第二层含义:这个云化和虚拟化实际上是不一样的,云 != 虚拟化,云化的目的是为了实现效用计算,弹性计算,动态资源调度,多租户等这样的一些特性;而虚拟化只是实现云计算的这些特性中的一个技术手段而已,而且它不是必需的。比方说 IBM 的 Softlayer 是 IBM 主推的云服务之一,它中间有一个非常大的特点就是,它支持 Bare Metal Server,直译过来就是 “金属裸机”,也就是 Softlayer 在上面不做虚拟化,而是直接用物理服务器来实现云,直接给用户、租户提供的就是物理服务器,Softlayer 也可以在上面来实现多租户 、弹性计算等等特性。总之,Softlayer 没有虚拟化,但是 Softlayer 也做了云。第二个例子是 OpenStack 也有一个项目叫作 Ironic,是为了通过管理 “金属裸机”来实现云从而提出的项目。
OpenStack资源管理
OpenStack 作为一个操作系统,管理资源是它的首要任务;
OpenStack 管理资源主要有三个方面:计算、存储和网络。
OpenStack 对资源进行管理,并且以服务的形式提供给上层应用或者用户去使用。这些资源的管理是通过 OpenStack 中的各个项目来实现的。
其中计算资源管理相关的项目是 Nova(又称为 OpenStack Compute);
存储相关的主要有块存储服务 Cinder、对象存储服务 Swift、镜像存储服务 Glance 这三种;
与网络相关的主要是一个和软件定义网络相关的项目叫作 Neutron;另外,Nova 中间有一个管理网络的模块叫作 Nova Network,作为一个比较稳定的遗留组件仍在 OpenStack 里面和 Neutron 并存,我们在小规模部署里面经常为了追求这种稳定,并且减少工作量会去使用 Nova Network 这样的一个组件来对网络资源进行管理。
【转】《从入门到精通云服务器》第六讲—OpenStack基础的更多相关文章
- 【转】《从入门到精通云服务器》第七讲—负载均衡和CDN技术
在IDC知识中,我们常常会遇上负载均衡与CDN的概念而不知所云.第一讲[什么是云计算], 我们提到过负载均衡,仅给大家留下了印象.这次我们将深入浅出的讲讲到底什么是负载均衡与CDN技术.---互联网数 ...
- 【转】《从入门到精通云服务器》第七讲—IAAS、PAAS、SAAS
Saas.Paas.IaaS这三个词,一直困扰众人很久.就拿字面意思来说,分别是:软件即服务,平台即服务,设施即服务.小编表示这个不往深了讲,真心看不懂,还容易弄混淆.今天我们就来扒一扒这三者的深层含 ...
- 【转】《从入门到精通云服务器》第四讲—DDOS攻击
上周咱们深入分析了云服务器的配置问题,好了,现在手上有了云服务器之后,我们又不得不提它:DDOS攻击.这是所有运维者的心头痛,也是任何公司听闻后都将心惊胆战的强大对手.下面我们将用浅显易懂的方式讲述什 ...
- ReactJs入门教程-精华版
原文地址:https://www.cnblogs.com/Leo_wl/p/4489197.html阅读目录 ReactJs入门教程-精华版 回到目录 ReactJs入门教程-精华版 现在最热门的前端 ...
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- 【C++自我精讲】基础系列四 static
[C++自我精讲]基础系列四 static 0 前言 变量的存储类型:存储类型按变量的生存期划分,分动态存储方式和静态存储方式. 1)动态存储方式的变量,生存期为变量所在的作用域.即程序运行到此变量时 ...
- 【C++自我精讲】基础系列一 指针与引用
[C++自我精讲]基础系列一 指针与引用 一 前言 指针.引用.指针与引用区别. 二 指针 变量:代码中常常通过定义变量来申请并命名存储空间,并通过变量的名字来使用这段存储空间. //变量 ...
- GPU 服务器环境安装中一些基础note
GPU 服务器环境安装中一些基础note GPU 服务器: 添加组,用户,并为之新建主目录. c302@c302-dl:~$ sudo addgroup testgroup Adding group ...
- 【C++自我精讲】基础系列六 PIMPL模式
[C++自我精讲]基础系列六 PIMPL模式 0 前言 很实用的一种基础模式. 1 PIMPL解释 PIMPL(Private Implementation 或 Pointer to Implemen ...
随机推荐
- 关于GridView中控件的问题
最近做项目报表时,会遇到在Gridview中有一些控件,报表中也会有更新.删除等一系列的操作,但往往会遇到一些控件取值取不到或者找不到控件得问题,通过网上查阅资料对其中的一些做一总结: 前台代码如下: ...
- (转)winform(C#)里几种弹出对话框
//消息框中需要显示哪些按钮,此处显示“确定”和“取消” MessageBoxButtons messButton = MessageBoxButtons.OKCancel; //"确定要退 ...
- DuBrute 3.1
PS:转载自小残博客. 今天发现时隔很久的DuBrute竟然更新了,为此我在分享给大家,软件我没测试效果,使用过的朋友或许很清楚,不会太差! 曾几何时,小残也在用DUbrute爆破工具,且玩的不亦乐乎 ...
- 微软KinectV2深度传感器在Ubuntu上的配置和使用
最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents ------------------------------------------ ...
- oracle忘记密码
1.输入命令: sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入. 2.连接成功后,输入"select username fr ...
- python3 -pip
https://docs.python.org/3/installing/ ===== pip is the preferred installer program. Starting with Py ...
- Gulp真实项目用例
包括了less预编译,css压缩,html文件include引入,js混淆压缩,本地开发热刷新服务器,html压缩,版本号添加 github地址: gulpfile.js var gulp = req ...
- Data Validate 之 Data Annotation
什么是Data Annotation ? 如何使用 ? 自定义Validate Attribute EF Db first中使用Data Annotation asp.net MVC中使用Data ...
- 461. Hamming Distance
https://leetcode.com/problems/hamming-distance/ 将两个二进制数比较,输出不同位数的个数 Input: x = 1, y = 4 Output: 2 Ex ...
- linux c/c++
string 字符串操作 操作数的都是 ( char * )型,操作数必须是指向字符串的指针("a"),不能是字符('a'),操作时不考虑末尾的'\0'. size_t strle ...