Nova是openstack最先的两块模块之一,另外一个是对象存储swift。在openstack体系中一个叫作计算节点,一个叫作控制节点。这个主要和nova相关,咱们把安装为计算节点nova-compute,把除了nova-compute叫作控制节点。nova-compute是建立虚拟机的,只是建立虚拟机,全部的控制都在另外一台上。node
nova组件(服务)mysql
提示:EC2是亚马逊弹性计算云linux
Nova scheduler模块在openstack中的做用就是决策虚拟机建立在那个主机(计算节点)上。sql
决策一个虚拟机应该调度到那个物理节点,须要分两个步骤:数据库
Q:实际操做中可能会出现找不到有效的主机?其实是有资源的,为何?
swift
由于在openstack中nova scheduler认为没有资源建立虚拟机,即便你有100G内存,若是nova scheduler认为你没有资格,就没法进行建立虚拟机。这个时候多是某一个节点故障,如网络或者其它。vim
Q:若是决策虚拟机建立在那个主机?api
一、Filter Scheduler首先获得未通过滤的主机列表,而后根据过滤属性,选择符合条件的计算节点主机。bash
二、计算权重,通过主机过滤后,须要对主机进行权值的计算,根据策略选择相应的某一台主机(对于每个要建立的虚拟机而言)。网络
一、安装软件包
yum install -y openstack-nova-api openstack-nova-conductor \ openstack-nova-console openstack-nova-novncproxy \ openstack-nova-scheduler
二、数据库配置
[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本身的一些功能
[DEFAULT] enabled_apis=osapi_compute,metadata
[DEFAULT] use_neutron=true firewall_driver=nova.virt.firewall.NoopFirewallDriver
[vnc] vncserver_listen=192.168.137.11 vncserver_proxyclient_address=192.168.137.11
[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服务
source /root/admin-openstack.sh openstack service create --name nova --description "Openstack Compute " compute
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