Halaman ini menjelaskan cara melakukan hal berikut:
Buat bucket dengan lokasi zona.
Pasang bucket zonal ke sistem file lokal Anda menggunakan Cloud Storage FUSE.
Transfer data antara bucket yang ada ke bucket zonal menggunakan Storage Transfer Service.
Membuat bucket di zona
Sebelum memulai
Jika Anda belum melakukannya, dapatkan peran yang diperlukan untuk membuat bucket.
Konsol
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
- Klik Create.
- Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah
setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah
berikutnya:
-
Di bagian Mulai, lakukan tindakan berikut:
-
Masukkan nama yang unik secara global yang memenuhi persyaratan nama bucket.
-
-
Di bagian Pilih tempat untuk menyimpan data Anda, lakukan tindakan 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 kelas penyimpanan default.
-
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.
-
Untuk memilih cara data objek Anda akan dienkripsi, klik panah peluas berlabel Enkripsi data, lalu pilih metode Enkripsi data.
-
Klik Create.
Command line
-
In the Google Cloud console, 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.
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. Misalnya,us-east1.BUCKET_ZONEdengan 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:
- Instal Cloud Storage FUSE. Pastikan Anda menginstal Cloud Storage FUSE versi 3.4.0 atau yang lebih baru.
- Mengautentikasi permintaan Cloud Storage FUSE.
- 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_POINTgcsfuse BUCKET_NAME MOUNT_POINT
Ganti:
MOUNT_POINTdengan direktori lokal untuk memasang bucket. Contoh,$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 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_NAMEadalah zona tempat bucket Anda berada. Contoh,us-east4-a.BUCKET_NAMEadalah 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.
- Memasang penyimpanan cepat menggunakan Cloud Storage FUSE:
mkdir $HOME/rapid-mnt
gcsfuse --max-retry-attempts=5 <bucket-name> PATH
Ganti:
PATHdengan jalur sistem file lokal yang ingin Anda gunakan untuk memasang bucket.
- Jika Anda belum melakukannya, 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, 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-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 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).
- Anda tidak perlu melakukan tindakan tambahan saat menggunakan peran standar yang tercantum dalam
Izin transfer tanpa agen.
Izin yang diperlukan (
Jika tujuannya adalah bucket zonal:
- Anda harus memberikan peran Storage Object User (
roles/storage.objectUser) kepada agen layanan. Hal ini memberikan izinstorage.folders.createyang diperlukan.
- Anda harus memberikan peran Storage Object User (
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.