Halaman ini menjelaskan proses pemindahan bucket dari satu lokasi ke lokasi lain. Untuk mengetahui informasi tentang pemindahan bucket, lihat Pemindahan bucket.
Sebelum memulai
Sebelum Anda dapat memindahkan bucket, selesaikan langkah-langkah berikut:
Periksa kuota dan batas untuk memastikan bahwa lokasi baru memiliki kuota yang cukup untuk mengakomodasi data bucket.
Tentukan jenis relokasi bucket untuk memahami apakah waktu nonaktif penulisan diperlukan.
Jika Anda menggunakan laporan inventaris, simpan konfigurasi Anda.
Dapatkan peran yang diperlukan, yang dijelaskan di bagian berikut.
Mendapatkan peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk memindahkan bucket, minta administrator Anda untuk memberi Anda peran IAM Storage Admin (roles/storage.admin
) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk memindahkan bucket. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk memindahkan bucket:
-
Untuk memindahkan bucket:
storage.buckets.relocate
-
Untuk melihat status operasi pemindahan bucket:
storage.bucketOperations.get
-
Untuk melihat daftar operasi pemindahan bucket untuk project:
storage.bucketOperations.list
-
Untuk membatalkan operasi pemindahan bucket:
storage.bucketOperations.cancel
-
Untuk melihat metadata bucket selama fase uji coba relokasi bucket dan penyalinan data inkremental:
storage.buckets.get
-
Untuk mendapatkan objek dalam bucket yang ingin Anda pindahkan:
storage.objects.get
-
Untuk mencantumkan objek dalam bucket yang ingin Anda pindahkan:
storage.objects.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Memindahkan bucket
Bagian ini menjelaskan proses memindahkan bucket Cloud Storage dari satu lokasi ke lokasi lain. Saat memindahkan bucket, Anda memulai proses penyalinan data inkremental, memantau proses, lalu memulai langkah sinkronisasi akhir. Untuk mengetahui informasi selengkapnya tentang langkah-langkah ini, lihat Memahami proses relokasi 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 ketidakcocokan 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 uji coba tidak dapat mengidentifikasi setiap kemungkinan masalah karena beberapa masalah mungkin hanya muncul selama migrasi langsung karena faktor-faktor seperti ketersediaan resource real-time, uji coba mengurangi risiko menghadapi masalah yang memakan waktu selama pemindahan yang sebenarnya.
Command line
Simulasikan uji coba pemindahan bucket:
gcloud storage buckets relocate gs://BUCKET_NAME --location=LOCATION --dry-run
Dengan:
BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.LOCATION
adalah lokasi tujuan bucket.
Setelah Anda memulai uji coba, operasi yang berjalan lama akan dimulai. Anda akan menerima ID operasi dan deskripsi operasi. Pantau progres dan penyelesaian uji coba dengan mendapatkan detail operasi yang berjalan lama.
Jika uji coba menunjukkan adanya masalah, selesaikan masalah tersebut sebelum melanjutkan ke Langkah memulai 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 daftar lengkap setelan. Berikut adalah setelan umum yang harus disertakan:{ "destinationLocation": "DESTINATION_LOCATION", "destinationCustomPlacementConfig": { "dataLocations": [ LOCATIONS, ... ] }, "validateOnly": "true" }
Dengan:
DESTINATION_LOCATION
adalah lokasi tujuan bucket.LOCATIONS
adalah daftar kode lokasi yang akan digunakan untuk dual-region 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:
JSON_FILE_NAME
adalah nama file JSON yang Anda buat.BUCKET_NAME
adalah nama bucket yang ingin Anda pindahkan.
Setelah Anda memulai uji coba, operasi yang berjalan lama akan dimulai. Uji coba berhasil jika kondisi berikut terpenuhi:
- Uji coba tidak melaporkan error.
Resource
operations
menampilkan nilai kolomdone
sebesartrue
.{ "kind": "storage#operation", "name": "projects/_/buckets/bucket/operations/operation_id", "metadata": { "@type": OperationMetadataType*, metadata OperationMetadata* }, "done": "true", "response": { "@type": ResponseResourceType*, response ResponseResource* } }
Jika uji coba menunjukkan adanya masalah, selesaikan masalah tersebut sebelum melanjutkan ke Langkah memulai penyalinan data inkremental.
Mulai penyalinan data inkremental
Command line
Mulai operasi pemindahan bucket:
gcloud storage buckets relocate gs://BUCKET_NAME --location=LOCATION
Dengan:
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 daftar lengkap setelan. Berikut adalah setelan umum yang harus disertakan:{ "destinationLocation": "DESTINATION_LOCATION", "destinationCustomPlacementConfig": { "dataLocations": [ LOCATIONS, ... ] }, "validateOnly": "false" }
Dengan:
DESTINATION_LOCATION
adalah lokasi tujuan bucket.LOCATIONS
adalah daftar kode lokasi yang akan digunakan untuk dual-region yang dapat dikonfigurasi.validateOnly
disetel kefalse
untuk memulai langkah penyalinan data inkremental dari relokasi 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:
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 memeriksa daftar operasi yang berjalan lama secara rutin untuk melihat status langkah penyalinan data inkremental. Untuk mengetahui informasi tentang cara mendapatkan detail tentang operasi yang berjalan lama, mencantumkan, 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 estimatedWriteDowntimeDuration: '7200s' 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 utama dalam output yang dihasilkan oleh operasi penyalinan data inkremental:
Nama kolom | Deskripsi | Nilai yang memungkinkan |
---|---|---|
done |
Menunjukkan selesainya operasi pemindahan bucket. | true , false |
kind |
Menunjukkan bahwa resource ini merepresentasikan operasi penyimpanan. | |
metadata |
Memberikan informasi tentang operasi. | |
metadata.@type |
Menunjukkan jenis operasi sebagai pemindahan bucket. | |
metadata.commonMetadata |
Metadata yang umum untuk semua operasi. | |
metadata.commonMetadata.createTime |
Waktu pembuatan operasi yang berjalan lama. | |
metadata.commonMetadata.endTime |
Waktu operasi yang berjalan lama berakhir. | |
metadata.commonMetadata.progressPercent |
Perkiraan 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 saat 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 pemindahan. | |
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 operasi pemindahan bucket. |
|
metadata.sourceLocation |
Lokasi sumber bucket. | |
metadata.validateOnly |
Menunjukkan apakah uji coba pemindahan bucket telah dimulai. | true , false |
metadata.estimatedWriteDowntimeDuration |
Perkiraan durasi periode istirahat penulisan; diisi setelah finalizationState adalah READY . |
Nilai minimum adalah 7200s . |
metadata.writeDowntimeExpireTime |
Waktu berakhirnya periode nonaktif penulisan. | |
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. |
Jika Anda mengalami masalah saat berinteraksi dengan fitur Cloud Storage lainnya, lihat Batasan.
Memulai langkah sinkronisasi akhir
Langkah sinkronisasi akhir melibatkan periode saat Anda tidak dapat melakukan operasi penulisan pada bucket. Sebaiknya jadwalkan langkah sinkronisasi akhir pada waktu yang meminimalkan gangguan pada aplikasi Anda.
Sebelum melanjutkan, konfirmasi bahwa bucket telah sepenuhnya disiapkan dengan memeriksa nilai
finalizationState
dalam output langkah penyalinan data inkremental. Nilai finalizationState
harus READY
untuk melanjutkan.
Jika Anda memulai langkah sinkronisasi akhir terlalu dini, perintah akan menampilkan
pesan error The relocate bucket operation is not ready to advance to finalization running state
, tetapi proses pemindahan 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/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Dengan:
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/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Dengan:
TTL_DURATION
adalah Time to live (TTL) untuk fase
penonaktifan penulisan selama proses relokasi. Dinyatakan sebagai string,
seperti 12h
untuk 12 jam. TTL_DURATION
menentukan durasi maksimum yang diizinkan
untuk fase periode nonaktif tulis. Jika periode nonaktif penulisan melebihi batas ini,
proses pemindahan akan otomatis dikembalikan ke langkah penyalinan inkremental,
dan operasi penulisan ke bucket akan diaktifkan kembali. Nilai harus berada 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 daftar lengkap setelan. Berikut adalah setelan umum yang harus disertakan:{ "expireTime": "EXPIRE_TIME", "ttl": "TTL_DURATION" }
Dengan:
EXPIRE_TIME
adalah waktu berakhirnya periode nonaktif penulisan.TTL_DURATION
adalah Time to live (TTL) untuk fase penonaktifan penulisan selama proses relokasi. Dinyatakan sebagai string, seperti12h
untuk 12 jam.TTL_DURATION
menentukan durasi maksimum yang diizinkan untuk fase periode nonaktif tulis. Jika periode nonaktif penulisan melebihi batas ini, proses pemindahan akan otomatis dikembalikan ke langkah penyalinan inkremental, dan operasi penulisan ke bucket akan diaktifkan kembali. Nilai harus berada 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:
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 pemindahan, verifikasi keberhasilannya. Bagian ini memberikan panduan tentang cara mengonfirmasi keberhasilan transfer data.
Validasi keberhasilan proses relokasi menggunakan metode berikut:
Polling operasi yang berjalan lama: Pemindahan bucket adalah operasi yang berjalan lama. Anda dapat melakukan polling 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 akhir. Untuk mengetahui informasi tentang pemantauan operasi yang berjalan lama, lihat Menggunakan operasi yang berjalan lama di Cloud Storage.Menganalisis entri Cloud Audit Logs: Cloud Audit Logs memberikan catatan mendetail 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 mengetahui apakah ada error, peringatan, atau perilaku tidak terduga yang mungkin menunjukkan masalah selama transfer. Untuk informasi tentang cara melihat log Cloud Audit Logs, lihat Melihat log audit.
Entri log berikut membantu Anda menentukan apakah pemindahan berhasil atau gagal:
Berhasil dipindahkan:
Relocate bucket succeeded. All existing objects are now in the new placement configuration.
Relokasi gagal:
Relocate bucket has failed. Bucket location remains unchanged.
Dengan notifikasi Pub/Sub, Anda juga dapat menyiapkan pemberitahuan yang memberi tahu saat peristiwa berhasil atau gagal tertentu muncul di log. Untuk mengetahui informasi tentang cara menyiapkan notifikasi Pub/Sub, lihat Mengonfigurasi notifikasi Pub/Sub untuk Cloud Storage.
Selesaikan tugas pemindahan bucket pasca-transfer
Setelah Anda 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 pemindahan dan Anda harus membuatnya ulang secara manual. Untuk mengetahui informasi tentang cara membuat konfigurasi laporan inventaris, lihat Membuat konfigurasi laporan inventaris.
- Perbarui konfigurasi infrastruktur sebagai kode Anda seperti Terraform dan konektor konfigurasi Google Kubernetes Engine untuk menentukan lokasi baru bucket.
- Endpoint regional terikat ke 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:
Relokasi bucket yang gagal dapat meninggalkan resource yang sudah tidak digunakan, seperti file sementara atau salinan data yang tidak lengkap, di tujuan. Anda harus menunggu 7 hingga 14 hari sebelum memulai relokasi bucket lain ke tujuan yang sama. Anda dapat memulai pemindahan bucket ke tujuan lain segera.
Jika lokasi tujuan bukan lokasi yang optimal untuk data Anda, Anda mungkin ingin membatalkan pemindahan. Namun, Anda tidak dapat segera memulai pemindahan. Waktu tunggu hingga 14 hari diperlukan sebelum Anda dapat memulai proses relokasi lagi. Pembatasan ini diterapkan untuk memastikan stabilitas dan mencegah konflik data.
Langkah berikutnya
- Pelajari pemindahan bucket.