Memecahkan masalah transfer sistem file

Dokumen ini menjelaskan cara memecahkan masalah dan menyelesaikan masalah transfer dan agen, serta tempat menemukan log agen untuk membantu Anda memecahkan masalah.

Error

Tabel berikut menjelaskan pesan error transfer, dan cara mengatasinya:

Pesan error Jenis error Arti error Cara mengatasi error
Diubah selama transfer FILE_MODIFIED_FAILURE File sumber diubah selama transfer setiap kali Storage Transfer Service mencoba menyalin file sumber. Mencegah operasi tulis ke file yang ditentukan selama operasi Storage Transfer Service berikutnya.
Gagal mentransfer PRECONDITION_FAILURE Objek Cloud Storage yang terkait dengan file sumber diubah setiap kali Storage Transfer Service mencoba mengupload file tersebut. Cegah beberapa tugas transfer menulis file yang sama ke bucket Cloud Storage yang sama dengan menggunakan awalan objek Cloud Storage yang unik saat Anda membuat tugas transfer.
Direktori sumber tidak ditemukan SOURCE_DIR_NOT_FOUND Jalur sumber yang ditentukan salah, atau jalurnya benar, tetapi tidak semua agen memiliki akses ke jalur tersebut. Periksa konfigurasi tugas transfer dan pastikan bahwa:
Tidak dapat menemukan direktori sumber atau tujuan tugas ROOT_DIR_NOT_FOUND Jalur sumber/tujuan yang ditentukan salah, atau jalurnya benar, tetapi tidak semua agen memiliki akses ke jalur tersebut. Periksa konfigurasi tugas transfer dan pastikan bahwa:
File tidak ditemukan FILE_NOT_FOUND_FAILURE File sumber ditemukan, tetapi dihapus sebelum ditransfer ke Cloud Storage. Jika file tidak sengaja dihapus, pulihkan file tersebut agar tugas transfer berikutnya dapat menguploadnya.
Gagal menemukan bucket tujuan BUCKET_NOT_FOUND Bucket tujuan tidak ada di Cloud Storage. Pastikan ejaan bucket tujuan sudah benar dan ada.
Gagal menemukan objek metadata internal METADATA_OBJECT_
NOT_FOUND_FAILURE
Storage Transfer Service menyimpan metadata di bucket tujuan dengan awalan storage-transfer. Jika file metadata dihapus sebelum operasi transfer yang sesuai selesai, error ini akan ditampilkan. Hindari menghapus objek dengan awalan storage-transfer/ di bucket tujuan hingga setelah semua tugas transfer selesai.
Gagal karena nama file tidak valid INVALID_FILE_NAME Jalur file sumber tidak valid. Verifikasi dan perbaiki jalur file yang ditentukan. Pastikan jalur menggunakan karakter yang didukung oleh Cloud Storage.
Gagal karena class penyimpanan tidak valid INVALID_FILE_STORAGE_CLASS Class penyimpanan untuk sumber yang diberikan tidak mengizinkan operasi baca. Temukan dokumentasi untuk penyedia cloud Anda guna menentukan cara memasukkan data ke dalam class penyimpanan yang memungkinkan penyalinan data.
Gagal karena URI sesi upload yang dapat dilanjutkan tidak valid SESSION_URI_INVALID ID upload atau URI sesi yang dapat dilanjutkan sudah tidak berlaku atau dibatalkan. Kegagalan dicoba ulang dengan tidak benar. Hubungi dukungan.
Gagal karena ukuran file tidak valid INVALID_FILE_SIZE Ukuran file tidak valid. Pastikan ukuran file >= 0 dan <= 5 TiB (ukuran objek Cloud Storage maksimum) untuk transfer ke Cloud Storage.
Gagal karena izin PERMISSION_FAILURE dan UNAUTHENTICATED Agen transfer tidak memiliki izin yang memadai untuk melakukan operasi. Ada dua kemungkinan untuk error ini:
  • Agen tidak memiliki izin Google Cloud yang memadai.
  • Agen tidak dapat membaca file atau direktori karena izin di sistem file sumber tidak memadai.

Pastikan hal berikut:

  • Pastikan agen Anda memiliki peran IAM berikut:
    • storagetransfer.transferAgent
    • storage.admin untuk semua bucket tujuan

    Salah satu peran ini dapat diberikan ke akun layanan yang digunakan oleh agen, atau pengguna dengan peran ini dapat menggunakan kredensial default mereka saat menginstal agen.

  • Pastikan semua jalur di sistem file sumber dapat dibaca oleh setiap agen.
Objek tunduk pada kebijakan retensi bucket dan tidak dapat dihapus, ditimpa, atau diarsipkan PERMISSION_FAILURE Bucket memiliki kebijakan retensi yang berlaku dan objek sudah ada di bucket. Storage Transfer Service tidak dapat menimpa objek yang ada di bucket. Error ini dapat ditampilkan jika file berubah di sumber, atau jika Storage Transfer Service mencoba upload dua kali karena kondisi jaringan dan upload pertama berhasil. Pastikan data di bucket Cloud Storage Anda sesuai dengan ekspektasi Anda. Anda dapat mengonfirmasi bahwa ukuran dan waktu yang diubah (mtime) dari file sumber cocok dengan objek Cloud Storage-nya dengan menjalankan ulang tugas dan mengonfirmasi bahwa tidak ada error.
Layanan tidak memiliki izin yang memadai SERVICE_PERMISSION_FAILURE Layanan Transfer Penyimpanan tidak memiliki izin yang memadai untuk melakukan operasi. Storage Transfer Service menggunakan akun layanan yang dikelola Google, biasanya dalam format project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com, untuk mengakses resource. Untuk menentukan PROJECT_NUMBER tertentu, gunakan panggilan API googleserviceaccounts.get. Pastikan akun layanan memiliki peran berikut:
  • roles/storagetransfer.serviceAgent untuk project.
  • roles/storage.admin untuk semua bucket tujuan.
Agen tidak didukung AGENT_UNSUPPORTED_VERSION Versi agen tidak lagi kompatibel dengan Storage Transfer Service. Error ini bersifat sementara, terkait dengan update agen yang buruk. Jika terjadi, lakukan hal berikut:
  1. Hentikan semua agen Anda.
  2. Ambil image docker terbaru dengan menjalankan: sudo docker pull gcr.io/cloud-ingest/tsop-agent
  3. Berikan perintah run Docker untuk memulai semua penampung agen Anda.
Jika masalah berlanjut, hubungi tim dukungan Anda.
Gagal karena ketidakcocokan hash HASH_MISMATCH_FAILURE Setiap kali Storage Transfer Service mencoba mengupload file ini, byte yang diupload menjadi rusak. Hal ini menyebabkan hash file lokal tidak cocok dengan hash objek Cloud Storage yang dihasilkan. Error ini dapat disebabkan oleh sejumlah potensi masalah. Jika Anda melihat persentase kecil kegagalan ketidakcocokan hash (kurang dari 1%) dalam transfer besar, coba lagi file yang gagal. Jika Anda melihat persentase besar kegagalan ketidakcocokan hash (1% atau lebih), sebaiknya selidiki potensi kegagalan memori, CPU, atau hardware lainnya di mesin agen.
Gagal karena mode file tidak didukung UNSUPPORTED_FILE_MODE Storage Transfer Service menemukan file dengan mode yang tidak didukung, seperti perangkat, soket, pipe bernama, atau file tidak beraturan. Hapus jenis file khusus ini dari direktori sumber.
Gagal karena terjadi error dalam sistem file FILESYSTEM_ERROR Agen mengalami error sistem file atau sistem operasi saat melakukan operasi sistem file seperti baca, cari, atau statistik. Baca deskripsi kegagalan untuk memahami operasi sistem file mana yang gagal. Pastikan sistem file dapat diakses oleh agen lokal dan responsif terhadap operasi file dasar.
Gagal karena error yang tidak diketahui UNKNOWN_FAILURE Terjadi error tidak terduga. Baca deskripsi kegagalan. Jika deskripsi kegagalan tidak berisi informasi yang memadai untuk menyelesaikan masalah, hubungi dukungan.
Gagal karena spesifikasi tidak valid INVALID_SPEC Agen menerima spesifikasi internal yang rusak. Periksa kerusakan data di host agen dan hubungi dukungan jika Anda tidak dapat menemukannya.
Gagal karena file manifes kosong atau tidak valid CONFORMANCE_FAILURE Agen tidak dapat membaca atau mendapatkan byte CSV yang valid karena format atau entri CSV yang tidak valid. Pastikan entri manifes adalah jalur file yang valid. Jika deskripsi kegagalan tidak berisi informasi yang memadai untuk menyelesaikan masalah, hubungi dukungan.
Kembali ke upload yang dapat dilanjutkan, bukan upload multibagian, karena error izin ditolak PERMISSION_FAILURE Upload multibagian telah diaktifkan untuk transfer ini, tetapi izin yang benar belum ditetapkan di bucket. Lihat bagian Upload multibagian di Izin sistem file untuk mengetahui izin yang diperlukan.

Melihat log agen

Log agen berisi informasi yang relevan dengan proses agen, dan dapat membantu Anda memecahkan masalah koneksi agen. Jika agen Anda tercantum sebagai terhubung di konsol Google Cloud dan Anda mengalami kegagalan transfer, lihat Melihat error untuk melihat contoh error transfer. Untuk melihat log yang berisi catatan setiap file yang dipertimbangkan Storage Transfer Service selama transfer, lihat Melihat log transfer.

Secara default, log agen disimpan di /tmp. Anda dapat mengubah lokasi dengan opsi command line --log-dir=logs-directory.

Log diberi nama:

agent.hostname.username.log.log-level.timestamp

Dengan keterangan:

  • hostname - nama host tempat agen berjalan.
  • username - nama pengguna yang menjalankan agen.
  • log-level adalah salah satu dari:
    • INFO - pesan informatif
    • ERROR - error yang terjadi selama transfer, tetapi tidak mencegah tugas transfer dilanjutkan.
    • FATAL - error yang terjadi yang mencegah tugas transfer lanjut.
  • timestamp - stempel waktu dalam format YYYYMMDD-hhmmss.thread-id.

Direktori log berisi symlink ke log terbaru untuk setiap tingkat prioritas:

  • agent.ERROR
  • agent.FATAL
  • agent.INFO

Kecepatan transfer lambat

Jika data Anda memerlukan waktu lama untuk ditransfer, periksa hal berikut:

  1. Throughput baca sistem file Anda harus sekitar 1,5 kali kecepatan upload yang diinginkan. Anda dapat menggunakan FIO untuk menguji throughput baca sistem file Anda.

    Instal fio:

     sudo apt install -y fio
     

    Buat direktori baru fiotest:

     TEST_DIR=/mnt/mnt_dir/fiotest
     sudo mkdir -p $TEST_DIR
     

    Menguji throughput baca:

     sudo fio --directory=$TEST_DIR --direct=1
        --rw=randread --randrepeat=0 --ioengine=libaio --bs=1M --iodepth=8
        --time_based=1 --runtime=180 --name=read_test --size=1G
     

    Setelah Anda menjalankan perintah di atas, Fio akan membuat laporan. Baris berlabel "bw" mewakili total bandwidth gabungan dari semua thread, dan dapat digunakan sebagai proxy untuk throughput baca.

  2. Gunakan iPerf3 untuk memeriksa bandwidth internet yang tersedia ke Storage Transfer Service.

  3. Pastikan setiap agen transfer Anda memiliki minimal 4 vCPU dan 8 GB RAM.

Jika Anda telah memeriksa kondisi di atas dan masih mengalami waktu transfer yang lama, Anda dapat menambahkan agen tambahan untuk meningkatkan jumlah koneksi serentak ke sistem file data Anda.

Untuk informasi selengkapnya tentang cara memaksimalkan performa agen transfer, lihat Praktik terbaik agen.

Memecahkan masalah error agen

Bagian berikut menjelaskan cara memecahkan masalah dan menyelesaikan error agen transfer:

Agen tidak terhubung

Jika agen transfer tidak ditampilkan sebagai terhubung dalam konsol Google Cloud:

  1. Pastikan agen dapat terhubung ke Cloud Storage API:

    1. Jalankan perintah berikut dari mesin yang sama dengan agen transfer untuk menguji koneksi agen ke Cloud Storage API:

      gcloud storage cp test.txt gs://my-bucket

      Ganti:

      my-bucket dengan nama bucket Cloud Storage Anda.

  2. Jika project Anda menggunakan Kontrol Layanan VPC, lihat log agen untuk menemukan error. Jika Kontrol Layanan VPC salah dikonfigurasi, log agen INFO akan berisi error berikut:

    Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: id

    Dalam output ini:

Agen terhubung, tetapi tugas gagal

Jika agen ditampilkan sebagai terhubung, tetapi tugas transfer gagal, periksa detail error tugas yang gagal.

Proxy menolak alamat IP

Jika Anda menjalankan di balik proxy seperti Squid dan menggunakan daftar yang diizinkan, Anda mungkin melihat permintaan ditolak karena alamat IP yang digunakan, bukan nama host.

Untuk mengatasi masalah ini, gunakan perintah docker run untuk menjalankan agen dan tambahkan flag berikut:

--transfer-service-endpoint=storagetransfer.googleapis.com:443

Jika Anda menggunakan endpoint alternatif untuk menjangkau googleapis.com (misalnya untuk Private Service Connect), ganti googleapis.com dengan endpoint alternatif.