Crea bucket di zona

Questa pagina descrive come:

Crea un bucket in una zona

Prima di iniziare

Se non l'hai ancora fatto, ottieni i ruoli richiesti per la creazione dei bucket.

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Fai clic su Crea.
  3. Nella pagina Crea un bucket, inserisci le informazioni sul bucket. Dopo ogni passaggio seguente, fai clic su Continua per passare al passaggio successivo:
    1. Nella sezione Inizia, segui questi passaggi:

    2. Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:

      1. Seleziona Zona come Tipo di località.

      2. Utilizza il menu a discesa del tipo di località per selezionare una località in cui i dati degli oggetti all'interno del bucket verranno archiviati in modo permanente.

    3. Nella sezione Scegli come archiviare i tuoi dati, l'archiviazione rapida è selezionata come classe di archiviazione predefinita.

    4. Nella sezione Scegli come controllare l'accesso agli oggetti, seleziona se il bucket applica o meno la prevenzione dell'accesso pubblico e seleziona un modello di controllo dell'accesso per gli oggetti del bucket.

    5. Per scegliere come criptare i dati degli oggetti, fai clic sulla freccia di espansione con l'etichetta Crittografia dei dati e seleziona un metodo di crittografia dei dati.

  4. Fai clic su Crea.

Riga di comando

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Nell'ambiente di sviluppo, esegui il comando gcloud storage buckets create:

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

    Sostituisci:

    • BUCKET_NAME con il nome che vuoi dare al bucket, soggetto ai requisiti di denominazione. Ad esempio rapid-storage-bucket.

    • BUCKET_LOCATION con una regione del bucket. Ad esempio: us-east1.

    • BUCKET_ZONE con la zona in cui vuoi posizionare il bucket. Ad esempio, us-east1-b.

    Se la richiesta riesce, il comando restituisce il seguente messaggio:

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

Monta il bucket zonale utilizzando Cloud Storage FUSE

Prima di iniziare

Questa sezione presuppone che tu abbia già accesso a Cloud Storage FUSE. Se non l'hai ancora fatto, esegui i seguenti passaggi preliminari:

  1. Installa Cloud Storage FUSE. Assicurati di installare Cloud Storage FUSE versione 3.4.0 o successive.
  2. Autentica le richieste Cloud Storage FUSE.
  3. Se non hai creato il bucket che vuoi montare, ottieni i ruoli richiesti per il montaggio del bucket.

Per montare un bucket zonale utilizzando Cloud Storage FUSE, utilizza i seguenti comandi:

mkdir MOUNT_POINT
gcsfuse BUCKET_NAME MOUNT_POINT

Sostituisci:

  • MOUNT_POINT con la directory locale in cui montare il bucket. Ad esempio, $HOME/example-bucket.

  • BUCKET_NAME con il nome del bucket da montare.

Ad esempio, i seguenti comandi montano un bucket denominato example-rapid-storage-bucket nel punto di montaggio source-bucket:

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

Se vuoi trasferire oggetti da un bucket esistente al nuovo bucket zonale, monta entrambi i bucket e poi utilizza il comando cp per trasferire gli oggetti.

Esegui il benchmark delle prestazioni con un test FIO

Per eseguire il benchmark della velocità di un bucket di zona, esegui un test FIO.

Google Kubernetes Engine

Il comando seguente applica una configurazione al cluster Google Kubernetes Engine che esegue un test FIO su un bucket Cloud Storage. Il bucket viene montato sul file system del container utilizzando il driver CSI di FUSE per GKE.

$ 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

Dove:

  • ZONE_NAME è la zona in cui si trova il bucket. Ad esempio, us-east4-a.

  • BUCKET_NAME è il nome del tuo bucket. Ad esempio, my-bucket.

Se il test ha esito positivo, viene restituita una risposta simile alla seguente:

$ 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

VM di Compute Engine

Le seguenti istruzioni eseguono un test FIO su una VM Compute Engine.

  1. Monta uno spazio di archiviazione rapido utilizzando Cloud Storage FUSE:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 <bucket-name> PATH

Sostituisci:

  • PATH con il percorso del file system locale a cui vuoi montare il bucket.
  1. Se non l'hai ancora fatto, installa FIO:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install fio -y
  1. Esegui un test di latenza di lettura FIO di esempio:
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

Sostituisci:

  • BUCKET_PATH con il percorso del bucket che hai montato.

Se il test ha esito positivo, viene restituita una risposta simile alla seguente:

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

Trasferisci i dati con Storage Transfer Service

Puoi utilizzare Storage Transfer Service per trasferire dati tra bucket zonali e altri bucket Cloud Storage.

Autorizzazioni obbligatorie

I trasferimenti tra bucket Cloud Storage richiedono i ruoli IAM elencati in Autorizzazioni di trasferimento senza agenti.

Inoltre, poiché i bucket di zona utilizzano lo spazio dei nomi gerarchico, al service agent Storage Transfer Service devono essere concesse le seguenti autorizzazioni IAM:

  • Quando l'origine è un bucket di zona:

    • Non è richiesta alcuna azione aggiuntiva quando utilizzi i ruoli predefiniti elencati in Autorizzazioni di trasferimento senza agenti. L'autorizzazione necessaria (storage.folders.list) è già inclusa nel ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer).
  • Quando la destinazione è un bucket a livello di zona:

    • Devi concedere il ruolo Storage Object User (roles/storage.objectUser) all'agente di servizio. In questo modo viene fornita l'autorizzazione storage.folders.create richiesta.

Per istruzioni sull'aggiunta di ruoli al service agent, vedi:

Limitazioni

  • Trasferimenti supportati:

    • I trasferimenti sono supportati tra i bucket a livello di zona e i bucket in qualsiasi altra località Cloud Storage, inclusi altri bucket a livello di zona.
  • Funzionalità non supportate:

    • Trasferimenti basati su eventi
    • Replica tra bucket
    • Trasferimenti basati su agenti
  • Oggetti non finalizzati:

    • Quando trasferisci oggetti non finalizzati da un bucket a livello di zona, i dati nel bucket di destinazione potrebbero non riflettere le modifiche apportate agli oggetti durante il trasferimento.
    • Gli oggetti di origine non finalizzati vengono contrassegnati come finalizzati nel bucket di destinazione.

Crea un trasferimento

Per iniziare, consulta l'articolo Creare un trasferimento con Storage Transfer Service.

Passaggi successivi