Server A
mengekspor direktori /srv
melalui NFS dengan opsi nohide
. Subdirektori di dalam /srv
,, /srv/foo
adalah titik pemasangan untuk lokasi lain di server NFS menggunakan --bind
opsi, seperti
server# mount --bind /bar/foo/ /srv/foo/
Klien B
mengimpor A:/srv
dan memasangnya /mnt/srv
menggunakan NFS. Isi /mnt/srv
adalah isi A:/srv
.
Masalahnya adalah itu /mnt/srv/foo
kosong, sementara saya mengharapkan untuk melihat konten di A:/bar/foo/
sana.
Bagaimana cara mengekspor dan mengimpor saham NFS dengan benar yang memiliki subdirektori sebagai titik pemasangan juga?
/srv/foo --> /bar/foo
?/bar/foo
mesin klienB
, bukan di serverA
.Jawaban:
crossmnt
adalah temanmusumber
Saya telah menemukan masalah ini saat mengikuti panduan Diskless Arch , dan itu benar-benar memperlambat saya. Saya akan membagikan temuan saya di sini, karena saya ingin tahu apakah ini akan berhasil untuk orang lain.
Sesuai panduan Diskless, saya memiliki sistem file root klien diskless (data aktual yang perlu saya ekspor) dalam gambar loopback, yang telah dipasang di
/srv/des1
:Saya kemudian membuat mountpoint
/nfs/des1
kemudian menjalankan mount, dan mengkonfirmasi bahwa saya bisa melihat semuanya:Mengacu pada panduan Arch NFS , saya kemudian memasukkan yang berikut ini di
/etc/exports
server:Saya kemudian menjalankan sebuah
exportfs -rav
di server untuk menerapkan perubahan ini.Namun saya kemudian me-mount share pada klien uji dengan:
mount server:/des1 /mnt/tmp
hanya untuk menemukan itu adalah direktori kosong, ketika saya mengharapkan sistem disk-root-files berada di sana.Pada tahap ini saya mencoba hampir semuanya sampai sesuatu menuntun saya ke opsi ini di
exports
halaman manual:Jadi setelah mencoba yang lain saya bertukar sekitar ini sehingga saya
/etc/exports
tampak seperti ini:Setelah membaca entri halaman manual Anda akan berpikir ini akan memiliki efek yang sama dengan kode sebelumnya, tetapi ketika saya berlari
exportfs -rav
lagi untuk mendaftarkan perubahan, kemudian mencoba untuk remount dari klien dan itu berhasil!sumber
Sepertinya setiap sub-titik pemasangan harus diekspor oleh server NFS agar dapat terlihat oleh klien. Dalam situasi di atas
/etc/exports
file tersebut akan terlihat seperti berikut:Kemudian, mengimpor
/srv
pada klien dengan opsi-t nfs
akan membuat kedua/srv
dan/srv/foo
benar tersedia.sunting oleh OP
garis ini
telah bekerja dalam kasus saya, bukan
sumber
Saya benar-benar ingin melakukan ini juga, tetapi tampaknya ada masalah dengan ide ini karena klien NFS berharap jumlah inode file menjadi unik dalam pandangan klien tentang satu mount.
Masalahnya dirinci dalam posting blog ini (bukan oleh saya): http://utcc.utoronto.ca/~cks/space/blog/unix/MultiFilesystemNFSIssue
Saya telah memutuskan untuk memasang sistem file secara terpisah dan menghubungkannya bersama, yang seharusnya bekerja untuk semua klien NFS.
sumber
CATATAN: hanya pengguna tunggal yang diaktifkan
Apa yang ditambahkannya adalah satu set suntingan ke sisi server dan sisi klien. Di sisi server,
/etc/exports
dan/etc/fstab
di sisi klien.Sisi server
Asus eeepc
Sisi klien
Kernel Linux 4.15.0-38-generik x86_64
sumber