計算節點裝機過程當中的問題

  • 現象:Volume Type lvmdriver-1 already exists. (HTTP 409)
問題緣由: 控制節點在執行devstack時已經建立了一個名爲 `lvmdriver-1` 的cinder type。 

問題解決:修改`/opt/stack/devstack/lib/cinder`文件551行,改動以下:

# 修改前
  if is_service_enabled c-api && [[ -n "$CINDER_ENABLED_BACKENDS" ]]; then
        local be be_name
        for be in ${CINDER_ENABLED_BACKENDS//,/ }; do
            be_name=${be##*:}
            openstack --os-region-name="$REGION_NAME" volume type create --property volume_backend_name="${be_name}" ${be_name}
        done
    fi

# 修改後
    if is_service_enabled c-api && [[ -n "$CINDER_ENABLED_BACKENDS" ]]; then
        local be be_name
        for be in ${CINDER_ENABLED_BACKENDS//,/ }; do
            be_name=${be##*:}

            openstack volume type show $be_name || \ 
            openstack --os-region-name="$REGION_NAME" volume type create \
                --property volume_backend_name="${be_name}" ${be_name}
        done
    fi
  • 現象:Didn't find service registered by hostname after 120 seconds
# 問題緣由:配置文件local.conf中rabbit密碼錯誤致使rabbit鏈接失敗

# 問題解決:修改local.conf文件,以下:

# Credentials
ADMIN_PASSWORD=devstack
MYSQL_PASSWORD=root
RABBIT_PASSWORD=password
SERVICE_PASSWORD=devstack
SERVICE_TOKEN=devstack
  • 現象:DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
# 具體日誌信息:
2018-05-03 09:30:06.828 | /usr/local/lib/python2.7/dist-packages/pymysql/cursors.py:166: Warning: (1287, u"'@@tx_isolation' is deprecated and will be removed in a future release. Please use '@@transaction_isolation' instead")
2018-05-03 09:30:06.828 |  result = self._query(query)
2018-05-03 09:30:07.085 | Found 2 cell mappings.
2018-05-03 09:30:07.085 | Skipping cell0 since it does not contain hosts.
2018-05-03 09:30:07.085 | Getting computes from cell 'cell1': 09b55e68-82af-4049-87e0-5036a4c0809b
2018-05-03 09:30:07.085 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 10 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:30:17.087 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 9 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:30:27.089 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 8 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:30:37.100 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 7 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:30:47.110 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 6 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:30:57.118 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 5 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:31:07.123 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 4 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:31:17.129 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 3 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:31:27.139 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 2 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:31:37.150 | WARNING oslo_db.sqlalchemy.engines [None req-07242c5d-e19b-4809-96aa-a7efda12d21a None None] SQL connection failed. 1 attempts left.: DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:31:47.162 | An error has occurred:
2018-05-03 09:31:47.162 | Traceback (most recent call last):
2018-05-03 09:31:47.162 |  File "/opt/stack/nova/nova/cmd/manage.py", line 1868, in main
2018-05-03 09:31:47.162 |    ret = fn(*fn_args, **fn_kwargs)
2018-05-03 09:31:47.162 |  File "/opt/stack/nova/nova/cmd/manage.py", line 1588, in discover_hosts
2018-05-03 09:31:47.163 |    by_service)
2018-05-03 09:31:47.163 |  File "/opt/stack/nova/nova/objects/host_mapping.py", line 257, in discover_hosts
2018-05-03 09:31:47.163 |    by_service)
2018-05-03 09:31:47.163 |  File "/opt/stack/nova/nova/objects/host_mapping.py", line 219, in _check_and_create_host_mappings
2018-05-03 09:31:47.163 |    ctxt, 1)
2018-05-03 09:31:47.163 |  File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 184, in wrapper
2018-05-03 09:31:47.163 |    result = fn(cls, context, *args, **kwargs)
2018-05-03 09:31:47.163 |  File "/opt/stack/nova/nova/objects/compute_node.py", line 397, in get_all_by_not_mapped
2018-05-03 09:31:47.163 |    context, mapped_less_than)
2018-05-03 09:31:47.163 |  File "/opt/stack/nova/nova/db/api.py", line 273, in compute_node_get_all_mapped_less_than
2018-05-03 09:31:47.163 |    mapped_less_than)
2018-05-03 09:31:47.163 |  File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 264, in wrapped
2018-05-03 09:31:47.163 |    with ctxt_mgr.reader.using(context):
2018-05-03 09:31:47.163 |  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
2018-05-03 09:31:47.163 |    return self.gen.next()
2018-05-03 09:31:47.163 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 1028, in _transaction_scope
2018-05-03 09:31:47.163 |    context=context) as resource:
2018-05-03 09:31:47.163 |  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
2018-05-03 09:31:47.163 |    return self.gen.next()
2018-05-03 09:31:47.163 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 633, in _session
2018-05-03 09:31:47.163 |    bind=self.connection, mode=self.mode)
2018-05-03 09:31:47.163 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 398, in _create_session
2018-05-03 09:31:47.163 |    self._start()
2018-05-03 09:31:47.164 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 484, in _start
2018-05-03 09:31:47.164 |    engine_args, maker_args)
2018-05-03 09:31:47.164 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 508, in _setup_for_connection
2018-05-03 09:31:47.164 |    sql_connection=sql_connection, **engine_kwargs)
2018-05-03 09:31:47.164 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/engines.py", line 179, in create_engine
2018-05-03 09:31:47.164 |    test_conn = _test_connection(engine, max_retries, retry_interval)
2018-05-03 09:31:47.164 |  File "/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/engines.py", line 365, in _test_connection
2018-05-03 09:31:47.164 |    six.reraise(type(de_ref), de_ref)
2018-05-03 09:31:47.164 |  File "<string>", line 2, in reraise
2018-05-03 09:31:47.164 | DBConnectionError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on u'127.0.0.1' ([Errno 111] ECONNREFUSED)")
2018-05-03 09:31:47.164 | 
2018-05-03 09:31:47.268 | ++./stack.sh:main:1461                      err_trap
2018-05-03 09:31:47.274 | ++./stack.sh:err_trap:562                  local r=1
2018-05-03 09:31:47.280 | stack.sh failed: full log in /opt/stack/logs/stack.sh.log.2018-05-03-052802
2018-05-03 09:31:47.283 | Error on exit

# 問題緣由:
計算節點應該鏈接的是控制節點的數據庫,可是這裏出現"Can't connect to MySQL server on u'127.0.0.1'"代表計算節點在鏈接本地數據庫,然而本地又沒有安裝mysql數據庫,因此本質緣由是nova配置的數據庫鏈接選項有問題。具體哪裏配置有問題不清楚,網上發現有相同的bug,https://lists.launchpad.net/yahoo-eng-team/msg70399.html  和 https://bugzilla.redhat.com/show_bug.cgi?id=1443214
參見上述網頁,在控制節點執行下列命令:
 stack@controller:/opt/stack/devstack$ nova-manage cell_v2 list_cells
結果以下:
/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py:166: Warning: (1287, u"'@@tx_isolation' is deprecated and will be removed in a future release. Please use '@@transaction_isolation' instead")
  result = self._query(query)
+-------+--------------------------------------+------------------------------------------------+------------------------------------------------------------------+
|  Name |                UUID                |                Transport URL                  |                      Database Connection                        |
+-------+--------------------------------------+------------------------------------------------+------------------------------------------------------------------+
| cell0 | 00000000-0000-0000-0000-000000000000 |                    none:/                    |  mysql+pymysql://root:****@127.0.0.1/nova_cell0?charset=utf8    |
| cell1 | 220faf2d-fab8-4c47-bf02-4270f1e380be | rabbit://stackrabbit:****@192.168.100.30:5672/ | mysql+pymysql://root:****@127.0.0.1/nova_cell1?charset=utf8 |
+-------+--------------------------------------+------------------------------------------------+------------------------------------------------------------------+

能夠發現控制節點cell1的數據庫的接入ip變成127.0.0.1,正常狀況下應該是控制節點的管理網ip,也即192.168.100.30。

# 解決辦法:控制節點執行下列命令
stack@controller:/opt/stack/devstack$ nova-manage cell_v2 update_cell --cell_uuid 220faf2d-fab8-4c47-bf02-4270f1e380be --database_connection mysql+pymysql://root:****@192.168.100.30/nova_cell1?charset=utf8

stack@controller:/opt/stack/devstack$ nova-manage cell_v2 update_cell --cell_uuid 00000000-0000-0000-0000-000000000000 --database_connection mysql+pymysql://root:****@192.168.100.30/nova_cell0?charset=utf8
  • 現象:OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'root'@'192.168.100.30' (using password: YES)")
# 問題緣由:出現"Access denied for user XXXX" 通常多是兩方面的緣由:1)mysql數據庫接入權限的問題;2)用戶名和密碼錯誤;
這裏出現問題的本質緣由是用戶名和密碼錯誤,具體是在上一個解決辦法中將數據庫接入的密碼改爲了****
經過在控制節點執行下列命令能夠發現:
stack@controller:/opt/stack/devstack$ nova-manage cell_v2 list_cells --verbose
/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py:166: Warning: (1287, u"'@@tx_isolation' is deprecated and will be removed in a future release. Please use '@@transaction_isolation' instead")
  result = self._query(query)
+-------+--------------------------------------+----------------------------------------------------+------------------------------------------------------------------+
|  Name |                UUID                |                  Transport URL                    |                      Database Connection                        |
+-------+--------------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| cell0 | 00000000-0000-0000-0000-000000000000 |                      none:///                      |  mysql+pymysql://root:root@127.0.0.1/nova_cell0?charset=utf8    |
| cell1 | 220faf2d-fab8-4c47-bf02-4270f1e380be | rabbit://stackrabbit:password@192.168.100.30:5672/ | mysql+pymysql://root:****@192.168.100.30/nova_cell1?charset=utf8 |
+-------+--------------------------------------+----------------------------------------------------+------------------------------------------------------------------+


# 問題解決:控制節點執行下列命令
stack@controller:/opt/stack/devstack$ nova-manage cell_v2 update_cell --cell_uuid 220faf2d-fab8-4c47-bf02-4270f1e380be --database_connection mysql+pymysql://root:root@192.168.100.30/nova_cell1?charset=utf8

stack@controller:/opt/stack/devstack$ nova-manage cell_v2 update_cell --cell_uuid 00000000-0000-0000-0000-000000000000 --database_connection mysql+pymysql://root:root@192.168.100.30/nova_cell0?charset=utf8
  • 現象: 建立成功後的虛擬機沒法進入控制檯,failed to connect to server (code: 1006)
# 問題緣由:

1. 在devstack安裝過程後能夠經過以下命令查看各個服務:

sinet@compute1:~$ systemctl list-units | grep devstack
  devstack@c-api.service                                                                    loaded    active running  Devstack devstack@c-api.service
  devstack@c-sch.service                                                                    loaded    active running  Devstack devstack@c-sch.service
  devstack@c-vol.service                                                                    loaded    active running  Devstack devstack@c-vol.service
  devstack@n-api.service                                                                    loaded    active running  Devstack devstack@n-api.service
  devstack@n-cpu.service                                                                    loaded    active running  Devstack devstack@n-cpu.service
● devstack@n-net.service                                                                    not-found failed failed    devstack@n-net.service
  devstack@placement-api.service                                                            loaded    active running  Devstack devstack@placement-api.service
  devstack@q-agt.service                                                                    loaded    active running  Devstack devstack@q-agt.service
  system-devstack.slice                                                                    loaded    active active    system-devstack.slice


2. 能夠經過命令 sudo journalctl -u devstack@n-novnc | grep ERROR 查看日誌報錯選項:
sinet@controller:~$ sudo journalctl -u devstack@n-novnc | grep ERROR
[sudo] password for sinet: 
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy Traceback (most recent call last):
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/websockify/websocket.py", line 930, in top_new_client
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    client = self.do_handshake(startsock, address)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/websockify/websocket.py", line 860, in do_handshake
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    self.RequestHandlerClass(retsock, address, self)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/opt/stack/nova/nova/console/websocketproxy.py", line 176, in __init__
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    websockify.ProxyRequestHandler.__init__(self, *args, **kwargs)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/websockify/websocket.py", line 114, in __init__
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    SimpleHTTPRequestHandler.__init__(self, req, addr, server)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    self.handle()
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/websockify/websocket.py", line 581, in handle
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    SimpleHTTPRequestHandler.handle(self)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    self.handle_one_request()
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    method()
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/websockify/websocket.py", line 543, in do_GET
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    if not self.handle_websocket():
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/websockify/websocket.py", line 531, in handle_websocket
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    self.new_websocket_client()
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/opt/stack/nova/nova/console/websocketproxy.py", line 105, in new_websocket_client
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    connect_info = rpcapi.check_token(ctxt, token=token)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/opt/stack/nova/nova/consoleauth/rpcapi.py", line 97, in check_token
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    return cctxt.call(ctxt, 'check_token', token=token)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/client.py", line 169, in call
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    retry=self.retry)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/transport.py", line 123, in _send
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    timeout=timeout, retry=retry)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 566, in send
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    retry=retry)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 555, in _send
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    result = self._waiter.wait(msg_id, timeout)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 447, in wait
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    message = self.waiters.get(msg_id, timeout=timeout)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy  File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 335, in get
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy    'to message ID %s' % msg_id)
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy MessagingTimeout: Timed out waiting for a reply to message ID f6b67778a9e942f2adeaad068a408ece
May 04 22:35:55 controller nova-novncproxy[5933]: ERROR nova.console.websocketproxy 

查看日誌發現應該是配置文件的問題,具體是etc/nova/nova.conf配置文件中「vncserver_proxyclient_address」參數是本地IP,而不是主機的IP;

# 解決辦法:
1. 修改控制節點的local.conf 配置文件,增長以下內容:
# vnc config 
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

2. 修改計算節點的local.conf 配置文件以下:
# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://192.168.100.30:6080/vnc_auto.html"
VNCSERVER_LISTEN=0.0.0.0
VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
相關文章
相關標籤/搜索