Akrog.storage
Ansible Speicherrolle
Die Ansible Speicherrolle ist eine herstellerunabhängige Abstraktion, die Infrastrukturadministratoren Automatisierung für Speicherlösungen und den Zugriff auf bereitgestellte Ressourcen bietet.
Die Speicherrolle unterstützt von Haus aus über 80 Blockspeicher-Treiber, kann jedoch auch erweitert werden, um zusätzliche Speicheranbieter zu unterstützen.
Dank dieser Abstraktion ist es jetzt möglich, wiederverwendbare Playbooks zu schreiben, die Aufgaben auf allen unterstützten Speicherarrays automatisieren können.
Dies ermöglicht es, Speichervolume direkt auf jeder Infrastruktur vom Entwickler oder Anwendungsbesitzer von beliebigen Linux-Instanzen aus zu verwalten und zu nutzen.
Die Rolle bietet eine Abstraktion für mehrere Speichertypen:
- Blockspeicher.
- Geteilte Dateisysteme.
- Objektspeicher.
Anwendungsfälle:
- Automatisierung der Bereitstellung von Volumina für:
- Bare-Metal-Hosts.
- VMs, die über das virt Ansible-Modul verwaltet werden.
- VMs, die auf oVirt, OpenStack und VMWare verwaltet werden.
- Cloud-Anbieter.
- Regelmäßige Snapshots der bereitgestellten Volumina erstellen.
- Ein Golden-Volume für die Bereitstellung nutzen (Volumenklonierung).
- Bereitgestellte Volumina vergrößern.
- QoS für bereitgestellte Volumina definieren.
- Volumenmigration zwischen Backends durchführen.
Funktionen
Die Speicherrolle unterstützt derzeit Blockspeicher und hat die folgenden Operationen abstrahiert:
- Backend-Statistiken abrufen.
- Volumina erstellen.
- Volumina löschen.
- Volumina erweitern.
- Volumina anhängen.
- Volumina abtrennen.
Erste Schritte
Lass uns loslegen und dein erstes Speicher-Playbook ausführen.
Die Ausführung des Beispiel-Playbooks installiert Pakete im System und stellt ein VG dem System zur Verfügung. Wir empfehlen, diese Befehle entweder in einer VM auszuführen oder den Wert der IP-Variable auf die IP einer VM zu ändern.
Nachdem das LVM VG eingerichtet wurde, erstellt das Playbook ein Volumen, hängt es über iSCSI an den Knoten an, zeigt eine Nachricht mit dem Gerät an, an das es angeschlossen wurde, trennt es ab und löscht schließlich das Volumen.
Um das Playbook auszuführen, müssen wir zuerst die Rolle installieren.
$ ansible-galaxy install Akrog.storage
Sobald wir die Rolle installiert haben, können wir mit der Ausführung der Rolle fortfahren.
Es gibt viele Möglichkeiten, ein Playbook auszuführen; zur Vereinfachung zeigen wir hier nur, wie man es auf dem lokalen Host mit unserem Benutzer ausführt und davon ausgeht, dass sshd
aktiviert ist, unser eigenes ~/.ssh/id_rsa
sich in der ~/.ssh/authorized_keys
-Datei befindet und unser Benutzer sudo
-Befehle ohne Passwort ausführen kann.
$ IP=127.0.0.1
$ cd ~/.ansible/roles/Akrog.storage/example
$ ansible-playbook -i $IP, lvm-backend.yml
Im Gegensatz zu den meisten realen Anwendungsfällen verwendet unser Beispiel kein echtes Speichersystem. Das Playbook erstellt zunächst eine LVM Volume Group (VG), die von einem Loopgerät unterstützt wird. Mit diesem VG können wir Volumina erstellen und sie über iSCSI mit dem LIO-Ziel bereitstellen.
Konzepte
Ein Anbieter ist das Ansible-Modul, das für die Durchführung von Operationen an der Speicherhardware verantwortlich ist. Jeder Anbieter muss mindestens eine spezifische Hardware eines Herstellers unterstützen, kann aber auch mehrere unterstützen, wie es der Standardanbieter tut.
Um die Funktionen dieser Anbieter zugänglich zu machen, führt die Speicherrolle das Konzept von Backends ein. Ein Backend wird erstellt, indem eine spezifische Konfiguration an einen Anbieter übergeben wird, um eine bestimmte Speicherhardware zu verwalten.
Es gibt zwei Arten von Knoten in der Speicherrolle: Controller und Consumer.
Controller haben Zugang zum Netzwerk für das Speicher-Management und wissen, wie man sich mit der Verwaltungsoberfläche der Speicherhardware verbindet und diese steuert. Zum Beispiel, um ein Volumen zu erstellen und bereitzustellen.
Consumer benötigen lediglich Zugang zum Netzwerk für die Speicher-Daten, um sich mit den bereitgestellten Ressourcen zu verbinden. Zum Beispiel, um ein Volumen über iSCSI zu verbinden.
Siehe weitere Informationen zur Nutzung und Konfiguration in der Dokumentation: https://ansible-storage.readthedocs.io/en/docs/