Openstack云平台架构

一个良好的架构设计和运维保障措施,能为OpenStack云平台的稳定健康运行,产生不可估量的积极影响。如果化繁为简,简单的来说,要部署一套生产环境级别的OpenStack云平台,

至少会涉及到四个层次的内容,即物理基础设施层、存储层、OpenStack云服务层和用户应用层。如下图所示:

一.物理基础设施层

首先,从最底层开始说起,即“物理基础设施层”。一个基本的物理基础设施IT环境,包括了电力设备、空调和防火设备、网络设备(如交换机、路由器、防火墙、负载均衡设备等)、存储设备和服务器等。由于专业知识的限制,这里,只涉及交换机和服务器方面。一个基本的物理IT环境,如下图所示:

1.交换机

一般地,在OpenStack生产环境上,交换机端口应该做聚合(channel)。也就是将2个或多个物理端口组合在一起成为一条逻辑的链路从而增加交换机和网络节点之间的带宽,将属于这几个端口的带宽合并,给端口提供一个几倍于独立端口的独享的高带宽。Trunk是一种封装技术,它是一条点到点的链路,链路的两端可以都是交换机,也可以是交换机和路由器,还可以是主机和交换机或路由器。

2.服务器

(1).品牌:  Dell,HP,华为,联想,浪潮...

(2).配置:CPU,内存,硬盘,网卡

CPU:

OpenStack各计算节点的CPU型号,必须一致,以保证虚拟机的迁移功能正常可用等

内存:

各计算节点的内存大小,应该一致,以保证虚拟机创建管理的均衡调度等。同时,主机的Swap交换分区,应该科学合理的设置,不能使用系统默认创建的。

数据中心中少部分机器用于做控制节点,大部分机器都是需要运行虚拟化软件的,虚拟化平台上有大量的VM,而宿主机本身的系统也会跑一些服务,

那么这就势必会造成vm之间资源抢占,vm与宿主机系统之间的资源抢占,我们需要通过设定规则,让他们在各自的界限内高效运行,减少冲突抢占。

硬盘:

服务器操作系统使用的系统盘,应该用2块硬盘来做RAID 1,以提供系统存储的高可靠性。且推荐使用高性能且成本可控的SAS硬盘,

以提高操作系统、MySQL数据库和Docker容器(如果使用kolla部署openstack)的IO存储性能。

网卡:

OpenStack云平台涉及到的网络有管理网络(用于OpenStack各服务之间通信)、外部网络(提供floating ip)、存储网络(如ceph存储网络)

和虚机网络(也称租户网络、业务网络)四种类型。对应到每一种网络,服务器都应该做网卡Bond,来提供服务器网络的冗余、高可用和负载均衡的能力,

根据实际需求,可以选择模式0或模式1。在网络流量较大的场景下推荐使用bond 0;在可靠性要求较高的场景下推荐使用bond 1。

一般地,在小规模的私有云环境中,网络类型对应的带宽是:

管理网络:千兆网络        外部网络:千兆网络       存储网络:万兆网络        租户网络:千兆网络

如果是中大规模的私有云或公有云环境,则推荐尽量都使用万兆网络。

二.OpenStack云平台层

Openstack架构及配置的更多相关文章

  1. 发现 OpenStack: 架构、功能和交互

    原文:http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-overview/index.html OpenStack 是由 ...

  2. openstack架构简单介绍J版(更新中)

    title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算‎软件,以A ...

  3. OpenStack 架构 - 每天5分钟玩转 OpenStack(15)

    终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...

  4. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

  5. OpenStack安装与配置2

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

  6. spring cloud+dotnet core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

  7. spring cloud+dotnet core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  8. spring cloud+.net core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  9. spring cloud+.net core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

随机推荐

  1. ElasticsearchException: java.io.IOException: failed to read [id:0, file:/data/elasticsearch/nodes/0/_state/global-0.st]

    from : https://www.cnblogs.com/hixiaowei/p/11213143.html 1.以前装过elasticsearch,重新安装elastic search ,报错 ...

  2. Thread setUncaughtExceptionHandler

    setUncaughtExceptionHandler 用于获取线程运行时异常 线程在执行时是不能抛出 checked 异常的,IDE 只会提示你用 try-catch 包裹起来.因此主线程无法直接获 ...

  3. 粗暴,干就完了----徐晓冬似的C语言自学笔记----前言

    10对年前就觉得C/C++语言很酷,第一印象就是90年代末,个人电脑在中华大地开始普及的岁月中,层出不穷的病毒,对了,全是C/C++写的:除了危及人民群众信息安全以外,C系列语言用途甚广,可以发明其他 ...

  4. node.js http模块和fs模块上机实验·

    httpserver const httpserver = require('http'); var server = httpserver.createServer(function (req,re ...

  5. 埋点(Event Tracking)vs 无埋点(Codeless Tracking) vs 可视化埋点(Visual Event Tracking)

    在理解什么是埋点之前,首先需要了解一些基础知识:(以下摘自:http://www.chinawebanalytics.cn/auto-event-tracking-good-bad-ugly/) 我们 ...

  6. Beep调用系统声音

    using System.Runtime.InteropServices; 引用命名空间 [DllImport("kernel32.dll")]public   static   ...

  7. clone([Even[,deepEven]])克隆匹配的DOM元素并且选中这些克隆的副本。

    clone([Even[,deepEven]]) 概述 克隆匹配的DOM元素并且选中这些克隆的副本. 在想把DOM文档中元素的副本添加到其他位置时这个函数非常有用. 参数 EventsBooleanV ...

  8. XCTest-iOS单元测试框架

    Xctest    是iOS的单元测试框架,有objective-c和swift两种语言可以选择 Xcuitest  是iOS的UI测试框架   XCTest 官方文档地址:https://devel ...

  9. Selenium报错:StaleElementReferenceException

    一个学生在操作页面跳转时遇到一个Selenium报错, 如下图所示: StaleElementReferenceException: Message: stale element reference: ...

  10. javaScript基础用Number()把其它类型转换为Number类型

    一:基本类型 字符串 把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零 console.log(Number("12.5&quo ...