NFS là gì? Cài đăt Network File System trên Server Ubuntu


NFS là gì? Cài đăt Network File System trên Server Ubuntu

NFS là gì? Cách cài đặt trên Ubuntu. Hôm nay cùng MokaDEV tìm hiểu NFS là gì cũng như cấu hình nó như thế nào nhé.

NFS là gì?

NFS (Network File System) là một giao thức hệ thống tệp phân tán cho phép bạn gắn các thư mục từ xa trên máy chủ của mình. Điều này cho phép bạn quản lý không gian lưu trữ ở một vị trí khác và ghi vào không gian đó từ nhiều máy khách.

Các phiên bản của NFS

Hoạt động của Hệ thống tệp mạng thay đổi dựa trên phiên bản NFS bạn đang sử dụng. Có ba phiên bản NFS được sử dụng ngày nay và mỗi phiên bản có một tiêu chuẩn hoạt động khác nhau.

NFSv2

NFSv2 là phiên bản cũ nhất được sử dụng và là phiên bản được hỗ trợ rộng rãi nhất. Nó hoạt động với UDP hoặc giao thức gói dữ liệu người dùng hoặc thông qua mạng IP, cho phép kết nối mạng ổn định.

Giao thức gói dữ liệu người dùng trên thiết lập này không chính thức tạo kết nối trước khi bắt đầu truyền dữ liệu. Tính năng này rất tiện lợi vì các kết nối hoạt động dễ dàng hơn trong thời gian ngắn hơn. Tuy nhiên, các máy khách UDP có thể tiếp tục gửi yêu cầu cho máy chủ ngay cả khi máy chủ không hoạt động.

NFSv3

NFSv3 của hệ thống tệp mạng hỗ trợ ghi không đồng bộ, từ đó cải thiện hiệu suất ghi. Dữ liệu sẽ được tích hợp trước khi lệnh cam kết quản lý dữ liệu được thiết lập. Thiết kế tạo ra bộ đệm tốt hơn so với NFSv2.

NFSv3 xử lý lỗi hiệu quả hơn và có thể quản lý các tệp lớn. Nó có thể xử lý kích thước tệp 64 bit. Điều đó có nghĩa là người dùng có thể truy cập khoảng 2GB nội dung có kích thước tệp vào bất kỳ thời điểm nào.

NFSv4

NFSv4 bao gồm việc giới thiệu một giao thức trạng thái, cải tiến hiệu suất và bảo mật mạnh mẽ. Một lợi thế vô cùng to lớn của NFSv4 so với các phiên bản NFS trước đó là nó chỉ có duy nhất một cổng UDP hoặc TCP, 2049 sử dụng để chạy dịch vụ. Từ đó, nó giúp đơn giản hóa việc sử dụng giao thức trên tường lửa hơn rất nhiều.

Ưu và nhược điểm của NFS

Ưu điểm

Có thể được truy cập từ mọi nơi và cho phép nhiều máy tính sử dụng cùng một tệp. Giảm chi phí lưu trữ bằng cách giảm nhu cầu về dung lượng đĩa. Người dùng đăng nhập vào bất kỳ máy chủ nào và có quyền truy cập vào các tệp của họ một cách công khai. Hệ thống tệp minh bạch đối với tất cả người dùng dẫn đến tính nhất quán và độ tin cậy của dữ liệu. Giảm chi phí quản lý.

Nhược điểm

Chia sẻ tệp có thể rất phức tạp. Truy cập tệp song song chưa phổ biến, ngoài NFSv4. Các giới hạn về kích thước là một nhược điểm của NFS và có thể dễ dàng làm lớn hơn, nhưng sau đó thời gian chờ cũng cần phải được điều chỉnh. NFS dựa trên RPC thường không an toàn. NFS nói chung có thể dễ bị tấn công trước các mối đe dọa từ internet. Tên máy chủ trên NFS có thể là giả mạo. Nhiều bên có thể khó truy cập vào một tệp đồng thời, đặc biệt nếu tệp có kích thước lớn hơn.

Cài đặt NFS trên Ubuntu

Cài đặt NFS sẽ có Host và Client. Host là server chia sẻ tệp, Client là server nhận tệp.

Cài đặt trên Host

Trước tiên cài gói nfs-kennel-server để cung cấp chức năng NFS: sudo apt update && sudo apt install nfs-kernel-server

Tạo thư mục cần chia sẻ

sudo mkdir /var/nfs/s -p

Bởi vì dùng sudo nên server sẽ cấp quyền cho folder là root nên chúng ta cần chuyển quyền thành nobody:nogroup để thông tin xác thực như một biện pháp bảo mật.

sudo chown nobody:nogroup /var/nfs/share

Tiếp theo chúng ta cần config tệp cấu hình NFS để thiết lập việc chia sẻ này với máy chủ nào.

sudo vi /etc/exports

Bạn thêm dòng này vào phía dưới cuối tệp exports phần client_ip bạn thêm ip máy khách được chia sẻ thư mục.

/var/nfs/share client_ip(rw,sync,no_subtree_check)

Ở đây, chúng ta đang sử dụng các tùy chọn cấu hình hãy xem ý nghĩa của từng tùy chọn này:

  • rw: Tùy chọn này cung cấp cho máy khách cả quyền truy cập đọc và ghi vào ổ đĩa.

  • sync: Tùy chọn này buộc NFS ghi các thay đổi vào đĩa trước khi trả lời. Điều này dẫn đến một môi trường ổn định và nhất quán hơn vì câu trả lời phản ánh trạng thái thực tế của ổ đĩa từ xa. Tuy nhiên, nó cũng làm giảm tốc độ hoạt động của tập tin.

  • no_subtree_check: Tùy chọn này ngăn việc kiểm tra cây con, đây là quá trình mà máy chủ lưu trữ phải kiểm tra xem tệp có thực sự còn tồn tại trong cây đã xuất cho mọi yêu cầu hay không. Điều này có thể gây ra nhiều sự cố khi một tệp được đổi tên trong khi máy khách mở tệp đó. Trong hầu hết các trường hợp, tốt hơn là tắt tính năng kiểm tra cây con.

  • no_root_squash: Theo mặc định, NFS dịch các yêu cầu từ người dùng root từ xa thành người dùng không có đặc quyền trên máy chủ. Đây được dự định là tính năng bảo mật để ngăn tài khoản root trên máy khách sử dụng hệ thống tệp của máy chủ dưới dạng root.

  • no_root_squash: vô hiệu hóa hành vi này đối với một số chia sẻ nhất định.

Khi bạn thực hiện xong các thay đổi của mình, hãy lưu và đóng tệp. Sau đó, để cung cấp các chia sẻ cho các máy khách mà bạn đã cấu hình, hãy khởi động lại máy chủ NFS bằng lệnh sau:

sudo systemctl restart nfs-kernel-server

Tiếp theo chúng ta cần cho phép client_ip đi qua tường lửa.

sudo ufw allow from client_ip to any port nfs

Kiểm tra xem ip đã được cho phép hay chưa bạn dùng lệnh:

sudo ufw status

Nếu hiển thị port 2049 được ALLOW thì đã thành công còn hiển thị Status: inactive thì server của bạn không bật firewall mặc đinh nó đã allow.

Cài đặt trên client

Trên server client chúng ta tiến hành cài đặt gói nfs-common.

sudo apt update && sudo apt install nfs-common

Tiếp theo chúng ta sẽ tạo thư mục gắn kết.

sudo mkdir -p /nfs/share

Tạo thành công thư mục gắn kết thì chúng ta sử dụng lệnh mount để gắn kết giữa server và client, host_ip là địa chỉ ip của server host mình đã setup ở trên.

sudo mount host_ip:/var/nfs/share /nfs/share

Để kiểm tra xem đã được gắn kết hay chưa bạn dùng lệnh:

sudo df -h
Hình ảnh kiểm tra kết nối NFS

Cài đặt tự gắn kết khi khởi động bằng việc setup file fstab trên client.

sudo vi /etc/fstab

Các bạn thêm dòng sau dưới cùng file fstab.

host_ip:/var/nfs/share  /nfs/share  nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Và lưu lại thay đổi của bạn.

Cách gỡ kết nối NFS

Để gỡ kết nối NFS từ client chúng ta sử dụng lệnh umount.

sudo umount /nfs/share

Lời kết

Trong bài này mình đã giới thiệu cho các bạn về NFS (Network File Systems), cách hoạt động của nó cũng như cách triển khai. Trong triển khai thực tế bạn nên lưu ý về bảo mật để không bị mất cắp dữ liệu. Mong qua bài viết này các bạn có thêm nhiều kiến thức hơn về Linux system cảm ơn các bạn đã đọc.

Author Photo

Tác giả: MokaDEV

Cố gắng chưa chắc đã thành công nhưng không cố gắng chắc chắn sẽ thất bại.