7)openstack|7)openstack 扩充计算节点

使用一断时间之后,玩的正hgin,创建一个新主机报错了:
openstack创建云主机时界面报错:错误: 实例 "xxxx" 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: No valid host was found. There are not enough hosts available.].
出现这种情况,大家可以去调查一下nova下的调度信息日志(nova-scheduler.log),不外乎下面资源用完了的情况:vCPU,内存,存储空间,网络。
我们假定现在是cpu和内存资源不够用了,无法创建更多虚拟机了,我们需要扩充计算节点。下面我们新增一台计算节点。
我们同样准备了一台CentOS7.2的主机,把它升级到最新,它的管理IP为192.168.25.25。
1,执行安装脚本安装。创建下面脚本,保存在任意位置,赋予执行权限,然后执行。

[root@nova-node02 ~]# vi novainstall.sh

拷贝下面内容到该文件,注意如果你的环境不是严格按照我的做的话,必要的参数自行修改。
#!/bin/sh # openstack pike nova节点安装 # 环境 centos 7.x.1708 x86_64 # modify by Qiao[[ `uname -r` = *el7* ]] && { echo '开启安装openstack pike nova'; } || { echo '请在CentOS7.x 环境运行'; exit; }########################################## #参数#获取第一块网卡名、ip地址 Net=`ip add|egrep global|awk '{ print $NF }'|head -n 1` IP=`ip add|grep global|awk -F'[ /]+' '{ print $3 }'|head -n 1` echo"网卡名称:$Net" echo"IP地址:$IP"#参数 Netname=$Net#网卡名称 MyIP=$IP#IP地址 ControllerName="controller"# 控制节点主机名 ControllerIP="192.168.25.24" # 控制节点IP VncProxy="110.110.110.110"#VNC代理controller的外网IP地址。如果没有外网地址,输入控制节点controoler的内网IP地址。 Imgdir=/data/glance #自定义glance镜像目录 VHD=/data/nova#自定义Nova实例路径 Kvm=qemu#QEMU或KVM ,KVM需要硬件支持########################################## #1、设置echo'关闭selinux、防火墙' systemctl stop firewalld.service systemctl disable firewalld.service firewall-cmd --state sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config grep --color=auto '^SELINUX' /etc/selinux/config setenforce 0[[ -f /usr/bin/wget ]] || { yum install wget -y; } #若没wget则安装 [[ -f /usr/sbin/ntpdate ]] || { yum install ntpdate -y; } #若没ntpdate则安装echo'时间同步' /usr/sbin/ntpdate ntp6.aliyun.com echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com&> /dev/null" > /tmp/crontab crontab /tmp/crontabecho'设置hostname' echo "$ControllerIP $ControllerName">>/etc/hosts #使用阿里源 rm -f /etc/yum.repos.d/* wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo #删除阿里内网地址 echo'自定义openstack源' wget -O /etc/yum.repos.d/Ali-pike.repo http://elven.vip/ks/openstack/Ali-pike.repo yum clean all && yum makecache #生成缓存##########################################echo'安装nova' yum install -y openstack-nova-computemkdir -p $VHD chown -R nova:nova $VHDecho 'nova配置' echo '# [DEFAULT] instances_path='$VHD' enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:openstack@controller my_ip = '$MyIP' use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver osapi_compute_listen_port=8774[api_database] connection = mysql+pymysql://nova:nova@controller/nova_api [database] connection = mysql+pymysql://nova:nova@controller/nova[api] auth_strategy = keystone [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = nova[vnc] enabled = true vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://'$VncProxy':6080/vnc_auto.html[glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = /var/lib/nova/tmp[placement] os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:35357/v3 username = placement password = placement[scheduler] discover_hosts_in_cells_interval = 300[libvirt] virt_type = '$Kvm'# [neutron] url = http://controller:9696 auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = neutron service_metadata_proxy = true metadata_proxy_shared_secret = metadata#'>/etc/nova/nova.conf #nova服务 配置开机自动启动 systemctl enablelibvirtd.service openstack-nova-compute.service #启动 systemctl startlibvirtd.service openstack-nova-compute.service

【7)openstack|7)openstack 扩充计算节点】这样一台计算节点就安装完了,下面我们来验证一下。
在控制节点上执行下面命令 。看到nova-compute 的节点多了,有新加的这一台主机名,且状态是正常enabled 和up的就OK了。
[root@controller ~]# source admin-openstack.sh [root@controller ~]# openstack compute service list +----+------------------+-------------+----------+---------+-------+----------------------------+ | ID | Binary| Host| Zone| Status| State | Updated At| +----+------------------+-------------+----------+---------+-------+----------------------------+ |1 | nova-scheduler| controller| internal | enabled | up| 2018-01-29T09:48:46.000000 | |2 | nova-consoleauth | controller| internal | enabled | up| 2018-01-29T09:48:48.000000 | |3 | nova-conductor| controller| internal | enabled | up| 2018-01-29T09:48:51.000000 | |8 | nova-compute| controller| nova| enabled | up| 2018-01-29T09:48:46.000000 | |9 | nova-compute| nova-node01 | nova| enabled | up| 2018-01-29T09:48:51.000000 | | 10 | nova-compute| nova-node02 | nova| enabled | up| 2018-01-29T09:48:46.000000 | +----+------------------+-------------+----------+---------+-------+----------------------------+

    推荐阅读