In diesem Dokument wird beschrieben, wie Sie Spanner Omni auf virtuellen Maschinen (VMs) bereitstellen. Diese Bereitstellung ist nicht verschlüsselt. Wenn Sie schnell eine Test- oder Proof-of-Concept-Umgebung einrichten möchten, um Spanner Omni zu testen, ist das Erstellen einer ungesicherten Bereitstellung der schnellste Weg, um loszulegen, da Sie keine mTLS- oder andere Sicherheitsmaßnahmen konfigurieren müssen. Aufgrund von Sicherheitsrisiken wie unverschlüsseltem Netzwerkverkehr und offenem Zugriff empfehlen wir diese Konfiguration jedoch nicht für Produktionsumgebungen. Sie können zwischen einer Bereitstellung auf einem einzelnen Server oder einer regionalen Bereitstellung in mehreren Zonen wählen.
Die Vorschau version von Spanner Omni unterstützt keine TLS-Verschlüsselung. Wenn Sie die Funktionen zum Erstellen von Bereitstellungen mit TLS-Verschlüsselung nutzen möchten, wenden Sie sich an Google, um frühzeitigen Zugriff auf die Vollversion von Spanner Omni anzufordern.
Hinweis
Bevor Sie eine ungesicherte Bereitstellung einrichten, müssen Sie die folgenden Anforderungen erfüllen:
SSH-Zugriff: Sie benötigen SSH-Zugriff auf jeden Computer in der Bereitstellung , um die Spanner Omni-Binärdatei herunterzuladen und auszuführen.
Verbindung: Alle Computer in der Bereitstellung können miteinander verbunden werden.
Netzwerk: Ihre Netzwerkkonfiguration lässt die TCP-Kommunikation über die Ports
15000bis15025zu.Speicher: Jeder Computer verfügt über genügend Speicherplatz, um die Daten zu hosten, die von der Bereitstellung verarbeitet werden.
Systemanforderungen: Ihre Einrichtung muss alle Systemanforderungen erfüllen.
vSphere-Konfiguration: Wenn Sie Spanner Omni auf der vSphere-Virtualisierungsplattform ausführen, deaktivieren Sie die Virtualisierung des Zeit stempelzählers (Time Stamp Counter, TSC). Fügen Sie der
.vmx-Konfigurationsdatei der VMmonitor_control.virtual_rdtsc = FALSEhinzu.
Schritt 1: Bereitstellungstopologie festlegen
Spanner Omni verwendet eine Hierarchie von Standorten, Zonen und Servern, um die Bereitstellungstopologie zu definieren. Je nach Verfügbarkeitszielen können Sie zwischen den folgenden Topologien wählen:
Einzelner Server: Die Bereitstellung hat einen einzelnen Server, der auf einem einzelnen Computer ausgeführt wird.
Einzelne Zone: Die Bereitstellung wird auf mehreren Servern ausgeführt, die sich in einer einzelnen Zone befinden.
Einzelner Standort, mehrere Zonen (replizierte Bereitstellung): Die Bereitstellung wird auf mehreren Servern ausgeführt, die sich in mehreren Zonen an einem Standort befinden.
Mehrere Standorte, mehrere Zonen: Die Bereitstellung wird auf mehreren Servern ausgeführt, die sich an mehreren Standorten und in mehreren Zonen befinden.
Weitere Informationen finden Sie unter Wichtige Begriffe für Spanner Omni und Bereitstellungskonfigurationen für Spanner Omni.
Erstellen Sie für jede Bereitstellung außer einer Bereitstellung auf einem einzelnen Server eine YAML-Konfigurationsdatei mit dem Namen deployment.yaml, in der die Topologie definiert ist. Geben Sie in dieser Datei nur die Stammserver an. Fügen Sie später Nicht-Stammserver hinzu.
Beispiel: Replizierte Bereitstellung in mehreren Zonen
Das folgende Beispiel zeigt eine Konfiguration für eine regionale Bereitstellung in drei Zonen.
name: regional-deployment
location:
- name: us-central1
zone:
- name: us-central1-a
location: us-central1
single_server: false
root_server:
- host: rootserver1
- name: us-central1-b
location: us-central1
single_server: false
root_server:
- host: rootserver2
- name: us-central1-c
location: us-central1
single_server: false
root_server:
- host: rootserver3
Beispiel: Bereitstellung an mehreren Standorten
Das folgende Beispiel zeigt eine Konfiguration für eine Bereitstellung an drei Standorten.
name: multi-location-deployment
location:
- name: us-central1
- name: europe-west2
- name: asia-southeast1
zone:
- name: us-central1-a
location: us-central1
single_server: false
root_server:
- host: rootserver1
- name: europe-west2-a
location: europe-west2
single_server: false
root_server:
- host: rootserver2
- name: asia-southeast1-a
location: asia-southeast1
single_server: false
root_server:
- host: rootserver3
Schritt 2: Binärdatei herunterladen und einrichten
Wiederholen Sie diese Schritte für jeden Computer in der Bereitstellung:
Erstellen Sie ein Verzeichnis für die Binärdatei und wechseln Sie zu diesem Verzeichnis.
Laden Sie die Binärdatei herunter:
gsutil cp gs://spanner-omni/VERSION/spanner-omni-VERSION-linux-x86_64.tar.gz .Sie können die Binärdatei auch mit
scpoder anderen Tools zur Dateiübertragung auf Ihre VMs kopieren.Extrahieren Sie die Binärdatei:
tar -xvf spanner-omni-VERSION-linux-x86_64.tar.gz
Schritt 3: Server starten
Erstellen Sie auf jedem Server ein Basisverzeichnis, um Daten, Metadaten und Logs zu speichern. Wenn ein Server neu gestartet werden muss, geben Sie dasselbe Verzeichnis an, um die Kontinuität zu gewährleisten.
Option A: Bereitstellung auf einem einzelnen Server
Führen Sie für eine Bereitstellung auf einem einzelnen Server den folgenden Befehl aus:
spanner start-single-server --base-dir=SPANNER_BASE_DIR
Nachdem der Server gestartet wurde, fahren Sie mit Schritt 6: Mit der Bereitstellung interagieren fort.
Option B: Scale-out-Bereitstellung
Starten Sie für Scale-out-Bereitstellungen den Server auf jedem Computer. Die Flags --server-address und --zone entsprechen den Werten in Ihrer Bereitstellungskonfiguration. Das Netzwerk löst die server_address auf.
spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Beispiel:
spanner start --root --server-address=rootserver1 --zone=us-central-1a --base-dir=./spanbasedir
Schritt 4: Bereitstellung erstellen
So erstellen Sie die Bereitstellung:
Kopieren Sie die Datei
deployment.yaml, die Sie in Schritt 1: Bereitstellungstopologie festlegen erstellt haben, auf einen der Stammserver.Führen Sie auf diesem Stammserver den folgenden Befehl aus, um die Bereitstellung zu erstellen:
spanner deployment create --config-file=deployment.yamlAuf der Konsole jedes Computers werden Meldungen angezeigt, die darauf hinweisen, dass die Bereitstellung bereit ist.
Validieren Sie die Bereitstellung, indem Sie die Zonen auflisten:
spanner deployment zones listIn der Ausgabe werden die Standorte, Zonen und Server aufgeführt, die Sie in
deployment.yamlangegeben haben.
Schritt 5: (Optional) Load-Balancer konfigurieren
Richten Sie einen TCP-Load-Balancer mit den folgenden Details ein:
| Einstellung | Wert |
|---|---|
| Protokoll | TCP |
| Back-End-IP-Adresse | Die IP-Adressen Ihrer Server |
| Port | 15000 oder der Port, den Sie im Flag --server-address verwenden |
| URL der Systemdiagnose | http://SERVER_IP:15012/healthz |
| Lastverteilungsstrategie | Round-Robin |
Bei Bereitstellungen an mehreren Standorten können Sie einen Load-Balancer pro Standort und einen primären Load-Balancer einrichten, um den Traffic auf alle Standorte zu verteilen.
Schritt 6: Mit der Bereitstellung interagieren
Nachdem Ihre Bereitstellung bereit ist, können Sie über die Befehlszeile von jeder VM oder einem lokalen Computer aus mit ihr interagieren. Wenn Sie die Befehlszeile von einem separaten Computer ausführen, z. B. von einem Laptop für Entwickler, laden Sie das Befehlszeilenpaket herunter und extrahieren Sie es. Weitere Informationen finden Sie unter siehe Schnellstart mit der Spanner Omni-Befehlszeile.
So interagieren Sie mit Ihrer Bereitstellung:
Erstellen Sie eine Datenbank:
spanner --deployment-endpoint=LOAD_BALANCER_IP_OR_SERVER_IP databases create DATABASE_NAMEÖffnen Sie die SQL-Shell:
spanner sql --database=DATABASE_NAMEErstellen Sie eine Tabelle und fügen Sie Daten ein:
CREATE TABLE names ( nameId INT64 NOT NULL, name STRING(100) ) PRIMARY KEY (nameId); INSERT INTO names (nameId, name) VALUES (1, "Jack");Prüfen Sie die Datenbank und die Daten:
So listen Sie Datenbanken auf:
bash spanner databases listDie Ausgabe sieht dann ungefähr so aus:
NAME STATUS VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION DATABASE_NAME BEREIT 1 Std. 2025-02-07T12:25:30Z falsch So fragen Sie die Tabelle ab:
bash spanner sql --database=DATABASE_NAMEFühren Sie die folgenden SQL-Befehle aus:
SHOW TABLES; SELECT * FROM names;
Schritt 7: (Optional) Bereitstellung skalieren
Wenn Sie die Kapazität in einer Zone skalieren möchten, können Sie Nicht-Stammserver hinzufügen. Führen Sie den folgenden Befehl auf jedem neuen Server aus:
spanner start --server-address=NON_ROOT_HOSTNAME --join-servers=SERVER1:PORT1,SERVER2:PORT2,SERVER3:PORT3 --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Schritt 8: (Optional) Bereitstellung beobachten
Wenn Sie den Zustand und die Leistung Ihrer Bereitstellung überwachen möchten, können Sie die Erfassung, Visualisierung und Benachrichtigung von Messwerten einrichten. Sie können auch verteilte Traces erfassen, um die Anfragelatenz zu analysieren.
Prometheus einrichten
Spanner Omni-Server exportieren Messwerte im Prometheus-Format auf Port 15012. Fügen Sie prometheus.yml in scrape_configs Folgendes hinzu:
scrape_configs:
- job_name: 'spanner'
static_configs:
- targets: ['HOST1:15012', 'HOST2:15012', 'HOSTN:15012']
Grafana einrichten
So rufen Sie Monitoring-Daten in Grafana auf:
Stellen Sie die Prometheus-Datenquelle bereit, indem Sie eine Datei in
provisioning/datasourceserstellen:apiVersion: 1 datasources: - name: Prometheus uid: prometheus type: prometheus access: proxy url: http://PROMETHEUS_HOST:PROMETHEUS_PORT jsonData: httpMethod: POST manageAlerts: false prometheusType: Prometheus prometheusVersion: PROMETHEUS_VERSION cacheLevel: 'High' disableRecordingRules: false incrementalQueryOverlapWindow: 10mErstellen Sie ein Dashboard in der Grafana-UI oder stellen Sie es mit
provisioning/dashboardsbereit.
Warnungen einrichten
Konfigurieren Sie Warnungen über die Grafana-UI oder Konfigurationsdateien. Sie können beispielsweise eine Warnung auslösen, wenn das 95. Perzentil (p95) der Transaktionslatenz 100 Millisekunden überschreitet. Eine Liste der verfügbaren Warnungen finden Sie unter Prometheus-Warnungen zur Überwachung von Spanner Omni verwenden.
Traces erfassen und analysieren
Erfassen Sie Informationen zum verteilten Tracing im OTLP-Format und visualisieren Sie sie mit Tools wie Jaeger.
Richten Sie einen OTLP-kompatiblen Trace-Collector ein. Für Jaeger:
export COLLECTOR_OTLP_ENABLED=true jaeger-all-in-oneAchten Sie darauf, dass der OTLP-Port den Netzwerkverkehr zwischen Spanner Omni und dem Collector zulässt.
Legen Sie die Umgebungsvariable
SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINTfest und starten Sie die Spanner Omni-Server:export SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINT=COLLECTOR_HOST:COLLECTOR_PORT spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR