Cách thiết lập NFS Mount trên Rocky Linux 8

theanh

Administrator
Nhân viên
Hệ thống tệp mạng hay NFS là giao thức hệ thống tệp phân tán cho phép máy chủ từ xa gắn hệ thống tệp qua mạng và thực hiện các thao tác tệp trên chúng như thể chúng được gắn cục bộ. Điều này đặc biệt hữu ích khi bạn muốn chia sẻ tài nguyên từ một máy chủ qua nhiều máy khách hoặc cho phép nhiều máy khách ghi vào một không gian lưu trữ duy nhất.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt và cấu hình Máy chủ NFS và Máy khách NFS dựa trên Rocky Linux 8. Đối với điều này, chúng tôi sẽ thiết lập máy chủ hoặc máy chủ để chia sẻ tệp và máy khách để truy cập tệp máy chủ bằng cách gắn kết NFS.

Điều kiện tiên quyết​

  • Hai máy chủ Rocky Linux 8. Mỗi máy chủ này phải có một người dùng không phải root có quyền sudo.
  • Cả máy chủ và máy khách đều phải có địa chỉ IP tĩnh. Bạn thậm chí có thể thiết lập cả hai trên Mạng riêng. Trong hướng dẫn này, chúng ta sẽ sử dụng host_ip để biểu thị địa chỉ IP của Máy chủ và client_ip để tham chiếu đến địa chỉ IP của Máy khách.

Bước 1 - Cài đặt NFS trên Máy chủ và Máy khách​

Máy chủ

Để cài đặt các gói NFS, bạn cần cài đặt gói nfs-utils. Nó cung cấp một daemon cho máy chủ NFS và các công cụ liên quan.

Cài đặt gói.
Mã:
$ sudo dnf install nfs-utils
Kích hoạt và khởi động dịch vụ nfs-server. Các dịch vụ còn lại cần thiết cho việc gắn kết và chia sẻ NFS như nfsd, nfs-idmapd, rpcbind, rpc.mountd, lockd, rpc.statd, rpc.quotad và rpc.idmapd sẽ tự động khởi động cùng với nó.
Mã:
$ sudo systemctl enable nfs-server --now
Xác minh phiên bản cài đặt NFS.
Mã:
$ sudo cat /proc/fs/nfsd/versions-2 +3 +4 +4.1 +4.2
NFS phiên bản 3 và 4 được bật theo mặc định và phiên bản 2 bị tắt. NFSv2 khá cũ và lỗi thời, do đó bạn có thể thấy dấu -ve ở phía trước.

NFS lưu trữ cấu hình của nó trong các tệp /etc/nfsmount.conf và /etc/nfs.conf. /etc/nfsmount.conf dùng để cấu hình các mount NFS trong khi /etc/nfs.conf dùng để cấu hình daemon NFS và các công cụ liên quan. Các thiết lập mặc định là đủ cho hướng dẫn của chúng tôi và không cần thay đổi gì cả.

Máy khách

Trên máy khách, cài đặt các gói nfs-utils và nfs4-acl-tools.
Mã:
$ sudo dnf install nfs-utils nfs4-acl-tools

Bước 2 - Tạo các thư mục chia sẻ trên máy chủ​

Chúng tôi sẽ sử dụng hai ví dụ với các thiết lập cấu hình khác nhau - một ví dụ với mount mục đích chung và một ví dụ bằng cách chia sẻ thư mục gốc của máy chủ.

Các thư mục được gắn kết NFS không phải là một phần của Máy khách. Do đó, NFS không thể thực hiện các tác vụ yêu cầu đặc quyền siêu người dùng trên các thư mục đó. Điều đó có nghĩa là máy khách không thể thay đổi quyền sở hữu, ghi vào các thư mục đó với tư cách là người dùng gốc hoặc thực hiện các tác vụ cấp cao. Tuy nhiên, có những trường hợp khi người dùng đáng tin cậy trên máy khách cần thực hiện các tác vụ như vậy mà không cần quyền truy cập siêu người dùng trên máy chủ. Máy chủ NFS có thể được cấu hình để cho phép điều này, nhưng nó đi kèm với rủi ro khi máy khách có thể truy cập máy chủ.

Làm việc với Mount mục đích chung​

Đối với trường hợp đầu tiên, chúng ta sẽ tạo một mount đơn giản sử dụng hành vi NFS mặc định, nghĩa là máy khách không thể thực hiện bất kỳ tác vụ nào yêu cầu quyền siêu người dùng.

Tạo thư mục chia sẻ.
Mã:
host:$ sudo mkdir /var/nfs/share -p
Người dùng gốc của máy chủ sẽ sở hữu thư mục này vì chúng ta đã sử dụng sudo để tạo thư mục này.
Mã:
host:$ ls -l /var/nfstổng số 0drwxr-xr-x. 2 root root 6 Tháng 12 13 07:30 chia sẻ
NFS sẽ dịch tất cả các hoạt động root ở phía máy khách sang thông tin xác thực nobody:nobody vì lý do bảo mật. Do đó, chúng ta cần phải khớp chúng ở phía máy chủ.
Mã:
host:$ sudo chown nobody:nobody /var/nfs/general

Làm việc với Thư mục gốc​

Đối với trường hợp thứ hai, chúng ta sẽ làm cho thư mục gốc trên máy chủ khả dụng với máy khách. Chúng ta không cần phải tạo thư mục này vì nó đã tồn tại. Chúng ta không cần phải thay đổi bất kỳ quyền nào vì điều đó sẽ ảnh hưởng đến người dùng trên máy chủ.

Bước 3 - Cấu hình Xuất NFS trên Máy chủ​

Mở tệp /etc/exports trên máy Chủ để chỉnh sửa.
Mã:
host:$ sudo nano /etc/exports
Dán mã sau vào tệp.
Mã:
/var/nfs/share client_ip(rw,sync,no_subtree_check)/home client_ip(rw,sync,no_root_squash,no_subtree_check)
Mỗi thư mục và cấu hình của nó cần nằm trên một dòng riêng biệt. Thay thế giá trị client_ip bằng địa chỉ IP thực của máy khách.

Chúng ta hãy xem qua tất cả các tùy chọn cho xuất NFS.
  • rw - cấp cho máy khách quyền đọc và ghi trên ổ đĩa NFS.
  • sync - tùy chọn này buộc NFS ghi các thay đổi vào đĩa trước khi trả lời. Tùy chọn này được coi là đáng tin cậy hơn. Tuy nhiên, nó cũng làm giảm tốc độ hoạt động của tệp.
  • no_subtree_check - tùy chọn này ngăn chặn việc kiểm tra cây con, một quy trình mà máy chủ phải kiểm tra xem tệp có khả dụng hay không cùng với các quyền cho mọi yêu cầu. Nó cũng có thể gây ra sự cố khi một tệp được đổi tên trên máy chủ trong khi vẫn mở trên máy khách. Tắt tùy chọn này sẽ cải thiện độ tin cậy của NFS.
  • no_root_squash - Theo mặc định, NFS sẽ dịch các yêu cầu từ người dùng root trên máy khách thành người dùng không có đặc quyền trên máy chủ. Tùy chọn này vô hiệu hóa hành vi đó và nên được sử dụng cẩn thận để cho phép máy khách truy cập vào máy chủ.
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Để xuất các chia sẻ, hãy chạy lệnh sau.
Mã:
host:$ sudo exportfs -arvexporting client_ip:/homeexporting client_ip:/var/nfs/share
  • -a - tùy chọn này khiến tất cả các thư mục được xuất.
  • -r - tùy chọn này khiến tất cả các thư mục được xuất bằng cách xây dựng một danh sách mới trong thư mục /var/lib/nfs/etab. Tùy chọn này được sử dụng để làm mới danh sách xuất với bất kỳ thay đổi nào được thực hiện đối với /etc/exports.
  • -v - cho phép xuất chi tiết.
Để liệt kê tất cả các thư mục đã xuất, hãy chạy lệnh sau. Nó sẽ hiển thị tất cả các tùy chọn, bao gồm cả các tùy chọn mặc định không được chỉ định trong tệp /etc/exports.
Mã:
host:$ sudo exportfs -s/var/nfs/share client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)/home client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

Bước 4 - Cấu hình Tường lửa trên Máy chủ​

Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
host:$ sudo firewall-cmd --staterunning
Điều này cho biết tường lửa đang hoạt động thành công.

Tường lửa hoạt động với các vùng khác nhau và vùng công khai là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Mã:
host:$ sudo firewall-cmd --permanent --list-services
Nó sẽ hiển thị đầu ra sau.
Mã:
cockpit dhcpv6-client ssh
Tiếp theo, chúng ta cần cho phép lưu lượng truy cập đến các dịch vụ NFS cần thiết - mountd, nfs và rpc-bind. Chúng ta cũng cần cho phép truy cập từ IP của máy khách. Nếu máy khách và máy chủ lưu trữ của bạn nằm trong cùng một mạng con, thì bạn không cần phải thêm địa chỉ IP của máy khách.
Mã:
host:$ sudo firewall-cmd --permanent --add-service=nfshost:$ sudo firewall-cmd --permanent --add-service=rpc-bindhost:$ sudo firewall-cmd --permanent --add-service=mountdhost:$ sudo firewall-cmd --permanent --add-source=client_IP
Tải lại tường lửa để áp dụng các thay đổi.
Mã:
host:$ sudo firewall-cmd --reload

Bước 5 - Tạo điểm gắn kết và thư mục trên máy khách​

Bây giờ Máy chủ/Máy chủ NFS đã được cấu hình, bước tiếp theo là thiết lập điểm gắn kết và thư mục trên máy khách. Bạn có thể chạy lệnh showmount trên máy khách để kiểm tra danh sách các hệ thống tệp đã xuất trên Máy chủ.
Mã:
client:$ showmount -e host_ipXuất danh sách cho host_ip:/home host_ip/var/nfs/share host_ip
Luôn tạo một thư mục mới làm điểm gắn kết trên máy khách hoặc sử dụng một thư mục trống hiện có. Nếu có tệp trong thư mục bạn gắn kết, tệp đó sẽ bị ẩn.

Tạo các thư mục Gắn kết.
Mã:
client:$ sudo mkdir -p /nfs/shareclient:$ sudo mkdir -p /nfs/home
Gắn kết các chia sẻ bằng địa chỉ IP của máy chủ.
Mã:
client:$ sudo mount host_ip:/var/nfs/share /nfs/shareclient:$ sudo mount host_ip:/home /nfs/home
Xác minh rằng việc gắn kết đã thành công.
Mã:
client:$ df -hKích thước hệ thống tệp đã sử dụng Có sẵn Sử dụng% Đã gắn kết trêndevtmpfs 370M 0 370M 0% /devtmpfs 405M 0 405M 0% /dev/shmtmpfs 405M 16M 389M 4% /runtmpfs 405M 0 405M 0% /sys/fs/cgroup/dev/vda1 25G 2,4G 23G 10% /tmpfs 81M 0 81M 0% /run/user/1000host_ip:/var/nfs/share 25G 2.4G 23G 10% /nfs/sharehost_ip:/home 25G 2.4G 23G 10% /nfs/home
Cả hai chia sẻ đều được gắn kết từ cùng một hệ thống tệp. Do đó, chúng hiển thị cùng mức sử dụng đĩa.

Bạn cũng có thể sử dụng lệnh mount để xác minh.
Mã:
client:$ mount | grep nfsrpc_pipefs trên /var/lib/nfs/rpc_pipefs kiểu rpc_pipefs (rw,relatime)host_ip:/var/nfs/share trên /nfs/share kiểu nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)host_ip:/home trên /nfs/home kiểu nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)

Bước 6 - Kiểm tra quyền truy cập NFS​

Kiểm tra mục đích chung khi chia sẻ​

Ghi tệp thử nghiệm vào /var/nfs/share.
Mã:
client:$ sudo touch /nfs/share/test.txt
Kiểm tra quyền sở hữu của tệp.
Mã:
client:$ ls -l /nfs/share/test.txt-rw-r--r--. 1 nobody nobody 0 13 tháng 12 08:08 /nfs/share/test.txt
Vì chúng tôi đã gắn ổ đĩa này bằng các thiết lập NFS mặc định và tạo tệp trên máy khách bằng sudo, quyền sở hữu tệp mặc định là nobody:nobody. Siêu người dùng máy khách không thể thực hiện bất kỳ tác vụ quản trị nào trên chia sẻ.

Kiểm tra Chia sẻ Thư mục Trang chủ​

Ghi tệp thử nghiệm vào chia sẻ /nfs/home.
Mã:
client:$ sudo touch /nfs/home/home.txt
Kiểm tra quyền sở hữu của tệp.
Mã:
client:$ ls -l /nfs/home/home.txt-rw-r--r--. 1 root root 0 13 tháng 12 08:09 /nfs/home/home.txt
Vì chúng tôi đã sử dụng tùy chọn no_root_squash, tùy chọn này cho phép người dùng root của máy khách hoạt động như root trên chính bản chia sẻ.

Bước 7 - Làm cho Điểm gắn kết trở thành vĩnh viễn​

Theo mặc định, Chia sẻ NFS là tạm thời và cần được gắn kết khi khởi động. Chúng tôi có thể làm cho chúng trở thành vĩnh viễn bằng cách chỉnh sửa tệp /etc/fstab trên máy khách.

Mở tệp /etc/fstab để chỉnh sửa.
Mã:
client:$ sudo nano /etc/fstab
Dán các dòng sau vào cuối tệp.
Mã:
. . .host_ip:/var/nfs/share /nfs/share nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0host_ip:/home /nfs/home nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Bạn có thể tìm hiểu thêm về các tùy chọn được liệt kê ở trên bằng cách chạy các lệnh sau.
Mã:
client:$ man nfsclient:$ man mount
Nếu bạn muốn đọc chúng trực tuyến, bạn có thể tìm kiếm cụm từ man nfs và man mount trên Google để tìm hiểu thêm về các tùy chọn này.

Bước 8 - Gỡ gắn kết NFS Share​

Nếu bạn không muốn gắn kết từ xa trên hệ thống của mình nữa, bạn có thể hủy gắn kết chúng bằng lệnh umount. Lưu ý rằng lệnh được gọi là umount chứ không phải unmount, đây là một lỗi thường gặp.

Di chuyển ra khỏi các mount được chia sẻ và Hủy gắn kết chúng.
Mã:
client:$ cd ~client:$ sudo umount /nfs/shareclient:$ sudo umount /nfs/home
Nếu bạn không cần các share được gắn kết lại khi khởi động lại nữa, hãy đảm bảo bạn chú thích các mục tương ứng trong tệp /etc/fstab bằng cách đặt dấu # trước chúng.

Kết luận​

Trong hướng dẫn này, chúng ta đã tìm hiểu cách tạo máy chủ lưu trữ NFS và gắn kết các thư mục bằng cách sử dụng máy chủ này, chúng ta đã chia sẻ với máy khách NFS. Nếu bạn triển khai nó trong mạng riêng thì sẽ không có vấn đề gì nhưng nếu bạn sử dụng nó trong môi trường sản xuất thì bạn nên nhớ rằng giao thức không được mã hóa và bạn nên triển khai một số xác thực để bảo vệ dữ liệu của mình.

Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên