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.

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

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

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

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

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

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

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

Upload multibagian

Jika transfer Anda berasal dari sistem file POSIX ke Cloud Storage, atau antar-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-bagian tersebut secara paralel.

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

Mengaktifkan upload multibagian

Untuk mengaktifkan upload multibagian:

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

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

Setelah diaktifkan, Layanan Transfer Penyimpanan akan otomatis menggunakan upload multibagian jika tindakan tersebut cenderung mempercepat transfer.

Mengonfigurasi aturan siklus proses objek multibagian

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

Sebaiknya tetapkan nilai age sebesar 7 hari.

Menonaktifkan 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 yang memberikan otorisasi kepada agen transfer, baik akun pengguna maupun akun layanan.

Memaksimalkan performa agen transfer

Performa transfer Anda dipengaruhi oleh variabel berikut:

  • Kemampuan sistem file.

  • Batasan hardware yang mendasarinya.

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

  • Throughput dan penggunaan WAN.

    WAN yang lebih lambat atau yang digunakan secara intensif 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 yang optimal untuk digunakan.

Minimal, sebaiknya gunakan tiga agen, di berbagai mesin jika memungkinkan, sehingga transfer Anda tetap toleran terhadap error. Anda dapat menambahkan agen transfer saat transfer berjalan, karena performa meningkat secara dinamis.

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

  1. Mulai 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 stabil, 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, tambahkan satu agen pada satu waktu hingga Anda mencapai batas yang diinginkan. Selama resource komputasi, sistem file, dan jaringan tersedia, Anda dapat menjalankan hingga 100 agen secara serentak per kumpulan agen.

Jika bandwidth keluar Anda penuh sebelum mencapai batas yang diinginkan, Anda dapat melakukan salah satu hal berikut:

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

Memberi nama agen

Saat memberi nama agen, sebaiknya lakukan hal berikut:

  • Selalu sertakan nama host di agen Anda. Hal ini membantu Anda menemukan komputer tempat agen berjalan. Sebaiknya teruskan --hostname=$(hostname) ke perintah run Docker.

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

    • Jika memiliki tiga project transfer terpisah, sebaiknya sertakan nama tim di agen Anda. Misalnya, logistics.

    • Jika menjalankan dua project transfer yang berbeda untuk dua pusat data yang berbeda, sebaiknya sertakan nama pusat data dalam awalan agen. Misalnya, omaha.