1.OpenStack介绍
类似于亚马逊云和阿里云的开源云服务器管理平台,底层基于KVM(Kernel-based Virtual Machine)技术。
基于内核的虚拟机(KVM)是一种内建于 Linux 中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。
KVM 是 Linux 的一部分。Linux 2.6.20 或更新版本包括 KVM。KVM 于 2006 年首次公布,并在一年后合并到主流 Linux 内核版本中。由于 KVM 属于现有的 Linux 代码,因此它能立即享受每一项新的 Linux 功能、修复和发展,无需进行额外工程。
虚拟化是什么?
"虚拟":就是把假的变成真的,虚拟化是一种技术
什么是云计算?
云计算技术, 就是资源池的分配的技术,把所有的资源都整合到一起统一进行分配!云计算具有可伸缩性
私有云,公有云,混合云?
私有云: 企业之外无法使用的,企业搭建或者某公司专用
公有云: 公共的,安全存在问题
混合云:满足高流量高并发业务,满足安全,12306就是混合云
OpenStack三大关键项目:
- Nova:计算服务
- Neutron:网络服务
- Cinder:存储服务
1.1 OpenStack使用简介
一般的小型企业(服务器30-50台左右): 使用OpenStack在技术和成本上是一个巨大的挑战,投入产出比低。 如果用虚拟化,ovirt(KVM虚拟机批量管理工具)即可。
中大型企业(物理节点在200+左右):对业务vm实例需要灵活部署运行的话,这种场景才有可能用到OpenStack。
2.云计算的实现方式
云计算是基于虚拟化技术的一种资源交付使用模式。
传统虚拟化:从底层硬件到软件的研发上线均需自行解决。如本地VMware虚拟机创建。
IaaS:Infrastructure as a Service,基础设施即服务。无需关注底层硬件及虚拟化环境搭建,只需关注操作系统以上的技术。如OpenStack,阿里云。
PaaS:Platform as a Service,平台即服务。只需关注软件的开发。如谷歌应用引擎(人们可以开发应用程序,让它们在谷歌应用程序引擎上执行,负责执行)。
SaaS:Software as a Service,软件即服务。直接使用已开发好的软件。如微信、支付宝等。
3.云计算的基本架构
对于一个云计算管理平台来说,最重要的三个部分为存储、计算与网络:
- 专用分布式存储:解决VM实例所需的底层资源问题
- 专用映像文件存储:解决映像文件(其中保存了VM实例的规格及各种配置信息,也可理解为客户需求)的存储与调度
- 网络:网络性能决定了云主机的用户体验
批量创建VM实例时,需使用顺序创建减轻资源压力,此时用到了异步协作的消息队列。
4.OpenStack逻辑架构图
- Horizon:OpenStack的GUI
- KeyStone:用户身份认证
- Glance:镜像服务
- 核心三大组件Nova、Neutron、Cinder
最小化安装组件
- Dashboard(web项目)
- Keystone(权限管理)
- Nova(管理虚拟机)
- Nova-network(管理网络流量和ip)
- Glance(镜像管理项目)
- Cinder(磁盘管理)
- Swift(网盘,对象)
5.OpenStack实验环境
实验一般选用双节点。配置需求:
我的笔记本受不了官方配置
控制节点:2CPU4G,单网卡(NAT模式+混杂模式+IPV6)
计算节点:1C1G,单网卡(NAT模式+混杂模式+IPV6)
其他知识补充:
cpu特权级:
Ring0 :内核态 最高级别独占了
Ring1 :
Ring2 :
Ring3 : 用户操作的级别,我们的代码指令最低,调用0去操作
结论:一个电脑没办法同时运行两个操作系统,因为内核态独占了ring0,这就需要vm软件虚拟cpu
半虚拟化和全虚拟化:
半虚拟化: 所有的指令都需要hypervisor去转义交给cpu执行
全虚拟化:cpu硬件支持 VT技术,性能要比半虚拟化强很多
操作系统虚拟化:
类似于win系统 和 linux多用户之间的划分
虚拟化软件:
KVM,QEMU
libvirt 软件:
理解libvirt的代码架构就需要理解三个接口,虚拟机管理接口,磁盘管理接口,网络管理接口,libvirt通过高度抽象的接口对上层应用提供统一的入口,屏蔽底层的具体实现,也是openstack上最常用的工具和虚拟化管理平台,运行在用户控件
libvirt 关键词解释:
节点(node):一个机器上运行多个虚拟客户机,hypervisor和domain都运行在node之上
域:实在hypervisor上运行的客户操作系统
open vswitch:
对于网络虚拟化的软件,虚拟交换机,运行在平台上.
相关的概念:
bredge: 代表一个以太网交换机,一个主机可以创建多个
port: 端口, 每一个交换机都有对应的端口
interface: 连接port的网络接口设备
controller,控制器
datapath: 负责执行数据交换
flow table : 每一个datapath都有一个 flow table 对应,类似于数据流表
os七层协议
SDN是什么?
传统网络是通过交换机+路由器,而客户端采用ip + mac地址进行通讯,对集群或者网络的管理效率低下.正如公司会有专门人员区管理ip地址池,那为了保证不冲突又合理利用,没有一个高效工具去辅助.
SDN是通过软件去控制网络传输,IP使用情况一目了然,多种呈现方式,方便管理员对IP资源 及时回收、统一管理,终端位置改变,需要管理员审批,有效防止MAC欺骗,控制器故障也不会影响网络的转发安全性高,那是不是更方便了?它还可以控制网络流量带宽合理分配资源更智能.