OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备)
OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备)
一、操作前需了解:
1. OpenStack提供IaaS(基础设施即服务)服务,它是开源的云计算平台。(个人理解:将多台硬件设备虚拟化成一个池,然后在池子里放虚拟机,放存储(对象和块)集群,所有整合一起提供云计算基础服务,会想到VMWARE的ESX(i))
2. 通常OpenStack是由许多硬件节点组合而成的,包括控制节点Controller,计算节点Compute,网络节点Network,块存储节点ceph,对象存储节点swift等。
AllInOne是Openstack最基本的模式,即将所有必要组件都安装到一台硬件节点上。这种模式不包含块存储和对象存储模块。
3. 组件服务名词(红色部分为必要服务组件)
| Service | Project Name | Description |
|---|---|---|
| Dashboard | Horizon | Provides a web-based self-service portal to interact with underlying OpenStack services, such as launching an instance, assigning IP addresses and configuring access controls. |
| Compute service | Nova | Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decommissioning of virtual machines on demand. |
| Networking service | Neutron | Enables Network-Connectivity-as-a-Service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachments into them. Has a pluggable architecture that supports many popular networking vendors and technologies. |
| Object Storage service | Swift | Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale-out architecture. Its implementation is not like a file server with mountable directories. In this case, it writes objects and files to multiple drives, ensuring the data is replicated across a server cluster. |
| Block Storage service | Cinder | Provides persistent block storage to running instances. Its pluggable driver architecture facilitates the creation and management of block storage devices. |
| Identity service | Keystone | Provides an authentication and authorization service for other OpenStack services. Provides a catalog of endpoints for all OpenStack services. |
| Image service | Glance | Stores and retrieves virtual machine disk images. OpenStack Compute makes use of this during instance provisioning. |
| Telemetry service | Ceilometer | Monitors and meters the OpenStack cloud for billing, benchmarking, scalability, and statistical purposes. |
| Orchestration service | Heat | Orchestrates multiple composite cloud applications by using either the native HOT template format or the AWS CloudFormation template format, through both an OpenStack-native REST API and a CloudFormation-compatible Query API. |
| Database service | Trove | Provides scalable and reliable Cloud Database-as-a-Service functionality for both relational and non-relational database engines. |
| Data Processing service | Sahara | Provides capabilities to provision and scale Hadoop clusters in OpenStack by specifying parameters like Hadoop version, cluster topology and nodes hardware details. |
4.
本文会搭建一个AllInOne的OpenStack,并登陆Dashboard,创建project,搭建网络,上传image,launch一个虚拟机(虚拟机在OpenStack上专业术语叫instance),最后会给出调用OpenStack
Restful API来获取host主机信息,列出instance的代码实例。
5.
补充说明:使用AllInOne来搭建OpenStack是最简单直接的方法,因为基本上都是自动化的,无需手动配置各个组件。网上很多OpenStack
deploy的教程是多节点的部署,需要一个组件一个组件的安装和配置,由于操作系统版本的差异,以及OpenStack版本的差异,很容易出错。比如,很多教程是在CentOs
7.1上的,并且安装的是OpenStack的liberty版本,由于liberty版本现在已经不是最新的OpenStack版本,所以在安装时会出现无法从CentOS的repository里找到liberty版本的OpenStack
rpm错误。
二、搭建AllInOne模式的OpenStack
真实环境下的OpenStack是搭建在真实硬件上的,出于研究目的,本文将会在VMWARE虚拟机(目前最新的CentOs
7.4.1708
minimal)上搭建OpenStack。由于过程中有一些步骤容易出错,所以建议在安装之前给操作系统打好快照,以便后续出现莫名错误时能回退操作系统。
OpenStack all-in-one模式会将OpenStack的控制节点、计算节点和网络节点同时安装在一个机器上。这种模式可以快速配置,非常方便用于测试和开发。
接下来我们会使用RDO repository来安装OpenStack
all-in-one。这里简单介绍一下RDO:RDO是一个组织,这群人在CentOS和RedHat上使用和开发OpenStack。RDO提供了OpenStack安装的Repository,使用RDO方式来安装OpenStack会非常简单,因为几乎所有都是自动化的,一键式的。
请将虚拟机内存设置为>=8GB,安装过程中对内存的消耗比较大,当小于这个内存时,安装会失败,报错为:fork() failing with Out of memory (一般会在已经花费了半个多小时,安装快要结束时报这个错,会让人很奔溃)。
建议的虚拟机配置:
CPU:8核(大于等于4核,条件允许越大越好,因为OpenStack组件运行会消耗系统资源,你launch的instance也会消耗,作为基础平台,硬件要给力才行)
内存:16GB(大于等于8G)
硬盘:60GB(保险起见,建议>=100G)
网络:能surf the Internet(因为安装过程会从RDO repository下载按照包)
开始安装:
安装前,先看看当前的网络和系统信息(CentOS 7没有ifconfig,使用ip命令替代,若要使用ifconfig,需要安装:yum install net-tools.x86_64)
请切换到root用户,全程使用root用户来进行安装
1、 更新系统
1.1 命令行:yum update
更新过程中,如果更新了kernel,建议重启系统,如下:
1.2 修改hostname(可选)
这个步骤在all-in-one模式下不是必须的,但是建议进行修改,如果后续需要将all-in-one扩展成多节点时,配置节点间通信,都会用到这个hostname。并且all-in-one的机器节点将会作为多节点中的controller节点,这里我们将hostname更改为controller-node。
(1)命令行:hostnamectl set-hostname controller-node
(2)将/etc/hosts手动更改为:
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 controller-node
::1 controller-node
注销当前登录,重新登录系统
2、 安装RDO库
安装前的yum repository:
运行命令:yum install https://www.rdoproject.org/repos/rdo-release.rpm
安装后的yum repository,多了RDO的三个库:
3、 安装packstack(自动化的OpenStack安装程序)
命令行:yum install openstack-packstack
4、 关掉NetworkManager并disable掉,防止这个服务更改我们的网络配置。
systemctl stop NetworkManager && systemctl disable NetworkManager
下面两个操作关掉SElinux和firewall是可选的,不关的话all-in-one也能成功。出于排除不必要干扰的考虑,建议将他们关掉。
(1)关掉SELinux
setenforce 0
修改/etc/selinux/config中:SELINUX=disabled
(2)关掉firewall
systemctl stop firewalld&& systemctl disable firewalld
5、 运行packstack开始自动化安装
Packstack安装有两种模式,一种是使用answer
file进行组件配置,另一种是直接进行all-in-one安装。前者可以通过packstack命令生成一个answer
file,在这个文件里自定义配置安装和不安装哪些组件,后者直接使用默认的allinone配置来安装。建议初次安装时使用后者。详细的answer
file模式,直接google:RDO packstack answer file
安装命令:packstack –allinone –provision-demo=n
–provision-demo=n的含义是不安装OpenStack的demo
project,否则安装完以后,登录Dashboard会看到已经存在一个叫demo的工程。后续我们会自己配置OpenStack的网络,再launch一个实例,出于排除掉这个demo的干扰的考虑,这里建议不安装它。(实际上,安装了,也不会影响我们后续的任何操作,这里只是为了简化而已)
整个安装过程可能会花费一个小时左右,这取决于你这台机器的配置。并且中途会到repository下载安装包,所以这个机器surf the Internet的速度也会大大影响安装时间。
整个安装过程会很消耗内存,这也是建议将虚拟机配置为>=8GB内存的原因所在,使用top可以看到,packstack在触发nova,glance,keystone等组件的逐个安装和check
available。并且内存使用量在蹭蹭的上涨,很快就会达到5G以上,峰值会逼近8G。
安装成功以后是这样的显示:
我的这次安装耗费了40分钟,请留意上面截图黄色高亮部分的内容。
现在可以先登录Dashboard大致浏览一下OpenStack长啥样。登录的用户名和密码在CentOS系统/root/keystonerc_admin文件里。
登录后可以看到默认存在的project admin
这是OpenStack最高权限的project,在这个project里可以看到compute
node的机器信息,可以查看所有project launch的instance等,而其他非admin的project是无法查看compute
node机器信息的(默认不允许,也许可以通过修改policy来给权限,目前简单查过方法,未果)。后面Restful
API的测试会通过admin来进行,当使用非admin的project时,会报错:ERROR: Policy doesn’t allow
os_compute_api:os-hypervisors to be performed. (HTTP 403)。
下一篇《在OpenStack中launch一个虚拟机实例》将讲解如何在OpenStack中配置和创建一个实例(instance,即虚拟机)
OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备)的更多相关文章
- OpenStack三个节点icehouse-gre模式部署
一.环境准备 1.架构 创建3台虚拟机,分别作为controll节点.network节点和compute1节点. Controller节点:1processor,2G memory,5G storag ...
- 沉淀再出发:OpenStack初探
沉淀再出发:OpenStack初探 一.前言 OpenStack是IaaS的一种平台,通过各种虚拟化来提供服务.我们主要看一下OpenStack的基本概念和相应的使用方式. 二.OpenStack的框 ...
- openstack pike 集群高可用 安装 部署 目录汇总
# openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...
- Spark运行模式与Standalone模式部署
上节中简单的介绍了Spark的一些概念还有Spark生态圈的一些情况,这里主要是介绍Spark运行模式与Spark Standalone模式的部署: Spark运行模式 在Spark中存在着多种运行模 ...
- Hadoop伪分布式模式部署
Hadoop的安装有三种执行模式: 单机模式(Local (Standalone) Mode):Hadoop的默认模式,0配置.Hadoop执行在一个Java进程中.使用本地文件系统.不使用HDFS, ...
- Apache Hadoop 2.9.2 的YARN High Available 模式部署
Apache Hadoop 2.9.2 的YARN High Available 模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.官方文档(htt ...
- Apache Hadoop 2.9.2 的HDFS High Available模式部署
Apache Hadoop 2.9.2 的HDFS High Available 模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道,当NameNode进程挂掉后,可 ...
- openstack项目【day24】:keystone部署及操作
阅读目录 一 前言 二 版本信息 三 部署keystone 四 keystone操作 五 验证 六 创建脚本 七 keystone使用套路总结 一 前言 任何软件的部署都是没有技术含量的,任何就部署讲 ...
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
1)集群规划:主机名 IP 安装的软件 运行的进程master 192.168.199.130 jdk.hadoop ...
随机推荐
- 编译安装python
编译安装python 1.下载python3的原码包 1.1下载到到opt目录中 cd /opt 1.2下载python3的原码包 wget https://www.python.org/ftp/py ...
- SYN2306型 北斗串口时间服务器
SYN2306型 北斗串口时间服务器 北斗授时设备北斗时钟同步系统使用说明视频链接: http://www.syn029.com/h-pd-108-0_310_36_-1.html 请将此链接复制 ...
- Python连载10-os包函数(续)
一.os包(接连载9) 1.函数:system() (1)用法:运行系统shell命令 (2)格式:os.system(系统命令) (3)返回值:打开一个shell或终端界面 (4)注意:一般是用su ...
- MySQL批量更新一个字段的值为随机数
$arr = []; $str = ''; for ($i=0; $i < 2660; ++$i) { $str .= " WHEN ".$i." THEN &qu ...
- mpvue 小程序加载不了图片 Error: Failed to load local image resource /images/xx.png the server responded with a status of 404 (HTTP/1.1 404 Not Found)
mpvue开发小程序时候,要添加静态本地图片 <img src="../../images/bg.png" alt=""> 会报错: VM14878 ...
- KNN算法——分类部分
1.核心思想 如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.也就是说找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该 ...
- Django 强大的ORM之增删改查
Django orm Django——orm进阶 测试Django中的orm 表结构: models.py class User(models.Model): name = model ...
- Oracle 数据库表中已有重复数据添加唯一键(唯一约束)
Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...
- node.js + mssql 简易封装操作
时间吧,总是这么凑巧,在我学习[node.js]还没几天,我的 Microsoft SQL Server Management Studio 18 就歇菜了,至于怎么歇菜的吧....它可能的意思就是想 ...
- 8天入门docker系列 —— 第七天 让你的container实现跨主机访问
当你有若干个容器之后,你可能就希望实现容器的跨机部署访问了,比如aspnetcore在一台host上,mysql在另外一个host上,如果要实现这样的功能,需要你借助 docker自带的overlay ...