Ho provato a installare OpenStack Icehouse su CentOS per quasi una settimana (dal momento che lo sto facendo per la prima volta, ci è voluta una settimana per completare l'intera installazione e configurazione). Anche se ho seguito la documentazione ufficiale, ho dovuto comunque fare riferimento a vari forum, incluso il sito di supporto di openstack, per risolvere gli errori che mi hanno infastidito durante il processo di installazione. Quindi ho pensato di catturare tutti quegli errori e le soluzioni che hanno funzionato per me in questo articolo. Puoi saltare per vedere alcuni errori e soluzioni che ho riscontrato durante l'installazione dei servizi Keystone, Glance e Nova. Si spera che possa essere utile a qualcuno.
Bene, eccone altri...
Errore:il server neutron non si è avviato e no log è stato scritto: neutron dead ma il file pid esiste
# service neutron-server start # service neutron-server status neutron dead but pid file exists
Soluzione:
In genere, dopo aver installato i servizi keystone, colpo d'occhio, nova, devi creare un database corrispondente in MySQL (di solito i database vengono creati manualmente). Ma il servizio di neutroni non lo richiede, poiché il servizio popolerà automaticamente il database. Tuttavia, non si è comportato in questo modo e ho dovuto eseguire manualmente "neutron-db-manage ' prima di avviare 'neutron-server'.
Nota: Secondo la documentazione ufficiale, si consiglia di avviare manualmente il neutron-server prima di sincronizzare il database. Dovresti seguire i passaggi seguenti solo se il servizio non si avvia.
Esegui i comandi seguenti per configurare i plugin di rete
# openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin neutron.plugins.ml2.plugin.Ml2Plugin # openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
Ora popola il database dei neutroni...
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head" neutron
Prova ad avviare neutron-server. Ha funzionato per me.
ERRORE:il server ha commesso un errore o non è in grado di eseguire l'operazione richiesta. (HTTP 500)
L'errore precedente è stato generato quando ho eseguito il comando di avvio e rete di nova.
[root@gcontroller]#nova --debug network-create tg-network --bridge br100 --multi-host T --fixed-range-v4 10.180.14.160/27
Soluzione:
Prova a eseguire il comando seguente...
[root@gcontroller]#nova-manage network create tg-network --multi_host=T --fixed_range_v4=10.180.14.160/27 --bridge=br100 --num_networks=1 --network_size=256
Errore:NetworkNotCreated:il bridge è necessario per creare una rete
[root@gcontroller]# nova-manage network create tg-network --multi_host=T --bridge_interface=br100 --fixed_range_v4=10.180.14.160/27 Command failed, please check log for more info
Controlla il registro degli errori per ulteriori informazioni...
[root@gcontroller]#tailf /var/log/nova/nova-manage.log 2015-02-06 18:33:07.656 5080 CRITICAL nova [req-750edab1-9736-4cff-9395-e596f316e596 None None] NetworkNotCreated: bridge is required to create a network.
Soluzione:
Come dice il messaggio di errore sopra, dovresti specificare bridge_interface per creare una rete. Quindi il comando va come di seguito..Cerca '–bridge_interface=br100 '
[root@gcontroller]#nova-manage network create tg-network --multi_host=T --fixed_range_v4=10.180.14.160/27 --bridge_interface=br100 --num_networks=1 --network_size=256 [root@gcontroller]# nova net-list +--------------------------------------+---------+------------------+ | ID | Label | CIDR | +--------------------------------------+---------+------------------+ | 60dfd46a-4649-4758-8b8d-88cc562b9b39 | tg-network | 10.180.14.160/27 | +--------------------------------------+---------+------------------+
Errore:è necessaria una versione successiva di pyparsing – Requirement.parse('pyparsing>=2.0.1')
# neutron net-create ext-net --shared --router:external=True (pyparsing 1.5.6 (/usr/lib/python2.6/site-packages), Requirement.parse('pyparsing>=2.0.1')) 'Namespace' object has no attribute 'debug'
Soluzione:
È chiaro che dovresti installare una versione successiva di pyparsing. Il modo più semplice per installare qualsiasi modulo Python è usare "pip ' o 'installazione_facile '.
easy_install pyparsing
Ma sai, a volte la compilazione e l'installazione del modulo funzioneranno. In questi casi, puoi scaricare l'ultima versione di pyparsing qui.
[root@gcontroller pyparsing-2.0.1]# python setup.py build running build running build_py creating build creating build/lib copying pyparsing.py -> build/lib [root@gcontroller pyparsing-2.0.1]# python setup.py install running install running build running build_py running install_lib copying build/lib/pyparsing.py -> /usr/lib/python2.6/site-packages byte-compiling /usr/lib/python2.6/site-packages/pyparsing.py to pyparsing.pyc running install_egg_info Writing /usr/lib/python2.6/site-packages/pyparsing-2.0.1-py2.6.egg-info
Errore:INFO nova.wsgi [-] Arresto del server WSGI | INFO nova.openstack.common.service [-] Catturato SIGTERM, in uscita | [Errno 111] Connessione rifiutata
Ho ricevuto l'errore precedente quando ho eseguito uno dei comandi nova.
[root@gcontroller]# nova net-list ERROR: [Errno 111] Connection refused
I file di registro in /var/log/nova ha rivelato l'errore di cui sopra.
INFO nova.wsgi [-] Stopping WSGI server. INFO nova.wsgi [-] WSGI server has stopped. INFO nova.wsgi [-] WSGI server has stopped. INFO nova.wsgi [-] WSGI server has stopped. INFO nova.openstack.common.service [-] Caught SIGTERM, exiting
Soluzione:
Ogni volta che viene visualizzato l'errore "Connessione rifiutata", è chiaro che uno dei servizi necessari non funziona correttamente. Dopo il debug, ho capito che quando ho avviato "openstack-nova-metadata-api ‘, uccide ‘openstack-nova-api ' servizio. Il motivo era che openstack-nova-api stava già eseguendo "metadata-api" insieme ad esso e quando ho avviato "openstack-nova-metadata-api" separatamente, ha ucciso l'altro servizio.
Per risolvere il problema,
- $vi /etc/nova/nova.conf
- Cerca "enabled_apis ' e il suo valore 'ec2,osapi_compute,metadata '
- Rimuovi "metadata" da "enabled_apis"
- Ora, sei a posto per iniziare entrambi "openstack-nova-api ' e 'openstack-nova-metadata-api '. Entrambi i servizi verranno eseguiti singolarmente.
Nel caso, se desideri avviare 'metadata-api' insieme a 'openstack-nova-api', lascia 'enabled_apis' con valori come 'ec2,osapi_compute,metadata' e interrompi 'openstack-nova-metadata-api ' dall'avvio durante l'avvio del sistema. Per farlo, puoi semplicemente eseguire i seguenti comandi:
$ chkconfig openstack-nova-metadata-api off $ chkconfig openstack-nova-api on
Errore:iptables-restore v1.4.6:indirizzo IP errato "gcompute"
Quanto sopra si è verificato quando ho provato ad avviare nova-network sul mio nodo di calcolo. I file di registro in /var/log/nova ha rivelato il messaggio di cui sopra.
Soluzione:
- Apri /etc/nova/nova.conf e cerca 'mio_ip ' attributo.
- Assicurati "mio_ip ' contiene indirizzo IP come valore e non hostname o FQDN o localhost . Nel mio caso, era FQDN del nodo di calcolo. L'ho cambiato in indirizzo IP.
- Ora riavvia openstack-nova-network servizio e dovrebbe funzionare come previsto.
ERRORE:quota superata per istanze:richiesta 1, ma già utilizzato 10 istanze su 10 (HTTP 413)
Bene, dovresti cambiare il limite di quota predefinito per l'avvio della nuova istanza. Per visualizzare i limiti di quota predefiniti, esegui il comando seguente.
[root@gcontroller]# nova quota-defaults +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 10 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | +-----------------------------+-------+
Il comando seguente ti consentirà di impostare un nuovo limite di quota.
[root@gcontroller]# nova quota-class-update --instances 35 default [root@gcontroller]# nova quota-defaults +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 35 | | cores | 20 | | ram | 51200 | | floating_ips | 10 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | +-----------------------------+-------+
Cirros Image è avviato e attivo, ma qual è il nome utente e la password per accedere al terminale?
Se hai avviato un'istanza utilizzando l'immagine Cirros (questa è la più semplice per testare la tua configurazione) e desideri accedere al terminale della nuova istanza, esegui un ssh utilizzando il nome utente come "cirros" e la password come "cubswin:)".
#ssh [email protected]
Impossibile accedere alla dashboard di Openstack
Vedi “Qualcosa è andato storto! Si è verificato un errore imprevisto. Prova ad aggiornare la pagina" quando si accede alla dashboard di openstack?
Soluzione:
Verifica di aver impostato i valori corretti per gli attributi seguenti in '/etc/openstack-dashboard/local_settings '
OPENSTACK_HOST = "gcontroller.org.in" OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST OPENSTACK_KEYSTONE_DEFAULT_ROLE = "admin"
Nel mio caso, ho dovuto cambiare ‘OPENSTACK_KEYSTONE_DEFAULT_ROLE =“_member_ “ ‘ a ‘OPENSTACK_KEYSTONE_DEFAULT_ROLE =“amministratore “ '
[errore] SuspiciousOperation:intestazione HTTP_HOST non valida (potrebbe essere necessario impostare ALLOWED_HOSTS)
Soluzione:
Devi impostare ALLOWED_HOSTS attributo in '/etc/openstack-dashboard/local_settings '. Il valore di ALLOWED_HOSTS deve contenere anche l'indirizzo IP del nodo controller (il nodo che esegue il servizio dashboard).
ALLOWED_HOSTS = ['10.180.5.50', '10.180.5.49', '10.180.10.132']