OpenStack stein安裝(五)nova on controller

  用OpenStack計算來託管和管理雲計算系統。OpenStack計算是基礎設施即服務(IaaS)系統的重要組成部分。主要模塊是用Python實現的。
  OpenStack計算與OpenStack標識進行交互,用於身份驗證,用於資源目錄跟蹤和選擇的OpenStack放置,用於磁盤和服務器映像的OpenStack映像服務,以及用於用戶和管理界面的OpenStack儀表板。圖像訪問受到項目和用戶的限制;每一個項目的配額是有限的(例如,實例的數量)。OpenStack計算能夠在標準硬件上水平伸縮,並下載映像來啓動實例。
  OpenStack計算包括如下組件:html

  • nova-api service
    接受並響應最終用戶compute API調用。該服務支持OpenStack計算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
      處理至關複雜。基本上,守護進程接受隊列中的操做並執行一系列系統命令,好比啓動一個KVM實例並更新它在數據庫中的狀態.
  • nova-scheduler service
    從隊列中獲取一個虛擬機實例請求,並肯定它運行在哪一個計算服務器主機上。
  • nova-conductor module
    協調nova-compute服務和數據庫之間的交互。它消除了nova-compute服務對雲數據庫的直接訪問。nova-conductor模塊水平伸縮。可是,不要在運行nova-compute服務的節點上部署它。
  • nova-consoleauth daemon
    爲控制檯代理提供的用戶受權令牌。參見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消息隊列實現
  • SQL database
    存儲雲基礎設施的大多數構建時和運行時狀態,包括:
    • Available instance types
    • Instances in use
    • Available networks
    • Projects

理論上,OpenStack計算能夠支持SQLAlchemy支持的任何數據庫。用於測試和開發工做的公共數據庫是SQLite三、MySQL、MariaDB和PostgreSQL。html5

準備工做

安裝以前咱們須要先建庫,賬號和api endpoint.mysql

  1. 在數據庫服務器上執行以下步驟:
    ○ 使用root鏈接數據庫服務器:
        $ mysql -u root -p root123
    ○ 創建nova_api、nova和nova_cell0數據庫:
        MariaDB [(none)]> CREATE DATABASE nova_api;
        MariaDB [(none)]> CREATE DATABASE nova;
        MariaDB [(none)]> CREATE DATABASE nova_cell0;
    ○ 賦予賬號nova對庫的操做權限:
        MariaDB [(none)]>   GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
        MariaDB [(none)]>   GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
        MariaDB [(none)]>   GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nova123'
  2. 加載admin的訪問憑據,執行管理員命令:
    $ . admin-openrc
  3. 創建計算服務的憑據:sql

    ○ 創建nova用戶:
        $ openstack user create --domain default --password-prompt nova
    
        User Password:nova123
        Repeat User Password:nova123
        +---------------------+----------------------------------+
        | Field               | Value                            |
        +---------------------+----------------------------------+
        | domain_id           | default                          |
        | enabled             | True                             |
        | id                  | 8a7dbf5279404537b1c7b86c033620fe |
        | name                | nova                             |
        | options             | {}                               |
        | password_expires_at | None                             |
        +---------------------+----------------------------------+
    ○ 給用戶nova添加admin角色:
        $ openstack role add --project service --user nova admin
     
        注意:這個命令沒有輸出
    ○ 創建nova服務實體:
        $ openstack service create --name nova --description "OpenStack Compute" compute
    
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | OpenStack Compute                |
        | enabled     | True                             |
        | id          | 060d59eac51b4594815603d75a00aba2 |
        | name        | nova                             |
        | type        | compute                          |
        +-------------+----------------------------------+
  4. Create the Compute API service endpoints:數據庫

    $ openstack endpoint create --region RegionOne compute public http://stack.flex.net:8774/v2.1
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | 3c1caa473bfe4390a11e7177894bcc7b          |
    | interface    | public                                    |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://stack.flex.net:8774/v2.1               |
    +--------------+-------------------------------------------+
    
    $openstack endpoint create --region RegionOne compute internal http://stack.flex.net:8774/v2.1
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | e3c918de680746a586eac1f2d9bc10ab          |
    | interface    | internal                                  |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://stack.flex.net:8774/v2.1               |
    +--------------+-------------------------------------------+
    
    $ openstack endpoint create --region RegionOne compute admin http://stack.flex.net:8774/v2.1
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | 38f7af91666a47cfb97b4dc790b94424          |
    | interface    | admin                                     |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://stack.flex.net:8774/v2.1               |
    +--------------+-------------------------------------------+

    安裝配置組件

  5. 安裝包:
    # yum install openstack-nova-api openstack-nova-conductor \
      openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
  6. 編輯/etc/nova/nova.conf文件完成下列需求:api

    ○ 在[DEFAULT]區域, 充計compute和元數據API:
        [DEFAULT]
        # ...
        enabled_apis = osapi_compute,metadata
    
    ○ 在[api_database] 和 [database] sections,配置數據庫的訪問:
        [api_database]
        # ...
        connection = mysql+pymysql://nova:nova123@dbs.flex.net/nova_api
    
        [database]
        # ...
        connection = mysql+pymysql://nova:nova123@dbs.flex.net/nova
    
    ○ 在[DEFAULT]區域, 配置RabbitMQ消息隊列訪問:
        [DEFAULT]
        # ...
        transport_url = rabbit://openstack:openstack123@dbs.flex.net
    
    ○ 在[api]和[keystone_authtoken]區域, 配置訪問認證服務:
        [api]
        # ...
        auth_strategy = keystone
    
        [keystone_authtoken]
        # ...
        auth_url = http://stack.flex.net:5000/v3
        memcached_servers = dbs.flext.net:11211
        auth_type = password
        project_domain_name = Default
        user_domain_name = Default
        project_name = service
        username = nova
        password = nova123
         
        注意: 註釋或移除在掉在[keystone_authtoken]區域中的其它的選項.
    
    ○ 在[DEFAULT]區域, 配置管理接口的IP:
        [DEFAULT]
        # ...
        my_ip = 192.168.207.2  #此處爲控制節點的管理IP地址
    ○ 在[DEFAULT]區域, 充許支持的網絡:
        [DEFAULT]
        # ...
        use_neutron = true
        firewall_driver = nova.virt.firewall.NoopFirewallDriver
    
        缺省的,計算節點使用一內部的防火牆驅動,由於網絡服務包含了一個防火牆驅動,你必須禁用防火牆驅動並使用nova.virt.firewall.NoopFirewallDriver firewall driver
    ○ 在[vnc]區域, 使用管理接口的IP作爲vnc代理使用:
        [vnc]
        enabled = true
        # ...
        server_listen = $my_ip
        server_proxyclient_address = $my_ip
    
    ○ 在[glance]區域, 配置鏡像服務api的位置:
        [glance]
        # ...
        api_servers=http://stack.flex.net:9292
    
    ○ 在[oslo_concurrency]區域, 配置鎖定的路徑:
        [oslo_concurrency]
        # ...
        lock_path = /var/lib/nova/tmp
    
    ○ 在[placement]區域, 配置訪問placement服務:
        [placement]
        # ...
        region_name = RegionOne
        project_domain_name = Default
        project_name = service
        auth_type = password
        user_domain_name = Default
        auth_url = http://stack.flex.net:5000/v3
        username = placement
        password = placement123
    
        注意: 註釋或移除在掉在[placement]區域中的其它的選項
    
    ○ 因爲一個bug, 你必須充許訪問placement API, 添加下列的配置到/etc/httpd/conf.d/00-nova-placement-api.conf:
        <Directory /usr/bin>
           <IfVersion >= 2.4>
              Require all granted
           </IfVersion>
           <IfVersion < 2.4>
              Order allow,deny
              Allow from all
           </IfVersion>
        </Directory>
    
    ○ Restart the httpd service:
        # systemctl restart httpd
  7. Populate the nova-api database:
    # su -s /bin/sh -c "nova-manage api_db sync" nova
  8. Register the cell0 database:
    # su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
  9. Create the cell1 cell:
    # su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
    109e1d4b-536a-40d0-83c6-5f121b82b650
  10. Populate the nova database:
    # su -s /bin/sh -c "nova-manage db sync" nova
  11. Verify nova cell0 and cell1 are registered correctly:
    # su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
    +-------+--------------------------------------+
    | Name  | UUID                                 |
    +-------+--------------------------------------+
    | cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 |
    | cell0 | 00000000-0000-0000-0000-000000000000 |
    +-------+--------------------------------------+

    安成安裝

    ○ 容許系統引導時自動啓動服務並啓動服務:
      # systemctl enable openstack-nova-api.service  \
       openstack-nova-scheduler.service \
       openstack-nova-conductor.service \
       openstack-nova-novncproxy.service
      # systemctl start openstack-nova-api.service \
       openstack-nova-scheduler.service \
       openstack-nova-conductor.service \
       openstack-nova-novncproxy.service
相關文章
相關標籤/搜索