Linux系统管理之Openstack原理及应用

基本概念

Openstack是什么?

在这里插入图片描述
Openstack是一个云操作系统,控制着一个大规模(数据中心级别)的资源池,资源池包含计算、存储和网络。
给管理员提供一个仪表盘去控制资源池里所有资源,最终用户可以通过web页面下发(获得)这些资源。

作用

云与操作系统

1、虚拟化与云计算
    虚拟化是将物理资源分配给多个虚拟机,提高硬件资源利用率,重点在于分配物理资源的能力
    云计算通过管理众多云虚拟机对外提供服务,重点在于提供服务。并且能够多租户之间隔离,按需使用、按量计费
2、操作系统功能
    云也被当成操作系统,因为它也提供了:资源抽象、资源分配与负载调度、应用的生命周期管理、系统运维及人机交互等。

定位

Openstack的定位

	OpenStack只是云计算系统的控制面。为了构建一个云,我们还需要很多东西

在这里插入图片描述
资源池由虚拟化软件构造而来,如KVM、qemu等等。

openstack的设计理念

开放
	1.开源。
	2.尽最大可能重用已有开源项目。
灵活
	1.不使用任何不可替代的私有/商业组件(如华为云用GaussDB替代MySQL)。
	2.大量使用插件化方式进行架构设计与实现。
可拓展
	1.由多个相互独立的项目组成。
	2.每个项目包含多个独立服务组件。
	3.无中心架构。
	4.无状态架构(高可用)。

部署

项目

Openstack的项目分层

在这里插入图片描述

Openstack各主要项目间相互关系

在这里插入图片描述
在Dashboard[Horizon]上申请一台云虚拟机流程:Network[Neutron]提供网络,Block Storage[Cinder]提供卷,image[Glance]提供操作系统镜像(image不存储镜像,只存镜像目录,镜像实际存储在Object Storage[Swift]),然后交由Compute[Nova]创建虚拟机。在这个过程中Identity[Keystone]为各个独立的服务提供认证、鉴权服务。

安装

Openstack部署

在这里插入图片描述
对于双机模式来说,可让vm流量和内部管理流量共一个网卡,故我们的实验环境为:
外网:ens33,即设置为nat模式的第一块网卡。
IP为192.168.1.x的设备。
内网:ens34(或ens37),即设置为仅主机模式的第二网卡。IP为20.0.0.x。

组件配置

计算

计算组件nova

OpenStack中提供计算资源服务的项目

Nova负责:
  虚拟机生命周期管理
  其他计算资源生命周期管理

Nova不负责:
  承载虚拟机的物理主机自身的管理
  全面的系统状态监控

Nova是OpenStack事实上最核心的项目
在这里插入图片描述
API接收简单用户请求(开关虚拟机)->Compute(计算节点)处理请求

	API接收复杂用户请求(创建虚拟机)->Conductor(指令器)->Scheduler(调度器)选择空闲的Compute->Conductor发送指令给Compute
	
	Compute中实际执行指令的是Hypervisor(虚拟机监视器)

在这里插入图片描述

相关概念

Server/Instance(虚拟机)
Nova管理提供的云服务资源。Nova中最重要的数据对象。
Server metadata(虚拟机元数据)
通常用于为虚拟机附加必要描述信息。key/value。
Flavor(虚拟机规格模板)
用于定义一种虚拟机类型,如一种具有2个VCPU、4GB内、40GB本地存储空间的虚拟机。Flavor由系统管理员创建,供普通用户在创建虚拟机时使用。
Quota(资源配额)
用于指定租户最多能够使用的逻辑资源上限。
Hypervisor / node(节点)
对于KVM、Xen等虚拟化技术,一个node即对应于一个物理主机。对于vCenter , 一个node对应于一个cluster。
Host(主机)
对于KVM、Xen等虚拟化技术,一个host即对应于一个物理主机,同时对应于一个node。对于vCenter,一个host对应于—套vCenter部著。
Host Aggregate(主机聚合)
—个HA内包含若干host。一个HA内的物理主机通常具有相同的CPU型号等物理资源特性。
Server Group(虚拟机亲和性/反亲和组)
同一个亲和性组的虚拟机,在创建时会被调度到相同的物理主机上。同一个反亲和性组的虚拟机,在创建时会被调度到不同的物理主机上,如主备系统。

存储

块存储服务组件cinder

	为云平台提供统一接口,按需分配的,持久化的块存储服务。

    核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行操作。

    为后端不同的存储设备提供了统一的接口,不同的块设备服务厂商在Cinder 中实现其驱动支持以与OpenStack进行整合。

网络

网络服务组件neutron

	L2 Agent:二层网络服务,提供基础服务,部署在所有计算节点
	
	L3 Agent:三层网络服务,提供IP、交换、路由服务,根据业务情况部署在网络节点或者计算节点,华为云部署在计算节点
	
	DHCP Agent:DHCP服务
	
	Adv Services:高级网络服务,如负载均衡
	
	neutron组件之间通过消息队列通信

实验

需求描述 用脚本安装openstack网络组件 实现思路 编辑openstack 环境变量脚本/etc/xiandian/openrc.sh
正确设置外网和管理网的网卡和IP地址,配置必须的组件的帐户和登录密码,以及虚拟网络。 执行必须的组件对应的安装脚本。

一、卸载安装的Openstack组件

#controller节点
执行在/usr/local/bin中的
iaas-uninstall-all.sh进行卸载
# compute节点
执行在/usr/local/bin中的
iaas-uninstall-all.sh进行卸载
在这里插入图片描述
在这里插入图片描述

二、设置主机名和网卡参数

#controller节点
执行hostnamectl set-hostname controller
查看/etc/sysconfig/network-scripts/ifcfg-ens*(具体的网口)文件文件,确认有IP参数。
ctrl+d 退出 重新登陆
# compute节点
执行hostnamectl set-hostname compute
查看/etc/sysconfig/network-scripts/ifcfg-ens*(具体的网口)文件文件,确认有IP参数。
ctrl+d 退出 重新登陆
在这里插入图片描述
在这里插入图片描述

三、重新安装并设置vsftpd服务

#controller节点
yum -y install vsftpd
vi /etc/vsftpd/vsftpd.conf
添加一行 anon_root=/opt/
systemctl start vsftpd
systemctl enable vsftpd
#compute节点
确认yum list可看到资源清单
在这里插入图片描述
在这里插入图片描述

四、重新设置环境变量

#controller节点
yum install iaas-xiandian -y
vi /etc/xiandian/openrc.sh
(具体内容在后面)
#compute节点
yum install iaas-xiandian -y
vi /etc/xiandian/openrc.sh

`

HOST_IP=20.0.0.10
HOST_NAME=controller
HOST_IP_NODE=20.0.0.20
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ens33
Physical_NAME=provider
minvlan=101
maxvlan=201
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sdb1
SWIFT_PASS=000000
OBJECT_DISK=sdc1
STORAGE_LOCAL_NET_IP=20.0.0.10
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000`

五、重新安装基本配置

#Controller节点和Compute节点
执行脚本iaas-pre-host.sh进行安装
#安装完成后同时重启
[root@controller ~]# reboot

六、重新安装基础服务

#Controller节点
执行脚本iaas-install-mysql.sh进行安装
#compute节点
yum -y install MySQL-python

七、重新安装Keystone认证服务

#Controller节点和comp节点
执行脚本iaas-install-keystone.sh进行安装

八、重新安装Glance镜像服务

#Controller节点
执行脚本iaas-install-glance.sh进行安装
上传镜像:
#source /etc/keystone/admin-openrc.sh (执行配置授权脚本)
#glance image-create --name “CentOS7.0” --disk-format qcow2 --container-format bare --progress < /opt/images/CentOS_6.5_x86_64_XD.qcow2

九、重新安装Nova计算服务

#Controller节点
执行脚本iaas-install-nova-controller.sh进行安装

    #Compute节点

执行脚本iaas-install-nova-compute.sh进行安装(controller 安装完成再做)
验证服务时输入控制节点root的密码,如Aa123456789。

十、安装Neutron网络服务

#Controller节点
执行脚本iaas-install-neutron-controller.sh进行安装
#Compute节点
vi /etc/yum.repos.d/centos.repo
执行脚本iaas-install-neutron-compute.sh进行安装
在这里插入图片描述
在这里插入图片描述

十一、设置Neutron网络为vlan模式

#Controller节点
#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan

#systemctl restart neutron-server (截图9-8后才执行)

#openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex

#systemctl restart neutron-l3-agent
在这里插入图片描述

十二、创建Neutron网络的vlan

#Controller节点
#neutron net-create demo-net --tenant-id openstack project list |grep -w admin |awk '{print $2}' --provider:network_type vlan
在这里插入图片描述

十三、重新安装Dashboard服务

#Controller
执行脚本iaas-install-dashboard.sh进行安装Controller节点
打开物理机网络设置,启用网络vmnet1,并设置其IP为20.0.0.1/24,确认可以ping 20.0.0.10后用浏览器访问dashboard,以admin/000000访问管理平台

十四、使用管理平台进行云子网设置

#在dashboard网页中
管理员 → 网络 → (demo-net) → 创建子网(外网填服务器的外网网段)→设置dhcp
在这里插入图片描述
在这里插入图片描述

十五、安装Cinder块存储服务

#controller节点
执行在/usr/local/bin中的
iaas-install-cinder-controller.sh进行安装
#compute节点
修改/etc/yum.repos.d/centos.repo
将两个IP改为管理IP:20.0.0.10
执行在/usr/local/bin中的
iaas-install-cinder-compute.sh进行安装
在这里插入图片描述
在这里插入图片描述

十六、安装Swift对象存储服务

#controller节点
执行在/usr/local/bin中的
iaas-install-swift-controller.sh进行安装
# compute节点
执行在/usr/local/bin中的
iaas-install-swift-compute.sh进行安装
需联机时,输入密码controller登录密码:Aa123456789
在这里插入图片描述
在这里插入图片描述-----------------------------安装阶段结束---------------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值