Créer des buckets zonaux

Les buckets zonaux, proposés via Rapid Bucket, fournissent un stockage hautes performances et à faible latence pour les applications qui nécessitent des données dans une zone géographique spécifique.

Cette page explique comment effectuer les opérations suivantes :

Créer un bucket dans une zone

Avant de commencer

Si vous ne l'avez pas déjà fait, obtenez les rôles requis pour créer des buckets.

Console

  1. Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.

    Accéder à la page Buckets

  2. Cliquez sur  Créer.
  3. Sur la page Créer un bucket, saisissez les informations concernant votre bucket. Après chacune des étapes suivantes, cliquez sur Continuer pour passer à la prochaine étape :

    1. Dans la section Premiers pas, procédez comme suit :

    2. Dans la section Choisir où stocker vos données, procédez comme suit :

      1. Sélectionnez Zone comme Type d'emplacement.

      2. Utilisez le menu déroulant du type d'emplacement pour sélectionner un emplacement où les données d'objets de votre bucket seront stockées de manière permanente.

    3. Dans la section Choisir comment stocker vos données, Rapid Storage est sélectionné comme classe de stockage par défaut.

    4. Dans la section Choisissez comment contrôler l'accès aux objets, procédez comme suit :

      1. Indiquez si votre bucket applique la protection contre l'accès public.

      2. Sélectionnez Uniforme pour activer l'accès uniforme au niveau du bucket.

      3. Vous pouvez également configurer le filtrage par adresse IP pour le bucket.

    5. Dans la section Choisissez comment protéger les données des objets, procédez comme suit :

      • Pour choisir comment chiffrer vos données d'objet, cliquez sur la flèche de développement  intitulée Chiffrement des données, puis procédez comme suit :

  4. Cliquez sur Créer.

Ligne de commande

  1. Dans la console Cloud de Confiance , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Cloud de Confiance , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel la Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Dans votre environnement de développement, exécutez la commande 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

    Remplacez :

    • BUCKET_NAME par le nom que vous souhaitez attribuer au bucket, ce nom étant soumis à des exigences concernant l'attribution de noms. Exemple : rapid-storage-bucket.

    • BUCKET_LOCATION par une région de bucket. Par exemple, us-east1.

    • BUCKET_ZONE par la zone dans laquelle vous souhaitez localiser votre bucket. Exemple :us-east1-b

    Si la requête aboutit, la commande renvoie le message suivant :

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

Installer le bucket zonal à l'aide de Cloud Storage FUSE

Avant de commencer

Cette section suppose que vous avez déjà accès à Cloud Storage FUSE. Si vous ne l'avez pas déjà fait, effectuez les étapes préalables suivantes :

  1. Installez Cloud Storage FUSE. Assurez-vous d'installer Cloud Storage FUSE version 3.4.0 ou ultérieure.
  2. Authentifiez les requêtes Cloud Storage FUSE.
  3. Si vous n'avez pas créé le bucket que vous souhaitez installer, obtenez les rôles requis pour l'installer.

Pour installer un bucket zonal à l'aide de Cloud Storage FUSE, utilisez les commandes suivantes :

mkdir MOUNT_POINT
gcsfuse BUCKET_NAME MOUNT_POINT

Remplacez :

  • MOUNT_POINT par le répertoire local dans lequel installer le bucket. Exemple :$HOME/example-bucket

  • BUCKET_NAME par le nom du bucket à installer.

Par exemple, les commandes suivantes installent un bucket nommé example-rapid-storage-bucket sur le point d'installation source-bucket :

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

Si vous souhaitez transférer des objets d'un bucket existant vers un bucket zonal, installez les deux buckets, puis utilisez la commande cp pour transférer les objets.

Effectuer une analyse comparative des performances avec un test FIO

Pour évaluer la vitesse d'un bucket zonal, exécutez un test FIO.

Google Kubernetes Engine

La commande suivante applique une configuration à votre cluster Google Kubernetes Engine qui exécute un test FIO sur un bucket Cloud Storage. Le bucket est installé sur le système de fichiers du conteneur à l'aide du pilote CSI FUSE pour 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

Où :

  • ZONE_NAME est la zone dans laquelle se trouve votre bucket. Exemple :us-east4-a

  • BUCKET_NAME est le nom du bucket. Exemple : my-bucket.

Si le test réussit, il génère une réponse semblable à celle-ci :

$ 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 Compute Engine

Les instructions suivantes exécutent un test FIO sur une VM Compute Engine.

  1. Installez un espace de stockage Rapid Storage à l'aide de Cloud Storage FUSE :
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 BUCKET_NAME PATH

Remplacez :

  • BUCKET_NAME par le nom du bucket.

  • PATH par le chemin d'accès au système de fichiers local sur lequel vous souhaitez installer le bucket.

  1. Si ce n'est pas déjà fait, installez FIO :
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install fio -y
  1. Exécutez un exemple de test de latence en lecture FIO :
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

Remplacez :

  • BUCKET_PATH par le chemin d'accès au bucket que vous avez installé.

Si le test réussit, il génère une réponse semblable à celle-ci :

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

Transférer des données avec le service de transfert de stockage

Vous pouvez utiliser le service de transfert de stockage pour transférer des données entre des buckets zonaux et d'autres buckets Cloud Storage.

Autorisations requises

Les transferts entre buckets Cloud Storage nécessitent les rôles IAM listés dans Autorisations de transfert sans agent.

De plus, comme les buckets zonaux utilisent un espace de noms hiérarchique, l'agent de service du service de transfert de stockage doit disposer des autorisations IAM suivantes :

  • Lorsque la source est un bucket zonal :

    • Aucune action supplémentaire n'est requise lorsque vous utilisez les rôles prédéfinis listés dans Autorisations de transfert sans agent. L'autorisation nécessaire (storage.folders.list) est déjà incluse dans le rôle Lecteur des objets de l'espace de stockage (roles/storage.objectViewer).
  • Lorsque la destination est un bucket zonal :

    • Vous devez attribuer le rôle Utilisateur d'objets Storage (roles/storage.objectUser) à l'agent de service. Cela fournit l'autorisation storage.folders.create requise.

Pour savoir comment ajouter des rôles à l'agent de service, consultez les pages suivantes :

Limites

  • Transferts compatibles :

    • Les transferts sont acceptés entre les buckets zonaux et les buckets de n'importe quel autre emplacement Cloud Storage, y compris d'autres buckets zonaux.
  • Fonctionnalités non compatibles :

    • Transferts basés sur des événements
    • Réplication entre buckets
    • Transferts basés sur des agents
  • Objets non finalisés :

    • Lorsque vous transférez des objets non finalisés depuis un bucket zonal, les données du bucket de destination peuvent ne pas refléter les modifications apportées aux objets pendant le transfert.
    • Les objets sources non finalisés sont marqués comme finalisés dans le bucket de destination.

Créer un transfert

Pour commencer, consultez Créer un transfert avec le service de transfert de stockage.

Étapes suivantes