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 dengan lokasi zona.
Memasang bucket zona ke sistem file lokal Anda menggunakan Cloud Storage FUSE.
Mentransfer data antara bucket yang ada ke bucket zona menggunakan Storage Transfer Service.
Membuat bucket di zona
Sebelum memulai
Jika belum, dapatkan peran yang diperlukan untuk membuat bucket.
Konsol
- Di Google Cloud konsol, buka halaman Buckets Cloud Storage.
- Klik Create.
Di halaman Create a bucket, masukkan informasi bucket Anda. Setelah setiap langkah berikut, klik Continue untuk melanjutkan ke langkah berikutnya step:
-
Di bagian Get started, lakukan hal berikut:
-
Masukkan nama yang unik secara global yang memenuhi persyaratan nama bucket.
-
-
Di bagian Choose where to store your data, lakukan hal berikut:
-
Pilih Zone sebagai Jenis lokasi.
-
Gunakan menu drop-down jenis lokasi untuk memilih Location tempat data objek dalam bucket Anda akan disimpan secara permanen.
-
-
Di bagian Choose how to store your data, Rapid storage dipilih sebagai class penyimpanan default.
-
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.
-
Di bagian Choose how to protect object data, lakukan hal berikut:
-
Untuk memilih cara mengenkripsi data objek Anda, klik panah expander berlabel Data encryption, lalu lakukan hal berikut:
- Di bagian Default encryption key type, pilih kunci enkripsi default untuk bucket. Jika Anda memilih Cloud KMS key, berikan kunci Cloud Key Management Service.
- Di bagian Encryption enforcement rules, untuk Key types, pilih jenis enkripsi yang akan diizinkan atau dibatasi untuk objek baru di bucket.
-
-
Klik Create.
Command line
-
Di konsol, aktifkan Cloud Shell. Google Cloud
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.
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_NAMEdengan nama yang ingin Anda berikan pada bucket, sesuai dengan persyaratan penamaan. Contohnya,rapid-storage-bucket.BUCKET_LOCATIONdengan region bucket. Contohnya,us-east1.BUCKET_ZONEdengan 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:
- Instal Cloud Storage FUSE. Pastikan Anda menginstal Cloud Storage FUSE versi 3.4.0 atau yang lebih baru.
- Melakukan Autentikasi permintaan Cloud Storage FUSE.
- 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_POINTgcsfuse BUCKET_NAME MOUNT_POINT
Ganti:
MOUNT_POINTdengan direktori lokal untuk memasang bucket. Contohnya,$HOME/example-bucket.BUCKET_NAMEdengan nama bucket yang akan dipasang.
Misalnya, perintah berikut memasang bucket bernama example-rapid-storage-bucket ke titik pemasangan source-bucket:
mkdir $HOME/source-bucketgcsfuse 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_NAMEadalah zona tempat bucket Anda berada. Contohnya,us-east4-a.BUCKET_NAMEadalah 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.
- Pasang penyimpanan cepat menggunakan Cloud Storage FUSE:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 <bucket-name> PATH
Ganti:
PATHdengan jalur sistem file lokal tempat Anda ingin memasang bucket.
- Jika belum, instal FIO:
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install fio -y
- 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_PATHdengan 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-60001msecMentransfer 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).
- Tidak ada tindakan tambahan yang diperlukan saat menggunakan peran yang telah ditentukan yang tercantum dalam
Izin transfer tanpa agen.
Izin yang diperlukan (
Jika tujuannya adalah bucket zona:
- Anda harus memberikan peran Storage Object User (
roles/storage.objectUser) kepada agen layanan. Tindakan ini memberikan izinstorage.folders.createyang diperlukan.
- Anda harus memberikan peran Storage Object User (
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.