天天看点

Matika版OpenStack伪生产环境部署-Compute

计算服务概览

       使用OpenStack计算主机和管理云计算系统。OpenStack计算节点是基础设计即服务(IaaS)系统中最重要的一个部分。这个主模块有Python实现。OpenStack认证服务为OpenStack计算交互完成授权认证;OpenStack镜像服务提供磁盘和服务镜像;OpenStack仪表盘为用户管理员提供管理界面接口。镜像访问受项目和用户权限限制;每个项目引用限制(实例的数量)。OpenStack计算在标准硬件上可以水平扩展,下载镜像启动实例。

Nova 系统架构

       Nova是由多个服务进程组成,每个进程执行不同的功能。用户面接口是REST API,Nova组件内部通信是通过RPC消息传递机制进行的。API服务处理REST请求,典型地包括数据库读/写,选择性发送RPC消息到其他Nova服务,REST调用引起反馈。RPC消息是通过oslo.messaging库完成,一个抽象的顶层消息队列。多数主要的Nova组件可以运行在多个主机上,通过监听RPC消息来进行管理。一个最主要的例外是nova-compute,是一个单进程运行在虚拟机监控程序管理(除了使用VMware或Ironic驱动)。这管理器也是可选的,是一个周期性进程。Nova也使用一个中央数据库(逻辑上)所有组件之间共享。不管怎样,为了帮助更新,数据库是通过一个对象层访问确保更新控制面板始终可以在nova-compute运行在之前发布的版本上进行通信。使这一切成为可能nova-compute 代理DB请求 RPC到中央管理器调用nova-conductor。

Matika版OpenStack伪生产环境部署-Compute
Matika版OpenStack伪生产环境部署-Compute

- DB:SQL数据库进行数据存储

- API:接收HTTP请求的组件,转换命令和通过oslo.messaging队列或HTTP与其他组件进行通信

- Scheduler:决定实例运行哪个主机上

- Network:管理IP跳转、桥接和vlans

- Compute:与虚拟机监控程序和虚拟机管理通信

- Conductor:处理请求,需要协调(建立/调整),作为一个数据库代理,或处理对象转换。

前期需求

在Controller节点:

mysql -uroot -pSWPUcs406mariadb -e "CREATE DATABASE nova_api;"
mysql -uroot -pSWPUcs406mariadb -e "CREATE DATABASE nova;"
mysql -uroot -pSWPUcs406mariadb -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'SWPUcs406dbnova';"
mysql -uroot -pSWPUcs406mariadb -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'SWPUcs406dbnova';"
mysql -uroot -pSWPUcs406mariadb -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'controller' IDENTIFIED BY 'SWPUcs406dbnova';"
mysql -uroot -pSWPUcs406mariadb -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'SWPUcs406dbnova';"
mysql -uroot -pSWPUcs406mariadb -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'SWPUcs406dbnova';"
mysql -uroot -pSWPUcs406mariadb -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'controller' IDENTIFIED BY 'SWPUcs406dbnova';"
mysql -uroot -pSWPUcs406mariadb -e "FLUSH PRIVILEGES;"
           

创建nova用户

openstack user create --domain default --password-prompt nova
openstack role add --project service --user nova admin
           

创建nova服务

创建nova API终端

openstack endpoint create --region RegionOne \
  compute public http://controller:/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  compute internal http://controller:/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \
  compute admin http://controller:/v2/%\(tenant_id\)s  
           

安装配置组件

在所有Controller节点

安装组件

编辑 /etc/nova/nova.conf文件

openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:[email protected]/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:[email protected]/nova
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip x
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver

openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_hosts controller1,controller2
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password SWPUcs406rabbit

openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller1:,controller2:
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password SWPUcs406nova

openstack-config --set /etc/nova/nova.conf vnc vncserver_listen ' $my_ip'
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address ' $my_ip'

openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292

openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
           

填充数据库,在Controller1节点

su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
           

完成安装

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

在Compute节点

关闭计算节点的防火墙和Selinux

systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 
           

编辑/etc/hosts文件

cat > /etc/hosts << OFF
    controller
    controller1
    controller1
    compute01
    compute02
    compute03
    compute04
    compute05
    compute06
    compute07
    compute08
    compute09
    compute10
    compute11
    compute12
    cinder1
    cinder2
OFF
           

配置NTP客户端

yum install -y ntp
sed -i "s/server 0.centos.pool.ntp.org iburst/server 127.127.1.0 iburst/" /etc/ntp.conf
sed -i "22,24d" /etc/ntp.conf
systemctl disable chronyd.service
systemctl enable ntpd.service
systemctl start ntpd.service
           

安装OpenStack包源

yum install -y https://rdoproject.org/repos/rdo-release.rpm
yum upgrade -y
yum install -y python-openstackclient
yum install -y openstack-selinux
           

安装配置组件

      由于Compute节点只有两个网卡口,为了方便,把后面需要在Compute节点上安装的软件一次性安装。

安装组件

yum install -y openstack-nova-compute qemu-kvm libvirt virt-install bridge-utils openstack-utils \
openstack-neutron-linuxbridge ebtables ipset openstack-ceilometer-compute python-ceilometerclient python-pecan nfs-utils zabbix-agent
           

编辑/etc/nova/nova.conf文件

openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver

openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_hosts controller1,controller2
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password SWPUcs406rabbit

openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller1:,controller2:
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password SWPUcs406nova

openstack-config --set /etc/nova/nova.conf vnc enabled True
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen  
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address  ' $my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://172.23.253.11:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
           

完成安装

systemctl enable libvirtd.service openstack-nova-compute.service 
systemctl start libvirtd.service openstack-nova-compute.service 
           

验证,在Controller1节点

. admin-openrc
openstack compute service list
           
+----+------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary           | Host       | Zone     | Status  | State | Updated At                 |
+----+------------------+------------+----------+---------+-------+----------------------------+
|  1 | nova-scheduler   | controller | internal | enabled | up    | 2016-05-24T14:23:42.000000 |
|  2 | nova-conductor   | controller | internal | enabled | up    | 2016-05-24T14:23:42.000000 |
|  3 | nova-consoleauth | controller | internal | enabled | up    | 2016-05-24T14:23:46.000000 |
|  9 | nova-compute     | compute02  | nova     | enabled | up    | 2016-05-24T14:23:46.000000 |
| 10 | nova-compute     | compute03  | nova     | enabled | up    | 2016-05-24T14:23:45.000000 |
| 11 | nova-compute     | compute04  | nova     | enabled | up    | 2016-05-24T14:23:51.000000 |
| 12 | nova-compute     | compute05  | nova     | enabled | up    | 2016-05-24T14:23:46.000000 |
| 13 | nova-compute     | compute06  | nova     | enabled | up    | 2016-05-24T14:23:44.000000 |
| 14 | nova-compute     | compute07  | nova     | enabled | up    | 2016-05-24T14:23:41.000000 |
| 15 | nova-compute     | compute12  | nova     | enabled | up    | 2016-05-24T14:23:49.000000 |
| 16 | nova-compute     | compute11  | nova     | enabled | up    | 2016-05-24T14:23:41.000000 |
| 17 | nova-compute     | compute10  | nova     | enabled | up    | 2016-05-24T14:23:45.000000 |
| 18 | nova-compute     | compute09  | nova     | enabled | up    | 2016-05-24T14:23:46.000000 |
| 19 | nova-compute     | compute08  | nova     | enabled | up    | 2016-05-24T14:23:42.000000 |
| 20 | nova-compute     | compute01  | nova     | enabled | up    | 2016-05-24T14:23:44.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
      

参考文章:

http://docs.openstack.org/mitaka/install-guide-rdo/nova-controller-install.html

继续阅读