云计算介绍

当用户能够通过互联网方便的获取到计算、存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式。每个运维人员心里都有一个对云计算的理解,而最普遍接受的是NIST(美国国家标准与技术研究院)的定义:

云计算是一种按使用量付费的服务模式,这是一种能够提供可用的、便捷的、按需求的网络访问模式,计算共享池能够快速的为用户提供网络、服务器、存储、应用软件及其他服务,并且只需要花费很少的管理时间。

服务层次

NIST还针对于云计算的服务模式提出了3个服务层次:

Iaas:提供给用户的是云计算基础设施,包括CPU、内存、存储、网络等其他的资源服务,用户不需要控制存储与网络等基础设施。
Paas:提供给用户的是云计算中的开发和分发应用的解决方案,用户能够部署应用程序,也可以控制相关的托管环境,比如云服务器及操作系统,但用户不需要接触到云计算中的基础设施。
Saas:提供给用户的是云计算基础设施上的应用程序,用户只需要在客户端界面访问即可使用到所需资源,而接触不到云计算的基础设施。

OpenStack项目

OpenStack官方网站:https://www.openstack.org/

Openstack项目的版本按照ABCDEFG……的顺序发布,每6个月更新一次。

Openstack最初是由NASA和Rackspace共同发起的云端计算服务项目,该项目以Apache许可证授权的方式成为了一款开源产品,目的是将多个组件整合后从而实现一个开源的云计算平台,目前Openstack项目正在被红帽、IBM、AMD、Intel、戴尔、思科、微软等超过一百家厂商共同研发,并已经支持了几乎所有的常见云计算环境,拥有了良好的可扩展性,而且部署搭建Openstack服务也变得十分简单,目前国内对于云计算的需求也逐渐增加,华胜天成、高德地图、京东、阿里巴巴、百度、中兴、华为等中国企业也加入到了Openstack项目研发当中,Openstack项目也正在随着全球内得到了众多厂商的参与支持而快速成熟。

Open是开放,Stack则是堆砌之意,合起来就是将众多的功能服务堆积起来的集合,让人们通过Openstack云计算项目,能够将诸如计算能力、存储、网络和软件等资源抽象成服务,以便让用户可以通过互联网远程来享用,付费的形式也变得因需而定,调整方便,拥有极强的虚拟可扩展性,是公共和私有云的建设与管理软件中的优秀开源项目。

Openstack作为一个云平台的管理项目,其功能组件覆盖了网络、虚拟化、操作系统、服务器等多个方面,每个功能组件交由不同的项目委员会来研发和管理,目前核心的项目包括有:
功能 项目名称

描述

计算服务                      Nova                                   

负责虚拟机的创建、开关机、挂起、迁移、调整CPU、内存等规则。   (核心服务)

对象存储 Swift

用于在大规模可扩展系统中通过内置的冗余及高容差机制实现对象存储的系统。(可选服务)

镜像服务 Glance

用于创建、上传、删除、编辑镜像信息的虚拟机镜像查找及索引系统。  (核心服务)

身份服务 Keystone

为其他的功能服务提供身份验证、服务规则及服务令牌的功能。   (核心服务)

网络管理 Neutron

用于为其他服务提供云计算的网络虚拟化技术,可自定义各种网络规则,支持主流的网络厂商技术。(核心服务)

块存储 Cinder

为虚拟机实例提供稳定的数据块存储的创建、删除、挂载、卸载、管理等服务。(核心服务)

图形界面 Horizon

为用户提供简单易用的Web管理界面,降低用户对功能服务的操作难度。

测量服务 Ceilometer

收集项目内所有的事件,用于监控、计费或为其他服务提供数据支撑。

部署编排 Heat

实现通过模板方式进行自动化的资源环境部署服务。

数据库服务 Trove

为用户提供可扩展的关系或非关系性数据库服务。

Openstack服务组件协同工作拓扑图

中间菱形VM是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块

OpenStack部署环境规划

本教程部署的openstack版本为O版

准备两台虚拟机,一台作为控制节点,一台作为计算节点

控制节点(Controller Node): 管理 OpenStack,其上运行的服务有 Keystone、Glance、Horizon 、Neutron、Cinder以及 Nova 和 Neutron 中管理相关的组件。 控制节点也运行支持 OpenStack 的服务,例如 SQL 数据库(通常是 MySQL)、消息队列(通常是 RabbitMQ)和网络时间服务 NTP。

计算节点(Compute Node):其上运行 Hypervisor(默认使用 KVM)。 同时运行 Neutron 服务的 agent,为虚拟机提供网络支持。

控制节点IP: 192.168.64.7

计算节点IP: 192.168.64.8

OpenStack部署环境准备

第一步:关闭防火墙

两台虚拟机都要操作

[root@ken-node1 ~]# setenforce
[root@ken-node1 ~]# systemctl stop firewalld

第二步:域名解析

两台节点都需要操作

[root@ken-node1 ~]# vim /etc/hosts
[root@ken-node1 ~]# scp /etc/hosts 192.168.64.8:/etc/
The authenticity of host '192.168.64.8 (192.168.64.8)' can't be established.
ECDSA key fingerprint is SHA256:EO1X8PdzqfD689Y2WYB6eLvaO/gvrWwhDd0cGDGmsgo.
ECDSA key fingerprint is MD5:6d:::df::ef::1f:2a:2e::::bb:fc:9b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.64.8' (ECDSA) to the list of known hosts.
root@192.168.64.8's password:
hosts % .9KB/s :
[root@ken-node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.7 ken-node1
192.168.64.8 ken-node2

192.168.254.6 download.yunwei.edu  #解析公司内部源(外部用户无法使用)

第三步:测试外网连通性

两台都操作

我的两台节点都是使用的nat模式

[root@ken-node1 ~]# ping -c  baidu.com
PING baidu.com (123.125.115.110) () bytes of data.
bytes from 123.125.115.110 (123.125.115.110): icmp_seq= ttl= time=11.2 ms
bytes from 123.125.115.110 (123.125.115.110): icmp_seq= ttl= time=12.5 ms --- baidu.com ping statistics ---
packets transmitted, received, % packet loss, time 1002ms
rtt min/avg/max/mdev = 11.241/11.889/12.537/0.648 ms

第四步:使用公司源

两台主机都安装

[root@ken-node1 ~]# cat yum-repo.sh
mkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/C* /etc/yum.repos.d/old/
wget -O /etc/yum.repos.d/Centos7-Base-yunwei.repo 192.168.254.6/shell/Centos7-Base-yunwei.repo
wget -O /etc/yum.repos.d/epel-yunwei.repo 192.168.254.6/shell/epel-yunwei.repo
wget -O /etc/yum.repos.d/rdo-release-yunwei.repo 192.168.254.6/shell/rdo-release-yunwei.repo
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud 192.168.254.6/shell/RPM-GPG-KEY-CentOS-SIG-Cloud
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL- 192.168.254.6/shell/RPM-GPG-KEY-EPEL-
yum repolist

第五步:开启虚拟机的虚拟化

第六步:两台虚拟机时间统一

[root@ken-node2 ~]# ntpdate time1.aliyun.com
Mar :: ntpdate[]: step time server 203.107.6.88 offset -28800.262060 sec
[root@ken-node2 ~]# date
Wed Mar :: CST

OpenStack组件安装

OpenStack包

第一步:安装启用OpenStack仓库的包

[root@ken-node1 ~]# yum install centos-release-openstack-ocata -y

第二步:安装OpenStack客户端

[root@ken-node1 ~]# yum install python-openstackclient -y

第三步: 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略

[root@ken-node1 ~]# yum install openstack-selinux -y

SQL数据库

第一步:安装软件包

[root@ken-node1 ~]# yum install mariadb mariadb-server python2-PyMySQL -y

第二步:创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作:

  • 在 [mysqld] 部分,设置 ``bind-address``值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库:

[root@ken-node1 ~]# cat /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.64.7 #绑定控制节点IP default-storage-engine = innodb
innodb_file_per_table = on
max_connections =
collation-server = utf8_general_ci
character-set-server = utf8

第三步:启动数据库服务,并将其配置为开机自启

[root@ken-node1 ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@ken-node1 ~]# systemctl start mariadb.service

第四步:为了保证数据库服务的安全性,运行``mysql_secure_installation``脚本

[root@ken-node1 ~]# mysql_secure_installation

消息队列

第一步:安装

[root@ken-node1 ~]# yum install rabbitmq-server -y

第二步:启动消息队列服务并将其配置为随系统启动

[root@ken-node1 ~]# systemctl enable rabbitmq-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
[root@ken-node1 ~]# systemctl start rabbitmq-server.service

第三步:添加 openstack 用户

密码为openstack

[root@ken-node1 ~]# rabbitmqctl add_user openstack openstack
Creating user "openstack" ...

第四步:给``openstack``用户配置写和读权限

[root@ken-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

Memcached

第一步:安装

[root@ken-node1 ~]# yum install memcached python-memcached -y

第二步:编辑配置文件/etc/sysconfig/memcached

[root@ken-node1 ~]# vim /etc/sysconfig/memcached
[root@ken-node1 ~]# cat /etc/sysconfig/memcached
PORT=""
USER="memcached"
MAXCONN=""
CACHESIZE=""
OPTIONS="-l 127.0.0.1,::1,192.168.64.7" #后面添加Ip即可

第三步:启动

[root@ken-node1 ~]# systemctl enable memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@ken-node1 ~]# systemctl start memcached.service

至此,所有的组件已经安装完毕,下节开始安装配置认证服务!

云计算OpenStack:云计算介绍及组件安装(一)--技术流ken的更多相关文章

  1. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  2. Ansible基础认识及安装使用详解(week5_day1_part1)--技术流ken

    Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量 ...

  3. 实战!基于lamp安装Discuz论坛-技术流ken

    简介 我前面的博客已经详细介绍了lamp采用yum安装以及编译安装的方式,这篇博客将基于yum安装的lamp架构来实战安装Discuz论坛,你可以任选其一来完成. 系统环境 centos7.5 服务器 ...

  4. 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken

    前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...

  5. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  6. cobbler单台服务器实现批量自动化安装不同版本系统-技术流ken

    前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...

  7. 云计算openstack——云计算、大数据、人工智能(16)

    一.互联网行业及云计算 在互联网时代,技术是推动社会发展的驱动,云计算则是一个包罗万象的技术栈集合,通过网络提供IAAS.PAAS.SAAS等资源,涵盖从数据中心底层的硬件设置到最上层客户的应用.给我 ...

  8. Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken

    Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: ...

  9. Python系列:一、Python概述与环境安装--技术流ken

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

随机推荐

  1. vue iview UPload,但文件上传是,clearFiles的使用方法

    <template> <div> <button @click="clearUploadedImage">重新上传</button> ...

  2. poj3352添加多少条边可成为双向连通图

    Road Construction Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13311   Accepted: 671 ...

  3. 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引

    先说背景,由于本人工作需要创建很多小应用程序,而且在微服务的大环境下,服务越来越多,然后就导致日志四分五裂,到处都有,然后就有的elk,那么问题来了 不能每个小应用都配置一个 logstash 服务来 ...

  4. java Dated Dateformat Calendar

    Date类概述 类Date表示特定的瞬间,精确到毫秒.1000毫秒=1秒 时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 注意:时间和日期的计算,必须依赖毫秒值 long ...

  5. 影响HTTP性能的常见因素

    影响HTTP性能的常见因素 我们这里讨论HTTP性能是建立在一个最简单模型之上就是单台服务器的HTTP性能,当然对于大规模负载均衡集群也适用毕竟这种集群也是由多个HTTTP服务器的个体所组成.另外我们 ...

  6. c#Socket服务器与客户端的开发(2)

    上一篇文章我们使用原生的socket分别实现了服务器和客户端, 本篇文章使用SuperSocket来开发实现服务器, 之前也介绍了SuperSocket是一个轻量级, 跨平台而且可扩展的 .Net/M ...

  7. TensorFlow从1到2(二)续讲从锅炉工到AI专家

    图片样本可视化 原文第四篇中,我们介绍了官方的入门案例MNIST,功能是识别手写的数字0-9.这是一个非常基础的TensorFlow应用,地位相当于通常语言学习的"Hello World!& ...

  8. django+mysql的使用

    Django中每一个模型model都对应于数据库中的一张表,每个模型中的字段都对应于数据库表的列.方便的是,django可以自动生成这些create table, alter table, drop ...

  9. RIP 实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1. 理解 RIP 协议的工作原理 2. 理解 RIPv1.RIPv2 的特性 3. 掌握 RIP 协议的基本配置 ...

  10. 第10章 协议和声明类型常量 - IdentityModel 中文文档(v1.0.0)

    使用OAuth 2.0,OpenID Connect和声明时,声明类型和protocoal值有很多"魔术字符串".IdentityModel提供了几个常量字符串类来帮助它. 10. ...