首页 > 技术文章 > linux云计算的定义概念 技术 组成 和openstack架构解释

kk5698 2020-08-10 14:02 原文

云计算 定义概念 技术 组成 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

微软

Google

阿里云

 

 

了解阿里云

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相比其优缺点便很明显了。

 

 

推荐阅读