Membuat bucket zona

Bucket zona, yang ditawarkan melalui Rapid Bucket, menyediakan penyimpanan berperforma tinggi, berlatensi rendah untuk aplikasi yang memerlukan data dalam zona geografis tertentu.

Halaman ini menjelaskan cara melakukan hal berikut:

Membuat bucket di zona

Sebelum memulai

Jika belum, dapatkan peran yang diperlukan untuk membuat bucket.

Konsol

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

    Buka Buckets

  2. Klik Create.
  3. Di halaman Create a bucket, masukkan informasi bucket Anda. Setelah setiap langkah berikut, klik Continue untuk melanjutkan ke langkah berikutnya step:

    1. Di bagian Get started, lakukan hal berikut:

    2. Di bagian Choose where to store your data, lakukan hal 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 class penyimpanan default.

    4. Di bagian Choose how to control access to objects, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih model kontrol akses untuk objek bucket Anda.

    5. Di bagian Choose how to protect object data, lakukan hal berikut:

  4. Klik Create.

Command line

  1. Di konsol, aktifkan Cloud Shell. Google Cloud

    Aktifkan Cloud Shell

    Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan prompt command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.

  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. Contohnya, us-east1.

    • BUCKET_ZONE dengan zona tempat Anda ingin menemukan bucket. Contohnya, us-east1-b.

    Jika permintaan berhasil, perintah akan menampilkan pesan berikut ini:

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

Memasang bucket zona menggunakan Cloud Storage FUSE

Sebelum memulai

Bagian ini mengasumsikan bahwa Anda sudah memiliki akses ke Cloud Storage FUSE. Jika belum, 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. Melakukan Autentikasi permintaan Cloud Storage FUSE.
  3. Jika Anda tidak membuat bucket yang ingin dipasang, dapatkan peran yang diperlukan untuk memasang bucket.

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

mkdir MOUNT_POINT
gcsfuse BUCKET_NAME MOUNT_POINT

Ganti:

  • MOUNT_POINT dengan direktori lokal untuk memasang bucket. Contohnya, $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 ingin mentransfer objek dari bucket yang ada ke bucket zona, pasang kedua bucket, lalu gunakan perintah cp untuk mentransfer objek.

Mengukur performa dengan pengujian FIO

Untuk mengukur kecepatan bucket zona, 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. Contohnya, us-east4-a.

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

Jika pengujian berhasil, pengujian akan menampilkan respons yang 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 pengujian FIO di VM Compute Engine.

  1. Pasang 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 tempat Anda ingin memasang bucket.
  1. Jika belum, 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, pengujian akan menampilkan respons yang 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 zona menggunakan namespace hierarkis, agen layanan Storage Transfer Service harus diberi izin IAM berikut:

  • Jika sumbernya adalah bucket zona:

    • Tidak ada tindakan tambahan yang diperlukan saat menggunakan peran yang telah ditentukan 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 zona:

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

Untuk mengetahui petunjuk 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 final:

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

Buat transfer

Untuk memulai, lihat Membuat transfer dengan Storage Transfer Service.

Langkah berikutnya