Menggunakan penyimpanan blob yang dipasang di NFS dengan Azure HPC Cache
Anda dapat menggunakan kontainer blob yang terpasang di NFS dengan Azure HPC Cache. Baca selengkapnya tentang dukungan protokol NFS 3.0 di penyimpanan Blob Azure di situs dokumentasi penyimpanan Blob.
Azure HPC Cache menggunakan penyimpanan blob berkemampuan NFS dalam jenis target penyimpanan ADLS-NFS-nya. Target penyimpanan ini mirip dengan target penyimpanan NFS reguler, tetapi juga memiliki beberapa hal yang tumpang tindih dengan target Blob Azure reguler.
Artikel ini menjelaskan strategi dan batasan yang harus Anda pahami saat menggunakan target penyimpanan ADLS-NFS.
Anda juga harus membaca dokumentasi blob NFS, terutama bagian-bagian ini yang menjelaskan skenario yang kompatibel dan tidak kompatibel, dan memberikan tips pemecahan masalah:
- Ringkasan fitur
- Pertimbangan performa
- Masalah dan batasan yang diketahui
- Panduan prosedur dan pemecahan masalah cara penggunaan
Memahami persyaratan konsistensi
HPC Cache membutuhkan konsistensi yang kuat untuk target penyimpanan ADLS-NFS. Secara default, penyimpanan blob berkemampuan NFS tidak memperbarui metadata file secara ketat, yang mencegah HPC Cache membandingkan versi file secara akurat.
Untuk mengatasi perbedaan ini, Azure HPC Cache secara otomatis menonaktifkan cache atribut NFS pada kontainer blob berkemampuan NFS yang digunakan sebagai target penyimpanan.
Pengaturan ini bertahan selama masa pakai kontainer, bahkan jika Anda menghapusnya dari cache.
Memuat data sebelumnya dengan protokol NFS
Pada kontainer blob berkemampuan NFS, file hanya dapat diedit oleh protokol yang sama dengan yang digunakan saat dibuat. Artinya, jika Anda menggunakan REST API Azure untuk mengisi kontainer, Anda tidak dapat menggunakan NFS untuk memperbarui file tersebut. Karena Azure HPC Cache hanya menggunakan NFS, cache tidak dapat mengedit file apa pun yang dibuat dengan REST API Azure. (Pelajari selengkapnya mengenai masalah yang diketahui dengan API penyimpanan blob)
Ini bukanlah masalah bagi cache jika kontainer Anda kosong, atau jika file dibuat dengan menggunakan NFS.
Jika file dalam kontainer Anda dibuat dengan REST API Azure Blob dan bukan NFS, Azure HPC Cache dibatasi untuk tindakan berikut pada file asli:
- Mencantumkan file dalam direktori.
- Membaca file (dan menahannya di cache untuk pembacaan berikutnya).
- Menghapus file.
- Mengosongkan file (memotong ke 0).
- Menyimpan salinan file. Salinan ditandai sebagai file yang dibuat NFS, dan dapat diedit menggunakan NFS.
Azure HPC Cache tidak dapat mengedit isi {i>file Ini berarti bahwa cache tidak dapat menyimpan {i>file
Penting untuk memahami batasan ini, karena dapat menyebabkan masalah integritas data jika Anda menggunakan model penggunaan caching baca/tulis pada file yang tidak dibuat dengan NFS.
Tip
Pelajari selengkapnya tentang pembacaan dan penulisan caching di Memahami model penggunaan cache.
Skenario caching tulis
Model penggunaan cache ini termasuk caching tulis:
- Lebih besar dari 15% penulisan
- Lebih besar dari 15% penulisan, yang memeriksa perubahan server pendukung setiap 30 detik
- Lebih besar dari 15% penulisan, yang memeriksa perubahan server pendukung setiap 60 detik
- Lebih besar dari 15% penulisan, menulis kembali ke server setiap 30 detik
Model penggunaan penembolokan tulis harus digunakan hanya pada {i>file
Jika Anda mencoba menggunakan caching tulis pada file yang dibuat REST, perubahan file Anda dapat hilang. Ini karena cache tidak mencoba langsung menyimpan pengeditan file ke kontainer penyimpanan.
Berikut adalah bagaimana percobaan pembuatan cache tulis ke file yang dibuat REST dapat membahayakan data:
Cache menerima pengeditan dari klien, dan mengembalikan pesan sukses pada setiap perubahan.
Cache menyimpan file yang diubah di penyimpanannya dan menunggu perubahan tambahan.
Setelah beberapa waktu berlalu, cache mencoba menyimpan file yang diubah ke kontainer back-end. Pada titik ini, ia akan mendapatkan pesan kesalahan karena mencoba menulis ke file yang dibuat REST dengan NFS.
Sudah terlambat untuk memberi tahu komputer klien bahwa perubahannya tidak diterima, dan cache tidak memiliki cara untuk memperbarui file asli. Jadi perubahan dari klien akan hilang.
Skenario caching baca
Skenario cache baca sesuai untuk file yang dibuat dengan NFS atau REST API Blob Azure.
Model penggunaan ini hanya menggunakan caching baca:
- Banyak pembacaan, jarang penulisan
- Klien menulis ke target NFS, dengan melewati cache
- Banyak pembacaan, memeriksa server pendukung setiap 3 jam
Anda dapat menggunakan model penggunaan ini dengan file yang dibuat oleh REST API atau oleh NFS. Setiap penulisan NFS yang dikirim dari klien ke kontainer back-end akan tetap gagal, tetapi penulisan ini akan segera gagal dan mengembalikan pesan kesalahan kepada klien.
Alur kerja caching baca masih dapat melibatkan perubahan file, selama ini tidak di-cache. Misalnya, klien mungkin mengakses file dari kontainer tetapi menuliskan perubahannya kembali sebagai file baru, atau klien dapat menyimpan file yang diubah di lokasi lain.
Mengenali batasan Network Lock Manager (NLM)
Kontainer blob berkemampuan NFS tidak mendukung Network Lock Manager (NLM), yang merupakan protokol NFS yang umum digunakan untuk melindungi file dari konflik.
Jika alur kerja NFS Anda awalnya ditulis untuk sistem penyimpanan perangkat keras, aplikasi klien Anda mungkin menyertakan permintaan NLM. Untuk mengatasi batasan ini saat memindahkan proses Anda ke penyimpanan blob berkemampuan NFS, pastikan klien Anda menonaktifkan NLM saat memasang cache.
Untuk menonaktifkan NLM, gunakan opsi -o nolock
di perintah mount
klien Anda. Opsi ini mencegah klien meminta kunci NLM dan menerima kesalahan sebagai respons. Opsi nolock
diimplementasikan secara berbeda dalam sistem operasi yang berbeda; periksa dokumentasi OS klien Anda (man 5 nfs) untuk detailnya.
Menyederhanakan penulisan ke kontainer berkemampuan NFS dengan HPC Cache
Azure HPC Cache dapat membantu meningkatkan performa dalam beban kerja yang mencakup perubahan penulisan pada target penyimpanan ADLS-NFS.
Catatan
Anda harus menggunakan NFS untuk mengisi kontainer penyimpanan ADLS-NFS jika ingin memodifikasi filenya melalui Azure HPC Cache.
Salah satu batasan yang diuraikan dalam Artikel pertimbangan performa blob berkemampuan NFS adalah bahwa penyimpanan ADLS-NFS tidak begitu efisien dalam menimpa file yang ada. Jika Anda menggunakan Azure HPC Cache dengan penyimpanan blob yang dipasang di NFS, cache akan menangani penulisan ulang terputus-terputus saat klien memodifikasi file aktif. Latensi penulisan file ke kontainer back end disembunyikan dari klien.
Perlu diingat bahwa batasan yang dijelaskan di atas dalam Memuat data sebelumnya dengan protokol NFS.