OpenStack 计算服务 Nova介绍和控制节点部署(七)

介绍

       Nova是openstack最先的两块模块之一,另外一个是对象存储swift。在openstack体系中一个叫作计算节点,一个叫作控制节点。这个主要和nova相关,咱们把安装为计算节点nova-compute,把除了nova-compute叫作控制节点。nova-compute是建立虚拟机的,只是建立虚拟机,全部的控制都在另外一台上。node

nova组件(服务)mysql

  • API:负责接受和响应外部请求。支持OpenStack API,EC2 API
  • Cert:负责身份认证EC2
  • Scheduler:用于云主机调度
  • Conductor:计算节点访问数据的中间件
  • Consoleauth:用于控制台的受权验证
  • Novncproxy:VNC代理

提示:EC2是亚马逊弹性计算云linux

 

Nova API

  • nova-api组件实现了RESTful API功能,是外部访问Nova的惟一途径。
  • 接收外部的请求并经过Messages Queue将请求发送给其余的服务组件,同时也兼容EC2 API,因此也能够用EC2的管理工具对nova进行平常管理。

 

 

Nova scheduler

Nova scheduler模块在openstack中的做用就是决策虚拟机建立在那个主机(计算节点)上。sql

决策一个虚拟机应该调度到那个物理节点,须要分两个步骤:数据库

  • 过滤(Filter)
  • 计算权值(Weight)

Q:实际操做中可能会出现找不到有效的主机?其实是有资源的,为何?
swift

由于在openstack中nova scheduler认为没有资源建立虚拟机,即便你有100G内存,若是nova scheduler认为你没有资格,就没法进行建立虚拟机。这个时候多是某一个节点故障,如网络或者其它。vim

Q:若是决策虚拟机建立在那个主机?api

一、Filter Scheduler首先获得未通过滤的主机列表,而后根据过滤属性,选择符合条件的计算节点主机。bash

二、计算权重,通过主机过滤后,须要对主机进行权值的计算,根据策略选择相应的某一台主机(对于每个要建立的虚拟机而言)。网络

 

Nova 控制节点部署

一、安装软件包

yum install -y openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler

二、数据库配置

  • 修改配置文件/etc/nova/nova.conf
[root@linux-node1 ~]# vim /etc/nova/nova.conf
[database]
connection=mysql+pymysql://nova:nova@192.168.137.11/nova
[api_database]
connection=mysql+pymysql://nova:nova@192.168.137.11/nova_api
  • 同步数据库
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova

提示:有警告能够忽略

  • 检查是否有表结构
mysql -h 192.168.137.11 -unova -pnova -e "use nova;show tables;"
mysql -h 192.168.137.11 -unova -pnova -e "use nova_api;show tables;"

三、配置keystone

[root@linux-node1 ~]# vim /etc/nova/nova.conf
[keystone_authtoken]
auth_uri = http://192.168.137.11:5000
auth_url = http://192.168.137.11:35357
memcached_servers = 192.168.137.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
[DEFAULT]
auth_strategy=keystone

四、RabbitMq(消息队列配置)

[root@linux-node1 ~]# vim /etc/nova/nova.conf
rpc_backend=rabbit
rabbit_host=192.168.137.11
rabbit_port=5672
rabbit_userid=openstack
rabbit_password=openstack

五、配置nova本身的一些功能

  • 设置启用的元数据API
[DEFAULT]
enabled_apis=osapi_compute,metadata
  • 启动网络服务支持和关闭防火墙
[DEFAULT]
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
  • 配置VNC代理使用控制节点的管理接口IP地址
[vnc]
vncserver_listen=192.168.137.11
vncserver_proxyclient_address=192.168.137.11
  • 配置镜像服务 API 的位置
[glance]
api_servers=http://192.168.137.11:9292
  • 配置锁路径
[oslo_concurrency]
lock_path = /var/lib/nova/tmp

六、设置开机启动,并启动服务

systemctl enable openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service

七、keystone上注册nova服务

  • 建立nova服务
source  /root/admin-openstack.sh
openstack service create --name nova --description "Openstack Compute " compute

  • 建立Compute服务api端点(公有、私有、admin)
openstack endpoint create --region RegionOne \
compute public http://192.168.137.11:8774/v2.1/%\(tenant_id\)s

openstack endpoint create --region RegionOne \
compute internal http://192.168.137.11:8774/v2.1/%\(tenant_id\)s

openstack endpoint create --region RegionOne \
compute admin http://192.168.137.11:8774/v2.1/%\(tenant_id\)s

八、检查控制节点是否成功

openstack host list

相关文章
相关标签/搜索