Halaman ini menjelaskan proses pemindahan bucket dari satu lokasi ke lokasi lain. Untuk mengetahui informasi tentang pemindahan bucket, lihat Pemindahan bucket.
Sebelum memulai
Sebelum memulai proses pemindahan bucket, selesaikan langkah-langkah berikut:
Periksa kuota dan batas untuk memastikan bahwa lokasi baru memiliki kuota yang cukup untuk mengakomodasi data bucket.
Menentukan jenis pemindahan bucket untuk memahami apakah downtime operasi tulis diperlukan.
Jika Anda menggunakan laporan inventaris, simpan konfigurasi Anda.
Peran yang diperlukan
Untuk mendapatkan izin guna memindahkan bucket dari satu lokasi ke lokasi lain, minta administrator untuk memberi Anda peran Storage Admin (roles/storage.admin
) untuk project tersebut.
Peran ini memberikan serangkaian izin yang memungkinkan Anda memindahkan bucket dari satu lokasi ke lokasi lainnya. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Pengguna yang diautentikasi harus memiliki izin IAM berikut di bucket untuk menggunakan metode ini:
storage.buckets.relocate
storage.bucketOperations.get
Anda memerlukan izin ini untuk melihat status operasi pemindahan bucket.storage.bucketOperations.list
Anda memerlukan izin ini untuk melihat daftar operasi pemindahan bucket.storage.bucketOperations.cancel
Anda memerlukan izin ini untuk membatalkan operasi pemindahan bucket.
Pengguna terautentikasi mungkin juga memerlukan izin berikut di bucket untuk menggunakan metode ini:
storage.bucket.get
Anda memerlukan izin ini untuk melihat metadata bucket selama uji coba dan salinan data inkremental dari operasi pemindahan bucket.storage.objects.list
danstorage.objects.get
Anda memerlukan izin ini untuk melihat daftar objek di bucket yang ingin dipindahkan ke lokasi lain.
Anda juga bisa mendapatkan izin ini dengan peran khusus atau mungkin bisa mendapatkan izin ini dengan peran standar lainnya. Untuk melihat peran yang terkait dengan izin apa, lihat Peran IAM untuk Cloud Storage.
Untuk mengetahui petunjuk cara memberikan peran untuk project, lihat Mengelola akses ke project.
Memindahkan bucket
Bagian ini menjelaskan proses pemindahan bucket Cloud Storage dari satu lokasi ke lokasi lain dengan Pemindahan Bucket. Saat memindahkan bucket, Anda memulai proses penyalinan data inkremental, memantaunya, lalu memulai langkah sinkronisasi akhir. Untuk mengetahui informasi selengkapnya tentang langkah-langkah ini, lihat Memahami proses pemindahan bucket.
Melakukan uji coba
Untuk meminimalkan potensi masalah selama proses pemindahan bucket, sebaiknya Anda melakukan uji coba. Uji coba mensimulasikan proses pemindahan bucket tanpa memindahkan data, sehingga membantu Anda mendeteksi dan menyelesaikan masalah sejak awal. Uji coba memeriksa inkompatibilitas berikut:
- Kunci enkripsi yang dikelola pelanggan (CMEK) atau Kunci enkripsi yang disediakan pelanggan (CSEK)
- Kebijakan retensi yang terkunci
- Objek dengan penangguhan sementara
- Upload multibagian
Meskipun dry run tidak dapat mengidentifikasi setiap kemungkinan masalah karena beberapa masalah mungkin hanya muncul selama migrasi langsung karena faktor seperti ketersediaan resource real-time, dry run mengurangi risiko menghadapi masalah yang memakan waktu selama relokasi yang sebenarnya.
Command line
Simulasikan uji coba pemindahan bucket:
gcloud storage buckets relocate gs://BUCKET_NAME --location=LOCATION --dry-run
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.LOCATION
adalah lokasi tujuan bucket.
Memulai dry run akan memulai operasi yang berjalan lama. Anda akan menerima ID operasi dan deskripsi operasi. Untuk melacak penyelesaian uji coba, Anda harus melacak progresnya. Untuk informasi tentang cara melacak progres uji coba, lihat Mendapatkan detail operasi yang berjalan lama.
Jika uji coba menunjukkan masalah, atasi masalah tersebut sebelum melanjutkan ke Memulai langkah penyalinan data inkremental.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi setelan untuk bucket, yang harus menyertakan parameter
destinationLocation
danvalidateOnly
. Lihat dokumentasiBuckets: relocate
untuk mengetahui daftar lengkap setelan. Berikut adalah setelan umum yang harus disertakan:{ "destinationLocation": "DESTINATION_LOCATION", "destinationCustomPlacementConfig": { "dataLocations": [ LOCATIONS, ... ] }, "validateOnly": "true" }
Dengan keterangan:
DESTINATION_LOCATION
adalah lokasi tujuan bucket.LOCATIONS
adalah daftar kode lokasi yang akan digunakan untuk region ganda yang dapat dikonfigurasi.validateOnly
disetel ketrue
untuk melakukan uji coba.
Gunakan
cURL
untuk memanggil JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/bucket=BUCKET_NAME/relocate"
Dengan keterangan:
JSON_FILE_NAME
adalah nama file JSON yang Anda buat.BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.
Memulai penyalinan data tambahan
Command line
Mulai operasi pemindahan bucket:
gcloud storage buckets relocate gs://BUCKET_NAME --location=LOCATION
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.LOCATION
adalah lokasi tujuan bucket.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi setelan untuk bucket. Lihat dokumentasi
Buckets: relocate
untuk mengetahui daftar lengkap setelan. Berikut adalah setelan umum yang harus disertakan:{ "destinationLocation": "DESTINATION_LOCATION", "destinationCustomPlacementConfig": { "dataLocations": [ LOCATIONS, ... ] }, "validateOnly": "false" }
Dengan keterangan:
DESTINATION_LOCATION
adalah lokasi tujuan bucket.LOCATIONS
adalah daftar kode lokasi yang akan digunakan untuk region ganda yang dapat dikonfigurasi.validateOnly
ditetapkan kefalse
untuk memulai langkah penyalinan data inkremental dari pemindahan bucket.
Gunakan
cURL
untuk memanggil JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/bucket=BUCKET_NAME/relocate"
Dengan keterangan:
JSON_FILE_NAME
adalah nama file JSON yang Anda buat.BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.
Memantau penyalinan data inkremental
Proses pemindahan bucket adalah operasi yang berjalan lama yang harus dipantau untuk melihat progresnya. Anda dapat secara rutin memeriksa daftar operasi yang berjalan lama untuk melihat status langkah penyalinan data inkremental. Untuk informasi tentang cara mendapatkan detail tentang operasi yang berjalan lama, membuat daftar, atau membatalkan operasi yang berjalan lama, lihat Menggunakan operasi yang berjalan lama di Cloud Storage.
Contoh berikut menunjukkan output yang dihasilkan oleh operasi penyalinan data inkremental:
done: false kind: storage#operation metadata: '@type': type.googleapis.com/google.storage.control.v2.RelocateBucketMetadata commonMetadata: createTime: '2024-10-21T04:26:59.666Z endTime: '2024-12-29T23:39:53.340Z' progressPercent: 99 requestedCancellation: false type: relocate-bucket updateTime: '2024-10-21T04:27:03.2892' destinationLocation: US-CENTRAL1 finalizationState: 'READY' progress: byteProgressPercent: 100 discoveredBytes: 200 remainingBytes: 0 discoveredObjectCount: 10 remainingObjectCount: 8 objectProgressPercent: 100 discoveredSyncCount: 8 remainingSyncCount: 0 syncProgressPercent: 100 relocationState: SYNCING sourceLocation: US validateOnly: false writeDowntimeExpireTime: '2024-12-30T10:34:01.786Z' name: projects//buckets/my-bucket1/operations/Bar7-1b0khdew@nhenUQRTF_R-Kk4dQ5V1f8fzezkFcPh3XMvlTqJ6xhnqJ1h_QXFIeAirrEqkjgu4zPKSRD6WSSG5UGXil6w response: '@type': type.googleapis.com/google.storage.control.v2.RelocateBucketResponse selfLink: https://storage.googleusercontent.com/storage/v1_ds/b/my-bucket1/operations/Bar7-1b0khdew@nhenUQRTF_R-Kk4dQ5V1f8fzezkFcPh3XMvlTqJ6xhnqJ1h_QXFIeAirrEqkjgu4zPKSRD6WSSG5UGXil6w
Tabel berikut memberikan informasi tentang kolom kunci dalam output yang dihasilkan oleh operasi penyalinan data inkremental:
Nama kolom | Deskripsi | Nilai yang memungkinkan |
---|---|---|
done |
Menunjukkan penyelesaian operasi pemindahan bucket. | true , false |
kind |
Menunjukkan bahwa resource ini mewakili operasi penyimpanan. | |
metadata |
Memberikan informasi tentang operasi. | |
metadata.@type |
Menunjukkan jenis operasi sebagai relokasi bucket. | |
metadata.commonMetadata |
Metadata yang umum untuk semua operasi. | |
metadata.commonMetadata.createTime |
Waktu operasi yang berjalan lama dibuat. | |
metadata.commonMetadata.endTime |
Waktu operasi yang berjalan lama berakhir. | |
metadata.commonMetadata.progressPercent |
Estimasi progres operasi yang berjalan lama, dalam persentase. | Antara 0 hingga 100 %. Nilai -1 berarti progres tidak diketahui atau tidak berlaku. |
metadata.commonMetadata.requestedCancellation |
Menunjukkan apakah pengguna telah meminta pembatalan operasi yang berjalan lama. | true , false |
metadata.commonMetadata.type |
Menunjukkan jenis operasi yang berjalan lama. | |
metadata.commonMetadata.updateTime |
Waktu operasi yang berjalan lama terakhir diperbarui. | |
metadata.destinationLocation |
Lokasi tujuan bucket. | |
metadata.finalizationState |
Menunjukkan kesiapan untuk memulai langkah sinkronisasi akhir. |
|
metadata.progress |
Detail progres operasi relokasi. | |
metadata.progress.byteProgressPercent |
Progres byte yang disalin dalam persentase. | Antara 0 hingga 100 %. Nilai -1 berarti progres tidak diketahui atau tidak berlaku. |
metadata.progress.discoveredBytes |
Jumlah byte yang ditemukan di bucket sumber. | |
metadata.progress.discoveredObjectCount |
Jumlah objek yang ditemukan di bucket sumber. | |
metadata.progress.discoveredSyncCount |
Jumlah pembaruan metadata objek yang ditemukan di bucket sumber. | |
metadata.progress.objectProgressPercent |
Progres objek yang disalin dalam persentase. | Antara 0 hingga 100 %. Nilai -1 berarti progres tidak diketahui atau tidak berlaku. |
metadata.progress.remainingBytes |
Jumlah byte yang tersisa untuk disalin dari bucket sumber ke bucket tujuan. | |
metadata.progress.remainingObjectCount |
Jumlah objek yang tersisa untuk disalin dari bucket sumber ke bucket tujuan. | |
metadata.progress.remainingSyncCount |
Jumlah pembaruan metadata objek yang tersisa untuk disinkronkan. | |
metadata.progress.syncProgressPercent |
Progres pembaruan metadata objek yang akan disinkronkan dalam persentase. | Antara 0 hingga 100 %. Nilai -1 berarti progres tidak diketahui atau tidak berlaku. |
metadata.relocationState |
Status keseluruhan relokasi bucket |
|
metadata.sourceLocation |
Lokasi sumber bucket. | |
metadata.validateOnly |
Menunjukkan apakah uji coba pemindahan bucket telah dimulai. | true , false |
metadata.writeDowntimeExpireTime |
Waktu habis masa berlaku periode nonaktif operasi tulis. | |
name |
ID unik untuk operasi pemindahan ini. Format: projects/_/buckets/bucket-name/operations/operation-id |
|
response |
Respons operasi. | |
response.@type |
Jenis respons. | |
selfLink |
Link ke operasi ini. |
Anda mungkin mengalami masalah karena batasan saat berinteraksi dengan fitur Cloud Storage lainnya. Untuk mengetahui informasi selengkapnya tentang batasan, lihat Batasan.
Memulai langkah sinkronisasi akhir
Langkah sinkronisasi akhir melibatkan periode saat Anda tidak dapat melakukan operasi menulis pada bucket. Sebaiknya jadwalkan langkah sinkronisasi akhir pada waktu yang meminimalkan gangguan pada aplikasi Anda.
Sebelum melanjutkan, pastikan bucket sudah siap sepenuhnya dengan memeriksa nilai finalizationState
dalam output langkah memantau proses penyalinan data inkremental. Nilai finalizationState
harus READY
untuk melanjutkan
langkah sinkronisasi terakhir.
Jika Anda memulai langkah sinkronisasi akhir sebelum waktunya, perintah akan menampilkan
pesan error The relocate bucket operation is not ready to advance to finalization running state
, tetapi proses relokasi akan berlanjut.
Sebaiknya tunggu hingga nilai progressPercent
menjadi 99
sebelum
memulai langkah sinkronisasi akhir.
Command line
Mulai langkah sinkronisasi akhir operasi Pemindahan Bucket
setelah nilai finalizationState
adalah READY
:
gcloud storage buckets relocate --finalize --operation=projects/_/BUCKET_NAME/operations/OPERATION_ID
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.OPERATION_ID
adalah ID operasi yang berjalan lama, yang ditampilkan dalam respons metode yang Anda panggil. Misalnya, respons berikut ditampilkan dari panggilangcloud storage operations list
dan ID operasi yang berjalan lama adalahAbCJYd8jKT1n-Ciw1LCNXIcubwvij_TdqO-ZFjuF2YntK0r74
.
`name: projects/_/buckets/my-bucket/operations/AbCJYd8jKT1n-Ciw1LCNXIcubwvij_TdqO-ZFjuF2YntK0r74`
Tetapkan tanda ttl
untuk memiliki kontrol yang lebih besar atas proses relokasi. Contoh:
gcloud storage buckets relocate --finalize --ttl TTL_DURATION --operation=projects/_/BUCKET_NAME/operations/OPERATION_ID
Dengan keterangan:
TTL_DURATION
adalah Time to live (TTL) untuk fase periode nonaktif
penulisan selama proses relokasi. Nilai ini dinyatakan sebagai string,
seperti 12h
selama 12 jam. TTL_DURATION
menentukan durasi maksimum yang diizinkan untuk fase periode nonaktif operasi tulis. Jika periode nonaktif operasi tulis melebihi batas ini,
proses relokasi akan otomatis dikembalikan ke langkah salin inkremental,
dan operasi tulis ke bucket akan diaktifkan kembali. Nilai harus dalam
rentang 6h
(6 jam) hingga 48h
(48 jam). Jika tidak ditentukan, nilai defaultnya adalah 12h
(12 jam).
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi setelan untuk pemindahan bucket. Lihat dokumentasi
Buckets: advanceRelocateBucket
untuk mengetahui daftar lengkap setelan. Berikut adalah setelan umum yang harus disertakan:{ "expireTime": "EXPIRE_TIME", "ttl": "TTL_DURATION" }
Dengan keterangan:
EXPIRE_TIME
adalah waktu habis masa berlaku periode nonaktif operasi tulis.TTL_DURATION
adalah Time to live (TTL) untuk fase periode nonaktif penulisan selama proses relokasi. Nilai ini dinyatakan sebagai string, seperti12h
selama 12 jam.TTL_DURATION
menentukan durasi maksimum yang diizinkan untuk fase periode nonaktif operasi tulis. Jika periode nonaktif operasi tulis melebihi batas ini, proses relokasi akan otomatis dikembalikan ke langkah salin inkremental, dan operasi tulis ke bucket akan diaktifkan kembali. Nilai harus dalam rentang6h
(6 jam) hingga48h
(48 jam). Jika tidak ditentukan, nilai defaultnya adalah12h
(12 jam).
Gunakan
cURL
untuk memanggil JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/bucket/BUCKET_NAME/operations/OPERATION_ID/advanceRelocateBucket"
Dengan keterangan:
JSON_FILE_NAME
adalah nama file JSON yang Anda buat.BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.OPERATION_ID
adalah ID operasi yang berjalan lama, yang ditampilkan dalam respons metode yang Anda panggil. Misalnya, respons berikut ditampilkan dari panggilanOperations: list
dan ID operasi yang berjalan lama adalahAbCJYd8jKT1n-Ciw1LCNXIcubwvij_TdqO-ZFjuF2YntK0r74
.
Memvalidasi proses pemindahan bucket
Setelah memulai relokasi, verifikasi bahwa relokasi berhasil diselesaikan. Bagian ini memberikan panduan tentang cara mengonfirmasi keberhasilan transfer data.
Validasi keberhasilan proses relokasi menggunakan metode berikut:
Melakukan polling operasi yang berjalan lama: Pemindahan bucket adalah operasi yang berjalan lama. Anda dapat melakukan polling pada operasi yang berjalan lama menggunakan
operation id
untuk memantau progres operasi dan mengonfirmasi penyelesaiannya yang berhasil dengan memverifikasi statussuccess
. Hal ini melibatkan kueri status operasi secara berkala hingga mencapai status terminal. Untuk informasi tentang cara memantau operasi yang berjalan lama, lihat Menggunakan operasi yang berjalan lama di Cloud Storage.Menganalisis entri Cloud Audit Logs: Cloud Audit Logs memberikan catatan terperinci tentang peristiwa dan operasi di lingkungan Google Cloud Anda. Anda dapat menganalisis entri Cloud Audit Logs yang terkait dengan relokasi untuk memvalidasi keberhasilannya. Analisis log untuk menemukan error, peringatan, atau perilaku tidak terduga yang mungkin menunjukkan masalah selama transfer. Untuk mengetahui informasi tentang cara melihat log Cloud Audit Logs, lihat Melihat log audit.
Entri log berikut membantu Anda menentukan apakah tindakan Anda berhasil atau gagal:
Pemindahan berhasil:
Relocate bucket succeeded. All existing objects are now in the new placement configuration.
Pemindahan gagal:
Relocate bucket has failed. Bucket location remains unchanged.
Dengan menggunakan notifikasi Pub/Sub, Anda juga dapat menyiapkan pemberitahuan yang memberi tahu saat peristiwa keberhasilan atau kegagalan tertentu muncul di log. Untuk informasi tentang cara menyiapkan notifikasi Pub/Sub, lihat Mengonfigurasi notifikasi Pub/Sub untuk Cloud Storage.
Menyelesaikan tugas pasca-relokasi bucket
Setelah berhasil memindahkan bucket, selesaikan langkah-langkah berikut:
- Opsional: Pulihkan kontrol akses berbasis tag di bucket Anda.
- Konfigurasi laporan inventaris yang ada tidak dipertahankan selama proses relokasi dan Anda harus membuatnya ulang secara manual. Untuk informasi tentang cara membuat konfigurasi laporan inventaris, lihat Membuat konfigurasi laporan inventaris.
- Perbarui konfigurasi infrastruktur sebagai kode seperti konektor konfigurasi Terraform dan Google Kubernetes Engine untuk menentukan lokasi baru bucket.
- Endpoint regional terikat dengan lokasi tertentu, dan Anda harus mengubah kode aplikasi untuk mencerminkan endpoint baru.
Cara menangani operasi pemindahan bucket yang gagal
Pertimbangkan faktor-faktor berikut sebelum menangani operasi pemindahan bucket yang gagal:
Pemindahan bucket yang gagal dapat menyebabkan resource yang sudah tidak digunakan lagi, seperti file sementara atau salinan data yang tidak lengkap, tetap ada di tujuan. Anda harus menunggu 7 hingga 14 hari sebelum memulai pemindahan bucket lain ke tujuan yang sama. Anda dapat langsung memulai relokasi bucket ke tujuan lain.
Jika lokasi tujuan bukan lokasi yang optimal untuk data Anda, sebaiknya rollback relokasi. Namun, Anda tidak dapat langsung memulai pemindahan. Anda harus menunggu hingga 14 hari sebelum dapat memulai proses relokasi lagi. Batasan ini diterapkan untuk memastikan stabilitas dan mencegah konflik data.
Langkah berikutnya
- Pelajari pemindahan bucket.