NFS là một trong những phương pháp phổ biến cho phép người dùng xem và chia sẻ dữ liệu trên các hệ thống vật lý. Trong bài viết dưới đây, hãy cùng Vietnix tìm hiểu NFS là gì cũng như cấu hình của nó như thế nào nhé!
NFS là gì?
NFS (Network File System) là hệ thống giao thức chia sẻ tệp được phát triển bởi Sun Microsystems vào năm 1984.
NFS cung cấp khả năng truy cập tới hệ thống file trên một máy khách được chia sẻ thông qua một mạng máy tính tương tự như việc truy cập trực tiếp trên ổ cứng. Tính tới thời điểm hiện tại, có 3 phiên bản NFS là NFSv2, NFSv3, NFSv4.
NFSv2
Phiên bản 2 của giao thức NFS ban đầu chỉ hoạt động dựa trên giao thức gói dữ liệu người dùng (UDP). Những hệ thống tập tin ảo sẽ cho phép người dùng thực hiện modun và phản ánh trong một giao thức ở dạng đơn giản. Thế nhưng, sau đó việc triển khai đã được chứng minh cho các hệ điều hành như System V, DOS và VAX/VMS sử dụng Eunice. Ngoài ra, NFSv2 chỉ cung cấp khả năng đọc 2GB đầu tiên của file vì bị giới hạn 32 bit.
NFSv3
Phiên bản 3 của giao thức NFS đã thêm một số tính năng khác như sau:
- NFSv3 hỗ trợ kích thước và độ lệch file 64bit nên có thể dễ dàng xử lý các tệp lớn hơn 2GB.
- NFSv3 hỗ trợ ghi không đồng bộ trên máy chủ, từ đó có thể cải thiện hiệu suất ghi.
- Thuộc tính tệp của NFSv3 bổ sung trong nhiều phản hồi nên sẽ tránh được tình trạng người dùng phải tìm nạp lại chúng.
- NFSv3 thêm thao tác Readdir Plus giúp xử lý tệp cũng như các thuộc tính và tên tệp khi quét thư mục.
- Một số loại cải tiến khác.
NFSv4
Phiên bản 4 của giao thức NFS 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.
Network File System hoạt động như thế nào?
NFS là một giao thức client – server . Sever NFS là máy chủ (host) đáp ứng các yêu cầu sau:
- Đã cài đặt phần mềm server NFS.
- Có ít nhất một kết nối mạng để chia sẻ tài nguyên NFS.
- Được cấu hình để chấp nhận và phản hồi các yêu cầu NFS qua kết nối mạng.
các yêu cầu cần đáp ứng nếu client NFS là máy chủ:
- Đã cài đặt phần mềm client NFS.
- Có kết nối mạng với sever NFS.
- Được phép truy cập tài nguyên trên Sever NFS.
- Được cấu hình để gửi và nhận các yêu cầu NFS qua kết nối mạng.
NFS ban đầu được hình thành như một phương pháp để chia sẻ hệ thống tệp giữa các nhóm làm việc bằng Unix. Nó vẫn thường được sử dụng để chia sẻ tài nguyên đột xuất.
>> Xem thêm: Máy chủ là gì? Server là gì? Vai trò các loại server hiện nay
Quá trình thiết lập dịch vụ NFS bao gồm ba bước, áp dụng cho cả server và client NFS:
- Xác minh rằng rpc.mountd hoặc chỉ mountd đã được cài đặt và hoạt động. Đây là daemon NFS – chương trình lắng nghe mạng cho các yêu cầu NFS.
- Tạo hoặc chọn một thư mục chia sẻ trên máy chủ. Đây là mount point NFS . Sử dụng mount point, địa chỉ hoặc server host name của máy chủ xác định duy nhất tài nguyên NFS.
- Định cấu hình quyền trên máy chủ NFS để cho phép người dùng được ủy quyền đọc, ghi và thực thi các file trong file system.
Việc thiết lập máy khách NFS để truy cập máy chủ NFS có thể được thực hiện theo cách thủ công, sử dụng lệnh mount hoặc sử dụng configuration file — /etc/exports . Mỗi dòng trong file configuration metadata NFS chứa mount point, địa chỉ IP hoặc tên miền máy chủ lưu trữ và bất kỳ configuration metadata nào cần thiết để truy cập hệ thống tệp.
Ưu và nhược điểm của NFS là gì?
Ưu điểm
- NFS là một giải pháp chia sẻ tệp mạng với chi phí tương đối thấp.
- NFS khá dễ cài đặt bởi nó sử dụng cơ sở hạ tầng IP hiện có.
- NFS cho phép quản lý trung tâm đồng thời giảm nhu cầu bổ sung phần mềm cũ cũng như dụng lượng đĩa trên các hệ thống người dùng.
Nhược điểm
- NFS không đảm bảo tối đa độ an toàn. Người dùng chỉ nên sử dụng trên một mạng đáng tin cậy sau tường lửa (Firewall).
- NFS sẽ bị chậm nếu như lưu lượng mạng lớn.
- Client và server sẽ tin tưởng lẫn nhau vô điều kiện.
- Tên máy chủ trên NFS có thể là giả mạo.
Cấu hình NFS trên NAS Synology
Trước khi truy cập vào thư mục dùng chung với máy khách NFS, bạn cần phải thực hiện một số thao tác thay đổi cài đặt hệ thống của NAS Synology. Điều này sẽ cho phép bạn chia sẻ qua NFS.
- Bước 1: Đăng nhập vào DSM bằng tài khoản thuộc nhóm Administrators.
- Bước 2: Truy cập Control Panel > File Services.
>>Xem thêm: cPanel là gì? Tổng quan chi tiết về cPanel
- Bước 3: Trên tab Win/Mac/NFS, hãy đánh dấu vào ô bật NFS.
- Bước 4: Nhấp vào Apply để lưu cài đặt.
Gán quyền NFS cho các thư mục dùng chung
Trước khi truy cập vào bất cứ thư mục dùng chung nào với máy khách NFS, bạn cần phải cấu hình quyền NFS của thư mục đó.
- Bước 1: Bạn chuyển đến Assign NFS Permissions to Shared Folders.
- Bước 2: Lựa chọn thư mục chia sẻ mà bạn muốn truy cập với ứng dụng khách NFS của bạn sau đó nhấp vào Edit.
- Bước 3: Chuyển đến tab NFS Permissions và nhấp vào Create.
- Bước 4: Chỉnh sửa lại các trường hiển thị trên giao diện.
- Bước 5: Nhấn OK để hoàn thành.
- Bước 6: Nhấn OK để áp dụng các quyền NFS.
Gắn thư mục dùng chung qua NFS
Sau khi hoàn thành việc gán quyền NFS cho các thư mục dùng chung, bạn có thể gắn thư mục dùng chung của mình với máy khách NFS. Dưới đây là cách truy cập thư mục dùng chung bằng Linux, cụ thể như sau:
- Bước 1: Mở trình duyệt web và đăng nhập vào DSM bằng tài khoản thuộc nhóm Administrators (quản trị viên).
- Bước 2: Bạn chuyển đến phần Bảng điều khiển > Thư mục dùng chung. Sau đó, hãy chọn một thư mục được chia sẻ và nhấp chọn vào Chỉnh sửa.
- Bước 3: Bạn chuyển đến tab Quyền NFS. Tại đây, bạn sẽ có thể tìm thấy được đường dẫn gắn kết của thư mục dùng chung theo định dạng như sau: / [tên phân vùng] / [tên thư mục dùng chung].
- Bước 4: Tiến hành mở bảng điều khiển lệnh trên máy tính Linux.
- Bước 5: Bạn có thể nhận được yêu cầu cài đặt các thành phần cần thiết trước khi thực hiện lắp đặt. Hãy nhập lệnh:
Cập nhật
apt cài đặt apt nfs-common
- Bước 6: Tiến hành nhập lệnh mount:
mount -t nfs [Địa chỉ IP NAS Synology] : [đường dẫn gắn kết của thư mục dùng chung] / [điểm gắn kết trên máy khách NFS]
- Bước 7: Tiến hành nhập lệnh đĩa miễn phí (df) để xác nhận rằng bạn đã gắn thành công thư mục dùng chung.
Cài đặt và cấu hình NFS trên server Linux
Dưới đây là 2 server, trong đó, coi server 1 là server gốc chứa các tập tin chính của hệ thống:
- Server 1: 192.168.1.10
- Server 2: 192.168.1.11
Cấu hình tại Server 1, cài đặt NFS server như sau:
[root@192.168.1.10 ~]# $ apt install apt-get update
[root@192.168.1.10 ~]# $ apt install nfs-kernel-server
Kiểm tra trạng thái của NFS server:
[root@192.168.1.10 ~]# $ service nfs-kernel-server status
Để có thể share được thư mục với NFS, bạn cần phải chỉnh sửa nội dung nằm bên trong /etc/exports. Cụ thể, nó bao gồm folder share, IP và một số đặc quyền khác. Trước tiên, bạn hãy tạo ra 1 thư mục mà bạn muốn chia sẻ. Trong bài viết này, Vietnix sẽ tạo một thư mục có tên nfs_share.
[root@192.168.1.10 ~]# $ mkdir /nfs_share
Thay đổi nội dung trong /etc/exports:
[root@192.168.1.10 ~]# $ nano /etc/exports
/nfsshare 192.168.1.11(rw,sync,no_root_squash
Tiếp theo, khi mở tường lửa cho các máy khách (server 2), bạn hãy sử dụng câu lệnh sau:
[root@192.168.1.10 ~]# $ ufw allow from 192.168.1.11/24 to any port nfs
Sau đó, hãy kiểm tra thật kỹ xem IP đã được tường lửa cho phép hay chưa:
[root@192.168.1.10 ~]# $ ufw status
Cấu hình tại server 2 :
[root@192.168.1.11 ~]# $ apt install apt-get update
Cài đặt nfs-common như sau:
[root@192.168.1.11 ~]# $ apt-get install nfs-common
Tại server 2, bạn hãy tạo ra 1 share folder để server 1 NFS mount tới:
[root@192.168.1.11 ~]# $ mkdir -p /mnt/nfs_share
Tại server 2, bạn cần sử dụng lệnh mount để kết nối thư mục nằm ở đây với thư mục share ở server 1:
[root@192.168.1.11 ~]# $ mount -t nfs 192.168.1.10:/nfs_share /mnt/nfs_share
Lệnh trên đây sẽ mount vào thư mục share là /mnt/nfs_share. Bạn hoàn toàn có thể kiểm tra nó với câu lệnh như sau:
[root@192.168.1.11 ~]# $ mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.1.10:/nfs_share on /mnt type nfs (rw,addr=192.168.1.10)
Cách kiểm tra
Bạn hãy thử tạo một tập tin tại server 1 bằng cách:
[root@192.168.1.10 ~]# $ cat > /nfs_share/test.txt
This is a test NFS.
Tại server 2, bạn tiến hành kiểm tra thử như sau:
[root@192.168.1.11 ~]# $ ll /mnt/nfs_share
total 4
-rw-r--r-- 1 root root 61 Jun 21 10:30 test.txt
[root@192.168.1.11 ~]# $ cat /mnt/nfs_share/test.txt
This is a test NFS.
Như vậy là 2 server trên đã share được tập tin cho nhau.
Hướng dẫn xóa NFS mount
Để xóa NFS mount, bạn có thể unmount bằng lệnh :
[root@192.168.1.11 ~]# $ umount /mnt/nfs_share
Các layers NFS là gì?
- RPC layer: Chuyển dữ liệu giữa các máy chủ [RFC 3010] với nhau.
- XDR layer: Cung cấp khả năng độc lập của dữ liệu cho máy [RFC 1832].
- Lớp trên cùng sẽ bao gồm giao thức mount và giao thức NFS.
Tìm hiểu về NFS Architecture
Phía client:
- Client có xu hướng truy cập file system bằng các cuộc gọi từ hệ thống (system call).
- Giao diện trên hệ thống Unix được thay thế bởi giao diện dành cho hệ thống tệp ảo (VFS).
- Hoạt động trên giao diện VFS sẽ được chuyển trực tiếp đến hệ thống tệp cục bộ (Local file) hoặc một thành phần riêng biệt có tên gọi là NFS Client.
- NFS client đảm nhiệm công việc xử lý quyền truy cập vào các tệp lưu trữ tại máy chủ từ xa.
- Tất cả các giao tiếp giữa máy chủ và máy khách được thực hiện thông qua RPC, hay còn được gọi là cuộc gọi thủ tục.
Phía Server:
- NFS server có thể xử lý các yêu cầu từ phía client.
- Từ RPC stub unmarshals request, Server sẽ tiến hành chuyển chúng thành các hoạt động tệp VFS.
- VFS chịu trách nhiệm trong việc triển khai một hệ thống tệp cục bộ.
Lời kết
Như vậy, bài viết trên đây của Vietnix đã đưa ra những thông tin liên quan đến khái niệm NFS là gì cũng như cấu hình của nó. Hy vọng những chia sẻ trên là hữu ích đối với bạn. Đừng quên chia sẻ bài viết cho bạn bè ngay nhé!