Saya memiliki tiga mesin dalam produksi -
machineA 10.66.136.129
machineB 10.66.138.181
machineC 10.66.138.183
dan semua mesin itu sudah menginstal Ubuntu 12.04 di dalamnya dan saya punya akses root ke ketiga mesin itu.
Sekarang saya harus melakukan hal-hal di bawah ini di mesin saya di atas -
Create mount point /opt/exhibitor/conf
Mount the directory in all servers.
sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/
Saya sudah membuat /opt/exhibitor/conf
direktori di ketiga mesin seperti yang disebutkan di atas.
Sekarang saya mencoba membuat Mount Point. Jadi saya mengikuti proses di bawah ini -
Instal file dukungan NFS dan server kernel NFS di ketiga mesin di atas
$ sudo apt-get install nfs-common nfs-kernel-server
Buat direktori bersama di ketiga mesin di atas
$ mkdir /opt/exhibitor/conf/
Mengedit /etc/exports
dan menambahkan entri seperti ini di ketiga mesin di atas -
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/opt/exhibitor/conf/ 10.66.136.129(rw)
/opt/exhibitor/conf/ 10.66.138.181(rw)
/opt/exhibitor/conf/ 10.66.138.183(rw)
Saya telah mencoba memasang pada machineA seperti di bawah ini dari machineB dan machineC dan itu memberi saya kesalahan ini-
root@machineB:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/
mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
root@machineC:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/
mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
Apakah /etc/exports
file saya terlihat bagus? Saya cukup yakin, saya telah mengacaukan exports
file saya . Karena saya memiliki konten yang sama di ketiga mesin dalam file ekspor.
Ada yang tahu apa yang salah saya lakukan di sini? Dan apa /exports
file yang benar di sini?
0750
atau0700
klien mencoba me-mount sangat mungkin gagal dengan pesan kesalahan yang sama ini . Saya mengubah host dari0750
menjadi0755
dan kemudian kesalahan hilang dan semuanya baik-baik saja.Jawaban:
exportfs
Ketika Anda membuat
/etc/exports
file di server Anda harus memastikan bahwa Anda mengekspornya. Biasanya Anda ingin menjalankan perintah ini:Ini akan mengekspor semua entri dalam file ekspor.
showmount
Hal lain yang sering saya lakukan adalah dari komputer lain saya akan memeriksa mesin apa pun yang mengekspor saham NFS ke jaringan menggunakan
showmount
perintah.Contoh
Katakan misalnya saya masuk ke scully.
fstab
Untuk memasang ini setelah boot Anda akan menambahkan baris ini ke mesin klien Anda yang ingin mengkonsumsi mount NFS.
penghitungan otomatis
Jika Anda akan me-reboot server ini maka saya sangat menyarankan Anda melihat ke pengaturan automounting (
autofs
) daripada menambahkan entri ini ke/etc/fstab
. Ini sedikit lebih banyak pekerjaan tetapi sepadan dengan usahaMelakukan hal itu akan memungkinkan Anda untuk me-reboot server lebih independen satu sama lain dan juga hanya akan membuat NFS mount ketika itu benar-benar diperlukan dan / atau sedang digunakan. Saat tidak digunakan, ia akan dilepas.
Referensi
sumber
exportfs -a
, saya malah berlariexportfs -rv
. Apakah ada perbedaan di antara keduanya? Dan dalam kasus saya,showmount -e 10.66.136.129
saya akan melakukan dari machineB dan machineC. Baik?exportfs -rv
hanya melakukan ekspor ulang + verbose. The-a
akan mengekspor segalanya. Seperti untukshowmount -e
ya, Anda bisa menjalankannya dari mesin-mesin itu atau yang melayani saham.Saya melihat kesalahan yang sama (
mount.nfs: access denied by server while mounting...
) dan masalah ini diperbaiki oleh-o v3
opsi sebagai berikut:sumber
mount.nfs: Connection timed out
. (Klien adalah Ubuntu 14.04 LTS 64-bit. Server adalah QNAP NFS dengan QTS 4.0.2 2016/01/09.)Dalam kasus saya berfungsi menggunakan nfs4 melakukan:
Dalam
/etc/export
file di serverfsid=0
membuat/Path/to/export
direktori root ketika Anda me-mount share.crossmnt
, karena saya mempunyai beberapa drive lain dalam sistem file yang diekspor yang ingin saya akses juga.no_root_squash
, karena saya ingin mengakses sebagai pengguna root (su) dari sisi klien. Saya cukup yakin bahwa saya satu-satunya yang dapat melakukannya di jaringan lokal saya.Server dan klien adalah Ubuntu 14.04 64bit.
Jika Anda ingin menggunakan nfs3, jawaban dari @ fumisky-wells juga berfungsi untuk saya.
sumber
Saya mendapatkan pesan kesalahan yang sama dan masalah saya ternyata disebabkan oleh mesin klien yang memiliki dua antarmuka jaringan yang terhubung ke LAN yang sama. Server telah dikonfigurasi untuk mengharapkan alamat IP tertentu dan lalu lintas keluar pada antarmuka kedua yang memiliki alamat IP dhcp. Jadi saya hanya mengkonfigurasi antarmuka kedua untuk memiliki alamat IP statis dan juga menambahkan alamat IP statis kedua ke konfigurasi server.
sumber
/etc/exports
perlu diedit pada mesin server NFS , bukan klien, seperti yang Anda nyatakan Anda lakukan, seperti yang diperiksa oleh server NFS ketika klien meminta akses ke share.Jika Anda memasukkan yang berikut ini di
/etc/exports
server NFS, itu akan berfungsi:sumber
exportfs -a
?Jika nfs-client mencoba untuk me-mount share yang diekspor di dalam container linux maka container harus dijalankan dalam mode privilege.
Dalam hal buruh pelabuhan;
$ docker run -it --rm --privileged ubuntu:14.04
sumber
Bagi saya masalahnya adalah bahwa saya menggunakan alamat ip server
/etc/exports/
bukan klien .Masalahnya, Anda harus meletakkan semua ips yang Anda berikan akses di server
/etc/exports/
sumber
Setelah berjuang dengan pesan kesalahan yang sama ini selama berjam-jam, masalah saya ternyata tidak lebih rumit dari izin file Linux kuno yang bagus pada host NFS.
Folder yang saya coba bagi (
/home/foo/app/share
) memiliki izin yang benar, tetapi karena direktori home pengguna (/home/foo
) memiliki0750
mode di atasnya, NFS tidak dapat melintasi ke dalamnya untuk mengakses direktori bersama.Segera setelah saya mengatur direktori home pengguna ke mode
0751
, layanan NFS dapat melintasinya dan saya dapat me-mount share dari mesin klien saya.sumber
Bagi saya masalahnya adalah, bahwa router saya mengubah alamat IP yang digunakan klien, sehingga entri
/etc/exports
pada mesin server hanya memungkinkan akses untuk alamat IP yang tidak digunakan lagi.sumber
Hal yang sama dapat terjadi jika Anda mencoba untuk me-mount berbagi NFS pada contoh Virtual Box dengan adapter jaringan yang dikonfigurasi sebagai
NAT
.Memilih
Bridged Adapter
dalam pengaturan jaringan mesin virtual memperbaiki masalah ini.sumber
Saya tahu ini adalah utas lama, tetapi masalah saya ada hubungannya dengan LXC dan AppArmor .
Membunuh AppArmor , atau menambahkan profil pengecualian, memperbaikinya.
sumber
Kesalahan ini juga dapat disebabkan oleh mencoba me-mount jalur terenkripsi. (Misalnya di direktori home Anda, jika Anda memilih untuk mengenkripsi itu)
sumber
Satu-satunya solusi yang bekerja untuk saya adalah mengekspor filesystem yang dimulai dengan
/srv
. Sepertinya ini adalah batasan (atau opsi default, setidaknya) dari NFSv4.Karena saya mencoba mengekspor drive USB yang akan di-automount
/media
, saya memerlukan cara untuk membuatnya 'terpasang'/srv
. Untuk mencapai itu:Dan di
/etc/exports
:Ketika saya mengekspor
/media/jim/wdportable/videos
secara langsung, upaya untuk memasang klien selalu menghasilkanmount.nfs: access denied by server
.The
-o v3
solusi bekerja, tapi aku tidak ingin memaksa v3.sumber
/media/jim
folder. Jika direktori Anda mencoba untuk berbagi adalah (atau dalam) dir dengan hanya700
atau750
modus, NFS tidak akan dapat melintasi ke dalamnya. Jika Anda berubah/media/jim
menjadi751
, itu mungkin akan berhasil.sudo mount -o v3 192.168.0.200:"/media/pi/mydrive" /mnt/nfs-share
(raspbian pada Raspi 3 B +), saya juga mencobasudo chmod 751 /media/pi
. Setelah itu, saya tidak perlu-o v3
lagi:sudo mount 192.168.0.200:"/media/pi/mydrive" /mnt/nfs-share
melakukan pekerjaan (setelah unmount). Banyak terima kasih kepada @DaleAnderson.Perlu dicatat bahwa halaman tertaut yang membawa saya ke sini memiliki jawaban yang benar yaitu Anda TIDAK dapat menggunakan * wildcard di alamat IP dalam ekspor. Ini bisa * (semua IP) atau digunakan sebagai wildcard dalam nama domain IE: * .domain.com.
Misalnya: ini benar
Ini tidak akan berhasil (atau setidaknya salah), tetapi bekerja untuk saya selama bertahun-tahun sampai saya mencoba memasang ekspor dari VM Fedora.
sumber