Openstack原理及应用

 Openstack原理及应用

Openstack是什么

OpenStack是一个开源的云计算管理平台项目,它由几个主要的组件组合起来完成一些具体的工作,旨在提供基础设施即服务(IaaS)的解决方案。OpenStack既是一个社区,也是一个项目和开源软件,它提供了一个部署云的操作平台或工具集,可以帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云提供可扩展的、灵活的云计算。

云与操作系统

1、虚拟化与云计算

        虚拟化是将物理资源分配给多个虚拟机,提高硬件资源利用率,重点在于分配物理资源的能力。

         云计算通过管理众多云虚拟机对外提供服务,重点在于提供服务。并且能够多租户之间隔离,按需使用、按量计费。

2、操作系统功能

        云也被当成操作系统,因为它也提供了:资源抽象、资源分配与负载调度、应用的生命周期管理、系统运维及人机交互等。

openstack的设计理念

OpenStack在当前的开源云计算系统领域非常流行,之所以如此风靡,与其设计理念密不可分。下面,我们就来了解一下OpenStack所秉持的设计理念,共三个方面:开放、灵活、可扩展。

开放(Open):

  1. 端到端的开源:从需求的收集、提交、架构的变更到代码,均开源
  2. 尽最大可能重用已有开源项目

灵活(Flexible):

  1. 不使用任何不可替代的私有/商业组件
  2. 大量使用插件化方式进行架构设计与实现

可扩展(Scalable):

  1. 由多个相互独立的项目组成
  2. 每个项目包含多个独立服务组件
  3. 无中心架构
  4. 无状态架构

 

Openstack工作原理

OpenStack架构是基于一系列相互协作的服务组件构建而成的。它采用了分布式架构,每个服务组件都可以独立运行,通过API进行通信和协作。以下是OpenStack架构的工作原理:

  1. 控制节点(Control Node):控制节点是OpenStack架构的中心,它包含了各种服务组件,如Nova(计算服务)、Glance(镜像服务)、Neutron(网络服务)等。控制节点负责接收用户请求、管理资源分配、监控系统运行等。

  2. 计算节点(Compute Node):计算节点是OpenStack架构中的计算资源提供者,它负责运行虚拟机实例、处理计算任务等。控制节点通过API向计算节点发送请求,计算节点接收请求后执行相应的操作。

  3. 存储节点(Storage Node):存储节点负责存储OpenStack架构中的数据和镜像。OpenStack支持多种存储后端,如Cinder(块存储服务)、Swift(对象存储服务)等。存储节点通过API接收用户的存储请求,并将数据存储在相应的存储后端中。

  4. 网络节点(Network Node):网络节点负责管理OpenStack架构中的网络资源,如虚拟网络、子网、路由等。Neutron服务是OpenStack中的网络服务组件,它负责实现虚拟机之间的通信、网络隔离、网络安全等功能。

  5. API服务(API Service):API服务是OpenStack架构的接口层,它提供了一组RESTful API,用于控制节点与其他服务组件之间的通信和交互。用户可以通过API向OpenStack发送请求,管理虚拟机实例、存储资源、网络配置等。

总的来说,OpenStack架构的工作原理是通过各个服务组件之间的协作和通信,实现用户对云计算资源的管理和调度。控制节点作为架构的中心,负责协调各个服务组件的工作,确保系统的稳定和高效运行。计算节点、存储节点和网络节点则分别提供计算、存储和网络资源,满足用户对云计算服务的需求。API服务则提供了用户与OpenStack架构之间的接口,方便用户管理和操作云计算资源。

Openstack主要组件的使用

OpenStack的主要组件

Compute (Nova):提供云环境下虚拟机的创建、运行、管理等功能。

Object Storage (Swift):提供可扩展的分布式文件系统,用于存储大量的小文件或者中等大小的大文件,比如图片、视频、容器镜像等。

Block Storage (Cinder):提供块存储服务,允许用户创建持久化存储卷。

Networking (Neutron):提供网络虚拟化服务,允许用户创建私有和公共的网络。

Dashboard (Horizon):提供了一个基于web的用户界面,让用户可以管理他们的OpenStack资源。

Identity (Keystone):提供身份认证和授权服务,为其他组件提供认证信息。

Image Service (Glance):提供虚拟机镜像的存储、查询、检索服务。

Telemetry (Ceilometer):提供度量、监控和报告服务。

Orchestration (Heat):提供云应用模板服务,可以用于自动化应用部署。

Compute (Nova)

nova这一组件包含了许多的小组件,其中有API Server (nova-api)、Message Queue (rabbit-mq server)、Compute Workers (nova-compute)、Network Controller (nova-network)、Scheduler (nova-scheduler)、Conductor(nova-conductor)。

nova-api是一个交互接口,管理者可以通过这个接口来管理内部基础设施,也可以通过这个接口向用户提供服务。当然基于web的管理也是通过这个接口,然后向消息队列发送消息,达到资源调度的功能。

Rabbit-mq server是计算资源中的一个消息队列,为各个组件传达消息实现资源调度。

nova-compute是用于处理管理实例生命周期。通过消息队列接收请求,并承担操作工作。

nova-network相当于云计算系统内部的一个路由器,他承担了IP地址的划分以及配置VLAN和安全组的划分。

nova-scheduler是一个拥有把nova-API调用映射为Open Stack功能的组件,会根据诸如CPU构架、可用域的物理距离、内存、负载等作出调度决定。

nova-conductor负责数据库的访问权限控制,避免nova-compute直接访问数据库。

Block Storage (Cinder)

Cinder是一个可扩展、可靠和可用的块存储服务,它的主要功能包括:

  • 1.卷管理:Cinder可以创建、删除、扩容和缩小卷。管理员可以通过API或者命令行接口创建卷,指定卷的大小、类型、名称和描述等信息。当需要扩容或缩小卷时,管理员可以通过API或命令行接口进行操作。

  • 2.卷快照:Cinder支持卷的快照,即对现有卷的某个时刻的状态进行备份,可以用于数据的保护和还原。管理员可以通过API或命令行接口创建、删除和还原卷快照。

  • 3.卷的迁移和复制:Cinder支持卷的迁移和复制,可以将卷从一个存储后端迁移到另一个存储后端,或者在同一个存储后端中复制卷。管理员可以通过API或命令行接口进行操作。

  • 4.备份和还原:Cinder支持卷的备份和还原,可以将卷的数据备份到其他地方进行保护。管理员可以通过API或命令行接口创建、删除和还原卷的备份。

  • 5.存储后端支持:Cinder支持多种存储后端,包括本地存储、iSCSI、NFS、Ceph、GlusterFS等,管理员可以根据需求选择和配置不同的存储后端。

  • 6.多租户支持:Cinder支持多租户,可以为不同的租户提供独立的块存储服务,并且可以限制不同租户的配额和权限。

  • 7.高可用性和容错性:Cinder具有高可用性和容错性,可以保证存储服务的可用性和数据的安全性。Cinder支持多副本和数据冗余,同时还支持故障转移和自动恢复。

  • 8.网络互通性:Cinder可以与其他OpenStack组件进行交互,如Nova、Glance等,同时还支持API和命令行接口,可以方便地与其他系统进行集成。

实验案例:安装openstack各组件

需求描述

用脚本安装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 退出  重新登陆

二、设置主机名和网卡参数
 #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 退出  重新登陆

四、重新设置环境变量
  # 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节点

执行脚本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节点

执行脚本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 (Compute节点安装完后执行)

#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

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值