unfs3
sudah mati sejauh yang saya tahu; Ganesha adalah proyek server NFS userspace paling aktif saat ini, meskipun belum sepenuhnya matang.
Meskipun melayani protokol yang berbeda, Samba adalah contoh server file yang berhasil beroperasi di ruang pengguna.
Saya belum melihat perbandingan performa terbaru.
Beberapa masalah lain:
- Aplikasi biasa mencari file berdasarkan nama jalur, tetapi
nfsd
harus dapat mencarinya dengan pegangan file. Ini rumit dan membutuhkan dukungan dari sistem file (dan tidak semua sistem file dapat mendukungnya). Di masa lalu tidak mungkin melakukan ini dari ruang pengguna, tetapi kernel yang lebih baru telah menambahkanname_to_handle_at(2)
danopen_by_handle_at(2)
panggilan sistem. - Sepertinya saya ingat pemblokiran panggilan penguncian file menjadi masalah; Saya tidak yakin bagaimana server ruang pengguna menanganinya akhir-akhir ini. (Apakah Anda mengikat utas server yang menunggu di kunci, atau apakah Anda melakukan polling?)
- Semantik sistem file yang lebih baru (ubah atribut, delegasi, kunci berbagi) dapat diimplementasikan lebih mudah di kernel terlebih dahulu (secara teori--kebanyakan belum).
- Anda tidak ingin harus memeriksa izin, kuota, dll., dengan tangan--sebaliknya Anda ingin mengubah uid Anda dan bergantung pada kode umum kernel vfs untuk melakukan itu. Dan Linux memiliki system call (
setfsuid(2)
) yang harus melakukan itu. Karena alasan saya lupa, menurut saya itu terbukti lebih rumit untuk digunakan di server daripada yang seharusnya.
Secara umum, kekuatan server kernel adalah integrasi yang lebih dekat dengan vfs dan sistem file yang diekspor. Kami dapat menebusnya dengan menyediakan lebih banyak antarmuka kernel (seperti panggilan sistem filehandle), tetapi itu tidak mudah. Di sisi lain, beberapa sistem file yang ingin diekspor orang akhir-akhir ini (seperti gluster) sebenarnya hidup terutama di ruang pengguna. Itu dapat diekspor oleh kernel nfsd menggunakan FUSE--namun sekali lagi ekstensi ke antarmuka FUSE mungkin diperlukan untuk fitur yang lebih baru, dan mungkin ada masalah kinerja.
Versi singkat:pertanyaan bagus!
Olaf Kirch awalnya mengembangkan ruang pengguna dan versi berbasis kernel dari server NFS. Dalam bukunya tahun 2000, "Linux Network Administration" dia berkata:
Kernel 2.2.0 mendukung server NFS eksperimental berbasis kernel yang dikembangkan oleh Olaf Kirch dan dikembangkan lebih lanjut oleh H.J. Lu, G. Allan Morris, dan Trond Myklebust. Dukungan NFS berbasis kernel memberikan peningkatan signifikan dalam kinerja server.
Saya pikir setelah server NFS dipindahkan ke kernel untuk meningkatkan kinerja, tidak ada yang melihat alasan untuk mengeluarkannya lagi.
Starnamer benar (saya adalah salah satu penguji beta).
Memasukkannya ke dalam kernel adalah upaya untuk meningkatkan kinerja yang buruk (terutama untuk klien PCNFS) dan setelah masalah itu diselesaikan, tidak ada yang melihatnya lagi.
Ada sejumlah kekurangan dengan memiliki NFS di kernel, paling tidak adalah bahwa NFS tidak bekerja dengan baik dengan apa pun yang menyentuh sistem file yang sama (ada risiko korupsi yang sangat buruk) tetapi saat itu (1993-4) kami tidak tidak menyadari bahwa itu akan menjadi masalah.
Kami lebih muda dan lebih bodoh, dll.