Pertanyaan ini sebelumnya diajukan dalam stack overflow tetapi orang-orang baik di sana merekomendasikan agar saya mencoba komunitas di sini.
Saya sedang meneliti file jarang sehubungan dengan berbagai filesystem dan saya mencoba untuk menemukan sesuatu yang konkret yang menyatakan bahwa file jarang didukung oleh Network File Systems (NFS) atau Server Message Block (SMB).
Saya mengerti bahwa SMB banyak digunakan di Windows dan bahwa menurut entri ini , server SMB dapat mendukung file jarang bahkan jika sistem file yang mendasarinya tidak. Namun, jika saya benar, sistem file yang tidak mendukung file jarang hanya akan mengisi 'lubang' dengan nol dan ini dapat menyebabkan masalah kinerja.
Berkenaan dengan NFS, saya belum dapat menemukan apa-apa tentang menggunakan NFS yang mendukung file jarang.
Karena itu, pertanyaan saya adalah,
Apakah file jarang didukung di NFS dan SMB?
sumber
dd
membaca dalam blok demi blok dan apakah sistem file yang mendasarinya mendukung file jarang atau tidak, lubang diubah menjadi nol oleh OS. Cobalah di ext4 dan Anda akan melihat angka yang sama.dd
perintah pada file jarang lokal akan memberikan hasil yang jauh lebih cepat. Lihat di sini untuk contoh :,root@hubble:~# truncate -s 1G test.img root@hubble:~# dd if=test.img of=/dev/null bs=1M iflag=direct 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 0.10478 s, 10.2 GB/s
Seperti yang Anda lihat, membaca file jarang lokal memberikan kecepatan I / O utara 10 GB / sdu -s
vsls -l
, tetapi Anda benar yang tidak membantu dengan transmisi melalui jaringan; tetapi dalam kedua kasus (seperti yangstrace
akan mengkonfirmasi)dd
membaca seluruh file, termasuk 'lubang' sebagai nol, perbedaannya hanya di mana 'nol' berasal (sisi server atau klien). Namun perhatikan (sesuai jawaban saya) bahwa NFS 4.2 tidak sepenuhnya mendukung file jarang.NFS
Ya, NFS 4.2 sepenuhnya mendukung file jarang (lihat dokumen kanonik ini dan presentasi ini ).
Sebelum NFS 4.2, model klien / server NFS mendukung file jarang dalam arti bahwa API mendukung semua operasi file POSIX. Ini berarti bahwa menulis file jarang pada server yang mendukung file jarang pada sistem file pendukung menghasilkan file jarang dibuat (daripada menyimpan banyak angka nol). Tetapi membaca file akan menghasilkan transmisi banyak nol untuk elemen jarang. Yaitu jawabannya adalah 'sebagian'.
NFS 4.2 menambahkan kemampuan bagi klien untuk 'melihat' lubang di file, dan oleh karena itu agar server tidak harus mengirimkan semua nol itu. Dari ID:
Terlepas dari kenyataan bahwa spesifikasi mendukung file jarang, akan ada kemungkinan bagi pelaksana malas untuk menghindari menerapkan dukungan untuk file jarang baik di klien atau server.
SMB
Saya kurang tahu tentang SMB, tapi saya percaya itu mendukung file jarang juga, jika bit kemampuan FS yang relevan diatur. Lihat di sini untuk info lebih lanjut.
sumber