溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

OpenStack stein安裝(五)nova on controller

發(fā)布時間:2020-08-14 04:00:52 來源:網(wǎng)絡(luò) 閱讀:558 作者:zhaolinew 欄目:系統(tǒng)運維

  用OpenStack計算來托管和管理云計算系統(tǒng)。OpenStack計算是基礎(chǔ)設(shè)施即服務(wù)(IaaS)系統(tǒng)的重要組成部分。主要模塊是用Python實現(xiàn)的。
  OpenStack計算與OpenStack標(biāo)識進行交互,用于身份驗證,用于資源目錄跟蹤和選擇的OpenStack放置,用于磁盤和服務(wù)器映像的OpenStack映像服務(wù),以及用于用戶和管理界面的OpenStack儀表板。圖像訪問受到項目和用戶的限制;每個項目的配額是有限的(例如,實例的數(shù)量)。OpenStack計算可以在標(biāo)準硬件上水平伸縮,并下載映像來啟動實例。
  OpenStack計算包括以下組件:

  • nova-api service
    接受并響應(yīng)最終用戶compute API調(diào)用。該服務(wù)支持OpenStack計算API。它執(zhí)行一些策略并啟動大多數(shù)編排活動,例如運行一個實例。
  • nova-api-metadata service
    接受來自實例的元數(shù)據(jù)請求。在使用nova-network安裝以多主機模式運行時,通常使用nova-api-metadata服務(wù)。
  • nova-compute service
    一個工作守護進程,它通過管理程序api創(chuàng)建和終止虛擬機實例。例如:
    • XenAPI for XenServer/XCP
    • libvirt for KVM or QEMU
    • VMwareAPI for VMware
      處理相當(dāng)復(fù)雜?;旧希刈o進程接受隊列中的操作并執(zhí)行一系列系統(tǒng)命令,比如啟動一個KVM實例并更新它在數(shù)據(jù)庫中的狀態(tài).
  • nova-scheduler service
    從隊列中獲取一個虛擬機實例請求,并確定它運行在哪個計算服務(wù)器主機上。
  • nova-conductor module
    協(xié)調(diào)nova-compute服務(wù)和數(shù)據(jù)庫之間的交互。它消除了nova-compute服務(wù)對云數(shù)據(jù)庫的直接訪問。nova-conductor模塊水平伸縮。但是,不要在運行nova-compute服務(wù)的節(jié)點上部署它。
  • nova-consoleauth daemon
    為控制臺代理提供的用戶授權(quán)令牌。參見nova-novncproxy和nova-xvpvncproxy。要使控制臺代理工作,必須運行此服務(wù)。您可以對集群配置中的單個nova-consoleauth服務(wù)運行這兩種類型的代理。
  • nova-novncproxy daemon
    提供一個代理,用于通過VNC連接訪問正在運行的實例。支持基于瀏覽器的novnc客戶端。
  • nova-spicehtml5proxy daemon
    提供一個代理,用于通過SPICE連接訪問正在運行的實例。支持基于瀏覽器的HTML5客戶端。
  • nova-xvpvncproxy daemon
    提供一個代理,用于通過VNC連接訪問正在運行的實例。支持特定于openstack的Java客戶機。
  • The queue
    用于在守護進程之間傳遞消息的中心集線器。通常用RabbitMQ實現(xiàn),也可以用另一個AMQP消息隊列實現(xiàn)
  • SQL database
    存儲云基礎(chǔ)設(shè)施的大多數(shù)構(gòu)建時和運行時狀態(tài),包括:
    • Available instance types
    • Instances in use
    • Available networks
    • Projects

理論上,OpenStack計算可以支持SQLAlchemy支持的任何數(shù)據(jù)庫。用于測試和開發(fā)工作的公共數(shù)據(jù)庫是SQLite3、MySQL、MariaDB和PostgreSQL。

準備工作

安裝之前我們需要先建庫,帳號和api endpoint.

  1. 在數(shù)據(jù)庫服務(wù)器上執(zhí)行如下步驟:
    ○ 使用root連接數(shù)據(jù)庫服務(wù)器:
        $ mysql -u root -p root123
    ○ 建立nova_api、nova和nova_cell0數(shù)據(jù)庫:
        MariaDB [(none)]> CREATE DATABASE nova_api;
        MariaDB [(none)]> CREATE DATABASE nova;
        MariaDB [(none)]> CREATE DATABASE nova_cell0;
    ○ 賦予帳號nova對庫的操作權(quán)限:
        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的訪問憑據(jù),執(zhí)行管理員命令:
    $ . admin-openrc
  3. 建立計算服務(wù)的憑據(jù):

    ○ 建立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服務(wù)實體:
        $ 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文件完成下列需求:

    ○ 在[DEFAULT]區(qū)域, 充計compute和元數(shù)據(jù)API:
        [DEFAULT]
        # ...
        enabled_apis = osapi_compute,metadata
    
    ○ 在[api_database] 和 [database] sections,配置數(shù)據(jù)庫的訪問:
        [api_database]
        # ...
        connection = mysql+pymysql://nova:nova123@dbs.flex.net/nova_api
    
        [database]
        # ...
        connection = mysql+pymysql://nova:nova123@dbs.flex.net/nova
    
    ○ 在[DEFAULT]區(qū)域, 配置RabbitMQ消息隊列訪問:
        [DEFAULT]
        # ...
        transport_url = rabbit://openstack:openstack123@dbs.flex.net
    
    ○ 在[api]和[keystone_authtoken]區(qū)域, 配置訪問認證服務(wù):
        [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]區(qū)域中的其它的選項.
    
    ○ 在[DEFAULT]區(qū)域, 配置管理接口的IP:
        [DEFAULT]
        # ...
        my_ip = 192.168.207.2  #此處為控制節(jié)點的管理IP地址
    ○ 在[DEFAULT]區(qū)域, 充許支持的網(wǎng)絡(luò):
        [DEFAULT]
        # ...
        use_neutron = true
        firewall_driver = nova.virt.firewall.NoopFirewallDriver
    
        缺省的,計算節(jié)點使用一內(nèi)部的防火墻驅(qū)動,因為網(wǎng)絡(luò)服務(wù)包含了一個防火墻驅(qū)動,你必須禁用防火墻驅(qū)動并使用nova.virt.firewall.NoopFirewallDriver firewall driver
    ○ 在[vnc]區(qū)域, 使用管理接口的IP做為vnc代理使用:
        [vnc]
        enabled = true
        # ...
        server_listen = $my_ip
        server_proxyclient_address = $my_ip
    
    ○ 在[glance]區(qū)域, 配置鏡像服務(wù)api的位置:
        [glance]
        # ...
        api_servers=http://stack.flex.net:9292
    
    ○ 在[oslo_concurrency]區(qū)域, 配置鎖定的路徑:
        [oslo_concurrency]
        # ...
        lock_path = /var/lib/nova/tmp
    
    ○ 在[placement]區(qū)域, 配置訪問placement服務(wù):
        [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]區(qū)域中的其它的選項
    
    ○ 由于一個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 |
    +-------+--------------------------------------+
    安成安裝
    ○ 允許系統(tǒng)引導(dǎo)時自動啟動服務(wù)并啟動服務(wù):
      # 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
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI