+4

NFS vs SMB: So kèo hai giao thức chia sẻ tập tin phổ biến

Overview

Trong thời đại dữ liệu là tài sản vô giá như hiện nay, việc chia sẻ dữ liệu giữa các thiết bị đóng vai trò quan trọng cho khâu vận hành các hệ thống của bất kì tổ chức nào.

Hiểu được cách thức chia sẻ tập tin giữa các thiết bị trong môi trường mạng sẽ phần nào giúp bạn tự tin hơn trong việc xây dựng kiến trúc hay vận hành hệ thống, đặc biệt là các hệ thống phân tán, đòi hỏi tính sẵn có cao.

Vì vậy, trong bài viết này, chúng ta sẽ cùng tìm hiểu về hai giao thức chia sẻ tệp tin rất phổ biến: NFS (Network File System) và SMB (Server Message Block).

So, let's go!

Giao thức NFS

NFS được tạo ra bởi công ty Sun Microsystem vào năm 1984 như là một giao thức chia sẻ file chuẩn cho các hệ thống Unix-based (có hệ điều hành thuộc họ Unix). Đây là giao thức chia sẻ file system cho phép người dùng (client) truy cập files trên server thông qua mạng máy tính hệt như truy cập file local.

Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed

image.png

Giao thức này cung cấp các tính năng nổi bật như: caches để tăng tốc độ truy cập file, lock files nhằm ngăn ngừa việc nhiều client chỉnh sửa file cùng lúc cũng như tính năng cập nhật đồng bộ file.

Qua thời gian, NFS đã có nhiều bản cập nhật, phiên bản mới nhất cho tới thời điểm này là NFSv4 (Version 4). Cho đến hiện tại, NFS vẫn rất phổ biến đối với người dùng Linux.

NFS là giao thức dạng client-server. Luồng hoạt động của nó có thể được mô tả đơn giản như sau:

  • Đầu tiên, client sẽ gửi yêu cầu truy cập file hoặc thư mục trên server sử dụng RPC (remote procedure calls)
  • Server sẽ tiến hành kiểm tra: (1) Liệu file hoặc thư mục có tồn tại (2) Client có quyền truy cập file/thư mục không
  • Nếu cả hai điều kiện thỏa mãn, server sẽ mount file/thư mục trên máy client và chia sẻ quyền truy cập. Client có thể truy cập tài nguyên này như truy cập trên máy local.

Giao thức SMB

SMB là giao thức liên lạc chủ yếu dùng cho các máy chủ Windows nhằm chia sẻ files, máy in, cổng giao tiếp, ... giữa các máy trên cùng network.

Server Message Block (SMB) is a communication protocol[1] mainly used by Microsoft Windows equipped computers normally used to share files, printers, serial ports, and miscellaneous communications between nodes on a network

image.png

Giao thức SMB ra đời vào năm 1983, ban đầu được thiết kế cho hệ điều hành DOS - tiền thân của Windows. Cho đến hiện tại, đây vẫn là giao thức chia sẻ file mặc định phổ biến trên Windows.

Quá trình giao tiếp giữa client-server của SMB khá giống với NFS, điểm khác biệt nằm ở cơ chế chia sẻ file sau đó. Cụ thể, file system không được mount trên client như NFS mà thay vào đó, SMB server sẽ chia sẻ kết nối mạng để client truy cập file thông qua đường dẫn, ví dụ:

\\[SMB server IP]\shared folder\sub folder
# sample
\\192.168.3.21\shared folder\sub folder

So sánh hai giao thức

Dựa vào nội dung trên, ta có thể thấy NFS và SMB khá giống nhau, chúng đều là giao thức chia sẻ file, trong đó client được phép truy cập hệ thống file trên server như truy cập trên chính máy local. Ngoài ra cả hai giao thức đều có thể sử dụng trên nhiều hệ điều hành khác nhau. Bạn có thể dùng NFS trên Windows, và ngược lại SMB trên Linux (với sự trợ giúp của phần mềm thứ 3 như Samba) .

Vậy điểm khác nhau là gì?

  • Khác biệt về thiết kế: NFS là giao thức chia sẻ file được thiết kế mặc định cho các hệ thống họ Unix. Trái lại, SMB được được thiết kế để tương thích cho các máy chủ Windows.
  • Tài nguyên có thể chia sẻ: NFS chỉ có thể chia sẻ file và thư mục. Trong khi đó, SMB có thể chia sẻ file, thư mục, máy in, cổng giao tiếp và các thiết bị lưu trữ khác
  • Giao tiếp client-client: NFS không hỗ trợ giao tiếp client-client, trong khi SMB cho phép client giao tiếp và chia sẻ tài nguyên với nhau mà không cần thông qua server.
NFS SMB
Viết tắt Network File System Server Message Block
Phù hợp nhất cho Các hệ thống Linux, Unix-based Các hệ thống Windows
Tài nguyên chia sẻ File và thư mục File, thư mục, máy in, cổng giao tiếp và các thiết bị lưu trữ khác
Cách thức giao tiếp Client-server Client-server, client-client

NFS, SMB trên các dịch vụ Cloud storage

Chính vì sự phổ biến và độ hiệu quả cao, các hãng cloud provider đã và đang sử dụng NFS và SMB một cách rộng rãi cho các dịch vụ storage của họ.

Ví dụ có thể để đến: AWS EFS (NFS), AWS FSx (SMB) , Azure Files (NFS và SMB) và GCP Filestore (NFS).

Đa phần các dịch vụ này đều cho phép tích hợp với các hệ thống NFS, SMB sẵn có của khách hàng để tạo nên một hệ thống chia sẻ tệp tin hybrid.

Lời kết

Qua bài viết này, chúng ta đã tìm hiểu sự khác biệt cơ bản giữa hai giao thức chia sẻ tập tin phổ biến nhất hiện nay: NFS và SMB. Hy vọng kiến thức này bổ ích cho bạn!

Nếu bạn thấy bài viết hay, đừng ngại tặng một upvote để tác giả có thêm động lực chia sẻ kiến thức nhé!

Tài liệu tham khảo

https://aws.amazon.com/compare/the-difference-between-nfs-smb/#:~:text=SMB được xây dựng để,sẻ tệp và thư mục.

https://www.techtarget.com/searchenterprisedesktop/definition/Network-File-System


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí