webentwicklung-frage-antwort-db.com.de

Wie stelle ich eine OpenStack-Cloud mit Juju bereit?

Ich möchte eine Testwolke in Betrieb nehmen, um mich auf eine mögliche Bereitstellung von 12.04 vorzubereiten. Ich habe ein bisschen mit der UEC rumgespielt, aber es war viel schwieriger, irgendetwas Nützliches als Grundierung für den neuen Stack zu finden. Es gibt eine generische Dokumentation zu Diablo, aber wahrscheinlich gibt es bereits viele nützliche Teile in Ubuntu, mit denen eine bestimmte Anleitung Zeit sparen könnte.

Mein Budget umfasst auch nicht die 4 bis 6.000 USD, um einen kleinen Cluster mit Unterstützung von Canonical zum Laufen zu bringen.

15
Bryan Agee

OpenStack installieren

Wenn Sie schnell loslegen möchten, gehen Sie stattdessen hier:

Diese Antwort gibt einen detaillierteren Einblick in die Verwendung von Juju mit OpenStack.

Umfang

Die OpenStack-Plattform ist leistungsfähig und vielseitig einsetzbar. Dieser Abschnitt der Dokumentation befasst sich hauptsächlich mit der Bereitstellung eines "Standard" -Systems, auf dem OpenStack ausgeführt wird, unter Verwendung von Canonical-Komponenten wie MAAS, Juju und Ubuntu. Gegebenenfalls werden andere Methoden und Software erwähnt.

Annahmen

  1. Verwendung von MAAS - Befolgen Sie zuerst diese Anweisungen.
  2. Verwendung von Juju
  3. Lokale Netzwerkkonfiguration - In diesem Dokument wird davon ausgegangen, dass Sie über eine angemessene lokale Netzwerkkonfiguration verfügen, einschließlich separater Schnittstellen für den Zugriff auf die OpenStack-Cloud. Ideale Netzwerke sind in der [MAAS] [MAAS-Dokumentation für OpenStack] beschrieben.

Installation planen

Vor der Bereitstellung von Diensten ist es sehr nützlich, eine Bestandsaufnahme der verfügbaren Ressourcen und ihrer Verwendung vorzunehmen. OpenStack besteht aus einer Reihe von miteinander verbundenen Diensten (Nova, Swift usw.), die unterschiedliche Anforderungen an die Hosts stellen. Beispielsweise hat der Dienst Swift, der Objektspeicher bereitstellt, eine andere Anforderung als der Nova-Dienst, der Rechenressourcen bereitstellt.

Die Mindestanforderungen für die einzelnen Dienste und Empfehlungen sind im offiziellen OpenStack Operations Guide aufgeführt

Die empfohlene Zusammensetzung von Knoten für die Bereitstellung von OpenStack mit MAAS und Juju lautet, dass alle Knoten im System in der Lage sein sollten, BELIEBIGE der Dienste auszuführen. Dies ist eine bewährte Methode für die Robustheit des Systems. Da ein physischer Knoten ausfallen sollte, kann ein anderer als Ersatz für ihn verwendet werden. Dies gilt natürlich auch für Hardwareanforderungen wie zusätzliche Netzwerkschnittstellen.

Wenn Sie aus Gründen der Wirtschaftlichkeit oder aus anderen Gründen unterschiedliche Hardwarekonfigurationen verwenden, sollten Sie beachten, dass sich Ihre Fähigkeit zur Überwindung von Hardwarefehlern verringert. Es ist auch erforderlich, Bereitstellungen auf bestimmte Knoten auszurichten - siehe Abschnitt in MAAS-Dokumentation zu Tags .

Erstellen Sie die OpenStack-Konfigurationsdatei

Wir werden Juju-Charms verwenden, um die Komponenten von OpenStack bereitzustellen. Jeder Charme umfasst alles, was zum Einrichten eines bestimmten Dienstes erforderlich ist. Die einzelnen Dienste verfügen jedoch über viele Konfigurationsoptionen, von denen wir einige ändern möchten.

Um diese Aufgabe einfacher und reproduzierbarer zu machen, erstellen wir eine separate Konfigurationsdatei mit den entsprechenden Optionen für alle Dienste. Dies ist in einem Standard-YAML-Format geschrieben ( siehe www.yaml.org, falls Ihnen dies nicht bekannt ist ).

Hier ist ein Beispiel für eine openstack-config.yaml:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

Für alle Dienste können wir den openstack-Origin so konfigurieren, dass er auf eine Installationsquelle verweist. In diesem Fall verlassen wir uns auf den Standard, der auf die relevanten Quellen für das Ubuntu 14.04 LTS Trusty-Release verweist. Weitere Informationen zur Konfiguration der einzelnen Dienste finden Sie in dieses Dokument .

Andere Konfigurationen

Für die Bereitstellung der OpenStack-Dienste sind andere Einstellungen und Konfigurationsoptionen möglich. Diese sind in der Dokumentation der einzelnen von Juju verwendeten Charms detailliert aufgeführt und können im Online Juju Charm Store eingesehen und über das Suchfeld oben links in nach dem Charm gesucht werden Die Seite. Die Konfigurationseinstellungen werden dann unter "Konfiguration" auf der Hauptseite wie folgt aufgeführt:

enter image description here

OpenStack mit Juju bereitstellen

Nachdem die Konfiguration definiert wurde, können wir Juju verwenden, um die Dienste bereitzustellen und zu verknüpfen.

Initialisierung von Juju

Juju erfordert eine minimale Menge an Setup. In diesem Fall wird davon ausgegangen, dass es bereits für die Zusammenarbeit mit Ihrem MAAS-Cluster konfiguriert wurde (weitere Informationen hierzu finden Sie im [Juju-Installationshandbuch] [juju_install].

Erstens müssen wir Bilder und Werkzeuge abrufen, die Juju verwenden wird:

juju sync-tools --debug

Dann können wir die Instanz bootstrap erstellen:

juju bootstrap --upload-tools --debug

Wir verwenden den Upload-Tools-Schalter, um die lokalen Versionen der Tools zu verwenden, die wir gerade abgerufen haben. Der Debug-Schalter gibt eine ausführliche Ausgabe aus, die nützlich sein kann. Dieser Vorgang kann einige Minuten dauern, da Juju eine Instanz erstellt und die Tools installiert. Wenn es fertig ist, können Sie den Status des Systems mit dem folgenden Befehl überprüfen:

juju status

Dies sollte ungefähr so ​​aussehen:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

Stellen Sie die OpenStack Charms bereit

Nachdem der Juju-Knotenbootstrapaktiv ist, können wir die Dienste bereitstellen, die für die OpenStack-Installation erforderlich sind. Um diese Dienste bei der Bereitstellung ordnungsgemäß zu konfigurieren, verwenden wir die zuvor definierte Konfigurationsdatei, indem wir sie zusammen mit dem Schalter --config bei jedem Bereitstellungsbefehl übergeben. Ersetzen Sie gegebenenfalls den Namen und den Pfad Ihrer Konfigurationsdatei.

Es ist nützlich, aber nicht unbedingt erforderlich, die Dienste in der unten angegebenen Reihenfolge bereitzustellen. Es wird außerdem dringend empfohlen, ein zusätzliches Terminalfenster zu öffnen und den Befehl juju debug-log auszuführen. Dadurch werden die Protokolle aller ausgeführten Dienste ausgegeben. Dies kann bei der Fehlerbehebung hilfreich sein.

Es wird außerdem empfohlen, regelmäßig den Befehl juju status auszuführen, um zu überprüfen, ob die einzelnen Dienste installiert wurden und ordnungsgemäß ausgeführt werden. Juju wird automatisch versuchen, die bestmögliche Version des Charms aus dem Online Charm Store zu holen. Wenn Sie von einem eingeschränkten oder geschlossenen Netzwerk aus installieren, können Sie die erforderlichen Charms vorab abrufen. Siehe [die Dokumentation für Offline-Charms] [charms-offline].

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

Fügen Sie Beziehungen zwischen den OpenStack-Diensten hinzu

Obwohl die Dienste jetzt bereitgestellt werden, sind sie noch nicht miteinander verbunden. Jeder Dienst ist derzeit isoliert vorhanden. Wir verwenden den Befehl juju add-relation, um sie voneinander in Kenntnis zu setzen und relevante Verbindungen und Protokolle einzurichten. Diese zusätzliche Konfiguration wird durch die individuellen Reize selbst erledigt.

Wir sollten damit beginnen, Beziehungen zwischen Charms hinzuzufügen, indem wir den Keystone-Autorisierungsdienst und seine Datenbank einrichten, da dies von vielen anderen Verbindungen benötigt wird:

juju add-relation keystone mysql

Wir warten, bis die Beziehung hergestellt ist. Nachdem es fertig ist, überprüfe es mit dem Juju-Status:

juju status mysql
juju status keystone

Es kann einige Momente dauern, bis sich dieser Service erledigt hat. Obwohl es durchaus möglich ist, weitere Relationen hinzuzufügen (Juju verwaltet eine Warteschlange für ausstehende Aktionen), kann dies in Bezug auf die Gesamtzeit kontraproduktiv sein, da sich viele Relationen auf dieselben Services beziehen.

Die folgenden Beziehungen müssen ebenfalls hergestellt werden:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation Swift-proxy Swift-storage
juju add-relation Swift-proxy keystone

Schließlich sollte die Ausgabe des Juju-Status alle Beziehungen als vollständig anzeigen. Die OpenStack-Cloud wird jetzt ausgeführt, muss jedoch mit einigen zusätzlichen Komponenten gefüllt werden, bevor sie verwendet werden kann.

17
Jorge Castro

Ken Pepple hat ein Buch über die Bereitstellung von OpenStack: http://shop.oreilly.com/product/0636920021674.do

Ken's Company (Internap) hat den ersten kommerziell erhältlichen OpenStack Cloud Computing Service.

http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/

Die Internap-Cloud basiert auf der Xen Cloud Platform (XCP) als Hypervisor.

2
Todd Deshane

Die Bereitstellung von RDO ist ein schneller und einfacher Prozess. Das Einrichten einer OpenStack-Cloud dauert ca. 15 Minuten und kann in nur 3 Schritten erfolgen. http://openstack.redhat.com/Quickstart

0
Omid Kosari