Weitere Informationen zum Ansible Inventar
Machen Sie sich vor der Implementierung mit der Konfiguration von Ansible vertraut und werden Sie zur Implementierung der BeeGFS auf NetApp Lösung verwendet.
Der Ansible-Bestand ist eine Verzeichnisstruktur mit den Datei- und Block-Nodes für das zu implementierende BeeGFS-Filesystem. Es enthält Hosts, Gruppen und Variablen, die das gewünschte BeeGFS-Dateisystem beschreiben. Die Ansible-Bestandsaufnahme muss auf dem Ansible-Steuerungsknoten gespeichert werden, bei dem es sich um jeden Computer mit Zugriff auf die Datei- und Block-Nodes handelt, mit denen das Ansible-Playbook ausgeführt wird. Probenbestände können von der heruntergeladen werden "NetApp E-Series BeeGFS GitHub".
Ansible-Module und -Rollen
Um die im Ansible Inventar beschriebene Konfiguration anzuwenden, verwenden Sie die verschiedenen Ansible Module und Rollen aus der NetApp E-Series Ansible Sammlung (verfügbar über "NetApp E-Series BeeGFS GitHub" ), die die End-to-End-Lösung implementieren.
Jede Rolle der NetApp E-Series Ansible Sammlung ist eine vollständige End-to-End-Implementierung der BeeGFS auf NetApp Lösung. Die Rollen verwenden die Sammlungen NetApp E-Series SANtricity, Host und BeeGFS, mit denen Sie das BeeGFS Filesystem mit HA (High Availability, Hochverfügbarkeit) konfigurieren können. Anschließend können Sie Storage bereitstellen und zuordnen und den Cluster-Storage betriebsbereit machen.
Die Rollen verfügen über eine ausführliche Dokumentation. In den Implementierungsverfahren wird beschrieben, wie die Rolle bei der Implementierung einer NetApp Verified Architecture mit dem BeeGFS-Bausteindesign der zweiten Generation eingesetzt wird.
|
|
Obwohl die Implementierungsschritte versucht, genügend Details bereitzustellen, sodass frühere Erfahrungen mit Ansible nicht erforderlich sind, sollten Sie mit Ansible und der zugehörigen Terminologie vertraut sein. |
Bestandslayout für BeeGFS HA-Cluster
Definieren Sie ein BeeGFS HA-Cluster mit der Ansible-Bestandsstruktur.
Jeder mit früheren Ansible-Erfahrungen sollte sich bewusst sein, dass die BeeGFS-HA-Rolle eine benutzerdefinierte Methode implementiert, um zu ermitteln, welche Variablen (oder Fakten) für jeden Host gelten. Dieses Design vereinfacht die Strukturierung des Ansible-Bestands, um Ressourcen zu beschreiben, die auf mehreren Servern ausgeführt werden können.
Ein Ansible-Inventar besteht in der Regel aus den Dateien in host_vars und group_vars sowie einer inventory.yml Datei, die Hosts spezifischen Gruppen (und potenziell Gruppen anderen Gruppen) zuweist.
|
|
Erstellen Sie keine Dateien mit dem Inhalt in diesem Unterabschnitt, der nur als Beispiel gedacht ist. |
Obwohl diese Konfiguration anhand des Konfigurationsprofils vorab festgelegt ist, sollten Sie wie folgt allgemeine Kenntnisse darüber haben, wie alles als Ansible-Inventar ausgelegt ist:
# BeeGFS HA (High Availability) cluster inventory.
all:
children:
# Ansible group representing all block nodes:
eseries_storage_systems:
hosts:
netapp01:
netapp02:
# Ansible group representing all file nodes:
ha_cluster:
children:
meta_01: # Group representing a metadata service with ID 01.
hosts:
beegfs_01: # This service is preferred on the first file node.
beegfs_02: # And can failover to the second file node.
meta_02: # Group representing a metadata service with ID 02.
hosts:
beegfs_02: # This service is preferred on the second file node.
beegfs_01: # And can failover to the first file node.
Für jeden Dienst wird unter eine zusätzliche Datei erstellt group_vars Beschreibung der Konfiguration:
# meta_01 - BeeGFS HA Metadata Resource Group
beegfs_ha_beegfs_meta_conf_resource_group_options:
connMetaPortTCP: 8015
connMetaPortUDP: 8015
tuneBindToNumaZone: 0
floating_ips:
- i1b: <IP>/<SUBNET_MASK>
- i2b: <IP>/<SUBNET_MASK>
# Type of BeeGFS service the HA resource group will manage.
beegfs_service: metadata # Choices: management, metadata, storage.
# What block node should be used to create a volume for this service:
beegfs_targets:
netapp01:
eseries_storage_pool_configuration:
- name: beegfs_m1_m2_m5_m6
raid_level: raid1
criteria_drive_count: 4
common_volume_configuration:
segment_size_kb: 128
volumes:
- size: 21.25
owning_controller: A
Mit diesem Layout können BeeGFS-Service-, Netzwerk- und Storage-Konfigurationen für jede Ressource an einem Ort definiert werden. Hinter den Kulissen aggregiert die Rolle BeeGFS basierend auf dieser Bestandsstruktur die erforderliche Konfiguration für jede Datei und jeden Block-Node.
|
|
Die numerische BeeGFS- und String-Node-ID für jeden Dienst wird automatisch auf Basis des Gruppennamens konfiguriert. Zusätzlich zur allgemeinen Ansible-Anforderung, dass Gruppennamen eindeutig sein sollen, müssen Gruppen, die einen BeeGFS-Service darstellen, in einer Zahl enden, die für den BeeGFS-Service eindeutig ist, für den diese Gruppe repräsentiert. Zum Beispiel sind meta_01 und stor_01 zulässig, aber Metadaten_01 und meta_01 sind nicht. |