云计算 定义概念 技术 组成 openstack架构
1.云计算本质: 资源到架构的全面弹性
2.云计算概念定义(两种)
首先对云计算这三个字的理解,
云,是网络、互联网的一种比喻说法,即互联网与建立互联网所需要的底层基础设施的抽象体。
计算当然不是指一般的数值计算,指的是一台足够强大的计算机提供的计算服务(包括各种功能,资源,存储)。
云计算可以理解为:网络上足够强大的计算机为你提供的服务,只是这种服务是按你的使用量进行付费的。|
1.百度定义
云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。
2.美国国家标准与技术研究院( NIST )定义:
云计算是一种按使用量付费的 模式,
这种模式 提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池 (资源包括网络,服务器,存储,应用软件,服务)这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
以及在国外已经非常成熟的Intel和IBM ,各种"云计算"的应用服务范围正日渐扩大,影响力也无可估量。
云模型由五个基本特征、 三个服务模型和四个发布模型组成。
3.云模型的组成 五个基本特征 三种服务模型 四种云应用形式的部署模型
1.五个基本特征
(1)虚拟化(Virtualization)
(2)弹性(Elasticity)
(3)成本低廉(Cost)
(4)按需服务(Service)
(5)高度容错性(Fault Tolerance)和高度可靠性(Reliability)
2.云计算服务模型可以分为三类
基础设施即服务(Infrastructure as a Service 简称IaaS)
平台即服务(Platform as a Service 简称PaaS)
软件即服务(Software as a Service ,简称SaaS)
Laas
Paas
PaaS对资源的抽象提升了一个层次,它提供用户一个应用程序的运行环境。
PaaS可以认为是云计算提供商在虚拟节点(也可以是若干虚拟节点构成的虚拟集群)上安装了操作系统,并且安装了程序开发环境和运行环境。用户只需按照特定的编程模型,编写程序,然后就可以部署到PaaS系统上运行。PaaS负 责资源的动态扩展和容错保证,用户不需要操心。
典型的系统为Google的App Engine ,用户可以使用Java语言、或者Python语言,调用Google App Engine软件开发包(Software Develop Kit,SDK)来开发应用程序,就可以部署到PaaS云平台上运行,向外提供服务
Saas
SaaS把特定应用软件封装成服务,提供给用户使用。
从用户的角度来看,可以认为云计算提供商已经在虚拟节点(或者虚拟集群)上,安装了操作系统、以及具有特定应用功能的应用软件。
典型的系统是Salesforce公司提供的在线客户关系管理系统CRM(CustomerRelationship Management)服务。SaaS把专 用的应用软件功能提供出来,供用户付费使用,用户无需自己再开发一套专用的系统
3.云应用形式 部署模型
1.私有云
2.公有云
3.混合云
4.行业云
5.云安全
6.云存储
7.云游戏
8.云物联
4.云服务器特点
云服务器特点:
1/O性能高
处理能力强
管理能力强
扩展性好
可靠性高
可用性好
4..云计算主要技术 基础云平台
计算机( 数据中心)网络网络设备软硬件技术
虚拟化、容器KVM内核虚拟化技术,容器技术
Linux操作系统服务器集群管理
计算算机程序设计Python程序,Shell脚本编程
云计算应用架构Web架构、数据库、缓存数据库
1.基础云平台 (基础资源整合交互平台)
1.云计算主要共性技术包括虚拟化技术、分布式技术、计算管理技术、云平台技术和云安全技术
2.具备实现资源快速部署和服务获取、进行动态可伸缩扩展及供给、面向海量信息快速有序化处理、可靠性高、容错能力强等特点
3.为人正智能、大数据、物联网的发展提供了资源整合交互的基础平台。
4.尤其与大数据技术结合,为当前受到最多关注的深度学习技术搭建了强大的存储和运算体系架构,促进了神经网络模型训练优化过程,显著提高语音、图片、文本等辨识对象的识别率。
比如说
出行需要用车,云计算或者云服务好比乘坐出租车或专车快车共享单车,随时需要随时用,按用量(路程)付费即可。
5.Openstak的开放式云平台
1.国内OpenStack 厂商 主流云计算产品
1.OpenStack厂商:华为、UnitedStack AWCloud、 EasyStack、 99cloud、T2Cloud、UMCloud、 ZETTAKIT Key ToneCloud等。
2.硬件厂商华为、联想、浪潮、中兴、宝德、华三等。
3.互联网公司:百度、腾讯、金山、京东爱奇艺等。
4.企业用户:移动、联通、电信、人民日报等。
5.广大中小企业及普通用户。
主流厂商的云计算产品
Amazon
微软
阿里云
了解阿里云
https://promotion.aliyun.com/ntms/act/chinasdwan.html?spm=5176.8142029.1139928.8.3dbd6d3e3BVpJG
2.Openstack概念
1.OpenStack是一个由 NASA (美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
2.OpenStack 是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack 支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack 通过各种互补的服务提供了基础设施即服务( laas )的解决方案,每个服务提供API以进行集成。
3.服务和服务之间通过api通信
3.核心组件 9个
nova:计算服务
glance:镜像服务
keystone:认证服务
neutron:网络服务
Cinder块存储务
horizon :U界面子
heat:编排服务
ceilometer :计量服务
1、 计算服务( Compute Service ) : Nova
一套控制器 ,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。
负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。
自Austin版本集成到项目中。
2、 对象存储( Object Storage ) : Swift
一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。
可为Glance提供镜像存储,为Cinder提供卷备份服务。
自Austin版本集成到项目中。
3、镜像服务( Image Service ) :Glance。
一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式( AKI、 AMI、 ARI、 ISO 、QCOW2、Raw、VDI、VHD、 VMDK ),有创建 上传镜像、删除镜像、编辑镜像基本信息的功能。
自Bexar版本集成到项目中。
4、身份服务( Identity Service ) :Keystone。
为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能。管理Domains、Projects、Users ,Groups.,Roles。
自Essex版本集成到项目中。
5、 网络&地址管理( Network ) : Neutron
提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。
为用户提供接口,可以定义Network、Subnet 、Router, 配置DHCP、DNS、负载均衡、L3 服务,网络支持GRE VLAN。
插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。
6、块存储(Block Storage) : Cinder
为运行实例提供稳定的数据块存储服务, 它的插件驱动架构有利于块设备的创建和管理,
如创建卷、删除卷,在实例上挂载和卸载卷。
自Folsom版本集成到项目中。
7、UI界面(Dashboard) : Horizon
OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,
例如:启动实例、分配IP地址、配置访问控制等。
自Essex版本集成到项目中。
8、测量(Metering) : Ceilometer
像个漏斗样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。
自Havana版本集成到项目中。
9、部署编排(Orchestration) : Heat
提供了种通过模板定 义的协同部署方式 ,实现云基础设施软件运行环境 (计算,存储和网络资源)的自动化部署。
自Havana版本集成到项目中。
4.Openstack架构图
1.OpenStack架构由大量开源项目组成。其使用6个稳定可靠的核心服务来处理计算、网络、存储、身份和镜像;同时还为用户提供十多种可选服务作为参考和使用( 这些服务的开发成熟度各异)。
2.OpenStack的6个核心服务的主要作用是作为系统的基础架构,其余项目则负责管理控制面板、编排、裸机部署、信息传递、容器及统筹管理等操作。
5.Openstack只是一个虚拟化管理平台吗?
1.并不全是。它们存在很多相似性,但并非完全相同。
2.OpenStack和虚拟化管理平台都位于虚拟化资源层之上,可帮助用户发现、报告和自动执行位于不同供应商产品环境中的业务流程。
3.虚拟化管理平台的主要目的是方便利用虚拟资源的特性和功能,而实际上,OpenStack是使用虚拟资源来运行工具组合的。( openstack是一个 云操作系统的框架。为构建完整的云操作系统,特别是,为实现资源接入与抽象的功能,openstack需要与虚拟化软件实施集成,从而实现对服务器的计算资源的池化。应该指出的是,在资源池化的过程中,物理资源虚拟化的功能,仍然由虚拟化软件完成。)
4.这些工具所创建的云环境 符合美国国家标准与技术协会 的5大云计算标准
五个标准
一个网络、池化资源、一个用户界面、部署能力和 自动化资源控制/分配。
6.Devstack单节点安装部署
1.devstack单节点安装部署
https://docs.openstack.org/devstack/latest/
2.devstack服务管理
Openstack 服务管理(Centos7)
各服务所在目录 /etc/systemd/system
systemctl start devstack@g-api.service
journalctl -u devstack@g-api.service查看日志
7.Dashboard操作管理openstack
1.用户密码登录
2. 项目、用户、角色查看
8.OpenStack认证服务- keystone组件
1.什么是keystone
keystone是OpenStack的身份认证服务。
keystone项目的主要目的是为访问openstack的各个组件(nova,cinder,glance...)提供一个统一的验证方式。
2.keystone功能
作为 OpenStack 云系统的入口,keystone 做下面几件事:
管理用户及其权限
2) 维护 OpenStack Services 的 Endpoint
3) Authentication(认证)和 Authorization(鉴权)
3.keystone概念详解 关系图
keystone各概念关系图
4.keystone与openstack其他服务关系
5.keystone与其他组件协同工作流程
9.安装部署 安装 个人
1、DevStack
DevStack是众多开发者们的首选安装方式或工具。该方式主要是通过配置参数,执行shell脚本来安装一个OpenStack的开发环境。
Github: htps://github.com/openstack dev/devstack
Wiki: https://wiki.openstack org/wiki/DevStack
Docs : htp:/ocs.openstack.org/developer/devstack
2、Rdo
Rdo是由Red Hat开源的款部署OpenStack的工具 ,同DevStack样,支持单节点和多节点部署。但Rdo只支持
CentOS系列的操作系统。需要注意的是,该项目并不属于OpenStack官方社区项目。
Docs : htpsp//wwroeco.ro/nstal/quickstarst
3、手动部署
手动部署al-in- one、multi-node、 multi-HA node环境。
网址
登录openstack (有安装步骤) https://docs.openstack.org/devstack/latest/
阿里云网址https://developer.aliyun.com/mirror
1.更改yum环境为阿里云镜像
vim /etc/yum.repos.d/CentOS-Base.repo
[os]
name=os
enabled=1
gpgcheck=0
baseurl=http://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/
[update]
name=update
enabled=1
gpgcheck=0
baseurl=http://mirrors.aliyun.com/centos/7.7.1908/updates/x86_64/
[extras]
name=extras
enabled=1
gpgcheck=0
baseurl=http://mirrors.aliyun.com/centos/7.7.1908/extras/x86_64/
2.建立普通用户kk 创建stack用户
通过普通用户来创建openstack的账号用户
在普通用户kk下操作
保证可联网
su - kk
sudo useradd -s /bin/bash -d /opt/stack -m stack创建用户
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack赋予权限不设置密码
sudo su - stack
git clone http://git.trystack.cn/openstack-dev/devstack --branch stable/queens国内的网址
##或者
git clone https://opendev.org/openstack/devstack这个是美国官网
cd devstack/
./stack.sh 执行脚本 开始安装
secret为密码三次密码
###若报错在 $stack下改属组
cd ..
chmod 755 stack/设置目录权限
(注意只有一个devstack的目录 其余是在安装是建立的)
注意 python3.5对应pip的19版本
3.注意安装3.5python
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y安装相关依赖库(工具包)
cd /opt切换/opt目录 将安装包下载到这个目录
wget http://mirrors.sohu.com/python/3.5.2/Python-3.5.2.tgz下载3.5python
tar -xf Python-3.5.6.tgz解压 编译 安装
cd Python-3.5.2
./configure --prefix=/opt/python35
make & makeinstall
cd /opt/python35/切换已经装好的python3.5目录 查看
修改python版本
python --version
which python
mv python ppp
cd /usr/bin
cp /opt/python35/bin/python3.5 /usr/bin/python
which python
python --version
10.企业、团体方面
1、Puppet
Puppet由Ruby语言编写。应当说,Puppet是进入OpenStack自动化部署中的早期批项目,历史还算悠久。目前
它的活跃开发群体们是Red hat、Mirantis、 UnitedStack等。 Red hat-直保持强势劲头在Puppet OpenStack项
目中的Commit数量和质量,其技术实力不容小觑; Mirantis出品的Fue|部署工具中,大量的模块代码便使用的是
Puppet,就国内而言,UnitedStack是Puppet社区贡献和使用的最大用户。
2、Ansible
是新近出现的自动化运维T具已被RedHat收购。基于Python开发集合 了众多运维工具(puppet, cfengine、 chef
saltstack等)的优点实现了批量系统配置、批量程序部署、批量运行命令等功能它一方面总结了Puppet的设计上
的得失另一方面也改进了很多设计。比如是基于SSH方式工作故而不需要在被控端安装客户端。
3、SaltStack
也是款开源的自动化部署工 具基于Python开发实现了批量系统配置、批量程序部署、批量运行命令等功能和
Ansible也是挺相近的。不同之一是由于 SaltStack的master和minion认证机制和工作方式需要在被控端安装minion
客户端在加之其他原因,自然和Ansible相比其优缺点便很明显了。