• openstack学习笔记6-计算服务安装与配置


    目录:

    0 实验环境

    1 概述

    2 控制节点配置

    2.1 先决条件

    2.2 安装和配置

    2.3 验证

    3 计算节点配置

    3.1 安装组件

    3.2 配置

    3.3 验证

    4 验证计算节点状态

    4.1 查看计算服务节点列表

    4.2 发现计算主机


    0 实验环境

    openstack版本:train

    实验平台:vmware workstation 15.1

    实验虚拟机:控制节点(centos 7.6,2核,4G内存),计算节点(centos 7.6,2核,2G内存)

    操作节点:控制节点和计算节点

    本文涉及的帐号密码:

    RabbitMQ服务用户:openstack:rabbitpass

    Placement服务用户:placement:ppass

    mysql数据库管理员:root:samplepass

    nova数据库用户:nova:dbpass

    nova服务用户:nova:npass

    1 概述

    Compute组件用于托管和管理云计算系统。它是基础设施即服务(IaaS)系统的主要组成部分。主要模块用Python实现。

    compute组件通过keystone服务进行认证,使用placement服务对资源进行跟踪和选择,使用glance服务管理镜像,使用控制面板组件UI方式进行管理。

    2 控制节点配置

    2.1 先决条件

    a)数据库配置,创建了3个数据库nova_api,nova,nova_cell0:

    # mysql -u root -p
    
    MariaDB [(none)]> CREATE DATABASE nova_api;
    MariaDB [(none)]> CREATE DATABASE nova;
    MariaDB [(none)]> CREATE DATABASE nova_cell0;
    
    MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'dbpass';
    MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'dbpass';
    
    MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'dbpass';
    MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'dbpass';
    
    MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'dbpass';
    MariaDB [(none)]>  GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'dbpass';
    
    MariaDB [(none)]>quit;

    b)服务用户和权限设置

    # . admin-openrc
    # openstack user create --domain default --password-prompt nova    //新建用户nova,并设置密码,我设置的是npass
    # openstack role add --project g_service --user nova admin    //设置用户nova在项目g_service中,角色为admin
    # openstack service create --name nova --description "OpenStack Compute" compute    //为openstack创建计算服务

    c)配置服务API端点

    # 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.2 安装和配置

    a)软件包安装

    # yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

    b)编辑配置文件/etc/nova/nova.conf,完成以下几点配置:

    [default]节点:

    [DEFAULT]
    enabled_apis = osapi_compute,metadata
    #使用安装rabbitMQ时创建的用户和密码
    transport_url = rabbit://openstack:rabbitpass@controller:5672/
    #指定节点的ip地址
    my_ip = 192.168.223.11
    use_neutron = True
    #默认计算服务自带防火墙,但是网络也带有防火墙,所以通过这个设置禁止计算服务的防火墙
    firewall_driver = nova.virt.firewall.NoopFirewallDriver

    [api_database]节点:

    [api_database]
    # ...
    connection = mysql+pymysql://nova:dbpass@controller/nova_api

    [database]节点:

    [database]
    # ...
    connection = mysql+pymysql://nova:dbpass@controller/nova

    [api]节点:

    [api]
    # ...
    auth_strategy = keystone

    [keystone_authtoken]节点:

    [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 = g_service
    username = nova
    password = npass

    [vnc]节点:

    [vnc]
    enabled = True
    server_listen = $my_ip
    server_proxyclient_address = $my_ip

    [glance]节点:

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

    [oslo_concurrency]节点:

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

    [placement]节点:

    [placement]
    os_region_name = RegionOne
    project_domain_name = Default
    project_name = g_service
    auth_type = password
    user_domain_name = Default
    auth_url = http://controller:5000/v3
    username = placement
    password = ppass

    c)初始化nova-api数据库

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

    d)配置cell数据库

    # su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova    //注册cell0数据库
    # su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova    //创建cell1

    检查操作是否成功:

    # su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

    e)初始化nova数据库,可能会有warning和deprecated等信息,不用理会:

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

    2.3 配置服务状态

    # systemctl enable --now openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

    3 计算节点配置

    计算服务安装在计算节点,支持多种管理程序和虚拟机类型,比如QEMU和KVM。

    3.1 安装组件

    a)安装openstack源配置

    # yum install centos-release-openstack-train

    b)安装客户端管理工具和自动配置selinux的软件包:

    # yum install python-openstackclient openstack-selinux

    c)安装nova软件包:

    # yum install openstack-nova-compute

    3.2 配置

    编辑配置文件/etc/nova/nova.conf,完成以下几点配置:

    [default]节点:

    [DEFAULT]
    enabled_apis = osapi_compute,metadata
    #使用安装rabbitMQ时创建的用户和密码
    transport_url = rabbit://openstack:rabbitpass@controller
    #指定节点的ip地址
    my_ip = 192.168.223.31
    use_neutron = True
    #默认计算服务自带防火墙,但是网络也带有防火墙,所以通过这个设置禁止计算服务的防火墙
    firewall_driver = nova.virt.firewall.NoopFirewallDriver

    [api]节点:

    [api]
    # ...
    auth_strategy = keystone

    [keystone_authtoken]节点:

    [keystone_authtoken]
    www_authenticate_uri = http://controller:5000
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = g_service
    username = nova
    password = npass

    [vnc]节点:

    [vnc]
    enabled = True
    vncserver_listen = 0.0.0.0
    vncserver_proxyclient_address = $my_ip
    novncproxy_base_url = http://192.168.223.31:6080/vnc_auto.html

    [glance]节点:

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

    [oslo_concurrency]节点:

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

    [placement]节点:

    [placement]
    os_region_name = RegionOne
    project_domain_name = Default
    project_name = g_service
    auth_type = password
    user_domain_name = Default
    auth_url = http://controller:5000/v3
    username = placement
    password = ppass

    3.3 验证

    a)检查硬件是否支持虚拟化:

    # egrep -c '(vmx|svm)' /proc/cpuinfo

    如果返回的结果是0,则必须配置使用QEMU替代KVM,编辑配置文件/etc/nova/nova.conf的节点[libvirt]

    [libvirt]
    # ...
    virt_type = qemu

    b)设置服务状态:

    # systemctl enable --now libvirtd.service openstack-nova-compute.service

    4 验证计算节点状态

    注意:本操作在控制节点进行

    4.1 查看计算服务节点列表

    # openstack compute service list --service nova-compute

    4.2 发现计算主机

    # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

     注意:当添加了新的计算节点,必须运行上一条命令来进行注册。也可以让程序自动发现,在/etc/nova/nova.conf中进行设置:

    [scheduler]
    #设置间隔300秒自动发现
    discover_hosts_in_cells_interval = 300
  • 相关阅读:
    maven打包额外的资源文件
    阿里巴巴的程序员等级
    sql是最成功的第四代语言
    nginx的配置与应用
    浏览器的同源策略与跨域问题的解决方案
    算法:二分查找(基础)
    动态类型语言和静态类型语言
    【VS开发】单文档中往视图中加入控件
    【VS开发】使用VS2010创建MFC ActiveX工程项目
    【VS开发】使用VS2010创建MFC ActiveX工程项目
  • 原文地址:https://www.cnblogs.com/learn2teach/p/12426457.html
Copyright © 2020-2023  润新知