Cài đặt NFS (Network File System) – [ĐẦY ĐỦ]

Tác giả: 29/08/2022

Lưu ý sơ bộ:
Tại đây, chúng tôi có sử dụng 2 hệ thống như sau:
– NFS Server: server.example.com, IP address: 192.168.0.100
– NFS Client: client.example.com, IP address: 192.168.0.101
Cài đặt NFS:
Với hệ thống NFS server, chúng ta sẽ sử dụng lệnh sau:
yum install nfs-utils nfs-utils-lib

và tạo đường dẫn khởi động cho NFS server và kích hoạt luôn dịch vụ này:

chkconfig nfs on /etc/init.d/nfs start

Với hệ thống NFS client cũng tương tự:

yum install nfs-utils nfs-utils-lib

Export các thư mục trên server:
Trên server, chúng ta sẽ thử thao tác trên thư mục /home và /var/nfs sẽ được truy cập từ phía client, do vậy cần thiết phải export chúng ngay trên server. Khi 1 client truy cập tới thư mục NFS chia sẻ, thông thường đó là tài khoản nobody, và thư mục /home không thuộc quyền quản lý của tài khoản nobody này, thêm 1 điểm nữa là chúng ta cần phân quyền đọc và ghi trên thư mục /home, ta cần “thông báo” với NFS rằng các kết nối truy cập sẽ được tạo ra từ tài khoản root (nếu thư mục /home có thuộc tính read-only thì bước này hoàn toàn không cần thiết). Thư mục /var/nfs không tồn tại, do vậy chúng ta phải tạo và gán các thuộc tính thích hợp cho nó. Trong bài thử nghiệm này, tài khoản người dùng và nhóm đều có ID là 99 trên cả 2 hệ thống CentOS server và client.

Khi cố gắng thực hiện lệnh ghi dữ liệu đến /var/nfs từ phía NFS client, ta sẽ nhận được lỗi Permission denied, do đó hãy sử dụng lệnh chmod 777 /var/nfs để bất cứ tài khoản nào cũng có thể thực hiện thao tác ghi trên thư mục đó, và áp dụng tương tự với /var/nfs. Nhưng trên hệ thống server, chúng lại được quản lý bởi các tài khoản và nhóm nonexistant – với ID 65534:
mkdir /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfs

Tiếp theo, chúng ta phải thiết lập /etc/exports tại nơi ta export các thư mục chia sẻ NFS.
Khởi tạo tham số /home và /var/nfs như NFS share và tạo ra các truy cập tới /home như
tài khoản root (để tìm hiểu thêm về lệnh /etc/exports, các định dạng cho phép và lựa chọn
phù hợp, hãy tham khảo thêm tại đây – man 5 exports):

vi /etc/exports

/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_ch eck)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check)

(lựa chọn no_root_squash sẽ khiến cho /home được truy cập như tài khoản root). Mỗi khi
chỉnh sửa /etc/exports chúng ta phải thực hiện lệnh:

exportfs -a

thì các thay đổi mới có hiệu quả.
Gán các thư mục NFS chia sẻ trên client:
Trên hệ thống client, hãy tạo thư mục để gán dữ liệu NFS chia sẻ, ví dụ:

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
sau đó áp dụng lệnh sau:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

và bạn sẽ thấy trong kết quả hiển thị của lệnh:

df -h

là 2 thư mục chia sẻ vừa được gán:

[root@client ~]# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 28G 2.2G 25G 8% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 250M 0 250M 0% /dev/shm
192.168.0.100:/home 28G 2.6G 25G 10% /mnt/nfs/home
192.168.0.100:/var/nfs 28G 2.6G 25G 10% /mnt/nfs/var/nfs
[root@client ~]#và lệnh: mount
[root@client ~]# mount

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)
[root@client ~]#

Kiểm tra:
Trên thành phần client, bạn hãy thử tạo file thử nghiệm trên NFS chia sẻ:

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

Trên server: ls -l /home/
[root@server ~]# ls -l /home/
total 55540
-rw-r–r– 1 root root 0 Sep 16 17:30 test.txt
[root@server ~]#

ls -l /var/nfs
[root@server ~]# ls -l /var/nfs
total 0
-rw-r–r– 1 65534 65534 0 Sep 16 17:30 test.txt
[root@server ~]#

Hãy lưu ý đến thuộc tính quyền sở hữu của file test, thư mục /home NFS được gán quyền
truy cập như root, do đó file /home/test.txt thuộc về tài khoản root, và tương tự, /var/nfs
sẽ thuộc quyền quản lý của 65534.
Tự động ghép các thư mục NFS chia sẻ khi hệ thống khởi động:
Thay vì việc gán các thư mục chia sẻ này theo cách thủ công từ phía client, chúng ta có
thể chỉnh lại file /etc/fstab để hệ thống tự động nhận dạng khi khởi động. Trên client, mở
file /etc/fstab:
vi /etc/fstab
[…]
192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0
192.168.0.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 lựa chọn khác nhau. Để tìm hiểu thêm về
những lựa chọn này, hãy xem thêm tại dòng lệnh:

man nfs

Kiểm tra lại xem việc chỉnh sửa /etc/fstab có mang lại hiệu quả hay không, hãy khởi động
lại hệ thống client:

reboot

Sau quá trình này, bạn sẽ thấy 2 thư mục chia sẻ NFS khi gõ lệnh:

df -h
Khi cần hỗ trợ xin liên hệ với chúng tôi:
Công ty phần mềm Nhân Hòa
Trụ sở Hà Nội: Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Đống Đa, Hà Nội
Chi nhánh HCM: 270 Cao Thắng (nối dài), Phường 12, Quận 10, TP HCM
Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An
Hotline: 19006680

Trả lời