1. 安装基础服务
yum -y remove epel-release.noarch
yum install -y openstack-nova-compute 	 openstack-utils python-openstackclient 	 python2-PyMySQL python-memcached

#服务运行在3个计算节点,使用ceph的话进行安装
yum install -y ceph-common
  1. 编辑nova.conf配置文件
#判断计算节点是否支持虚拟机的硬件加速
egrep -c '(vmx|svm)' /proc/cpuinfo
#如果此命令返回值不是0,则计算节点支持硬件加速
#如果此命令返回值是0,则计算节点不支持硬件加速
备份配置文件
cp /etc/nova/nova.conf{,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf
vi /etc/nova/nova.conf
[DEFAULT]
#nova-compute在并发创建虚拟机过程中,有并发任务限制
max_concurrent_builds = 10 
#物理 CPU 超售比例,默认是 16 倍,超线程也算作一个物理 CPU,需要根据具体负载和物理 CPU 能力进行综合判断后确定具体的配置
cpu_allocation_ratio = 4.0
initial_cpu_allocation_ratio = 16.0 
#内存分配超售比例,默认是 1.5 倍,生产环境不建议开启超售。
ram_allocation_ratio = 1.0 
initial_ram_allocation_ratio = 1.5
#内存预留量,这部分内存不能被虚拟机使用
reserved_host_memory_mb = 4096 
#磁盘预留空间,这部分空间不能被虚拟机使用
reserved_host_disk_mb = 10240 
#服务下线时间阈值,默认60,如果一个节点上的 nova 服务超过这个时间没有上报心跳到数据库,api 服务会认为该服务已经下线,如果配置过短或过长,都会导致误判。
service_down_time = 120 
my_ip = 管理网卡ip
#rootwrap daemon方式运行命令,缩短nova/neutron等组件调用系统命令的时间
use_rootwrap_daemon=True
#启用计算和元数据 API
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:RABBIT_CXK_PASS@openstack-controller01:5672,openstack:RABBIT_CXK_PASS@openstack-controller02:5672,openstack:RABBIT_CXK_PASS@openstack-controller03:5672
#启用对网络服务的支持
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
block_device_allocate_retries = 240
#有时候碰到硬盘太大,会失败,vif超时参数
vif_plugging_timeout = 0
vif_plugging_is_fatal = False
log_dir = /var/log/nova
#迁移
resize_confirm_window = 1
#允许迁移到本机
allow_resize_to_same_host = true
allow_migrate_to_same_host = true
#支持热迁移
live_migration_flag = "VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
debug = true

[api]
auth_strategy = keystone

[filter_scheduler]
#主机组配置
#关联:实例创建在同一个计算节点上,当该计算节点资源不够就会失败。
#不关联:实例创建在不同计算节点上,当计算节点数不够时失败。
#软关联:实例尽量创建在同一个计算节点上,当计算节点资源不够不会失败,会落在另一个计算节点上
#软不关联:实例尽量创建在不同计算节点上,当计算节点数量不够时,实力会落在同一个计算节点上
vailable_filters=nova.scheduler.filters.all_filters
enabled_filters=AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter

[glance]
api_servers = http://vip:9292

[keystone_authtoken]
auth_url = http://vip:5000/v3
cache = true
token_cache_time = 3600
memcached_servers = openstackcontroller1ip:11211,openstackcontroller2ip:11211,openstackcontroller3ip:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_CXK_PASS

[libvirt]
#支持虚拟机硬件加速
#virt_type = kvm
virt_type = qemu
num_pcie_ports = 10
#镜像使用nfs,qcow2、使用ceph,rbd
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = cinder
#查看virsh secret-list
rbd_secret_uuid = 77b54383-2456-4cb7-ac90-2c3754fc814f
disk_cachemodes = "network=writeback"
#禁用文件注入
inject_password = false
inject_key = false
inject_partition = -2
#虚拟机临时root磁盘discard功能
hw_disk_discard = unmap

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://vip:5000/v3
username = placement
password = PLACEMENT_CXK_PASS

[vnc]
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://vip:6080/vnc_auto.html

#支持网络,等待计算节点网络安装
[neutron]
url = http://vip:9696
auth_url = http://vip:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_CXK_PASS
  1. 配置迁移时用的密钥
#允许nova进行登入,并设置密码(随机计算节点)
usermod -s /bin/bash nova
echo nova | passwd --stdin nova

#生成密钥对(随机计算节点)
su - nova
ssh-keygen -t rsa
for i in 51 52 53 ;do ssh-copy-id -o StrictHostKeyChecking=no 			nova@10.168.188.$i ;done

#当前计算节点下载密钥
scp -p -r root@10.168.188.51:/var/lib/nova/.ssh/ /var/lib/nova/
chown -R nova:nova /var/lib/nova/.ssh/
  1. 启动并加入开机自启
systemctl restart libvirtd.service openstack-nova-compute.service
systemctl status libvirtd.service openstack-nova-compute.service
systemctl enable libvirtd.service openstack-nova-compute.service
  1. 在控制节点上添加计算节点
source /sh/admin-openstack.sh

#添加计算节点到cell 数据库
openstack compute service list --service nova-compute

#发现计算节点
#手动发现
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" 
nova

#定期主动发现(控制节点此文档已经按照了)
#1、修改/etc/nova/nova.conf配置文件
#[scheduler]
#discover_hosts_in_cells_interval=600
#2、重启nova服务
#systemctl restart openstack-nova-api.service  openstack-nova-scheduler.service openstack-nova-conductor.service 		openstack-nova-novncproxy.service
  1. 在控制节点上验证-列出当前服务组件
#列出服务组件以验证每个进程的成功启动和注册:
openstack compute service list

#列出身份服务中的 API 端点以验证与身份服务的连接:
openstack catalog list

#列出图像服务中的图像以验证与图像服务的连接性
openstack image list

#检查Cells和placement API是否正常运行
nova-status upgrade check

喜欢的亲可以关注点赞评论哦!以后每天都会更新的哦!本文为小编原创文章; 文章中用到的文件、安装包等