Membuat bucket zona

Halaman ini menjelaskan cara melakukan hal berikut:

Membuat bucket di zona

Sebelum memulai

Jika Anda belum melakukannya, dapatkan peran yang diperlukan untuk membuat bucket.

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Klik Create.
  3. Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah berikutnya:
    1. Di bagian Mulai, lakukan tindakan berikut:

    2. Di bagian Pilih tempat untuk menyimpan data Anda, lakukan tindakan berikut:

      1. Pilih Zone sebagai Jenis lokasi.

      2. Gunakan menu drop-down jenis lokasi untuk memilih Location tempat data objek dalam bucket Anda akan disimpan secara permanen.

    3. Di bagian Choose how to store your data, Rapid storage dipilih sebagai kelas penyimpanan default.

    4. Di bagian Pilih cara mengontrol akses ke objek, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih model kontrol akses untuk objek bucket Anda.

    5. Untuk memilih cara data objek Anda akan dienkripsi, klik panah peluas berlabel Enkripsi data, lalu pilih metode Enkripsi data.

  4. Klik Create.

Command line

  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. Di lingkungan pengembangan Anda, jalankan perintah 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

    Ganti:

    • BUCKET_NAME dengan nama yang ingin Anda berikan pada bucket, sesuai dengan persyaratan penamaan. Contohnya, rapid-storage-bucket.

    • BUCKET_LOCATION dengan region bucket. Misalnya, us-east1.

    • BUCKET_ZONE dengan zona tempat Anda ingin menempatkan bucket. Contoh, us-east1-b.

    Jika permintaan berhasil, perintah akan menampilkan pesan berikut ini:

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

Pasang bucket zonal menggunakan Cloud Storage FUSE

Sebelum memulai

Bagian ini mengasumsikan bahwa Anda sudah memiliki akses ke Cloud Storage FUSE. Jika Anda belum melakukannya, lakukan langkah-langkah prasyarat berikut:

  1. Instal Cloud Storage FUSE. Pastikan Anda menginstal Cloud Storage FUSE versi 3.4.0 atau yang lebih baru.
  2. Mengautentikasi permintaan Cloud Storage FUSE.
  3. Jika Anda tidak membuat bucket yang ingin dipasang, dapatkan peran yang diperlukan untuk memasang bucket.

Untuk memasang bucket zonal menggunakan Cloud Storage FUSE, gunakan perintah berikut:

mkdir MOUNT_POINT
gcsfuse BUCKET_NAME MOUNT_POINT

Ganti:

  • MOUNT_POINT dengan direktori lokal untuk memasang bucket. Contoh, $HOME/example-bucket.

  • BUCKET_NAME dengan nama bucket yang akan dipasang.

Misalnya, perintah berikut memasang bucket bernama example-rapid-storage-bucket ke titik pemasangan source-bucket:

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

Jika Anda ingin mentransfer objek dari bucket yang ada ke bucket zonal baru, pasang kedua bucket, lalu gunakan perintah cp untuk mentransfer objek.

Membuat tolok ukur performa dengan pengujian FIO

Untuk mengukur kecepatan bucket zonal, jalankan pengujian FIO.

Google Kubernetes Engine

Perintah berikut menerapkan konfigurasi ke cluster Google Kubernetes Engine yang menjalankan pengujian FIO terhadap bucket Cloud Storage. Bucket dipasang ke sistem file penampung menggunakan driver CSI FUSE untuk 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

Dengan:

  • ZONE_NAME adalah zona tempat bucket Anda berada. Contoh, us-east4-a.

  • BUCKET_NAME adalah nama bucket Anda. Contoh, my-bucket.

Jika pengujian berhasil, respons yang ditampilkan akan mirip dengan berikut ini:

$ 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

Petunjuk berikut menjalankan uji FIO di VM Compute Engine.

  1. Memasang penyimpanan cepat menggunakan Cloud Storage FUSE:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 <bucket-name> PATH

Ganti:

  • PATH dengan jalur sistem file lokal yang ingin Anda gunakan untuk memasang bucket.
  1. Jika Anda belum melakukannya, instal FIO:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install fio -y
  1. Jalankan contoh pengujian latensi baca 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

Ganti:

  • BUCKET_PATH dengan jalur ke bucket yang Anda pasang.

Jika pengujian berhasil, respons yang ditampilkan akan mirip dengan berikut ini:

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

Mentransfer data dengan Storage Transfer Service

Anda dapat menggunakan Storage Transfer Service untuk mentransfer data antara bucket zona dan bucket Cloud Storage lainnya.

Izin yang diperlukan

Transfer antar-bucket Cloud Storage memerlukan peran IAM yang tercantum dalam Izin transfer tanpa agen.

Selain itu, karena bucket zonal menggunakan namespace hierarkis, agen layanan Storage Transfer Service harus diberi izin IAM berikut:

  • Jika sumbernya adalah bucket zona:

    • Anda tidak perlu melakukan tindakan tambahan saat menggunakan peran standar yang tercantum dalam Izin transfer tanpa agen. Izin yang diperlukan (storage.folders.list) sudah disertakan dalam peran Storage Object Viewer (roles/storage.objectViewer).
  • Jika tujuannya adalah bucket zonal:

    • Anda harus memberikan peran Storage Object User (roles/storage.objectUser) kepada agen layanan. Hal ini memberikan izin storage.folders.create yang diperlukan.

Untuk mengetahui petunjuk tentang cara menambahkan peran ke agen layanan, lihat:

Batasan

  • Transfer yang didukung:

    • Transfer didukung antara bucket zona dan bucket di lokasi Cloud Storage lainnya, termasuk bucket zona lainnya.
  • Fitur yang tidak didukung:

    • Transfer berdasarkan peristiwa
    • Replikasi lintas bucket
    • Transfer berbasis agen
  • Objek yang belum diselesaikan:

    • Saat mentransfer objek yang belum difinalisasi dari bucket zonal, data di bucket tujuan mungkin tidak mencerminkan perubahan pada objek yang dilakukan saat transfer sedang berlangsung.
    • Objek sumber yang belum difinalisasi ditandai sebagai difinalisasi di bucket tujuan.

Buat transfer

Untuk memulai, lihat Membuat transfer dengan Storage Transfer Service.

Langkah berikutnya