Kesulitan mengekspor FUSE melalui NFS

8

Saya punya sistem file FUSE yang ditulis sendiri yang saya pasang di server NFS saya di mountpoint /export/example/mount. Kemudian saya mengekspor direktori induk FUSE melalui NFS. The /etc/exportsberisi opsi nohide,crossmnt,subtree_check,ro,no_root_squashdan memungkinkan akses gratis ke semua orang:

/export/example *(nohide,crossmnt,subtree_check,ro,no_root_squash)

Saya dapat memasang ekspor ini pada klien NFS saya dan mengaksesnya. Segera setelah saya mengakses FUSE dalam NFS klien saya hang sampai saya umountNFS (dan saya perlu menggunakan opsi -funtuk mencapai itu).

Saya sudah mencoba memasang FUSE sebagai pengguna aktif dan sebagai root. Hasilnya sama.

Server menjalankan Ubuntu 12.04, klien dengan SuSE 9.3. FUSE ditulis dalam Python dan bekerja secara lokal tanpa masalah. Hanya ekspor melalui NFS yang gagal. Saya tidak memiliki batasan keamanan karena semua ini ada di jaringan pribadi dengan hanya pengguna tepercaya.

Adakah yang tahu apa yang dapat menyebabkan masalah saya atau (bahkan lebih baik) bagaimana menyelesaikan masalah ini?

Saya sudah berpikir tentang mengganti NFS dengan SSHFS untuk mengatasi masalah, tetapi itu tidak berfungsi karena sistem klien terlalu tua untuk mendukung SSHFS (karena didasarkan pada FUSE, dan FUSE tidak didukung).

Alfe
sumber
Apakah Anda mencoba allow_otheropsi untuk sshfs mount?
skarap
Ya saya lakukan. Tidak berhasil, sayangnya. Tetapi sementara itu kami mematikan perangkat keras lama dengan sistem lama, jadi pertanyaan ini tidak menarik lagi. Saya mungkin harus menutupnya ... ;-)
Alfe
Apakah Anda menemukan solusinya? 5 tahun kemudian saya mendapat masalah yang sama. Partisi sekering (s3fs) yang dipasang di subdirektori dari direktori yang dilayani NFS tidak dapat dilihat oleh klien nfs (bahkan dengan nfs4) ...
Matthieu G
Apakah Anda menggunakan crossmnt? Dan apakah sisi sekering (s3fs) memungkinkan digunakan oleh pengguna lain (ada opsi mount untuk ini juga). Jangan lupa bahwa sekering adalah ruang pengguna (dimaksudkan untuk digunakan oleh satu pengguna tunggal) sementara nfs adalah multi-pengguna.
Alfe

Jawaban:

7

Sebagian besar distribusi Linux dikirimkan dengan kernel yang tidak memungkinkan mengekspor sistem file yang dipasang FUSE menggunakan NFSv2 atau NFSv3. Pilihan Anda adalah: 1. Terapkan sistem file Anda di ruang kernel. 2. Ekspor dalam NFSv4, yang akan membutuhkan fsid =

Saya sendiri menggunakan 2. Dalam ilustrasi di bawah ini, perintah mulai dengan #dijalankan di server, perintah mulai dengan $dijalankan pada klien.

Ini adalah konfigurasi server saya, seperti yang Anda lihat saya sedang mengekspor titik pemasangan FUSE:

# mount | tail -n1
convmvfs on /mnt/gb2312 type fuse.convmvfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# grep gb2312 /etc/exports 
/mnt/gb2312     192.168.0.0/16(no_subtree_check,fsid=0)

Inilah yang saya lakukan pada klien saya:

$ sudo mount -t nfs4 server:/ /mnt/
$ ls /mnt
Downloads  IMAGES  Library  lost+found

Untuk memverifikasi bahwa kegagalan Anda disebabkan oleh mengekspor sekering di NFS v2 / v3, ekspor titik mount itu secara khusus tanpa NFS v4 (fsid), dan lihat apakah Anda mendapatkan kesalahan:

# exportfs -a
exportfs: /mnt/gb2312 requires fsid= for NFS export

Jika pada server Anda mengekspor mount point umounted, dan mount dengan fuse nanti, Anda akan melihat di log Anda jika Anda mencoba menggunakan klien nfs:

# tail /var/log/syslog
Aug 18 03:54:31 server rpc.mountd[17183]: Cannot export /mnt/gb2312, possibly unsupported filesystem or fsid= required
Aug 18 04:00:52 server rpc.mountd[17183]: Caught signal 15, un-registering and exiting.
Tankman 六四
sumber
0

secara default mengekspor submount lebih dari nfs dimatikan. Tindakan yang disarankan adalah juga mengekspor kiriman dan meminta klien untuk memasangnya.

Hildred
sumber
Ya, saya tahu, tetapi ketika saya menulis saya mencoba berbagai kombinasi opsi mount yang seharusnya memungkinkan mengekspor konten submount. Bahkan, dengan gambar ISO yang dipasang polos ini berfungsi dengan sempurna. Hanya dengan FUSE saya gagal. Dan saya tidak bisa me-mount FUSE itu pada klien karena host itu sudah sangat tua sehingga tidak mendukung FUSE. Seluruh gagasan FUSE-via-NFS hanya untuk memungkinkan klien mengakses fitur-fitur FUSE yang tidak dapat dijalankan dengan sendirinya.
Alfe
Anda perlu mengekspor / mengekspor / contoh / me-mount dan me-mount-nya dari klien.
Hildred