Zonale Buckets erstellen

Auf dieser Seite wird Folgendes beschrieben:

  • Bucket mit einem zonalen Standort erstellen.

  • Zonalen Bucket mit Cloud Storage FUSE in Ihrem lokalen Dateisystem bereitstellen

  • Daten mit Storage Transfer Service zwischen einem vorhandenen Bucket und dem zonalen Bucket übertragen

Bucket in einer Zone erstellen

Hinweis

Falls noch nicht geschehen, rufen Sie die erforderlichen Rollen ab zum Erstellen von Buckets.

Console

  1. Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.
  3. Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie nach jedem der folgenden Schritte auf Weiter, um mit dem nächsten Schritt fortzufahren:
    1. Führen Sie im Abschnitt Einstieg die folgenden Schritte aus:

    2. Gehen Sie im Abschnitt Speicherort für Daten auswählen so vor:

      1. Wählen Sie Zone als Standorttyp aus.

      2. Wählen Sie im Drop-down-Menü für den Standorttyp einen Speicherort aus, an dem die Objektdaten in Ihrem Bucket dauerhaft gespeichert werden sollen.

    3. Im Abschnitt Speicherort für Daten auswählen ist Rapid Storage als Standardspeicherklasse ausgewählt.

    4. Im Abschnitt Zugriff auf Objekte steuern wählen Sie aus, ob der Bucket Verhinderung des öffentlichen Zugriffs durchsetzt, und wählen Sie ein Zugriffssteuerungsmodell für die Objekte Ihres Buckets.

    5. Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, klicken Sie auf den Erweiterungspfeil mit dem Label Datenverschlüsselung und gehen Sie so vor:

  4. Klicken Sie auf Erstellen.

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Cloud de Confiance Console.

    Cloud Shell aktivieren

    Unten in der Cloud de Confiance Console wird eine Cloud Shell Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie in Ihrer Entwicklungsumgebung den gcloud storage buckets create Befehl aus:

    gcloud storage buckets create \
    gs://BUCKET_NAME --location=BUCKET_LOCATION --placement=BUCKET_ZONE \
    --default-storage-class=RAPID --enable-hierarchical-namespace --uniform-bucket-level-access

    Ersetzen Sie:

    • BUCKET_NAME durch den Namen, den Sie Ihrem Bucket gemäß den Benennungsanforderungen geben möchten. Beispiel: rapid-storage-bucket.

    • BUCKET_LOCATION durch eine Bucket-Region. Beispiel: us-east1.

    • BUCKET_ZONE durch die Zone, in der sich der Bucket befinden soll. Beispiel: us-east1-b.

    Wenn die Anfrage erfolgreich ist, gibt der Befehl die folgende Meldung zurück:

    Creating gs://rapid-storage-bucket/...

Zonalen Bucket mit Cloud Storage FUSE bereitstellen

Hinweis

In diesem Abschnitt wird davon ausgegangen, dass Sie bereits Zugriff auf Cloud Storage FUSE haben. Falls noch nicht geschehen, führen Sie die folgenden Schritte aus:

  1. Cloud Storage FUSE installieren. Achten Sie darauf, dass Sie Cloud Storage FUSE Version 3.4.0 oder höher installieren.
  2. Cloud Storage FUSE-Anfragen authentifizieren.
  3. Wenn Sie den Bucket, den Sie bereitstellen möchten, nicht erstellt haben, rufen Sie die erforderlichen Rollen ab zum Bereitstellen des Buckets.

Verwenden Sie die folgenden Befehle, um einen zonalen Bucket mit Cloud Storage FUSE bereitzustellen:

mkdir MOUNT_POINT
gcsfuse BUCKET_NAME MOUNT_POINT

Ersetzen Sie:

  • MOUNT_POINT durch das lokale Verzeichnis, in dem der Bucket bereitgestellt werden soll. Beispiel: $HOME/example-bucket.

  • BUCKET_NAME durch den Namen des Buckets, der bereitgestellt werden soll.

Mit den folgenden Befehlen wird beispielsweise ein Bucket mit dem Namen example-rapid-storage-bucket am Bereitstellungspunkt source-bucket bereitgestellt:

mkdir $HOME/source-bucket
gcsfuse example-rapid-storage-bucket $HOME/source-bucket

Wenn Sie Objekte aus einem vorhandenen Bucket in einen zonalen Bucket übertragen möchten, stellen Sie beide Buckets bereit und verwenden Sie dann den Befehl cp, um die Objekte zu übertragen.

Leistung mit einem FIO-Test benchmarken

Führen Sie einen FIO-Test aus, um die Geschwindigkeit eines zonalen Buckets zu benchmarken.

Google Kubernetes Engine

Mit dem folgenden Befehl wird eine Konfiguration auf Ihren Google Kubernetes Engine-Cluster angewendet, mit der ein FIO-Test für einen Cloud Storage-Bucket ausgeführt wird. Der Bucket wird mit dem FUSE CSI-Treiber für GKEim Dateisystem des Containers bereitgestellt.

$ cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: fio
  namespace: default
  annotations:
    gke-gcsfuse/volumes: "true"
spec:
  containers:
  - name: fio
    image: mayadata/fio
    command: ["/bin/ash", "-c", "--"]
    args:
    - |
      fio --name=read_latency_test --filename=/data/fio --filesize=1G --time_based=1 --ramp_time=10s --runtime=1m --ioengine=libaio --direct=1 --verify=0 --randrepeat=0 --bs=4K --iodepth=1 --rw=randread --disable_slat=1 --disable_clat=1 --lat_percentiles=1 --numjobs=1
    volumeMounts:
    - name: fio-bucket
      mountPath: /data
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: topology.kubernetes.io/zone
            operator: In
            values:
            - ZONE_NAME
  serviceAccountName: default
  volumes:
  - name: fio-bucket
    csi:
      driver: gcsfuse.csi.storage.gke.io
      volumeAttributes:
        bucketName: "BUCKET_NAME"
        gcsfuseLoggingSeverity: warning
  restartPolicy: Never
EOF

Wobei:

  • ZONE_NAME die Zone ist, in der sich der Bucket befindet. Beispiel: us-east4-a.

  • BUCKET_NAME der Name des Buckets ist. Beispiel: my-bucket.

Wenn der Test erfolgreich ist, wird eine Antwort ähnlich der folgenden ausgegeben:

$ kubectl logs fio
Defaulted container "fio" out of: fio, gke-gcsfuse-sidecar (init)
read_latency_test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.36
Starting 1 process

read_latency_test: (groupid=0, jobs=1): err= 0: pid=11: Mon Mar  3 20:38:14 2025
  read: IOPS=591, BW=2365KiB/s (2422kB/s)(139MiB/60001msec)
    lat (usec): min=867, max=181966, avg=1685.32, stdev=2695.84
    lat percentiles (usec):
    |  1.00th=[  1074],  5.00th=[  1188], 10.00th=[  1254], 20.00th=[  1336],
    | 30.00th=[  1401], 40.00th=[  1467], 50.00th=[  1549], 60.00th=[  1614],
    | 70.00th=[  1713], 80.00th=[  1844], 90.00th=[  2057], 95.00th=[  2278],
    | 99.00th=[  3064], 99.50th=[  3654], 99.90th=[  8717], 99.95th=[ 73925],
    | 99.99th=[131597]
  bw (  KiB/s): min= 1290, max= 2736, per=100.00%, avg=2365.51, stdev=244.10, samples=120
  iops        : min=  322, max=  684, avg=591.34, stdev=61.10, samples=120
  cpu          : usr=0.81%, sys=1.61%, ctx=36011, majf=0, minf=36
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
    submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    issued rwts: total=35473,0,0,0 short=0,0,0,0 dropped=0,0,0,0
    latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  READ: bw=2365KiB/s (2422kB/s), 2365KiB/s-2365KiB/s (2422kB/s-2422kB/s), io=139MiB (145MB), run=60001-60001msec

Compute Engine-VM

Mit der folgenden Anleitung wird ein FIO-Test auf einer Compute Engine-VM ausgeführt.

  1. Rapid Storage mit Cloud Storage FUSE bereitstellen:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 <bucket-name> PATH

Ersetzen Sie:

  • PATH durch den Pfad des lokalen Dateisystems, in dem der Bucket bereitgestellt werden soll.
  1. Installieren Sie FIO, falls noch nicht geschehen:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install fio -y
  1. Führen Sie einen Beispieltest für die FIO-Leselatenz aus:
fio --name=read_latency_test \
  --filename=BUCKET_PATH/1G --filesize=1G \
  --time_based=1 --ramp_time=10s --runtime=1m \
  --ioengine=libaio --direct=1 --verify=0 --randrepeat=0 \
  --bs=4K --iodepth=1 --rw=randread --numjobs=1

Ersetzen Sie:

  • BUCKET_PATH durch den Pfad zum bereitgestellten Bucket.

Wenn der Test erfolgreich ist, wird eine Antwort ähnlich der folgenden ausgegeben:

read_latency_test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.33
Starting 1 process
Jobs: 1 (f=1): [f(1)][100.0%][eta 00m:00s]
read_latency_test: (groupid=0, jobs=1): err= 0: pid=78399: Tue Feb 11 21:14:35 2025
  read: IOPS=622, BW=2490KiB/s (2550kB/s)(146MiB/60001msec)
    slat (usec): min=108, max=13857, avg=1596.92, stdev=243.32
    clat (nsec): min=1539, max=141717, avg=5872.92, stdev=3230.74
    lat (usec): min=112, max=13866, avg=1602.80, stdev=244.13
    clat percentiles (nsec):
    |  1.00th=[ 2960],  5.00th=[ 3856], 10.00th=[ 4320], 20.00th=[ 4704],
    | 30.00th=[ 4896], 40.00th=[ 5088], 50.00th=[ 5280], 60.00th=[ 5536],
    | 70.00th=[ 5856], 80.00th=[ 6240], 90.00th=[ 7072], 95.00th=[ 8512],
    | 99.00th=[21120], 99.50th=[26240], 99.90th=[40704], 99.95th=[51968],
    | 99.99th=[75264]
  bw (  KiB/s): min= 2024, max= 2672, per=100.00%, avg=2491.15, stdev=105.69, samples=120
  iops        : min=  506, max=  668, avg=622.77, stdev=26.41, samples=120
  lat (usec)   : 2=0.06%, 4=6.21%, 10=89.91%, 20=2.61%, 50=1.15%
  lat (usec)   : 100=0.05%, 250=0.01%
  cpu          : usr=0.67%, sys=1.79%, ctx=37361, majf=0, minf=37
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
    submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
    issued rwts: total=37355,0,0,0 short=0,0,0,0 dropped=0,0,0,0
    latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  READ: bw=2490KiB/s (2550kB/s), 2490KiB/s-2490KiB/s (2550kB/s-2550kB/s), io=146MiB (153MB), run=60001-60001msec

Daten mit Storage Transfer Service übertragen

Mit Storage Transfer Service können Sie Daten zwischen zonalen Buckets und anderen Cloud Storage-Buckets übertragen.

Erforderliche Berechtigungen

Für Übertragungen zwischen Cloud Storage-Buckets sind die in Berechtigungen für agentenlose Übertragungen aufgeführten IAM-Rollen erforderlich.

Da zonale Buckets außerdem den hierarchischen Namespace verwenden, muss dem Storage Transfer Service Dienst-Agent die folgenden IAM-Berechtigungen erteilt werden:

  • Wenn die Quelle ein zonaler Bucket ist:

    • Bei Verwendung der in Berechtigungen für agentenlose Übertragungen aufgeführten vordefinierten Rollen sind keine weiteren Maßnahmen erforderlich. Die erforderliche Berechtigung (storage.folders.list) ist bereits in der Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer) enthalten.
  • Wenn das Ziel ein zonaler Bucket ist:

    • Sie müssen dem Dienst-Agent die Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser) zuweisen. Dadurch wird die erforderliche Berechtigung storage.folders.create erteilt.

Eine Anleitung zum Hinzufügen von Rollen zum Dienst-Agent finden Sie unter:

Beschränkungen

  • Unterstützte Übertragungen :

    • Übertragungen zwischen zonalen Buckets und Buckets an jedem anderen Cloud Storage-Standort, einschließlich anderer zonaler Buckets, werden unterstützt.
  • Nicht unterstützte Funktionen :

    • Ereignisgesteuerte Übertragungen
    • Bucket-übergreifende Replikation
    • Agentenbasierte Übertragungen
  • Nicht abgeschlossene Objekte :

    • Wenn Sie nicht abgeschlossene Objekte aus einem zonalen Bucket übertragen, spiegeln die Daten im Ziel-Bucket möglicherweise keine Änderungen an den Objekten wider, die während der Übertragung vorgenommen werden.
    • Nicht abgeschlossene Quellobjekte werden im Ziel-Bucket als abgeschlossen markiert.

Übertragung erstellen

Informationen zum Einstieg finden Sie unter Übertragung mit Storage Transfer Service erstellen.

Nächste Schritte