Mirror Cloud Storage menyediakan layanan sinkronisasi otomatis berbasis peristiwa yang terus mencerminkan file dari bucket Cloud Storage ke direktori Managed Lustre. Pencerminan hanya didukung dalam satu arah, dari Cloud Storage ke Managed Lustre.
Mirror Cloud Storage hanya tersedia berdasarkan permintaan. Untuk menunjukkan minat Anda, kirimkan formulir permintaan mirror Cloud Storage.
Untuk mendapatkan dukungan terkait mirror Cloud Storage yang aktif, hubungi google-cloud-managed-lustre-support@google.com.
Mirror Cloud Storage dibandingkan dengan transfer data on-demand
Managed Lustre mendukung dua mekanisme untuk memindahkan data dengan Cloud Storage:
| Fitur | Mirror Cloud Storage | Transfer data on-demand |
|---|---|---|
| Arah | Cloud Storage ke Managed Lustre | Cloud Storage ke Managed Lustre Managed Lustre ke Cloud Storage |
| Pemicu: | Berbasis peristiwa; disinkronkan secara otomatis saat objek dibuat, diperbarui, dan dihapus | Manual |
| Namespace hierarkis | Tidak didukung | Didukung dan direkomendasikan untuk kecepatan transfer yang dipercepat |
| Bucket Rapid Storage | Tidak didukung | Tidak didukung |
Untuk mengetahui informasi tentang transfer on-demand, lihat Mentransfer data ke atau dari Cloud Storage.
Cara kerja pencerminan Cloud Storage
Mirror Cloud Storage menjalankan transfer berbasis peristiwa antara sumber Cloud Storage dan direktori Managed Lustre target. Sumber Cloud Storage dapat berupa bucket atau awalan objek tertentu dalam bucket. Pencerminan dilakukan dalam dua fase: sinkronisasi awal saat Anda membuat pencerminan, diikuti dengan replikasi berkelanjutan dari perubahan berikutnya.
Sinkronisasi awal
Saat Anda membuat pencerminan Cloud Storage, layanan akan melakukan sinkronisasi awal untuk menyalin semua objek yang ada dari jalur Cloud Storage sumber ke direktori Managed Lustre target.
Replikasi berkelanjutan berbasis peristiwa
Setelah sinkronisasi awal, layanan pencerminan akan memproses notifikasi bucket dan mereplikasi perubahan.
Sebagian besar objek dapat direplikasi dalam hitungan menit. Saat objek dibuat atau diubah, seluruh file akan disalin.
Membuat objek baru di Cloud Storage akan otomatis membuat file yang sesuai di Managed Lustre.
Mengubah objek yang ada di Cloud Storage akan menimpa file di Managed Lustre, sehingga menghapus semua perubahan lokal yang dibuat dalam sistem file.
Perubahan pada atribut metadata POSIX kustom pada objek Cloud Storage seperti UID, GID, mode, atau
mtimediperbarui pada file Managed Lustre yang sesuai.Menghapus objek di Cloud Storage akan menghapus file yang diduplikasi di Managed Lustre secara default. Anda dapat mengubah perilaku ini menggunakan flag
--deleted-files-retained. Direktori induk yang kosong tetap ada di sistem file setelah file terakhir di bawahnya dihapus.Perubahan yang dibuat di Managed Lustre pada file yang diduplikasi tidak disalin kembali ke bucket sumber. Jika objek sumber diperbarui nanti, file Managed Lustre akan ditimpa dengan konten objek sumber, sehingga perubahan lokal akan dihapus.
Menghapus file yang diduplikasi di Managed Lustre tidak akan menghapus objek yang sesuai di Cloud Storage.
Kecepatan transfer
Kecepatan transfer berikut berlaku untuk mirror Cloud Storage yang bucket dan instance-nya berada di region Google Cloud yang sama:
Sinkronisasi awal menyalin data yang ada hingga 100 GBps untuk file berukuran lebih dari 32 MB, dan hingga 10.000 objek per detik untuk file kecil.
Replikasi berkelanjutan otomatis menyinkronkan perubahan yang sedang berlangsung, dengan performa transfer yang bervariasi berdasarkan ukuran file:
- File besar berukuran 10 MB atau lebih besar ditransfer dengan throughput puncak hingga 3,5 GBps.
- File kecil berukuran 4 KB atau lebih kecil ditransfer hingga 4.900 objek per detik.
Jika data ditulis ke Cloud Storage lebih cepat daripada yang dapat disalin oleh pencerminan, peristiwa akan mengantre dalam backlog, sehingga meningkatkan waktu yang diperlukan agar perubahan muncul di Managed Lustre. Mirror akan otomatis mengejar setelah tingkat perubahan menurun.
Kecepatan transfer dibatasi oleh:
Throughput maksimum instance, yaitu kapasitas instance dikalikan dengan tingkat performa.
Bandwidth egress Cloud Storage, yang dibatasi hingga 200 Gbps, atau 25 GBps, per region per project. Untuk mendapatkan bandwidth egress yang lebih tinggi, minta penambahan kuota.
Latensi jaringan untuk transfer lintas region. Tempatkan bucket sumber dan instance di region yang sama untuk performa yang optimal.
Harga
Mirror Cloud Storage dikenai biaya Cloud Storage standar, yang ditagihkan ke project yang berisi bucket sumber:
- Sinkronisasi awal menjalankan operasi daftar Kelas A dan operasi baca Kelas B di bucket sumber, dan replikasi berkelanjutan menjalankan operasi baca Kelas B, yang menimbulkan biaya operasi Cloud Storage.
- Pencerminan data dari bucket sumber di region yang berbeda dari instance Managed Lustre Anda akan dikenai biaya transfer data lintas region.
Sebelum memulai
Untuk membuat pencerminan Cloud Storage, Anda memerlukan:
- Instance Managed Lustre dalam status
ACTIVE. - Bucket Cloud Storage yang ada untuk digunakan sebagai sumber pencerminan. Bucket dengan namespace hierarkis diaktifkan, bucket Rapid Storage, dan bucket dengan Requester Pays diaktifkan tidak didukung.
Izin, peran, dan resource yang diperlukan
Izin, peran, dan resource IAM berikut diperlukan untuk membuat dan mengelola pencerminan Cloud Storage.
Izin pengguna
Untuk membuat dan mengelola pencerminan, akun pengguna atau akun layanan Anda memerlukan
peran Managed Lustre Admin, roles/lustre.admin.
Jika Anda menggunakan peran khusus, peran tersebut memerlukan izin berikut:
lustre.mirrors.createuntuk membuat pencerminan.lustre.mirrors.getuntuk mendeskripsikan cermin.lustre.mirrors.listuntuk mencantumkan mirror.lustre.mirrors.updateuntuk mengupdate mirror.lustre.mirrors.deleteuntuk menghapus mirror.
Inisialisasi agen layanan Cloud Storage
Agen layanan Cloud Storage harus ada di project Anda agar dapat memublikasikan peristiwa notifikasi bucket:
gcloud storage service-agent --project=PROJECT_ID
Ganti PROJECT_ID dengan project ID Google Cloud Anda.
Izin agen layanan Managed Lustre
Agen layanan Managed Lustre yang dikelola Google memerlukan akses ke bucket Cloud Storage sumber Anda. Untuk mengetahui petunjuk tentang cara menemukan atau menginisialisasi identitas agen layanan Anda, lihat Agen layanan Managed Lustre.
Agen layanan memerlukan izin berikut pada bucket Cloud Storage sumber:
storage.buckets.getstorage.buckets.updatestorage.objects.getstorage.objects.list
Buat peran khusus yang berisi izin berikut:
gcloud iam roles create lustreMirrorUser \
--project=PROJECT_ID \
--title="Lustre mirror user" \
--permissions=storage.buckets.get,storage.buckets.update,storage.objects.get,storage.objects.list
Berikan peran khusus kepada agen layanan Managed Lustre di bucket sumber:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-lustre." \
--role="projects/PROJECT_ID/roles/lustreMirrorUser"
Ganti kode berikut:
- PROJECT_ID: Project ID Google Cloud Anda.
- BUCKET_NAME: Nama bucket Cloud Storage sumber Anda.
- PROJECT_NUMBER: Nomor project Google Cloud Anda.
Membuat mirror Cloud Storage
Anda dapat membuat satu pencerminan Cloud Storage per instance Managed Lustre.
Mirror Cloud Storage tidak dapat dibuat saat operasi impor atau ekspor sedang berlangsung di instance.
gcloud
Jalankan perintah mirrors create:
gcloud lustre instances mirrors create MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION \
--direction=from-cloud-storage \
--gcs-path-uri="gs://BUCKET_NAME/PREFIX/" \
--lustre-path="/LUSTRE_DIRECTORY"
Dengan:
- MIRROR_NAME adalah nama untuk resource duplikasi ini. Harus terdiri dari 1 hingga 63 karakter, hanya berisi huruf kecil, angka, dan tanda hubung, diawali dengan huruf, dan diakhiri dengan huruf atau angka.
- INSTANCE_ID adalah ID instance Managed Lustre Anda.
- LOCATION adalah zona instance Anda. Contoh,
us-central1-a. --directionmenentukan arah pencerminan. Harus berupafrom-cloud-storage.--gcs-path-uriadalah bucket Cloud Storage sumber dan awalan objek opsional. Jika Anda menentukan awalan objek, jalur harus diakhiri dengan garis miring:gs://<var>BUCKET_NAME</var>/<var>PREFIX</var>/.--lustre-pathadalah direktori target pada sistem file Managed Lustre. Harus berupa jalur absolut yang dimulai dengan/, misalnya/dataatau/data/subdir. Setelan defaultnya adalah direktori root,/. Jika direktori yang ditentukan tidak ada, direktori tersebut akan dibuat.
Parameter opsional berikut tersedia:
--deleted-files-retainedatau--no-deleted-files-retained: Mengontrol apakah file yang dihapus di Cloud Storage dipertahankan di Managed Lustre. Jumlah defaultnya adalah--no-deleted-files-retained--description=DESCRIPTION_TEXT: Deskripsi opsional untuk duplikasi.
REST
Kirim permintaan POST ke metode instances.mirrors.create:
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors?mirrorId=MIRROR_NAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"gcsPath": {
"uri": "gs://BUCKET_NAME/PREFIX/"
},
"lustrePath": {
"path": "/LUSTRE_DIRECTORY"
},
"direction": "FROM_CLOUD_STORAGE"
}
Dengan:
- PROJECT_ID adalah project ID Google Cloud Anda.
- LOCATION adalah zona instance Managed Lustre Anda. Contoh,
us-central1-a. - INSTANCE_ID adalah ID instance Anda.
- MIRROR_NAME adalah nama untuk resource duplikasi ini. Harus terdiri dari 1 hingga 63 karakter, hanya berisi huruf kecil, angka, dan tanda hubung, diawali dengan huruf, dan diakhiri dengan huruf atau angka.
gcsPathberisi kolomuridengan bucket Cloud Storage sumber dan awalan objek opsional. Jika Anda menentukan awalan objek, jalur harus diakhiri dengan garis miring:gs://<var>BUCKET_NAME</var>/<var>PREFIX</var>/.lustrePathadalah direktori target pada sistem file Managed Lustre. Harus berupa jalur absolut yang dimulai dengan/, misalnya/dataatau/data/subdir. Setelan defaultnya adalah direktori root,/. Jika direktori yang ditentukan tidak ada, direktori tersebut akan dibuat.directionmenentukan arah pencerminan. Harus berupaFROM_CLOUD_STORAGE.
Isi permintaan juga mendukung kolom opsional berikut:
deletedFilesRetained: Tetapkan ketrueuntuk mempertahankan file di Managed Lustre setelah file yang sesuai dihapus dari Cloud Storage. Jumlah defaultnya adalahfalsedescription: Deskripsi opsional untuk duplikasi.
Atribut file
Saat file disalin dari bucket Cloud Storage ke instance Managed Lustre, atribut file di instance Managed Lustre ditetapkan dengan salah satu dari dua cara berikut:
- Jika objek Cloud Storage memiliki metadata kustom seperti yang dijelaskan untuk mengekspor data, maka:
- UID, GID, mode, dan
mtimefile ditetapkan berdasarkan metadata kustom objek. atimefile ditetapkan ke nilai yang sama denganmtime.
- UID, GID, mode, dan
- Jika objek Cloud Storage tidak memiliki metadata kustom, maka:
- UID dan GID file ditetapkan ke 0 (
root). - Mode file ditetapkan ke
rwxr-xr-x(755). atimedanmtimefile ditetapkan ke waktu pembuatan objek Cloud Storage.
- UID dan GID file ditetapkan ke 0 (
Dalam kedua kasus tersebut:
ctimeuntuk file ditetapkan ke waktu file ditulis ke instance.atime,ctime, danmtimeuntuk direktori ditetapkan ke waktu pembuatan direktori di instance.
Mengelola mirror Cloud Storage
Anda dapat mencantumkan, mendeskripsikan, mengupdate, dan menghapus mirror Cloud Storage menggunakan alat Google Cloud CLI atau REST API. Untuk mengubah jalur sumber atau target pencerminan yang ada, Anda harus menghapus pencerminan yang ada dan membuat yang baru.
Mencantumkan mirror
Untuk melihat mirror yang dikonfigurasi pada instance:
gcloud
gcloud lustre instances mirrors list \
--instance=INSTANCE_ID \
--location=LOCATION
REST
Kirim permintaan GET ke metode instances.mirrors.list:
GET https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors
Authorization: Bearer YOUR_ACCESS_TOKEN
Deskripsikan cermin
Untuk melihat konfigurasi dan status operasional duplikasi:
gcloud
gcloud lustre instances mirrors describe MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION
REST
Kirim permintaan GET ke metode instances.mirrors.get:
GET https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors/MIRROR_NAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Status duplikasi
Kolom state yang ditampilkan oleh perintah list dan describe melaporkan di mana
mirror berada dalam siklus prosesnya:
| Negara bagian/Provinsi | Deskripsi |
|---|---|
CREATING |
Resource duplikasi sedang dibuat. |
INITIAL_SYNC |
Sinkronisasi awal menyalin objek yang ada dari Cloud Storage. |
ACTIVE |
Mirror menyinkronkan perubahan saat terjadi. |
DELETING |
Mirror sedang dihapus. |
Mengupdate mirror
Anda dapat memperbarui deskripsi, label, dan apakah akan mempertahankan file yang dihapus atau tidak.
Jalur Cloud Storage dan Managed Lustre tidak dapat diubah. Untuk mengarahkan mirror ke jalur yang berbeda, hapus mirror dan buat yang baru.
Memperbarui pencerminan tidak akan menjalankan ulang sinkronisasi awal.
gcloud
gcloud lustre instances mirrors update MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION \
--description="DESCRIPTION_TEXT"
REST
Kirim permintaan PATCH ke metode instances.mirrors.patch dengan parameter kueri updateMask:
PATCH https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors/MIRROR_NAME?updateMask=description
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"description": "DESCRIPTION_TEXT"
}
Menghapus mirror
Untuk menghapus mirror:
gcloud
gcloud lustre instances mirrors delete MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION
REST
Kirim permintaan DELETE ke metode instances.mirrors.delete:
DELETE https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors/MIRROR_NAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Menghapus pencerminan akan menghentikan sinkronisasi mendatang antara Cloud Storage dan Managed Lustre. File yang telah disalin ke Managed Lustre tidak akan dihapus saat pencerminan dihapus.
Transfer file yang sedang berlangsung saat pencerminan dihapus akan dibatalkan.
Transfer yang tidak lengkap dapat meninggalkan file sementara dengan format nama
FILENAME.cloud_transfer.UUID.NUMBER.tmp di direktori pencerminan setelah
pencerminan dihapus. Anda dapat menghapus file ini.
Melihat log
Log pencerminan mengidentifikasi setiap file yang gagal disinkronkan.
Log dirutekan ke Cloud Logging terhadap resource lustre.googleapis.com/Instance, di bawah nama log mirror.
Untuk melihat log operasi pencerminan:
- Buka Logs Explorer.
Masukkan kueri berikut:
resource.type="lustre.googleapis.com/Instance" logName="projects/PROJECT_ID/logs/lustre.googleapis.com%2Fmirror" resource.labels.instance_id="INSTANCE_ID"
Pemecahan masalah
Error PERMISSION_DENIED pada bucket sumber
Jika pembuatan pencerminan gagal dengan error PERMISSION_DENIED, file tidak disinkronkan, atau ada log yang menampilkan error "PERMISSION_DENIED":
Pastikan agen layanan Cloud Storage telah diinisialisasi:
gcloud storage service-agent --project=PROJECT_IDPastikan agen layanan Managed Lustre telah diberi izin yang diperlukan pada bucket sumber. Lihat Memberikan izin agen layanan untuk mengetahui detailnya.
Perubahan di Cloud Storage tidak direplikasi ke Managed Lustre
Jika status duplikasi adalah ACTIVE, tetapi objek baru atau yang diubah di Cloud Storage tidak muncul di Managed Lustre, pastikan konfigurasi notifikasi bucket ada di bucket sumber Anda.
Cantumkan notifikasi bucket:
gcloud storage buckets notifications list --bucket=BUCKET_NAMEJika output kosong, Anda harus menghapus mirror yang ada dan membuat yang baru:
gcloud lustre instances mirrors delete MIRROR_NAME \ --instance=INSTANCE_ID \ --location=LOCATIONSetelah penghapusan selesai, buat duplikasi baru.
Error konflik penamaan
Jika Anda melihat file yang hilang di Managed Lustre setelah menambahkannya ke Cloud Storage, periksa Cloud Logging untuk menemukan error konflik penamaan:
- Jika objek yang dibuat di Cloud Storage memiliki nama yang sama dengan direktori yang ada di Managed Lustre, transfer akan gagal dengan error
file existsdan direktori yang ada tidak akan ditimpa. Transfer yang gagal akan meninggalkan file sementara dengan format namaFILENAME.cloud_transfer.UUID.NUMBER.tmpdi direktori induk. - Jika objek yang dibuat di Cloud Storage berisi awalan jalur yang cocok dengan
file reguler yang ada di Managed Lustre, transfer akan gagal
dengan error
not a directorydan file yang ada tidak akan ditimpa. Misalnya, jikamodelsadalah file yang ada di Managed Lustre, mentransfer objek bernamamodels/weights.bindari Cloud Storage akan gagal karena direktorimodels/tidak dapat dibuat.
Untuk menyelesaikan konflik ini, ganti nama atau hapus direktori atau file yang bertentangan di Managed Lustre, hapus file .tmp yang tersisa, dan upload ulang objek di Cloud Storage untuk memicu sinkronisasi.
ABORTED: unable to queue the operation
Jika Anda menerima error ABORTED: unable to queue the operation saat membuat pencerminan atau memulai tugas transfer on demand:
- Pastikan tidak ada operasi
import-dataatauexport-datayang sedang berjalan pada instance sebelum membuat pencerminan. - Tunggu hingga pembuatan duplikasi dan sinkronisasi awal selesai sebelum mencoba operasi data administratif lainnya pada instance.
FILESYSTEM_NO_SPACE_ON_DEVICE
Jika pencerminan berhenti dan log menunjukkan error ruang, sistem file Managed Lustre Anda mungkin kehabisan inode atau kapasitas disk. Anda dapat menghapus file yang tidak diperlukan untuk mengosongkan ruang, atau meningkatkan kapasitas penyimpanan untuk memperluas sistem file Anda.