NFS là gì? Hướng dẫn cấu hình sử dụng NFS server

Bạn cần một giải pháp chia sẻ tệp tin hiệu quả giữa các máy chủ Linux? NFS server (Network File System) chính là câu trả lời. Được phát triển bởi Sun Microsystems, NFS Server cho phép người dùng truy cập tệp tin từ xa một cách liền mạch, hỗ trợ nhiều phiên bản với các tính năng bảo mật và hiệu suất khác nhau. Vậy để có thể tìm hiểu thêm NFS server là gì cùng nhiều thông tin chi tiết khác về nó thì hãy xem qua bài viết này nhé.

1. NFS là gì?

NFS (Network File System) là một giao thức chia sẻ tệp tin mạnh mẽ, cho phép các máy tính trong mạng truy cập vào các tệp tin trên một máy chủ từ xa như thể chúng được lưu trữ cục bộ.

giao thức chia sẻ tệp tin Network File System
NFS (Network File System) là một giao thức chia sẻ tệp tin

Network File System giúp đơn giản hóa việc quản lý dữ liệu, tối ưu hóa không gian lưu trữ và tăng cường hiệu suất làm việc nhóm. Với khả năng tương thích tốt trên các hệ thống Linux/Unix, NFS server là một giải pháp lý tưởng cho nhiều ứng dụng, từ chia sẻ thư mục cá nhân đến xây dựng hệ thống lưu trữ tập trung.

> Tìm hiểu: File server – Máy chủ tập tin

2. Cách thức hoạt động của NFS server là gì?

Máy chủ NFS hoạt động dựa trên mô hình client-server, cho phép máy khách (client) truy cập các tệp tin được lưu trữ trên máy chủ (server) qua mạng. Quá trình này được thực hiện khá tiện lợi khi người dùng có thể truy cập những tệp tin từ xa một cách dễ dàng.

2.1. Các yếu tố cơ bản

Để có thể đưa NFS Server vào hoạt động, bạn cần đáp ứng các yếu tố cơ bản sau:

NFS Server:

  • Phần mềm NFS server đã được cài đặt.
  • Có kết nối mạng.
  • Đã được cấu hình để chia sẻ thư mục (export) và xử lý các yêu cầu NFS.

NFS Client:

  • Phần mềm NFS client đã được cài đặt.
  • Có kết nối mạng và khả năng kết nối đến NFS server.
  • Đã được cấu hình để gửi và nhận yêu cầu NFS, cũng như mount (gắn kết) thư mục được chia sẻ.

2.2. Các bước hoạt động

Sau khi đã thiết lập xong, NFS Server có thể được hoạt động dựa trên các bước chi tiết sau:

sơ đồ từng bước hoạt động của NFS server
Cách thức hoạt động của NFS server
  1. Xuất thư mục (Exporting Directories): NFS server xuất các thư mục được chỉ định (ví dụ: cấu hình trong file /etc/exports), cho phép các máy client truy cập các thư mục đó qua mạng.
  2. Kết nối Client – Server qua RPC: Khi một máy client muốn truy cập file trên NFS, nó sẽ thực hiện lệnh mount để gắn các thư mục từ máy chủ vào hệ thống file của nó. Quá trình giao tiếp giữa client và server được thực hiện thông qua cơ chế Remote Procedure Call (RPC), cho phép client gửi các yêu cầu thao tác file (đọc, ghi, xóa, v.v.) đến server.
  3. Xử lý yêu cầu và kiểm tra quyền truy cập: Khi nhận được yêu cầu từ client, NFS server sẽ kiểm tra quyền truy cập dựa trên cấu hình đã được định nghĩa (ví dụ: dựa trên IP hoặc user) và thực hiện các thao tác cần thiết trên hệ thống file nội bộ. Sau đó, kết quả của các thao tác sẽ được gửi trở lại client.

3. Các phiên bản Network File System

NFS server đã trải qua rất nhiều thế hệ, cho ra nhiều phiên bản khác nhau để có thể đáp ứng được hết mong muốn của người tiêu dùng, dưới đây là bảng tổng quan các phiên bản máy chủ NFS:

NFSv1 (Sun NFS)NFSv2NFSv3NFSv4NFSv4.1NFSv4.2
Giao thức truyền tảiUDPUDPUDP/TCPTCPTCPTCP
Kiến trúcKhông trạng thái (Stateless)Không trạng thái (Stateless)Không trạng thái (Stateless)Có trạng thái (Stateful)Có trạng thái (Stateful)Có trạng thái (Stateful)
Kích thước tệp tối đaHạn chếHạn chế64-bit (hơn 2GB)LớnLớnLớn
Khóa tệp (File Locking)Hỗ trợ kémHỗ trợ kémHỗ trợ cơ bảnHỗ trợ tốt (Mandatory locking)Hỗ trợ tốtHỗ trợ tốt
Hiệu suấtKém, đặc biệt trên WANTrung bìnhKhá tốt, cải thiện trên WAN với TCPTốt, tối ưu cho WANRất tốt (pNFS), tối ưu cho hiệu suất caoRất tốt, tối ưu cho hiệu suất và quản lý dữ liệu
Khả năng mở rộngKémKémTrung bìnhTốtRất tốtRất tốt
Quản lýĐơn giảnĐơn giảnPhức tạp hơnPhức tạpPhức tạpPhức tạp
Cổng sử dụngNhiều cổng độngNhiều cổng độngNhiều cổng động1 cổng (2049)1 cổng (2049)1 cổng (2049)
Hỗ trợ tường lửa/NATKhó khănKhó khănKhó khănDễ dàng hơnDễ dàng hơnDễ dàng hơn
pNFS (Parallel NFS)Không hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợHỗ trợ (files, blocks, objects)Hỗ trợ (files, blocks, objects)
Server-Side CopyKhông hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợ
Application Data Blocks (ADB)Không hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợKhông hỗ trợ
Ứng dụng điển hìnhMạng LAN nhỏ, đơn giảnMạng LAN nhỏ, đơn giảnMạng hỗn hợp LAN/WAN, chia sẻ tệp cơ bảnMạng doanh nghiệp, Internet, yêu cầu bảo mậtĐiện toán đám mây, hiệu năng cao (HPC), hệ thống lưu trữ phân tánỨng dụng hiện đại, ảo hóa, quản lý dữ liệu nâng cao

Bảng so sánh các phiên bản Network File System

Tìm hiểu chi tiết từng phiên bản với nội dung sau đây:

3.1. Sun Network Filesystem (1984)

Đây là phiên bản NFS server đầu tiên, được phát triển bởi Sun Microsystems. Nó dựa trên giao thức UDP (User Datagram Protocol) và không có cơ chế bảo mật mạnh.

  • Ưu điểm: Đơn giản, dễ triển khai và hoạt động tốt trong mạng LAN nhỏ, tin cậy.
  • Nhược điểm: Hiệu suất kém trong mạng WAN, bảo mật yếu (dựa vào địa chỉ IP để xác thực), không hỗ trợ khóa tệp (file locking) tốt, hạn chế về kích thước tệp và số lượng người dùng đồng thời.

3.2. NFSv2 (1989)

Vẫn dựa trên UDP nhưng cải thiện một số vấn đề về hiệu suất so với phiên bản đầu tiên.

  • Ưu điểm: Tương thích ngược tốt với phiên bản đầu tiên, cải thiện về hiệu suất.
  • Nhược điểm: Vẫn sử dụng UDP nên không đảm bảo độ tin cậy hoàn toàn, bảo mật vẫn yếu, không hỗ trợ tốt cho môi trường mạng phức tạp.

3.3. NFSv3 (1995)

Hỗ trợ cả UDP và TCP (Transmission Control Protocol), cho phép truyền dữ liệu lớn hơn và cải thiện hiệu suất trên mạng WAN. Giới thiệu hỗ trợ 64-bit cho phép xử lý các tệp tin lớn hơn 2GB.

  • Ưu điểm: Hiệu suất được cải thiện đáng kể, hỗ trợ tốt hơn cho mạng WAN, hỗ trợ kích thước tệp lớn hơn, cải thiện khả năng mở rộng.
  • Nhược điểm: Bảo mật vẫn còn hạn chế, quản lý phức tạp hơn so với các phiên bản trước. Vẫn chưa có cơ chế xác thực mạnh mẽ.

3.4. NFSv4 (2003)

Được thiết kế để hoạt động tốt trong môi trường Internet, hỗ trợ bảo mật mạnh hơn (Kerberos), tích hợp cơ chế khóa tệp (stateful protocol), cải thiện hiệu suất và khả năng mở rộng, sử dụng một cổng duy nhất cho giao tiếp (port 2049).

  • Ưu điểm: Bảo mật được cải thiện đáng kể, hỗ trợ khóa tệp tốt hơn, hiệu suất tốt hơn trong môi trường WAN, đơn giản hóa quản lý với một cổng duy nhất. Hỗ trợ tốt cho tường lửa (firewall) và NAT (Network Address Translation).
  • Nhược điểm: Phức tạp hơn trong cấu hình so với các phiên bản trước, yêu cầu tài nguyên hệ thống nhiều hơn.

3.5. NFSv4.1 (2010)

Cải tiến hơn về hiệu suất và khả năng mở rộng, đặc biệt là trong môi trường điện toán đám mây. Giới thiệu pNFS (parallel NFS) cho phép truy cập dữ liệu song song từ nhiều máy chủ, tăng tốc độ truy cập.

  • Ưu điểm: Hiệu suất rất cao trong môi trường phân tán, khả năng mở rộng tốt, đặc biệt phù hợp cho các ứng dụng hiệu năng cao và điện toán đám mây.
  • Nhược điểm: Yêu cầu cấu hình phức tạp và phần cứng mạnh để tận dụng tối đa lợi ích của pNFS.

3.6. NFSv4.2 (2016)

 Bổ sung các tính năng mới như Server-Side Copy, Application Data Blocks (ADB), Labels và Space Reservations. Các tính năng này giúp cải thiện hiệu suất, quản lý dữ liệu và tích hợp tốt hơn với các ứng dụng hiện đại.

  • Ưu điểm: Cải thiện hiệu suất, khả năng quản lý dữ liệu linh hoạt hơn, hỗ trợ tốt hơn cho các ứng dụng hiện đại và môi trường ảo hóa.
  • Nhược điểm: Khá mới nên chưa được hỗ trợ rộng rãi như các phiên bản trước.

4. Ưu nhược điểm khi sử dụng máy chủ NFS

NFS Server đã đem đến rất nhiều sự tiện lợi cho người dùng mới những ưu điểm vượt trội, giúp nó luôn được yêu thích và chọn lựa sử dụng trong nhiều năm qua. Thế nhưng bên cạnh những tính năng vượt trội ấy, NFS Server cũng còn tồn tại một số hạn chế đang được khắc phục dần.

4.1 Ưu điểm

  • Tiết kiệm chi phí: NFS server tận dụng hạ tầng mạng IP hiện có, do đó không đòi hỏi đầu tư thêm vào phần cứng hoặc phần mềm đặc biệt, giúp giảm chi phí triển khai và vận hành.
  • Cài đặt và cấu hình đơn giản: Việc cài đặt và cấu hình NFS server tương đối dễ dàng, đặc biệt là trong môi trường Linux/Unix, vì nó tích hợp sẵn trong hệ điều hành. Điều này giúp tiết kiệm thời gian và công sức cho người quản trị hệ thống.
  • Quản lý tập trung dữ liệu: NFS cho phép lưu trữ dữ liệu tập trung trên một máy chủ, giúp đơn giản hóa việc quản lý, sao lưu và bảo trì dữ liệu. Điều này cũng giúp giảm sự phụ thuộc vào dung lượng lưu trữ trên các máy trạm.
  • Chia sẻ dữ liệu giữa các hệ điều hành khác nhau: NFS hỗ trợ chia sẻ tệp tin giữa các hệ điều hành khác nhau (ví dụ: Linux, Unix, macOS), tạo sự linh hoạt trong môi trường làm việc hỗn hợp.
ưu và nhược điểm của Network File System
Đặc điểm của máy chủ NFS

4.2 Nhược điểm

  • Vấn đề bảo mật: Đây là một trong những hạn chế lớn nhất của NFS server. Do cơ chế xác thực tương đối đơn giản, NFS dễ bị tấn công, đặc biệt là tấn công giả mạo (spoofing). Vì vậy, việc sử dụng NFS trên các mạng không tin cậy hoặc trực tiếp trên internet là rất rủi ro. Nên sử dụng NFS server trong mạng nội bộ và sau tường lửa.
  • Hiệu suất phụ thuộc vào mạng: Hiệu suất của NFS phụ thuộc nhiều vào tốc độ và độ ổn định của mạng. Khi lưu lượng mạng tăng cao hoặc mạng gặp sự cố, tốc độ truy cập dữ liệu qua NFS có thể bị chậm đáng kể.
  • Khó khăn trong môi trường WAN: Mặc dù các phiên bản NFS server mới hơn (ví dụ: NFSv4) đã cải thiện khả năng hoạt động trên mạng diện rộng (WAN), nhưng hiệu suất vẫn không tối ưu so với các giao thức được thiết kế riêng cho WAN.
  • Khả năng xử lý lỗi hạn chế: NFS có thể gặp khó khăn trong việc xử lý một số loại lỗi mạng, chẳng hạn như mất kết nối đột ngột. Điều này có thể dẫn đến mất dữ liệu hoặc treo hệ thống.
  • Thiếu cơ chế mã hóa dữ liệu: Các phiên bản NFS cũ không hỗ trợ mã hóa dữ liệu trong quá trình truyền tải, làm tăng nguy cơ bị nghe lén. Các phiên bản mới hơn có hỗ trợ Kerberos để tăng cường bảo mật nhưng vẫn cần cấu hình cẩn thận.

> Tham khảo thêm: FileZilla là gì? (Phần mềm quản lý tập tin)

5. Thành phần cần thiết để NFS server hoạt động

Để NFS server hoạt động, cần đảm bảo ba thành phần chính sau:

  • NFS: Đây là giao thức cốt lõi, cho phép máy chủ xuất (export) các thư mục và chia sẻ file qua mạng. Máy khách có thể gắn (mount) các thư mục này như thể chúng là một phần của hệ thống file cục bộ, nhờ cơ chế giao tiếp thông qua RPC (Remote Procedure Call).
  • NFSLock: Đây là cơ chế quản lý khóa file (file locking), thường được triển khai qua dịch vụ rpc.lockd và nfsstatd. NFSLock đảm bảo tính nhất quán của dữ liệu khi nhiều máy khách truy cập và chỉnh sửa file cùng lúc, ngăn ngừa xung đột và ghi đè dữ liệu.
  • Portmap: Dịch vụ này chịu trách nhiệm ánh xạ các chương trình RPC với số cổng mạng mà chúng đang lắng nghe. Nhờ Portmaps, máy khách có thể xác định chính xác cổng để kết nối đến các dịch vụ NFS và NFSLock trên máy chủ.
NFS server bao gồm NFS; NFSLock; Portmap
Thành phần cần có của NFS server

> Đọc thêm: Samba server – Phần mềm chia sẻ File dựa trên giao thức smb / CIFS

6. Hướng dẫn cài đặt và cấu hình NFS bằng block storage

Người dùng có thể lựa chọn việc cài đặt và cấu hình NFS bằng block storage để có thể thực hiện một cách đơn giản và dễ dàng nếu bạn chưa có nhiều kinh nghiệm về NFS:

6.1 Tải xuống và cài đặt các thành phần

Trong bước hoạt động đầu tiên, người dùng cần tải xuống và cài đặt một số thành phần trước khi tiến hành sâu hơn:

6.1.1. Host (Máy chủ NFS)

Khi tiến hành thực hiện trên Host, bạn cần thực hiện các lệnh sau:

  • Cập nhật danh sách gói: sudo apt update
  • Cài đặt gói nfs-kernel-server: sudo apt install nfs-kernel-server

6.1.2. Client (Máy khách)

Khi lựa chọn tiến hành trên Client, bạn cần phải đáp ứng các yêu cầu sau:

  • Cập nhật danh sách gói: sudo apt update
  • Cài đặt gói nfs-common: sudo apt install nfs-common

6.2 Tạo thư mục chia sẻ trên host

Chọn một thư mục bạn muốn chia sẻ qua NFS. Ví dụ, chúng ta tạo thư mục /mnt/nfs_share bằng lệnh sau:sudo mkdir -p /mnt/nfs_share

Bạn có thể điều chỉnh quyền sở hữu và quyền truy cập của thư mục này nếu cần:

  • sudo chown nobody:nogroup /mnt/nfs_share
  • sudo chmod 777 /mnt/nfs_share #

Lưu ý: Quyền 777 có thể gây rủi ro bảo mật, chỉ sử dụng khi cần thiết.

6.3 Cấu hình NFS trên host server

Cấu hình các thư mục được chia sẻ trong tệp: /etc/exports: udo nano /etc/exports. Thêm dòng sau vào tệp, điều chỉnh cho phù hợp với nhu cầu của bạn: /mnt/nfs_share client_ip(rw,sync,no_subtree_check)

  • /mnt/nfs_share: Đường dẫn thư mục được chia sẻ.
  • client_ip: Địa chỉ IP của máy khách.
  • rw: Quyền đọc và ghi.
  • sync: Đảm bảo dữ liệu được ghi vào ổ đĩa trước khi trả lời máy khách.
  • no_subtree_check: Tắt kiểm tra subtree, giúp cải thiện hiệu suất.

Ví dụ: nếu bạn muốn cho phép máy khách có IP 192.168.1.100 đọc và ghi vào thư mục, bạn sẽ sử dụng: /mnt/nfs_share 192.168.1.100(rw,sync,no_subtree_check.

Sau khi chỉnh sửa, khởi động lại dịch vụ NFS: sudo systemctl restart nfs-kernel-server

6.4 Cài đặt Firewall trên Host

Cho phép lưu lượng NFS server thông qua tường lửa. Nếu bạn đang sử dụng ufw:

  • sudo ufw allow from client_ip to any port nfs
  • sudo ufw reload

Thay client_ip bằng địa chỉ IP của máy khách hoặc dải mạng.

6.5 Tạo Mount Points trên Client

  • Tạo một điểm gắn kết trên máy khách: sudo mkdir /mnt/nfs_client
  • Gắn thư mục NFS từ máy chủ: sudo mount server_ip:/mnt/nfs_share /mnt/nfs_client
  • Thay server_ip bằng địa chỉ IP của máy chủ NFS.

6.6 Kiểm tra quyền truy cập NFS

  • Tạo một tệp trên máy khách trong thư mục đã gắn kết: sudo touch /mnt/nfs_client/test_file
  • Kiểm tra xem tệp đã được tạo trên máy chủ trong thư mục được chia sẻ chưa.

6.7 Kết nối Remote NFS khi khởi động

  • Để tự động gắn NFS khi khởi động, thêm dòng sau vào tệp /etc/fstab trên máy khách: sudo nano /etc/fstab
  • Thêm dòng: server_ip:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0

7. Tổng kết

Mong rằng những thông tin trên sẽ hỗ trợ và giúp ích cho bạn trong việc tìm hiểu NFS Server là gì. Tổng quan, Network File System không chỉ là một giao thức chia sẻ tệp tin đơn thuần; nó là nền tảng cho nhiều ứng dụng và hệ thống phức tạp, từ hạ tầng ảo hóa đến các cụm máy tính hiệu năng cao. Để tận dụng tối đa sức mạnh của NFS và xây dựng một hệ thống ổn định, hiệu quả, việc sở hữu một máy chủ vật lý mạnh mẽ là điều không thể thiếu.

Nếu bạn đang tìm kiếm giải pháp tối ưu cho nhu cầu lưu trữ và xử lý dữ liệu của mình, hãy cân nhắc dịch vụ thuê máy chủ của chúng tôi. Với hạ tầng hiện đại, hiệu suất vượt trội và hỗ trợ kỹ thuật 24/7, bạn sẽ có tất cả những gì cần thiết để triển khai NFS Server hoặc bất kỳ ứng dụng nào khác một cách mượt mà. Đăng ký ngay hôm nay để nhận ưu đãi đặc biệt và bắt đầu xây dựng hệ thống của riêng bạn!

Để tìm hiểu thêm các thông tin khác, bạn có thể xem trang blog hoặc trang chủ của Vinahost. Thông tin liên hệ:

Đánh giá
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận
    Tổng lượt truy cập: lượt xem