Thiết lập máy chủ và máy khách NFS trên CentOS 7.2

theanh

Administrator
Nhân viên
Hướng dẫn này giải thích cách thiết lập máy chủ NFS và máy khách NFS trên CentOS 7. NFS là viết tắt của Hệ thống tệp mạng; thông qua NFS, máy khách có thể truy cập (đọc, ghi) vào chia sẻ từ xa trên máy chủ NFS như thể nó nằm trên ổ cứng cục bộ. Tôi sẽ sử dụng máy chủ CentOS 7.2 minimal làm cơ sở cho quá trình cài đặt.


1 Lưu ý sơ bộ​

Tôi đang sử dụng hai hệ thống CentOS tại đây:
  • Máy chủ NFS: server.example.com, địa chỉ IP: 192.168.1.100
  • Máy khách NFS: client.example.com, địa chỉ IP: 192.168.1.101


Tôi sẽ sử dụng trình chỉnh sửa nano trong hướng dẫn này để chỉnh sửa các tệp cấu hình. Nano có thể được cài đặt như thế này.
Mã:
yum -y install nano

2 Cấu hình Tường lửa​

Tôi khuyên bạn nên cài đặt tường lửa. Nếu bạn chưa cài đặt firewalld và muốn sử dụng tường lửa, hãy cài đặt nó bằng các lệnh sau:
Mã:
yum -y installfirewalld
khởi động tường lửa và cho phép tường lửa được khởi động khi khởi động.
Mã:
systemctl start firewalld.service
systemctl enable firewalld.service
Tiếp theo, mở các cổng SSH và NFS để đảm bảo rằng bạn có thể kết nối với máy chủ bằng SSH cho mục đích quản trị và bằng NFS từ máy khách NFS của chúng tôi.
Mã:
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

3 Cài đặt NFS​

máy chủ:

Trên máy chủ NFS, chúng tôi chạy:
Mã:
yum -y install nfs-utils
Sau đó, bật và khởi động dịch vụ máy chủ nfs.
Mã:
systemctl enablenfs-server.service
systemctl start nfs-server.service
máy khách:

Trên máy khách, chúng tôi có thể cài đặt NFS như sau (thực tế, cài đặt này giống như trên máy chủ):
Mã:
yum install nfs-utils

4 Xuất thư mục trên máy chủ​

máy chủ:

Tôi muốn làm cho các thư mục /home và /var/nfs có thể truy cập được đối với máy khách; do đó, chúng ta phải "xuất" chúng trên máy chủ.

Khi máy khách truy cập vào chia sẻ NFS, điều này thường xảy ra với tư cách là người dùng nfsnobody. Thông thường, thư mục /home không thuộc sở hữu của nfsnobody (và tôi không khuyên bạn nên thay đổi quyền sở hữu của thư mục này thành nfsnobody!), và vì chúng ta muốn đọc và ghi vào /home, chúng ta sẽ yêu cầu NFS thực hiện quyền truy cập với tư cách là root (nếu chia sẻ /home của chúng ta chỉ được đọc, thì điều này là không cần thiết). Thư mục /var/nfs không tồn tại, vì vậy chúng ta có thể tạo thư mục này và thay đổi quyền sở hữu của nó thành người dùng và nhóm nfsnobody.
Mã:
mkdir /var/nfs
chown nfsnobody:nfsnobody /var/nfs
chmod 755 /var/nfs
Bây giờ chúng ta phải sửa đổi /etc/exports nơi chúng ta "xuất" các chia sẻ NFS của mình. Chúng tôi chỉ định /home và /var/nfs là các chia sẻ NFS và yêu cầu NFS thực hiện quyền truy cập vào /home với tư cách là root (để tìm hiểu thêm về /etc/exports, định dạng và các tùy chọn khả dụng, hãy xem
Mã:
man 5 exports
)
Mã:
nano /etc/exports
Mã:
/home 192.168.1.101(rw,sync,no_root_squash,no_subtree_check)/var/nfs 192.168.1.101(rw,sync,no_subtree_check)
(Tùy chọn no_root_squash làm cho /home sẽ được truy cập dưới dạng root.)

Bất cứ khi nào chúng ta sửa đổi /etc/exports, chúng ta phải chạy:
Mã:
exportfs -a
sau đó, để các thay đổi có hiệu lực.


5 Gắn các Chia sẻ NFS trên Máy khách​

máy khách:

Trước tiên, chúng ta tạo các thư mục mà chúng ta muốn gắn các chia sẻ NFS, ví dụ:
Mã:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
Sau đó, chúng ta có thể gắn chúng như sau:
Mã:
mount 192.168.1.100:/home /mnt/nfs/home
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs
Bây giờ bạn sẽ thấy hai chia sẻ NFS trong đầu ra của
Mã:
df -h
Mã:
[root@client ~]# df -h
Kích thước hệ thống tập tin được sử dụng Có sẵn Sử dụng% Được gắn kết trên
/dev/mapper/centos-root 28G 1,7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8,6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

Mã:
mount
Mã:
[root@client ~]# mount
sysfs trên /sys loại sysfs (rw, nosuid, nodev, noexec, relatime, seclabel)
proc trên /proc loại proc (rw, nosuid, nodev, noexec, relatime)
devtmpfs trên /dev loại devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs trên /sys/kernel/security loại securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs trên /dev/shm loại tmpfs (rw,nosuid,nodev,seclabel)
devpts trên /dev/pts loại devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs trên /run loại tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs trên /sys/fs/cgroup loại tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup trên /sys/fs/cgroup/systemd loại cgroup (rw, nosuid, nodev, noexec, relatime, xattr, release_agent=/usr/lib/systemd/systemd-cgroups-agent, name=systemd)
pstore trên /sys/fs/pstore loại pstore (rw, nosuid, nodev, noexec, relatime)
cgroup trên /sys/fs/cgroup/perf_event loại cgroup (rw, nosuid, nodev, noexec, relatime, perf_event)
cgroup trên /sys/fs/cgroup/hugetlb loại cgroup (rw, nosuid, nodev, noexec, relatime, hugetlb)
cgroup trên /sys/fs/cgroup/devices loại cgroup (rw, nosuid, nodev, noexec, relatime, devices)
cgroup trên /sys/fs/cgroup/freezer loại cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup trên /sys/fs/cgroup/cpuset loại cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup trên /sys/fs/cgroup/cpu,cpuacct loại cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup trên /sys/fs/cgroup/net_cls loại cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup trên /sys/fs/cgroup/blkio loại cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup trên /sys/fs/cgroup/memory loại cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs trên /sys/kernel/config loại configfs (rw,relatime)
/dev/mapper/centos-root trên / loại xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs trên /sys/fs/selinux loại selinuxfs (rw,relatime)
systemd-1 trên /proc/sys/fs/binfmt_misc loại autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue trên /dev/mqueue loại mqueue (rw,relatime,seclabel)
debugfs trên /sys/kernel/debug loại debugfs (rw,relatime)
hugetlbfs trên /dev/hugepages gõ hugetlbfs (rw,relatime,seclabel)
sunrpc trên /var/lib/nfs/rpc_pipefs gõ rpc_pipefs (rw,relatime)
nfsd trên /proc/fs/nfsd gõ nfsd (rw,relatime)
/dev/sda1 trên /boot gõ xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs trên /run/user/0 gõ tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home trên /mnt/nfs/home gõ nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs trên /mnt/nfs/var/nfs gõ nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 Kiểm tra​

Trên máy khách, bây giờ bạn có thể thử tạo các tệp kiểm tra trên các chia sẻ NFS:

máy khách:
Mã:
chạm /mnt/nfs/home/test.txt
chạm /mnt/nfs/var/nfs/test.txt
Bây giờ hãy đến máy chủ và kiểm tra xem bạn có thể thấy cả hai tệp kiểm tra không:

máy chủ:
Mã:
ls -l /home/
Mã:
[root@server1 ~]# ls -l /home/
tổng số 0
drwx------. 2 quản trị viên quản trị viên 59 Tháng sáu 21 16:13 quản trị viên
-rw-r--r--. 1 root root 0 Tháng sáu 29 13:07 test.txt
Mã:
ls -l /var/nfs
Mã:
[root@server1 ~]# ls -l /var/nfs
tổng số 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 29 tháng 6 13:07 test.txt
(Xin lưu ý các quyền sở hữu khác nhau của các tệp kiểm tra: chia sẻ NFS /home được truy cập dưới dạng root, do đó /home/test.txt thuộc sở hữu của root; chia sẻ /var/nfs được truy cập dưới dạng nobody/65534, do đó /var/nfs/test.txt thuộc sở hữu của 65534.)


7 Gắn kết các chia sẻ NFS tại thời điểm khởi động​

Thay vì gắn kết các chia sẻ NFS theo cách thủ công trên máy khách, bạn có thể sửa đổi /etc/fstab để các chia sẻ NFS được gắn kết tự động khi máy khách khởi động.

máy khách:

Mở /etc/fstab và thêm các dòng sau:
Mã:
nano /etc/fstab
Mã:
[...]192.168.1.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0192.168.1.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0
Thay vì rw,sync,hard,intr, bạn có thể sử dụng các tùy chọn gắn kết khác. Để tìm hiểu thêm về các tùy chọn khả dụng, hãy xem
Mã:
man nfs
Để kiểm tra xem /etc/fstab đã sửa đổi của bạn có hoạt động không, hãy khởi động lại máy khách:
Mã:
reboot
Sau khi khởi động lại, bạn sẽ tìm thấy hai chia sẻ NFS trong đầu ra của
Mã:
df -h
Mã:
[root@client ~]# df -h
Kích thước hệ thống tệp đã sử dụng Có sẵn Sử dụng% Đã gắn kết trên
/dev/mapper/centos-root 28G 1,7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8,6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

Mã:
mount
Mã:
[root@client ~]# mount
sysfs trên /sys gõ sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc trên /proc loại proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs trên /dev loại devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs trên /sys/kernel/security loại securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs trên /dev/shm loại tmpfs (rw,nosuid,nodev,seclabel)
devpts trên /dev/pts loại devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs trên /run loại tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs trên /sys/fs/cgroup loại tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup trên /sys/fs/cgroup/systemd loại cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore trên /sys/fs/pstore loại pstore (rw,nosuid,nodev,noexec,relatime)
cgroup trên /sys/fs/cgroup/perf_event loại cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup trên /sys/fs/cgroup/hugetlb loại cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup trên /sys/fs/cgroup/devices loại cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup trên /sys/fs/cgroup/freezer loại cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup trên /sys/fs/cgroup/cpuset loại cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup trên /sys/fs/cgroup/cpu,cpuacct loại cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup trên /sys/fs/cgroup/net_cls loại cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup trên /sys/fs/cgroup/blkio loại cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup trên /sys/fs/cgroup/memory loại cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs trên /sys/kernel/config loại configfs (rw,relatime)
/dev/mapper/centos-root trên / loại xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs trên /sys/fs/selinux loại selinuxfs (rw,relatime)
systemd-1 trên /proc/sys/fs/binfmt_misc loại autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue trên /dev/mqueue kiểu mqueue (rw,relatime,seclabel)
debugfs trên /sys/kernel/debug kiểu debugfs (rw,relatime)
hugetlbfs trên /dev/hugepages kiểu hugetlbfs (rw,relatime,seclabel)
sunrpc trên /var/lib/nfs/rpc_pipefs kiểu rpc_pipefs (rw,relatime)
nfsd trên /proc/fs/nfsd kiểu nfsd (rw,relatime)
/dev/sda1 trên /boot kiểu xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs trên /run/user/0 nhập tmpfs (rw, nosuid, nodev, relatime, seclabel, size=188060k, mode=700)
192.168.1.100:/home trên /mnt/nfs/home nhập nfs4 (rw, relatime, vers=4.0, rsize=262144, wsize=262144, namlen=255, hard, proto=tcp, port=0, timeo=600, retrans=2, sec=sys, clientaddr=192.168.1.101, local_lock=none, addr=192.168.1.100)
192.168.1.100:/var/nfs trên /mnt/nfs/var/nfs nhập nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

8 Liên kết​

 
Back
Bên trên