Praktik terbaik untuk transfer sistem file

Halaman ini menjelaskan praktik terbaik untuk transfer sistem file.

Praktik terbaik performa

Berikut adalah praktik terbaik untuk memastikan performa transfer yang baik:

  • Maksimalkan performa agen transfer Anda.

  • Ukur performa Anda dengan mentransfer korpus data besar, biasanya berukuran minimal 100 GB.

    Storage Transfer Service adalah layanan berskala besar yang dioptimalkan dengan throughput. Jadi, performa Anda pada set data pengujian yang sangat kecil tidak menunjukkan performa Anda pada set data yang besar dalam lingkungan produksi.

  • Batasi setiap folder sumber hingga 1 juta file. Direktori yang berisi jutaan file dapat memperlambat seluruh transfer.

  • Jalankan agen dalam virtual machine (VM) terpisah sehingga Anda dapat menskalakan konsumsi resource dengan lebih efektif.

  • Pastikan antarmuka jaringan di mesin agen sesuai dengan bandwidth baca/tulis yang Anda perlukan.

    Misalnya, jika Anda ingin sepenuhnya memanfaatkan jaringan area lebar (WAN) 20 Gbps, antarmuka jaringan mesin agen Anda harus mendukung 20 Gbps untuk membaca data dari sistem file jaringan Anda, dan 20 Gbps lainnya untuk mentransfer data ke Cloud Storage, atau 40 Gbps dari total bandwidth.

  • Pantau CPU, memori, dan jaringan di mesin agen untuk memastikan komputer tidak kewalahan oleh beban kerja lain, karena hal ini dapat memengaruhi performa secara negatif. Lihat persyaratan hardware agen untuk mengetahui jumlah memori dan CPU yang disarankan.

Upload multibagian

Jika transfer Anda berasal dari sistem file POSIX ke Cloud Storage, atau antara sistem file POSIX, pertimbangkan untuk mengaktifkan upload multibagian. Upload multibagian dapat mempercepat transfer yang menyertakan file besar hingga 300% dengan membagi file besar (>1 GiB) menjadi bagian yang lebih kecil dan mengupload bagian tersebut secara paralel.

Sistem file yang kompatibel dengan HDFS dan S3 tidak mendukung upload multibagian.

Aktifkan upload multibagian

Untuk mengaktifkan upload multibagian:

  • Anda harus memberikan izin yang diperlukan ke akun agen transfer yang memberi otorisasi, baik akun pengguna maupun akun layanan.

  • Bucket tujuan atau perantara tidak boleh memiliki kebijakan retensi atau penangguhan objek.

Setelah diaktifkan, Storage Transfer Service menggunakan upload multibagian secara otomatis saat tindakan ini kemungkinan akan mempercepat transfer.

Mengonfigurasi aturan siklus proses objek multibagian

Anda dapat menggunakan Cloud Storage Object Lifecycle Management untuk membatalkan upload multibagian yang belum selesai dan menghapus bagian terkait. Lihat Membatalkan upload multibagian yang tidak lengkap di dokumentasi Cloud Storage.

Sebaiknya tetapkan nilai age ke 7 hari.

Nonaktifkan upload multibagian

Untuk menonaktifkan upload multibagian, instal ulang agen transfer menggunakan docker run dan teruskan --enable-multipart=false:

sudo docker run --ulimit memlock=64000000 -d --rm \
-v /usr/local/research:/usr/local/research \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--agent-pool=AGENT_POOL \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--enable-multipart=false

Ganti kode berikut:

  • PROJECT_ID menentukan project ID yang menghosting transfer.
  • CREDENTIAL_FILE: jika agen transfer menggunakan akun layanan untuk autentikasi, tentukan jalur ke file kredensial akun layanan berformat JSON.

Atau, cabut izin yang diperlukan dari akun agen transfer yang memberi otorisasi, baik akun pengguna maupun akun layanan.

Memaksimalkan performa agen transfer

Performa transfer Anda dipengaruhi oleh variabel berikut:

  • Kemampuan sistem file.

  • Keterbatasan hardware dasar.

    Jenis media hard drive, bus input/output, dan jaringan area lokal (LAN) akan memengaruhi performa.

  • Throughput dan pemanfaatan WAN.

    WAN yang lebih lambat atau sering digunakan akan memperlambat performa.

  • Karakteristik file.

    Misalnya, banyak file besar memiliki throughput jaringan yang lebih tinggi daripada banyak file kecil karena overhead jaringan.

Karena variabel ini, kita tidak dapat memprediksi performa sebenarnya atau memberikan jumlah agen optimal untuk digunakan.

Setidaknya, sebaiknya gunakan tiga agen, di berbagai mesin jika memungkinkan, sehingga transfer Anda tetap fault-tolerant. Anda dapat menambahkan agen transfer saat transfer berjalan, karena performa meningkat secara dinamis.

Untuk mengamati dampak penambahan agen, dan untuk memilih jumlah agen yang paling cocok bagi lingkungan Anda, lakukan hal berikut:

  1. Memulai transfer besar yang memerlukan waktu minimal 1 jam untuk dijalankan. Misalnya, mulai transfer yang berisi minimal 100 ribu file dan berukuran total minimal 100 GB.

  2. Gunakan Cloud Monitoring untuk mengamati throughput agen secara keseluruhan.

  3. Tunggu hingga throughput habis, dan tentukan apakah Anda dibatasi oleh kapasitas WAN atau batas bandwidth.

  4. Jika Anda belum memenuhi kapasitas WAN dan belum mencapai batas transfer yang diinginkan, tambahkan agen lain. Agen tambahan akan otomatis meningkatkan throughput transfer. Tunggu sekitar 3 menit hingga throughput stabil di Cloud Monitoring.

Ulangi langkah 3 dan 4, dengan menambahkan agen satu per satu hingga mencapai batas yang diinginkan. Selama resource komputasi, sistem file, dan jaringan tersedia, Anda dapat menjalankan hingga 100 agen secara bersamaan per kumpulan agen.

Jika memenuhi bandwidth keluar sebelum mencapai batas yang diinginkan, Anda dapat melakukan tindakan berikut:

Jika Anda telah menambahkan agen, tetapi throughput tidak meningkat dan WAN tidak saturasi, selidiki throughput sistem file. Dalam kasus yang jarang terjadi, throughput sistem file saturasi, sehingga menghambat kemampuan Anda untuk meningkatkan performa transfer.

Agen penamaan

Saat memberi nama agen, sebaiknya lakukan hal berikut:

  • Selalu sertakan nama host dalam agen Anda. Langkah ini membantu Anda menemukan mesin tempat agen dijalankan. Sebaiknya teruskan --hostname=$(hostname) ke perintah run Docker.

  • Pilih skema awalan agen yang membantu Anda mengidentifikasi agen dalam konteks organisasi pemantauan dan infrastruktur Anda. Contoh:

    • Jika memiliki tiga project transfer terpisah, Anda dapat menyertakan nama tim dalam agen Anda. Misalnya, logistics.

    • Jika menjalankan dua project transfer yang berbeda untuk dua pusat data yang berbeda, Anda dapat menyertakan nama pusat data di awalan agen. Misalnya, omaha.