OpenStack系列第三篇:CentOS7 上部署 OpenStack(Train版)集群教程 Ⅲ Nova Neutron 服务部署


前言

在完成前期的环境部署后,本篇将重点介绍如何部署 OpenStack 的两个核心服务:

1. Nova:计算服务
2. Neutron:网络服务

每个服务的部署将包含以下内容:作用、实现原理、部署流程以及关键配置的解释。


1. Nova:计算服务

Nova 是什么?
Nova 是 OpenStack 的计算服务,负责虚拟机实例的生命周期管理,包括创建、启动、停止、删除等操作。它通过管理计算资源实现虚拟机的调度和分配,支持多种虚拟化技术如 KVM、Xen、VMware 等。

实现原理:
Nova 的核心组件包括:

  • nova-api:处理外部 API 请求。
  • nova-scheduler:负责将虚拟机实例分配到合适的计算节点。
  • nova-conductor:数据库访问代理,减轻 nova-compute 的负担。
  • nova-compute:实际管理虚拟机实例的生命周期。
  • nova-novncproxy:提供 VNC 访问虚拟机的服务。
  • 组件之间通过消息队列(RabbitMQ)和数据库进行通信。

简单例子:
想象你要创建一台虚拟机,Nova 就像是“工厂经理”

  • Nova 职能: 负责“生产”虚拟机。
  • 工作内容: 当你通过 OpenStack 下达“我要创建一台 Ubuntu 虚拟机”的命令时,Nova 会调度计算节点上的资源(CPU、内存、硬盘),实际生成一个虚拟机。

部署步骤(Controller 节点)

  1. 安装 Nova 包:
yum install -y install openstack-nova-api openstack-nova-conductor openstack-nova-scheduler openstack-nova-novnproxy
  1. 检查安装是否成功:
cat /etc/passwd | grep nova && cat /etc/group | grep nova
  1. 创建数据库:
mysql -uroot -plian
   > create database nova_api;
   > create database nova_cell0;
   > create database nova;
   > grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'lian';
   > grant all privileges on nova_api.* to 'nova'@'%' identified by 'lian';
   > grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by 'lian';
   > grant all privileges on nova_cell0.* to 'nova'@'%' identified by 'lian';
   > grant all privileges on nova.* to 'nova'@'localhost' identified by 'lian';
   > grant all privileges on nova.* to 'nova'@'%' identified by 'lian';
   > quit
  1. 修改配置文件:
    备份并编辑 nova.conf:
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
vim /etc/nova/nova.conf

以下是关键配置:

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://rabbitmq:lian@controller:5672
my_ip = 192.168.61.10
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[api]
auth_strategy = keystone
[api_database]
connection = mysql+pymysql://nova:lian@controller/nova_api
[cinder]
os_region_name = RegionOne
[database]
connection = mysql+pymysql://nova:lian@controller/nova
[devices]
[ephemeral_storage_encryption]
[filter_scheduler]
[glance]
api_servers = http://controller:9292
[guestfs]
[healthcheck]
[hyperv]
[ironic]
[key_manager]
[keystone]
[keystone_authtoken]

auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = nova
password = lian
[libvirt]
[metrics]
[mks]
[neutron]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = project
username = neutron
password = lian
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET
[notifications]
[osapi_v21]
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[pci]
[placement]
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = placement
password = lian
region_name = RegionOne
[scheduler]
discover_hosts_in_cells_interval = 60
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

注:这里我把后续部署服务要修改 nova.conf 的一并配了

  1. 初始化 Keystone 数据库:
su nova -s /bin/sh -c "nova-manage api_db sync"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值