云计算介绍

当用户能够通过互联网方便的获取到计算、存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式。每个运维人员心里都有一个对云计算的理解,而最普遍接受的是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. C++ : 内联函数和引用变量

    一.内联函数 内联函数和普通函数的使用方法没有本质区别,我们来看一个例子,下面展示了内联函数的使用方法: #include <iostream> using namespace std; ...

  2. 带你了解SDL

    SDL(英语:Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开发者只要用相同或是相似的代码就可 ...

  3. SpringCloud分布式微服务搭建(三)

    本例子是一个springcloud的configserver,client例子 利用git存储各个服务的配置文件 server获取配置文件的仓库位置,并把server注册到eureka中,同时为了实现 ...

  4. 简单工厂模式(Simple Factory Pattern)

    简单工厂模式概述 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被 ...

  5. 结合JDK源码看设计模式——原型模式

    定义: 指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.不需要知道任何创建的细节,不调用构造函数适用场景: 类初始化的时候消耗较多资源 new产生的对象需要非常繁琐的过程 构造函数比较 ...

  6. 前端css

    CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...

  7. 国内常用DNS

    114.114.114.114 国内移动,电信,联通通用DNS 223.5.5.5 阿里 223.6.6.6 阿里 180.76.76.76 百度

  8. 阿里云RDS for SQL Server测试吐槽

    最近测试了一下阿里云RDS for SQL Server,有些设计简直就是反人类,让人不得不吐槽一番. 1:控制台创建数据库时,数据库名不能包含大小字母. 如上截图所示,数据库名称不能包含大写字母,好 ...

  9. 数据库艰难求生之路(基础:增删改查)part2

    一.数据库查询 由于这个点的东西实在是多的,我就和题目,知识点一起演示. 首先是创建数据库: create database ExampleInfo --创建数据库 use ExampleInfo - ...

  10. 3星|路江涌《共演战略画布》:PPT技巧级别的创新,缺实际分析案例

    作者用自己的思路综合现有各种战略思想,给出企业各阶段各要素的战略分析工具.主要是2*2矩阵和双S曲线两种工具. 从书中的插图来看,这些工具在PPT演示中效果应该会不错. 作者在书中用这些工具做的分析不 ...