GNU/Linux >> Belajar Linux >  >> Debian

Menyiapkan Server dan Klien NFS di Debian 9 (Peregangan)

Panduan ini menjelaskan cara menyiapkan server NFS dan klien NFS di Debian 9. NFS adalah singkatan dari Network File System; melalui NFS, klien dapat mengakses (membaca, menulis) berbagi jarak jauh di server NFS seolah-olah berada di hard disk lokal. Dalam Tutorial ini, saya akan menunjukkan kepada Anda dua ekspor NFS yang berbeda, ekspor direktori klien yang menyimpan file sebagai pengguna none/nogroup tanpa mempertahankan izin sistem file dan ekspor direktori /var/www yang mempertahankan izin dan kepemilikan file, sebagai diperlukan pada penyiapan server hosting.

1 Catatan Awal

Saya menggunakan dua sistem Debian Wheezy di sini:

  • Server NFS:server.example.com, alamat IP:192.168.1.100
  • Klien NFS:client.example.com, alamat IP:192.168.1.101

2 Memasang NFS

Pastikan server sudah diperbarui dengan memperbarui daftar paket dan menginstal pembaruan yang tertunda di kedua server

apt-get update
apt-get upgrade

Kemudian lanjutkan dengan instalasi server dan klien NFS.

server:

Di server NFS kami menjalankan:

apt-get install nfs-kernel-server nfs-common

Kemudian kami membuat tautan startup sistem untuk server NFS dan memulainya:

klien:

Pada klien kita dapat menginstal NFS sebagai berikut (ini sebenarnya sama seperti pada server):

apt-get install nfs-common

3 Mengekspor Direktori di Server

server:

Saya ingin membuat direktori /home/client1 dan /var/www dapat diakses oleh klien untuk menunjukkan dua mode akses berbeda dari server NFS. Direktori /home/client1 dibagikan dalam mode standar, jadi semua file yang ditulis ke direktori ini disimpan sebagai user none dan group nogroup. Untuk direktori /var/www saya menggunakan opsi no_root_squash yang menginstruksikan server NFS untuk mempertahankan izin dan kepemilikan file. Ini misalnya diperlukan ketika Anda ingin mengekspor direktori /var/www dari server web yang dikelola dengan ISPConfig 3

Pertama, saya akan membuat direktori /home/client1

mkdir /home/client1
chown nobody:nogroup /home/client1
chmod 755 /home/client1

Direktori /var/www kemungkinan besar ada di server Anda. Jika tidak, buatlah:

mkdir /var/www
chown root:root /var/www
chmod 755 /var/www

Sekarang kita harus memodifikasi /etc/exports di mana kita "mengekspor" share NFS kita. Kami menetapkan /home/client1 dan /var/www sebagai NFS yang dibagikan dan memberi tahu NFS untuk membuat akses ke /home/client1 sebagai pengguna bukan siapa-siapa (untuk mempelajari lebih lanjut tentang /etc/exports, formatnya dan opsi yang tersedia, lihat

man 5 exports

)

nano /etc/exports
/home/client1           192.168.1.101(rw,sync,no_subtree_check)
/var/www        192.168.1.101(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)

(Opsi no_root_squash membuat /var/www akan diakses sebagai root.)

Untuk menerapkan perubahan di /etc/exports, kita restart server kernel nfs

service nfs-kernel-server restart

4 Memasang share NFS pada Klien

klien:

Pertama, kita buat direktori tempat kita ingin me-mount share NFS, mis.:

mkdir -p /mnt/nfs/home/client1
mkdir -p /var/www

Jika direktori /var/www sudah ada di server Anda, hentikan apache, ganti nama direktori dan buat direktori kosong baru sebagai titik mount

service apache2 stop
mv /var/www /var/www_bak
mkdir -p /var/www

Setelah itu, kita dapat memasangnya sebagai berikut:

mount 192.168.1.100:/home/client1 /mnt/nfs/home/client1
mount 192.168.1.100:/var/www /var/www

Anda sekarang akan melihat dua bagian NFS di output

df -h
[email protected]:/tmp# df -h
Filesystem Size Used Avail Use% Mounted on
udev 990M 0 990M 0% /dev
tmpfs 201M 6.0M 195M 3% /run
/dev/sda1 28G 1.2G 25G 5% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 200M 0 200M 0% /run/user/1000
192.168.1.100:/home/client1 28G 1.2G 25G 5% /mnt/nfs/home/client1
192.168.1.100:/var/www 28G 1.2G 25G 5% /var/www
[email protected]:/tmp#

dan

mount
[email protected]:/tmp# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1012912k,nr_inodes=253228,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204804k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9848)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204800k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
192.168.1.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/www on /var/www type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
[email protected]:/tmp#

5 Pengujian

Di klien, Anda sekarang dapat mencoba membuat file uji pada share NFS:

klien:

touch /mnt/nfs/home/client1/test.txt
touch /var/www/test.txt

Sekarang buka server dan periksa apakah Anda dapat melihat kedua file pengujian:

server:

ls -l /home/client1/
[email protected]:/tmp# ls -l /home/client1/
total 0
-rw-r--r-- 1 nobody nogroup 0 Nov 16 10:52 test.txt
[email protected]:/tmp#
ls -l /var/www
[email protected]:/tmp# ls -l /var/www
total 0
-rw-r--r-- 1 root root 0 Nov 16 10:52 test.txt
[email protected]:/tmp#

(Harap perhatikan kepemilikan berbeda dari file uji:bagian /home/client1 NFS diakses sebagai bukan siapa-siapa / nogroup dan dimiliki oleh siapa pun / nogroup; bagian /var/www diakses sebagai root, oleh karena itu /var/www/test .txt dimiliki oleh pengguna dan root grup.)

6 Memasang Bagian NFS Saat Booting

Daripada memasang share NFS secara manual pada klien, Anda dapat memodifikasi /etc/fstab sehingga share NFS dapat dipasang secara otomatis saat klien melakukan booting.

klien:

Buka /etc/fstab dan tambahkan baris berikut:

nano /etc/fstab
[...]
192.168.1.100:/home/client1  /mnt/nfs/home/client1   nfs      rw,sync,hard,intr  0     0
192.168.1.100:/var/www  /var/www   nfs      rw,sync,hard,intr  0     0

Alih-alih rw,sync,hard,intr Anda dapat menggunakan opsi pemasangan yang berbeda. Untuk mempelajari lebih lanjut tentang opsi yang tersedia, lihat

man nfs

Untuk menguji apakah /etc/fstab Anda yang dimodifikasi berfungsi, unmount share dan jalankan mount -a:

umount /mnt/nfs/home/client1
umount /var/www
mount -a

Anda sekarang akan melihat dua bagian NFS di output

df -h
[email protected]:/# df -h
Filesystem Size Used Avail Use% Mounted on
udev 990M 0 990M 0% /dev
tmpfs 201M 6.0M 195M 3% /run
/dev/sda1 28G 1.2G 25G 5% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 200M 0 200M 0% /run/user/1000
192.168.1.100:/home/client1 28G 1.2G 25G 5% /mnt/nfs/home/client1
192.168.1.100:/var/www 28G 1.2G 25G 5% /var/www
[email protected]:/#

dan

mount
[email protected]:/# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1012912k,nr_inodes=253228,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204804k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9848)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204800k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
192.168.1.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/www on /var/www type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
[email protected]:/#

7 Kredit

Tutorial ini didasarkan pada Tutorial Server Centos NFS dari Falko Timme.

  • Linux NFS:http://nfs.sourceforge.net/
  • Debian:http://www.debian.org/

Debian
  1. Instalasi NFS Server dan Klien pada CentOS 7

  2. Menyiapkan Server NFS Dan Klien Pada CentOS 6.3

  3. Menyiapkan Server NFS Dan Klien Pada OpenSUSE 12.2

  1. Cara Setup NTP Server dan Client di Debian 9 Stretch Linux

  2. Mempelajari NFS melalui konfigurasi server dan klien

  3. CentOS / RHEL 7 :Mengkonfigurasi server NFS dan klien NFS

  1. Menyiapkan Server NFS Dan Klien Di Scientific Linux 6.3

  2. Menyiapkan Server dan Klien NFS di CentOS 7.2

  3. Menyiapkan Server dan Klien NFS di Debian Wheezy