Google Cloud Managed Lustre dapat mengimpor data dari, dan mengekspor data ke, Cloud Storage. Transfer data bersifat inkremental; hanya menyalin file yang belum ada di tujuan, atau yang telah berubah sejak ditransfer.
Bucket Cloud Storage dengan namespace hierarkis yang diaktifkan memberikan kecepatan transfer yang lebih cepat ke dan dari Managed Lustre dibandingkan dengan bucket standar.
Performa
Transfer antara Managed Lustre dan Cloud Storage dapat mencapai kecepatan berikut:
- Untuk file berukuran lebih dari 32 MB, hingga 100 GBps. Kecepatan transfer di batasi oleh throughput maksimum instance (kapasitas instance dikalikan dengan tingkat performa).
Pertimbangan bandwidth keluar Cloud Storage
Cloud Storage menyediakan bandwidth keluar default hingga 200 Gbps per region per project. Jika memiliki beberapa instance Managed Lustre dalam project dan region yang sama, Anda dapat meminta peningkatan batas bandwidth keluar. Untuk mengetahui informasi selengkapnya, lihat kuota bandwidth Cloud Storage.
Izin yang diperlukan
Izin untuk memulai transfer
Pengguna atau akun layanan yang digunakan untuk memulai transfer memerlukan izin berikut:
lustre.instances.exportDatauntuk mentransfer dari Managed Lustre ke Cloud Storage.lustre.instances.importDatauntuk mentransfer dari Cloud Storage.
Kedua izin ini diberikan dengan peran roles/lustre.admin. Anda dapat membuat peran kustom untuk
memberikan izin secara independen.
Izin untuk agen layanan Managed Lustre
Managed Lustre menggunakan agen layanan untuk mengakses bucket Cloud Storage atas nama Anda. Untuk melakukan transfer, Anda harus memberikan akses agen layanan ke bucket target.
Jika Anda tidak mengetahui identitas agen layanan project, lihat Membuat atau mengambil identitas agen layanan.
Memberikan izin
Agen layanan Managed Lustre memerlukan salah satu peran Cloud Storage berikut : peran Cloud Storage
- Untuk mentransfer data ke dan dari Cloud Storage:
roles/storage.objectUserdi bucket Cloud Storage. - Untuk hanya mentransfer dari Cloud Storage:
roles/storage.objectViewerdi bucket Cloud Storage.
Untuk memberikan salah satu peran ini:
Mengimpor dan mengekspor
Jalankan perintah gcloud berikut:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:SERVICE_AGENT_IDENTITY \
--role=roles/storage.objectUser
Hanya mengimpor
Jalankan perintah gcloud berikut:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:SERVICE_AGENT_IDENTITY \
--role=roles/storage.objectViewer
Ganti kode berikut:
- BUCKET_NAME: Nama bucket Cloud Storage Anda.
- SERVICE_AGENT_IDENTITY: Identitas agen layanan Managed Lustre (
service-<var>PROJECT_NUMBER</var>@gcp-sa-lustre.iam.gserviceaccount.com).
Mengimpor data ke Managed Lustre
Anda dapat mengimpor data dari bucket Cloud Storage. Bucket dapat berada di project yang sama atau berbeda. Bucket dapat berada di zona atau region yang berbeda
dari instance Managed Lustre Anda, tetapi transfer antar-region
mungkin lebih lambat daripada transfer intra-region.
gcloud
gcloud lustre instances import-data INSTANCE_ID \
--location=LOCATION \
--gcs-path-uri=gs://BUCKET_NAME/ \
--lustre-path=PS_PATH
Dengan:
- INSTANCE_ID adalah nama instance Managed Lustre Anda.
--locationadalah zona instance Managed Lustre Anda. Contohnya,us-central1-a.--gcs-path-urimenentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan formatgs://<bucket_name>/<optional_path_inside_bucket>/. Jika jalur di dalam bucket ditentukan, jalur tersebut harus diakhiri dengan garis miring (/).--lustre-pathmenentukan jalur direktori root ke sistem file Managed Lustre. Harus dimulai dengan/. Default-nya adalah/. Jika menentukan nilai selain default, direktori harus sudah ada di sistem file.
Parameter berikut bersifat opsional:
--request-idmemungkinkan Anda menetapkan ID unik ke permintaan ini. Jika Anda mencoba lagi permintaan ini menggunakan ID permintaan yang sama, server akan mengabaikan permintaan tersebut jika sudah selesai. Harus berupa UUID yang valid dan tidak semuanya nol.--asyncakan segera menampilkan respons, tanpa menunggu operasi selesai.
Untuk mengetahui detail selengkapnya, lihat dokumentasi Cloud SDK.
REST
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData
Authorization: Bearer [YOUR_ACCESS_TOKEN]
{
"gcsPath" : {
"uri" : "gs://BUCKET_NAME/"
},
"lustrePath" : {
"path" : "/PATH"
}
}
Dengan:
- PROJECT_ID adalah nama Google Cloud projectAnda.
- LOCATION adalah zona instance Managed Lustre
Anda. Contohnya,
us-central1-a. - INSTANCE_ID adalah nama instance Managed Lustre Anda.
gcsPathberisi kunciuriyang nilainya menentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan formatgs://<bucket_name>/<optional_path_inside_bucket>/. Jika jalur di dalam bucket ditentukan, jalur tersebut harus diakhiri dengan garis miring (/).lustrePathberisi kuncipathyang nilainya menentukan jalur direktori root ke sistem file Managed Lustre. Harus dimulai dengan/. Default-nya adalah/. Jika menentukan nilai selain default, direktori harus sudah ada di sistem file.
Untuk menggunakan akun layanan Anda sendiri, bukan agen layanan yang dikelola Google, permintaan mendukung kolom serviceAccount dalam objek JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Contoh perintah curl terlihat seperti berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData \
-d '{"gcsPath": {"uri":"gs://BUCKET_NAME/"}, "lustrePath": {"path":"/"}}'
Atribut file
Saat Anda mengimpor data dari bucket Cloud Storage ke instance Managed Lustre, atribut file di instance Managed Lustre akan 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:
ctimeuntuk file ditetapkan ke waktu file ditulis ke instance.atime,ctime, danmtimeuntuk direktori ditetapkan ke waktu direktori dibuat di instance.
Ekspor data
Anda dapat mengekspor data dari instance Managed Lustre ke bucket Cloud Storage di project yang sama atau berbeda. Bucket dapat berada di zona atau region yang berbeda dari instance Managed Lustre Anda, tetapi transfer antar-region mungkin lebih lambat daripada transfer intra-region.
gcloud
gcloud lustre instances export-data \
INSTANCE_ID \
--location=LOCATION \
--gcs-path-uri="gs://BUCKET_NAME/" \
--lustre-path="/"
Dengan:
- INSTANCE_ID adalah nama instance Managed Lustre Anda.
--locationadalah zona instance Managed Lustre Anda. Contohnya,us-central1-a.--gcs-path-urimenentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan formatgs://<bucket_name>/<optional_path_inside_bucket>/. Jika jalur di dalam bucket ditentukan, jalur tersebut harus diakhiri dengan garis miring (/).--lustre-pathmenentukan jalur direktori root ke sistem file Managed Lustre. Harus dimulai dengan/. Default-nya adalah/.
Parameter berikut bersifat opsional:
--request-idmemungkinkan Anda menetapkan ID unik ke permintaan ini. Jika Anda mencoba lagi permintaan ini menggunakan ID permintaan yang sama, server akan mengabaikan permintaan tersebut jika sudah selesai. Harus berupa UUID yang valid dan tidak semuanya nol.--asyncakan segera menampilkan respons, tanpa menunggu operasi selesai.
REST
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData
Authorization: Bearer [YOUR_ACCESS_TOKEN]
{
"lustrePath" : {
"path" : "/"
},
"gcsPath" : {
"uri" : "gs://BUCKET_NAME/"
}
}
Dengan:
- PROJECT_ID adalah nama Google Cloud projectAnda.
- INSTANCE_ID adalah nama instance Managed Lustre Anda.
- LOCATION adalah zona instance Managed Lustre
Anda. Contohnya,
us-central1-a. lustrePathberisi kuncipathyang nilainya menentukan jalur direktori root ke sistem file Managed Lustre. Harus dimulai dengan/. Default-nya adalah/.gcsPathberisi kunciuriyang nilainya menentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan formatgs://<bucket_name>/<optional_path_inside_bucket>/. Jika jalur di dalam bucket ditentukan, jalur tersebut harus diakhiri dengan garis miring (/).
Untuk menggunakan akun layanan Anda sendiri, bukan agen layanan yang dikelola Google, permintaan mendukung kolom serviceAccount dalam objek JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Contoh perintah curl terlihat seperti berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json"
https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData \
-d '{"lustrePath": {"path":"/"}, "gcsPath": {"uri":"gs://BUCKET_NAME/"}}'
Atribut file
Saat Anda mengekspor data dari instance Managed Lustre ke bucket Cloud Storage, atribut file berikut akan dipertahankan sebagai metadata kustom di Cloud Storage:
- UID file disimpan dengan kunci
goog-reserved-posix-uid. - GID file disimpan dengan kunci
goog-reserved-posix-gid. - Mode numerik file disimpan dengan kunci
goog-reserved-posix-mode. - File
mtimedisimpan dengan kuncigoog-reserved-file-mtime.
Nama kunci metadata kustom ini sama dengan yang digunakan oleh Storage Transfer Service untuk transfer dengan sistem file POSIX.
Atribut file berikut tidak dipertahankan:
- Symlink tidak dipertahankan.
- Hard link diekspor sebagai objek Cloud Storage terpisah, sehingga menghasilkan beberapa salinan.
- Lustre striping yang ditetapkan secara eksplisit menggunakan
lfs setstripeataulfs setdirstripetidak dipertahankan. atimedanctimefile tidak dipertahankan.mtimedirektori tidak dipertahankan.- Direktori kosong tidak dipertahankan.
Mendapatkan operasi
Untuk melihat status operasi impor atau ekspor, Anda memerlukan ID operasi. ID ini ditampilkan oleh layanan saat Anda membuat permintaan impor atau ekspor, dan menggunakan format berikut:
operation-1234567890123-6127783ad26ea-88913969-02748053
gcloud
gcloud lustre operations describe OPERATION_ID \
--location=LOCATION
REST
GET https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Contoh perintah curl terlihat seperti berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Membatalkan operasi
Untuk membatalkan operasi impor atau ekspor, Anda memerlukan ID operasi. ID ini ditampilkan oleh layanan saat Anda membuat permintaan impor atau ekspor, dan menggunakan format berikut:
operation-1234567890123-6127783ad26ea-88913969-02748053
gcloud
gcloud lustre operations cancel OPERATION_ID \
--location=LOCATION
REST
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Contoh perintah curl terlihat seperti berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Batasan
Batasan berikut berlaku:
Hanya satu operasi transfer per instance yang dapat aktif dalam satu waktu. Memulai transfer kedua sebelum transfer pertama selesai akan menampilkan error berikut:
ERROR: (gcloud.lustre.instances.export-data) ABORTED: unable to queue the operation
Pemecahan masalah
Saat mengimpor data dari atau mengekspor data ke Cloud Storage, Anda mungkin mengalami transfer yang terhenti, masalah izin, atau file yang dilewati. Ikuti langkah-langkah berikut untuk mendiagnosis dan menyelesaikan masalah transfer data umum.
Transfer terhenti atau kecepatan keluar lambat
Jika operasi impor atau ekspor terhenti atau berjalan jauh lebih lambat dari yang diharapkan, periksa hal berikut:
- Batas bandwidth keluar Cloud Storage: Cloud Storage menerapkan kuota bandwidth keluar default hingga 200 Gbps per region per project. Jika beberapa instance atau workload dengan throughput tinggi mentransfer data secara bersamaan, Anda mungkin mengalami bottleneck karena kuota ini. Lihat Kuota bandwidth Cloud Storage untuk meminta penambahan kuota.
- Batas throughput instance: Kecepatan transfer dibatasi oleh kapasitas throughput maksimum instance Anda (kapasitas instance dikalikan dengan tingkat performanya). Verifikasi tingkat performa instance Anda untuk memastikan tingkat tersebut sesuai dengan ekspektasi performa Anda.
Error izin selama inisiasi transfer
Jika memulai transfer gagal dengan error izin ditolak atau otorisasi, verifikasi peran IAM berikut:
- Izin pengguna dan akun layanan: Identitas yang memulai perintah transfer harus memiliki
lustre.instances.importData(untuk mengimpor) ataulustre.instances.exportData(untuk mengekspor). Izin ini disertakan dalam peranroles/lustre.admin. - Izin agen layanan: Agen layanan
Managed Lustre
yang dikelola Google (
service-<PROJECT_NUMBER>@gcp-sa-lustre...) harus memilikiroles/storage.objectViewer(untuk impor) atauroles/storage.objectUser(untuk ekspor) di bucket Cloud Storage target. Lihat Memberikan izin ke agen layanan untuk mengetahui petunjuk penyiapan mendetail.
File yang dilewati atau atribut yang tidak ada
Transfer data Managed Lustre bersifat inkremental; hanya menyalin file yang tidak ada di tujuan atau telah berubah sejak transfer terakhir.
- Jika file tampaknya dilewati, verifikasi apakah file tersebut sudah berhasil ditransfer sebelumnya dan belum diubah.
- Saat mengekspor data ke Cloud Storage, metadata POSIX (UID, GID, mode, mtime) dipertahankan menggunakan kunci metadata kustom (misalnya,
goog-reserved-posix-uid). Perhatikan bahwa symlink, direktori kosong, dan tata letak striping PFL eksplisit tidak dipertahankan selama ekspor. Lihat Atribut file transfer data untuk mengetahui detail selengkapnya.
Memeriksa operasi transfer yang gagal
Jika operasi transfer gagal, ambil pesan error mendetail dan alasan kegagalan menggunakan ID operasi:
gcloud lustre operations describe OPERATION_ID \
--location=LOCATION
Tinjau kolom error dalam output operasi untuk menentukan apakah kegagalan disebabkan oleh objek yang tidak ada, waktu tunggu jaringan, atau autentikasi.
Tidak dapat mengantre operasi
Jika Anda melihat error yang mirip dengan salah satu hal berikut saat mencoba memulai operasi:
ERROR: (gcloud.lustre.instances.import-data) ABORTED: unable to queue the operation
ERROR: (gcloud.lustre.instances.export-data) ABORTED: unable to queue the operation
ERROR: (gcloud.lustre.instances.update) ABORTED: unable to queue the operation
Error ini terjadi saat Anda mencoba memulai operasi sementara operasi lain dengan jenis yang sama sudah berlangsung di instance yang sama.
- Impor/ekspor: Managed Lustre hanya mendukung satu operasi transfer aktif per instance dalam satu waktu. Pengantrean tidak didukung untuk operasi transfer.
- Update instance: Managed Lustre memungkinkan satu update aktif per instance dalam satu waktu, dan memungkinkan operasi update tambahan diantrekan.
Untuk mengatasi masalah ini, tunggu hingga operasi saat ini selesai sebelum memulai operasi baru.
Error FILESYSTEM_NO_SPACE_ON_DEVICE
Jika transfer Anda menampilkan error FILESYSTEM_NO_SPACE_ON_DEVICE, meskipun alat pemantauan menunjukkan bahwa ruang kosong gabungan masih tersedia, Anda mungkin mengalami ketidakseimbangan OST, pemberian ruang klien, atau kehabisan inode.
Lihat error No space left on device untuk mengetahui detail dan
strategi mitigasi.