详解Openstack组件部署 — Overview和前期环境准备

时间:2021-10-25 05:47:48

前言

一直以来对openstack都是心存向往的,大学的毕业设计题目也是《openstack dashboard的页面定制》,还以此获得了当年的优秀毕业论文。从学生年代懵懂的将技术方向定位为系统架构到逐渐转型踏上openstack开发之路,走的磕磕碰碰,总得来说还是希望能为openstack做出一些自己的贡献。即便微不足道,我想这正正就是开源的魅力和力量吧。
openstack系列博文会从最基本的部署 –> 组件功能实现原理 –> 源码解析这么个由浅入深的过程来记录。

软件环境

系统 

centos 7

软件版本

  • vmware 10
  • openstack-kilo

openstack 简介

what's openstack ?

这个问题,我相信没有任何人能够比openstack官网给出更好的答案。点这里

详解Openstack组件部署 — Overview和前期环境准备

原文:openstack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

粗译:openstack是一个控制着大量计算能力、存储、乃至于整个数据中心网络资源的云操作系统,通过dashboard这个web界面,让管理员可以控制、赋予他们的用户去提供资源的权限(即:能够通过dashboard控制整个openstack云计算平台的运作)。

openstack 架构

openstack的发展非常快,而且由于其开源的本质,所以导致了即便是前后相隔的两个不同版本,也可能会出现比较大的区别。所以在我们初习openstack的时候,应该考虑从一个体系相对成熟,资料相对丰富的版本入手。当然如果你拥有良好的英文阅读习惯的话,openstack的官网就提供了非常完善的最新版本的文档资料。

本篇是openstack系列的开篇,所以先对openstack整体架构做一个粗略的了解。

详解Openstack组件部署 — Overview和前期环境准备

部署openstack的方法有很多,官方文档step by step、fuel在线安装、devstack、镜像、rdo库等等。当然如果希望更好的理解openstack各组件的功能和关系的话,按照官方文档来一步步部署将会是一个非常不错的选择。点这里

openstack组件

  • compute (nova) 计算服务
  • identity service (keystone) 认证服务
  • image service (glance) 镜像服务
  • networking (neutron/quantum) 网络服务
  • dashboard (horizon) 仪表板
  • object storage (swift) 对象存储
  • block storage (cinder) 块存储
  • orchestration (heat) 编排
  • telemetry (ceilometer) 监控
  • database service (trove) 数据库服务
  • data processing (sahara) 数据处理

openstack install overview

硬件参数:

详解Openstack组件部署 — Overview和前期环境准备

这是官方给出的example architecture,因为我们的实验环境是vmware,所以会对架构规划作出相应的修改,如下:

node 拓扑

详解Openstack组件部署 — Overview和前期环境准备

这是一个相对接近生产环境的拓扑图,涉及到虚拟专用网络、高可用、主从备份、负债均衡等架构思想。

ipaddress 规划

详解Openstack组件部署 — Overview和前期环境准备

  • managerment network on 192.168.1.0/24 with gateway 192.168.1.1
  • instance tunnels network on 172.16.0.0/24 with gateway 172.16.0.1

hostname

?
1
2
3
4
5
6
7
8
controller.jmilk.com    192.168.1.5
network.jmilk.com     192.168.1.6
compute1.jmilk.com     192.168.1.10  
compute2.jmilk.com     192.168.1.11
block1.jmilk.com     192.168.1.20
block2.jmilk.com     192.168.1.21
object1.jmilk.com     192.168.1.31
object2.jmilk.com     192.168.1.32

创建node虚拟机

在vmware上至少创建controller、compute1、network三个核心组件node。如果条件允许的话最好能够按照node拓扑来创建node。

这一节的内容在每一个node上都需要进行。

推荐硬件参数:

  • controller node: 2 cpu, 8 gb memory, and 100 gb storage,1 nip
  • network node: 2 cpu, 4 mb memory, and 100 gb storage,3 nip
  • compute node: 4 cpu, 8 gb memory, and 100 gb storage,2 nip

最低要求:

  • controller node: 1 processor, 4 gb memory, and 5 gb storage
  • compute node: 1 processor, 2 gb memory, and 10 gb storage

环境准备

所有node都需要执行环境准备的操作

基础设置

step1:关闭防火墙

?
1
2
3
4
systemctl mask iptables.service
systemctl mask ip6tables.service
systemctl mask ebtables.service
systemctl mask firewalld.service

step2:设置主机名

?
1
hostnamectl set-hostname new_hostname

step3:关闭selinux

step4:按照ipaddress规划来设置staticip

注意:当需要联网下载rdo库时,可以将虚拟机的网络选为桥接

example: controller node

 

复制代码 代码如下:

nmcli connection modify eno16777736 ipv4.addresses "192.168.1.5/24 192.168.1.1" ipv4.dns "202.106.195.68,202.106.46.151" ipv4.method manual

 

 

这样就可以连接到外网,在vmware中卫虚拟机添加多网卡的配置,可以参考centos7 修改网卡名称为eth0 & 在vmware中添加多网卡配置

install openstack预备包

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#1. 安装yum-plugin-priorities包,防止高优先级软件被低优先级软件覆盖
yum install yum-plugin-priorities
 
#2. 安装epel扩展yum源,是一个rhel系列的高质量软件源,可能版本号会被修改
yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
 
#3. 安装extras repository 和 rdo repository
yum install centos-release-openstack-mitaka
yum install https://rdoproject.org/repos/rdo-release.rpm
 
#4. 更新系统
yum update -y
 
#5. 重启系统
reboot
 
#6. 安装openstack-selinux自动管理selinux
yum install openstack-selinux
 
#7. 安装openstack client
yum install python-openstackclient -y

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/jmilk/article/details/51627186