Apakah file yang dibuka dapat dibatalkan tautannya pada volume yang dipasang NFS sementara aplikasi yang masih memilikinya membuka baca / tulis?

9

Apakah NFS memungkinkan saya untuk memutuskan tautan / menghapus file yang terbuka seperti yang dapat saya lakukan dengan sistem file lokal?

Alasan saya bertanya adalah bahwa saya sedang mengembangkan sesuatu yang berjalan di beberapa server dan dapat mengakses NFS sebagai ujung belakang. Ini agak menyederhanakan hal-hal jika saya dapat melakukan unlink pada file yang terbuka.

Ini adalah fitur yang bagus dari sistem file linux (unix?) Yang dapat Anda putuskan tautan file yang terbuka. Itu hanya menghapus entri direktori. File masih tersedia untuk proses yang membuatnya terbuka selama terbuka. Setelah ditutup, inode dihancurkan.

Apakah fungsi yang sama berlaku untuk file yang dibuka di NFS mounts?

Mat
sumber
Anda mungkin ingin mengulangi (untuk mencegah suara turun), pada pandangan pertama sepertinya Anda bertanya apakah Anda dapat menghapus file menggunakan NFS, yang membuat saya cukup bingung tentang mengapa Anda akan mengajukan pertanyaan mendasar seperti itu dengan jumlah poin yang Anda memiliki. :-)
Red Tux

Jawaban:

9

Jawaban singkatnya adalah ya dengan peringatan.

Karena NFSv3 tidak memiliki kewarganegaraan, driver klien NFS menyelesaikan ini dengan sesuatu yang disebut "ganti nama konyol", di mana file yang dihapus diubah namanya menjadi sesuatu seperti .nfsXXXXXXXXXXX. Ini biasanya bekerja, tetapi ada beberapa peringatan dibandingkan dengan sistem file lokal. Misalnya, jika klien macet maka file .nfsXXXX tidak akan dihapus, dan Anda harus membersihkannya secara manual.

Saya pikir pada NFSv4.1 protokol memiliki fitur yang diperlukan untuk mengimplementasikan delete-on-last-close tanpa mengganti nama konyol, tapi saya tidak tahu apakah ada klien / server yang mengimplementasikan ini.

janneb
sumber
Perlu dicatat bahwa ini hanya berfungsi ketika file dibuka pada klien yang sama yang memutuskan tautannya, karena NFS tidak memiliki kewarganegaraan.
Quentin Casasnovas