Membuat bucket zona

Bucket zona, yang ditawarkan melalui Rapid Bucket, menyediakan penyimpanan berperforma tinggi dan 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 Anda belum melakukannya, dapatkan peran yang diperlukan untuk membuat bucket.

Konsol

  1. Di konsol Cloud de Confiance , buka halaman Buckets Cloud Storage.

    Buka Buckets

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

    1. Di bagian Get started, lakukan tindakan berikut:

    2. Di bagian Choose where to store your data, lakukan tindakan berikut:

      1. Pilih Zone sebagai Location type.

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

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

    4. Di bagian Choose how to control access to objects, lakukan hal-hal berikut:

      1. Pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak.

      2. Pilih Uniform untuk mengaktifkan akses level bucket yang seragam di bucket.

      3. Secara opsional, konfigurasikan pemfilteran IP untuk bucket.

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

  4. Klik Create.

Command line

  1. Di konsol Cloud de Confiance , aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah konsol Cloud de Confiance , 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 ke 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/...

Memasang bucket zona 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. 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. Contoh, $HOME/example-bucket.

  • BUCKET_NAME dengan nama bucket yang akan dipasang.

Misalnya, perintah berikut memasang bucket bernama example-rapid-storage-bucket ke mountpoint 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 zona, pasang kedua bucket, lalu gunakan perintah cp untuk mentransfer objek.

Membandingkan performa dengan pengujian FIO

Untuk mengukur kecepatan bucket zona, jalankan pengujian FIO.

Google Kubernetes Engine

Perintah berikut menerapkan konfigurasi ke cluster Google Kubernetes Engine Anda yang menjalankan pengujian FIO terhadap bucket Cloud Storage. Bucket dipasang ke sistem file container 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, pengujian akan menghasilkan 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. Memasang rapid storage menggunakan Cloud Storage FUSE:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 BUCKET_NAME PATH

Ganti:

  • BUCKET_NAME dengan nama bucket.

  • PATH dengan jalur sistem file lokal tempat Anda ingin 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, pengujian akan menghasilkan 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:

    • Anda tidak perlu melakukan tindakan tambahan apa pun saat menggunakan peran yang telah ditetapkan 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 diselesaikan:

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

Buat transfer

Untuk memulai, lihat Membuat transfer dengan Storage Transfer Service.

Langkah berikutnya