zoukankan      html  css  js  c++  java
  • Ubuntu16手动安装OpenStack——nova篇。。转

    前言:

    本文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-nova/ ,过程非常的详细,作者也说本实验最终失败,因为课程要求我们只要求做到nova,其实open stack还有很多的组件。前面搭建中都很成功没有遇到任何问题,但是在nova篇,安装组件的时候apt-get -y install nova-compute-kvm,获取nova,但重启nova-compute服务却没办法启动,反复看了下却没有nova服务。installopenstack-nova-compute 后通过这个命令下载nova,却无法定位软件包,按照常理换源即可,同学的也是换源便可以下载,但是我用和同学相同的源也没有成功解决这个问题。而老师给的指导书是只要求在客户机安装计算节点皆可。到这里openstack已经over,如果有想往下走的 请查看原文博主,因原文博主写的很详细,我便没有自己写,或许开始就弄一台Ubuntu和centos会便捷一点,版本推荐Ubuntu 16,14可能很多依赖没有,而18会经常遇到卡顿崩溃。注实验顺利。

     

    nova简介

    使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块用Python实现。

    OpenStack Compute与OpenStack Identity交互以进行身份​​验证;OpenStack 镜像服务用于磁盘和镜像管理;OpenStack Dashboard用于用户界面和管理界面。镜像访问受项目和用户的限制;配额受每个项目限制(例如,实例数)。OpenStack Compute可以在标准硬件上水平扩展,下载镜像,然后启动实例。

    OpenStack Compute包含以下组件:

    nova-api service
    接受并响应终端用户compute API调用。该服务支持OpenStack Compute API。它强制执行某些策略并启动大多数活动,例如运行实例。

    nova-api-metadata service
    接受来自实例的元数据请求。在nova-network的多主机模式下运行时,通常会使用nova-api-metadata服务。

    nova-compute service
    通过虚拟机管理程序API,创建和终止虚拟机实例。例如:

    • XenAPI for XenServer/XCP
    • libvirt for KVM or QEMU
    • VMwareAPI for VMware

    处理相当复杂。基本上,nova-compute守护程序接受来自队列的操作,并执行一系列系统命令,例如启动KVM实例并更新其在数据库中的状态。

    nova-placement-api service
    跟踪每个provider的库存和使用情况。

    nova-scheduler service
    从队列中获取虚拟机实例请求,并确定它运行的计算服务器主机。

    nova-conductor module
    负责nova-compute服务和数据库之间的交互。它消除了nova-compute服务对云数据库的直接访问。nova-conductor module可以水平伸缩。不要将其部署在运行nova-compute服务的节点上。

    nova-consoleauth daemon
    在控制台代理为用户授权tokens,参见nova-novncproxy和nova-xvpvncproxy。必须运行此服务才能使控制台代理生效。可以针对群集配置中的单个nova-consoleauth服务运行任一类型的代理。

    nova-novncproxy daemon
    提供正在运行的实例的代理,该代理通过VNC连接访问。支持基于浏览器的novnc客户端。

    nova-spicehtml5proxy daemon
    提供正在运行的实例的代理,该代理通过SPICE连接访问。支持基于浏览器的HTML5客户端。

    nova-xvpvncproxy daemon
    提供正在运行的实例的代理,该代理通过VNC连接访问。支持OpenStack特定的Java客户端。

    The queue
    用于在守护进程之间传递消息的中央集线器。通常用RabbitMQ实现,也可以用另一个AMQP消息队列实现,比如ZeroMQ。

    SQL database
    存储云基础架构的大多数构建时和运行时状态,包括:

    • Available instance types
    • Instances in use
    • Available networks
    • Projects

    从理论上讲,OpenStack Compute可以支持SQLAlchemy支持的任何数据库。常见的数据库是用于测试和开发工作的SQLite3,MySQL,MariaDB和PostgreSQL。

    控制节点

    root用户

    为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。
    sudo -i

    数据库

    1、登录数据库
    mysql -uroot -p,密码为openstack。

    2、创建nova_api,nova,nova_placement和nova_cell0数据库

    1
    2
    3
    4
    CREATE DATABASE nova_api;
    CREATE DATABASE nova;
    CREATE DATABASE nova_placement;
    CREATE DATABASE nova_cell0;

    3、授权

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'%' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';

    GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'openstack';

    4、退出数据库
    exit;

    服务证书和端点

    1、使admin环境生效
    . admin-openrc

    2、创建nova用户
    openstack user create --domain default --password-prompt nova

    根据提示设置密码为openstack。

    3、添加admin角色给nova用户
    openstack role add --project service --user nova admin

    4、创建nova服务实体
    openstack service create --name nova --description "OpenStack Compute" compute

    5、创建计算服务API endpoints

    1
    2
    3
    4
    5
    openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

    openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

    openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

    服务证书和端点2

    1、创建Placement service user
    openstack user create --domain default --password-prompt placement

    按照提示设置密码为openstack。

    2、添加Placement user到service project,并且赋予admin角色
    openstack role add --project service --user placement admin

    3、创建placement服务实体
    openstack service create --name placement --description "Placement API" placement

    4、创建Placement API服务端点

    1
    2
    3
    4
    5
    openstack endpoint create --region RegionOne placement public http://controller:8778

    openstack endpoint create --region RegionOne placement internal http://controller:8778

    openstack endpoint create --region RegionOne placement admin http://controller:8778

    安装配置组件

    1、安装组件
    apt-get -y install nova-api nova-placement-api nova-conductor nova-consoleauth nova-scheduler nova-novncproxy python-novaclient

    2、备份nova.conf
    mv /etc/nova/nova.conf /etc/nova/nova.conf.bak

    3、vim /etc/nova/nova.conf,新建nova.conf内容为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    [DEFAULT]
    # define own IP
    my_ip = 192.168.56.110
    state_path = /var/lib/nova
    enabled_apis = osapi_compute,metadata
    log_dir = /var/log/nova
    # RabbitMQ connection info
    transport_url = rabbit://openstack:openstack@controller

    [api]
    auth_strategy = keystone

    # Glance connection info
    [glance]
    api_servers = http://controller:9292

    [oslo_concurrency]
    lock_path = $state_path/tmp

    # MariaDB connection info
    [api_database]
    connection = mysql+pymysql://nova:openstack@controller/nova_api

    [database]
    connection = mysql+pymysql://nova:openstack@controller/nova

    # Keystone auth info
    [keystone_authtoken]
    www_authenticate_uri = http://controller:5000
    auth_url = http://controller:5000
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = nova
    password = openstack

    [placement]
    auth_url = http://controller:5000
    os_region_name = RegionOne
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = placement
    password = openstack

    [placement_database]
    connection = mysql+pymysql://nova:openstack@controller/nova_placement

    [wsgi]
    api_paste_config = /etc/nova/api-paste.ini

    4、更改权限
    chmod 640 /etc/nova/nova.conf

    chgrp nova /etc/nova/nova.conf

    5、生成数据库表结构

    1
    2
    3
    4
    su -s /bin/bash nova -c "nova-manage api_db sync"
    su -s /bin/bash nova -c "nova-manage cell_v2 map_cell0"
    su -s /bin/bash nova -c "nova-manage db sync"
    su -s /bin/bash nova -c "nova-manage cell_v2 create_cell --name cell1"

    完成后查看日志:tail /var/log/nova/nova-manage.log
    不放心的话,就登录数据库查看数据。

    6、验证一下cell0和cell1是否被正确注册
    nova-manage cell_v2 list_cells

    7、重启服务,完成安装

    1
    2
    3
    for service in api conductor scheduler consoleauth novncproxy; do
    systemctl restart nova-$service
    done

    8、查看计算服务列表
    openstack compute service list

    计算节点

    本节介绍如何在计算节点上安装和配置Compute服务,该服务支持多个虚拟机管理程序来部署实例或虚拟机(VM)。为简单起见,此配置使用Quick EMUlator(QEMU)虚拟机管理程序,和支持虚拟机硬件加速的KVM扩展。可以按照教程进行小改,以便水平扩展计算节点。

    安装方法主要参考OpenStack Queens : Add Compute Nodes

    root用户

    为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。
    sudo -i

    安装配置

    1、安装组件
    apt-get -y install nova-compute-kvm

    2、备份nova.conf
    mv /etc/nova/nova.conf /etc/nova/nova.conf.bak

    3、vim /etc/nova/nova.conf,新建nova.conf内容为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    [DEFAULT]
    # define own IP address
    my_ip = 192.168.56.111
    state_path = /var/lib/nova
    enabled_apis = osapi_compute,metadata
    log_dir = /var/log/nova
    # RabbitMQ connection info
    transport_url = rabbit://openstack:openstack@controller

    [api]
    auth_strategy = keystone

    # enable VNC
    [vnc]
    enabled = True
    server_listen = 0.0.0.0
    server_proxyclient_address = $my_ip
    novncproxy_base_url = http://controller:6080/vnc_auto.html

    # Glance connection info
    [glance]
    api_servers = http://controller:9292

    [oslo_concurrency]
    lock_path = $state_path/tmp

    # Keystone auth info
    [keystone_authtoken]
    www_authenticate_uri = http://controller:5000
    auth_url = http://controller:5000
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = nova
    password = openstack

    [placement]
    auth_url = http://controller:5000
    os_region_name = RegionOne
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = placement
    password = openstack

    [wsgi]
    api_paste_config = /etc/nova/api-paste.ini

    4、设置权限
    chmod 640 /etc/nova/nova.conf

    chgrp nova /etc/nova/nova.conf

    5、硬件加速(可选)
    egrep -c '(vmx|svm)' /proc/cpuinfo

    如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。

    如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。

    编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:

    1
    2
    3
    [libvirt]
    # ...
    virt_type = qemu

    6、重启nova-compute服务
    systemctl restart nova-compute

    添加计算节点到数据库

    以下操作在controller节点操作。

    1、使admin环境生效
    . admin-openrc

    2、查看计算服务列表
    openstack compute service list

    发现,此时已经多了nova-compute服务。

    3、查看计算节点
    openstack compute service list --service nova-compute

    4、如果没有看到计算节点,那么需要查找计算节点,并且进行注册
    su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"

    添加新的compute节点时,必须在控制器节点上运行nova-manage cell_v2 discover_hosts以注册这些新计算节点。或者,可以在/etc/nova/nova.conf中设置适当的间隔来自动发现和注册节点:

    1
    2
    [scheduler]
    discover_hosts_in_cells_interval = 300

    验证操作

    以下操作在controller节点操作。

    1、使admin环境生效
    . admin-openrc

    2、列出服务组件,以验证每个进程的成功启动和注册
    openstack compute service list

    成功的话可以看到四个服务:nova-scheduler、nova-consoleauth、nova-conductor和nova-compute。

    3、列出Identity服务中的API端点,以验证与Identity服务的连接
    openstack catalog list

    4、列出镜像服务中的镜像,以验证与镜像服务的连接
    openstack image list

    5、检查cells and placement API是否工作正常
    nova-status upgrade check

    控制节点安装计算服务

    1、安装组件
    apt -y install nova-compute-kvm

    2、vim /etc/nova/nova.conf,添加vnc配置:

    1
    2
    3
    4
    5
    6
    # enable VNC
    [vnc]
    enabled = True
    server_listen = 0.0.0.0
    server_proxyclient_address = $my_ip
    novncproxy_base_url = http://controller:6080/vnc_auto.html

    3、硬件加速(可选)
    egrep -c '(vmx|svm)' /proc/cpuinfo

    如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。

    如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。

    编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:

    1
    2
    3
    [libvirt]
    # ...
    virt_type = qemu

    4、重启nova-compute服务
    systemctl restart nova-compute

    5、添加到数据库
    su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"

    6、查看计算节点
    openstack compute service list --service nova-compute

  • 相关阅读:
    contentSize、contentInset和contentOffset区别 分类: iphone开发
    iOS设计模式——Category
    如何更好地限制一个UITextField的输入长度
    UIApplication sharedApplication详细解释-IOS
    IOS --- 对象归档
    iOS 数据持久化之使用NSUserDefaults存储数据
    判断素数 一个数的约数 一个整数的幂次约分
    埃氏筛法
    双六(扩展欧几里得算法)
    矩阵快速幂 模板
  • 原文地址:https://www.cnblogs.com/loufangcheng/p/11883127.html
Copyright © 2011-2022 走看看