So sánh NFS và iSCSI trong việc truy cập dữ liệu máy ảo
NFS hay iSCSI – nên chọn giao thức nào để lưu trữ tệp máy ảo VMware? Câu hỏi này thường được đặt ra khi bạn cần cấu hình bộ lưu trữ chia sẻ để lưu trữ các máy ảo (VM) cần được di chuyển giữa các máy chủ ESXi, để sử dụng tính năng “ các đặc trưng phân cụm”, và khi không còn khe cắm trống để gắn đĩa cứng vật lý vào máy chủ.
Các tổ chức triển khai VMware vSphere trong trung tâm dữ liệu quy mô lớn thường ưa chuộng sử dụng Fibre Channel (FC) hoặc Fibre Channel over Ethernet (FCoE), tuy nhiên các giải pháp này có chi phí cao. Tuy nhiên, NFS và iSCSI lại hấp dẫn đối với các trung tâm dữ liệu quy mô nhỏ và vừa sử dụng cho hạ tầng VMware vSphere vì phần cứng cần thiết để cấu hình chia sẻ tệp với các giao thức này có chi phí hợp lý hơn. Bài viết này so sánh NFS và iSCSI với trọng tâm là việc sử dụng chúng trong hạ tầng ảo VMware vSphere.
NFS là gì?
Hệ thống tệp mạng (NFS) là một giao thức mạng cho phép bạn chia sẻ các tệp được lưu trữ trên đĩa hoặc mảng đĩa của một máy chủ với các máy tính khác trong mạng. NFS được phát triển bởi SUN Microsystems và phiên bản đầu tiên được giới thiệu vào năm 1984. Tính đến thời điểm viết bài này, phiên bản mới nhất của NFS là phiên bản 4.1. Phiên bản 4.2 đang được phát triển và chưa được đưa vào sử dụng trong môi trường sản xuất.
Các tính năng mới và cải tiến được bổ sung trong mỗi phiên bản mới của NFS, bao gồm các tính năng hữu ích cho lưu trữ ảo hóa. NFS v4.1 cung cấp cơ chế cho phép nhiều người dùng chia sẻ cùng một tệp và đảm bảo tính nhất quán của dữ liệu (truy cập song song). Hỗ trợ nhiều luồng cho các thao tác.
NFS là giao thức hoạt động ở lớp ứng dụng của mô hình Kết nối Hệ thống Mở (OSI). Các máy khách truy cập tệp bằng cách gửi các yêu cầu Gọi Thủ tục Từ xa (RPC) đến máy chủ NFS để thực hiện các thao tác với tệp và thư mục trên máy chủ NFS.
Các yêu cầu RPC được truyền đến giao thức XDR (eXternal Data Representation) hoạt động ở lớp trình bày và là tiêu chuẩn cho việc trừu tượng hóa dữ liệu giữa các nền tảng. XDR mô tả dạng thống nhất và chuẩn mực của biểu diễn dữ liệu không phụ thuộc vào kiến trúc của hệ thống tính toán. Khi một client truyền dữ liệu, client RPC chuyển đổi dữ liệu cục bộ thành dạng chuẩn, và máy chủ thực hiện thao tác ngược lại.
Sau khi quá trình thống nhất dữ liệu hoàn tất, dịch vụ RPC phía client đảm bảo việc yêu cầu các thủ tục từ xa và thực thi chúng trên máy chủ (cung cấp các tính năng của lớp Phiên). Ở giai đoạn này, phần giải thích về các lớp cụ thể của NFS đã hoàn tất. Tiếp theo, dữ liệu được đóng gói vào các đơn vị dữ liệu tiêu chuẩn TCP hoặc UDP và được chuyển đến các lớp cơ sở của mô hình OSI.
| Lớp OSI | Giao thức |
| Ứng dụng | NFS |
| Trình bày | XDR |
| Phiên | RPC |
| Vận chuyển | TCP |
| Mạng | IP |
| Liên kết dữ liệu | Ethernet |
| Vật lý | – |
NFS chia sẻ dữ liệu ở cấp độ tệp . Có thể sử dụng bộ điều hợp mạng tiêu chuẩn có giao diện Ethernet và cổng RJ-45 để triển khai lưu trữ chia sẻ NFS. Các phiên bản NFS cũ nhất hoạt động qua giao thức UDP trên mạng IP, trong khi các phiên bản mới hơn (NFS v2 và v3) có thể hoạt động qua cả TCP và UDP. NFS 4.0 và 4.1 sử dụng TCP trên IPv4 làm tiêu chuẩn. NFS v4 có thể hoạt động qua tường lửa và qua internet.
VMware vSphere ESXi 6.0 và các phiên bản ESXi cao hơn hỗ trợ NFS 3.0 và NFS 4.1. ESXi có tích hợp sẵn một client NFS kết nối với máy chủ NFS qua TCP/IP. Hai client NFS khác nhau được sử dụng để kết nối qua các phiên bản NFS 3.0 và 4.1. Bạn có thể chọn phiên bản NFS nào để sử dụng khi tạo một datastore NFS mới. VMware không hỗ trợ các tính năng sau khi sử dụng NFS v.4.1:
- Lưu trữ DRS
- Kiểm soát I/O lưu trữ
- Site Recovery Manager
Sử dụng kho dữ liệu NFS rất thuận tiện khi lưu trữ các mẫu VM và hình ảnh ISO để cài đặt hệ điều hành trên máy ảo.
iSCSI là gì?
Giao diện máy tính nhỏ qua Internet (iSCSI) là một giao thức mạng đảm bảo sự tương tác của các đối tượng (bộ khởi tạo và mục tiêu) trong mạng để chia sẻ dữ liệu. Bộ khởi tạo iSCSI được cấu hình ở phía máy khách và mục tiêu iSCSI được cấu hình ở phía máy chủ.
Bộ khởi tạo iSCSI có thể dựa trên phần mềm hoặc dựa trên phần cứng. Các bộ khởi tạo dựa trên phần cứng giúp giảm tải cho bộ xử lý trung tâm (CPU hoặc bộ xử lý) trên máy khách và yêu cầu cài đặt bộ điều hợp bus chủ (HBA) phần cứng. HBA iSCSI phần cứng là bộ điều khiển giao diện mạng (NIC) có giao diện Ethernet. Trong so sánh iSCSI và NFS này, tôi xem xét việc sử dụng các trình khởi tạo iSCSI dựa trên phần mềm. iSCSI được giới thiệu vào năm 2003 và được mô tả trong RFC 3720.
iSCSI là giao thức lớp phiên (hoạt động ở lớp 5 của mô hình OSI) chạy trên nền tảng ngăn xếp TCP/IP. Dữ liệu được chia sẻ ở cấp độ khối , không giống như NFS nhưng tương tự như FC. Đây là một điểm quan trọng trong so sánh iSCSI và NFS. Các lệnh SCSI được đóng gói trong các đơn vị dữ liệu TCP/IP và được truyền tải bằng cách sử dụng các mạng Ethernet tiêu chuẩn. Do đó, một máy tính có thể gửi các lệnh SCSI đến các thiết bị lưu trữ khối nằm trên một máy tính khác bằng cách sử dụng mạng.
| Các lớp | Mô tả |
| Ứng dụng | Hệ thống tệp, cơ sở dữ liệu, v.v. |
| SCSI | Dữ liệu SCSI, lệnh SCSI, trạng thái SCSI |
| iSCSI | Dịch vụ giao thức iSCSI, Tên đủ điều kiện iSCSI (IQN), Dịch vụ tên lưu trữ Internet (iSNS), xác thực CHAP, v.v. |
| TCP | Một giao thức có cơ chế kiểm soát lỗi (thường hoạt động trong ngăn xếp TCP/IP) |
| IP | Một giao thức cho truyền thông mạng và định tuyến |
| Ethernet | Bộ chuyển mạch, cáp, cổng (đầu nối), giao thức |
Lưu ý: Có một sự thật thú vị về cách iSCSI có thể được sử dụng cho Khôi phục máy ảo VMware. Khi bạn sử dụng Instant VM Recovery trong NAKIVO Backup & Replication, ví dụ, để chạy một máy ảo (VM) trên máy chủ ESXi trực tiếp từ bản sao lưu, máy ảo sẽ được tạo trên máy chủ ESXi đã chọn và các đĩa ảo được gắn vào máy ảo bằng giao thức iSCSI dưới dạng đĩa RDM trong chế độ tương thích ảo.
VMware NFS so với iSCSI – Những điểm khác biệt chính
Cả NFS và iSCSI đều có thể hoạt động trên các mạng Ethernet 1 gigabit và 10 gigabit (1GbE và 10GbE) được triển khai bằng dây đồng. Tốc độ mạng càng cao thì càng tốt. Đọc thêm tại cấu trúc mạng. Khi sử dụng kho dữ liệu chia sẻ trong VMware vSphere để lưu trữ tệp máy ảo, cả hai phương thức triển khai (NFS và iSCSI) đều có thể được sử dụng cho việc di chuyển máy ảo trực tiếp, cân bằng tải và di chuyển máy ảo giữa các kho dữ liệu. Cả hai giao thức chia sẻ đều có độ trễ đáng kể do cơ chế đóng gói dữ liệu nhiều lớp trên mạng TCP/IP.
NFS được hỗ trợ trên hầu hết các thiết bị NAS của các nhà cung cấp, ví dụ: Synology và QNAP. Tuy nhiên, hiện nay không khó để chọn NAS hỗ trợ iSCSI.
Hãy cùng xem xét chi tiết hơn so sánh giữa VMware NFS và iSCSI này.
Cân bằng tải
Khi một đường dẫn mạng bị lỗi hoặc quá tải, tính năng đa đường dẫn (multipathing) cho phép cân bằng tải giữa máy chủ và bộ lưu trữ nếu có nhiều đường dẫn.
NFS 4.1 hỗ trợ đa đường dẫn nếu tính năng gộp phiên (session trunking) có sẵn trên máy chủ (nhưng không hỗ trợ gộp ID khách hàng). Do đó, bạn có thể truy cập một khối lượng NFS duy nhất từ nhiều địa chỉ IP. Nếu bạn sử dụng NFS v3, hãy sử dụng DNS round-robin để cân bằng tải mạng.
Trong VMware vSphere, đa đường dẫn iSCSI hoạt động ở cấp độ bộ điều hợp mạng VMkernel. Để cân bằng tải iSCSI trong vSphere, bạn có thể sử dụng liên kết cổng.
Bộ nhớ đệm
Khi sử dụng NFS, hệ thống tệp có bộ nhớ đệm được đặt trên máy chủ NFS và máy khách cần thường xuyên kiểm tra siêu dữ liệu trên máy chủ NFS. NFS phiên bản 3 và 4 hỗ trợ ghi dữ liệu không đồng bộ, nhưng việc cập nhật siêu dữ liệu lại diễn ra đồng bộ.
Khi sử dụng iSCSI, hệ thống tệp được tạo bởi thiết bị khách sau khi có quyền truy cập vào bộ nhớ chia sẻ ở cấp độ khối (ví dụ: đối với VMware vSphere, máy chủ ESXi tạo hệ thống tệp VMFS trên LUN iSCSI). Chính sách bộ nhớ đệm được định nghĩa bởi hệ thống tệp cho bộ nhớ chia sẻ iSCSI và bộ nhớ đệm hệ thống tệp được đặt ở phía khách. Ví dụ, nếu bạn sử dụng iSCSI làm giao thức chia sẻ và ext3 làm hệ thống tệp, bạn sẽ có bộ nhớ đệm ghi lại đầy đủ cho các cập nhật dữ liệu và metadata.
Các hệ thống tệp hiện đại nhất sử dụng cập nhật metadata không đồng bộ và ghi nhật ký dựa trên nhật ký được sử dụng cho việc khôi phục dữ liệu. Nhìn chung, cập nhật dữ liệu không đồng bộ (được sử dụng trong iSCSI) ít đáng tin cậy hơn về mặt tính bền vững của dữ liệu và metadata so với cập nhật đồng bộ, như được sử dụng trong NFS.
Độ tin cậy
NFS . Có thể sử dụng kết hợp NIC để bảo vệ chống lại sự cố mạng. Nếu một NIC bị lỗi, một NIC khác có thể tiếp tục hoạt động.
iSCSI . Kiến trúc lưu trữ có thể cắm thêm (PSA) của VMware sử dụng plugin Loại mảng lưu trữ để triển khai chuyển đổi dự phòng khi làm việc với các mảng iSCSI. Liên kết iSCSI yêu cầu ánh xạ nhiều mục tiêu iSCSI trên các mạng con khác nhau đến bộ khởi tạo iSCSI.
Vì cả iSCSI và NFS đều sử dụng TCP để đóng gói, việc truyền dữ liệu được kiểm tra ở cấp độ mạng.
Hệ thống tệp VMFS trên lưu trữ iSCSI có thể dễ bị hỏng nếu bạn lưu trữ cung cấp theo nhu cầu đĩa ảo cho các máy ảo. Một sự cố mất điện có thể khiến khối lượng dữ liệu không thể khôi phục. Hành vi của các kho dữ liệu NFS trong các tình huống như vậy đáng tin cậy hơn một chút. Bạn có thể giảm thiểu các vấn đề này nếu thực hiện sao lưu định kỳ Sao lưu VMware.
Bảo mật
Lưu lượng iSCSI thường không được mã hóa, nhưng điều này không có nghĩa là bạn không thể bảo vệ lưu lượng iSCSI. Việc sử dụng tên người dùng và mật khẩu được hỗ trợ cho xác thực trên các chia sẻ iSCSI. Giao thức Xác thực Bắt tay Thử thách (CHAP) cho phép máy chủ và máy khách đảm bảo rằng họ tin tưởng lẫn nhau.
NFS sử dụng xác thực dựa trên máy chủ. Cấu hình mặc định của NFS không cung cấp mã hóa (sys=system), nhưng khi sử dụng NFSv4 với Kerberos được bật (sec=krb5p), kết nối sẽ được bảo mật. Trong cấu hình máy chủ NFS, bạn phải xác định địa chỉ IP của máy chủ được phép truy cập chia sẻ NFS. Bạn cũng có thể chỉ định nhiều máy chủ hoặc toàn bộ mạng con. Ví dụ, giao thức chia sẻ tệp SMB được biết đến rộng rãi dựa trên xác thực dựa trên người dùng.
Việc cấu hình một VLAN chuyên dụng hoặc sử dụng một mạng vật lý riêng biệt (riêng tư) là phương pháp được khuyến nghị khi sử dụng lưu trữ iSCSI và NFS chia sẻ trong VMware vSphere. Cách tiếp cận này cho phép bạn tách biệt lưu lượng truy cập lưu trữ khỏi các loại lưu lượng khác. NFS v3 không có các tính năng bảo mật tương tự như trong NFS v4.1. Máy chủ ESXi gắn kết một chia sẻ NFS với quyền truy cập root (khi không sử dụng Kerberos). Vì vậy, hãy lưu ý điều này khi thực hiện cấu hình bảo mật. Đọc thêm về VLAN và VXLAN.
NFS v.4.1 hỗ trợ xác thực Kerberos với các cơ chế mã hóa ngoài Tiêu chuẩn Mã hóa Dữ liệu (DES). Các thuật toán mã hóa trong Kerberos ngăn chặn người dùng không được ủy quyền truy cập vào lưu lượng NFS. ESXi hỗ trợ các triển khai krb5 và krb5i của Kerberos. ESXi 7.0 hỗ trợ mã hóa Kerberos cho NFS 4.1 và cơ chế bảo mật AUTH_SYS (nhưng không đồng thời).
VMware NFS so với iSCSI – Mapped Thiết bị Thô (RDM)
Khi sử dụng iSCSI làm lưu trữ chia sẻ, bạn có thể cấu hình Mapped Thiết bị Thô (RDM) cho một máy ảo (VM). Raw Device Mapping (RDM) là tính năng cho phép bạn gắn toàn bộ đĩa vật lý hoặc LUN iSCSI vào một máy ảo dưới dạng thiết bị trực tiếp (thay vì gắn đĩa ảo trong cấu hình máy ảo). Phương pháp dựa trên RDM khác với phương pháp truyền thống khi bạn tạo kho dữ liệu trên một LUN (Số đơn vị logic), tạo hệ thống tệp VMFS và lưu trữ các đĩa ảo được máy ảo sử dụng trên kho dữ liệu đó. RDM có thể thực hiện được khi sử dụng iSCSI vì chia sẻ iSCSI hoạt động ở cấp độ khối, và máy ảo có thể định dạng đĩa RDM khối đã gắn với hệ thống tệp tùy chỉnh được sử dụng bởi hệ điều hành khách cài đặt trên máy ảo.
Đối với NFS, việc sử dụng chia sẻ NFS để gắn làm đĩa RDM không được hỗ trợ vì chia sẻ NFS hoạt động ở cấp độ tệp, trong khi RDM yêu cầu các thiết bị khối phải được gắn vào máy ảo. Với các chia sẻ NFS, bạn chỉ có thể tạo các kho dữ liệu NFS và lưu trữ các tệp đĩa ảo VMDK trên các kho dữ liệu đó. Bạn có thể gắn kết một chia sẻ NFS và chia sẻ iSCSI ở cấp độ hệ điều hành khách nếu hệ điều hành khách có trình khách NFS hoặc trình khởi tạo iSCSI. Do đó, trong danh mục ánh xạ thiết bị thô trong so sánh VMware iSCSI vs NFS, người chiến thắng là iSCSI.
Hiệu suất iSCSI vs NFS
Trong triển khai iSCSI phần mềm, hiệu suất cao hơn một chút, nhưng tải CPU trên máy chủ khách cũng cao hơn. iSCSI cũng gây tải cao hơn lên mạng. iSCSI tạo ra nhiều lưu lượng mạng và tải mạng hơn, trong khi việc sử dụng NFS diễn ra mượt mà và dễ dự đoán hơn. Khi thực hiện một số lượng lớn các thao tác ghi, bạn có thể nhận thấy hiệu suất của chia sẻ NFS bị suy giảm.
Khi sử dụng NFS trong vSphere, tốt nhất nên sử dụng NFS hỗ trợ vStorage API for Array Integration (VAAI) ở phía lưu trữ. VAAI cho phép bạn tạo các đĩa ảo được phân bổ dày trên các kho dữ liệu NFS. Theo mặc định, các đĩa được phân bổ mỏng (thin provisioned) được tạo trên các kho dữ liệu NFS. Cả NFS và iSCSI đều hỗ trợ khung Jumbo để cải thiện hiệu suất mạng.
Kết thúc so sánh tốc độ iSCSI vs NFS này, cần lưu ý rằng hiệu suất cũng phụ thuộc vào nhà cung cấp mảng lưu trữ.
Truy cập đồng thời
iSCSI không hỗ trợ truy cập dữ liệu đồng thời hoặc song song vào thiết bị khối. Dữ liệu cần được chia sẻ qua hai bước trung gian. Tuy nhiên, truy cập song song được phép ở cấp độ hệ thống tệp hỗ trợ truy cập song song vào tệp, ví dụ như VMFS hoặc GFS. Khi sử dụng các chia sẻ iSCSI trong VMware vSphere, truy cập đồng thời vào các chia sẻ được đảm bảo ở cấp độ VMFS.
NFS hỗ trợ truy cập đồng thời vào các tệp chia sẻ bằng cách sử dụng cơ chế khóa và cơ chế nhất quán “close-to-open” để tránh xung đột và duy trì tính nhất quán của dữ liệu. NFS v3 và NFS v4.1 sử dụng các cơ chế khác nhau. NFS v3 có thể sử dụng giao thức Network Lock Manager (NLM), trong khi NFS v4.1 sử dụng cơ chế khóa được định nghĩa sẵn trong giao thức. Nếu sử dụng NFS v3 trên VMware ESXi để truy cập các chia sẻ tệp, ESXi không sử dụng giao thức NLM vì VMware cung cấp giao thức khóa riêng của mình trong trường hợp này. Các tệp khóa có tên dạng . lck-file_id được tạo trên chia sẻ tệp khi sử dụng các chia sẻ NFS v3 trong VMware vSphere.
NFS v4.1 sử dụng cơ chế đặt chỗ để khóa tệp nhằm đảm bảo truy cập đồng thời. Nếu bạn tạo một chia sẻ tệp NFS, tất cả các máy khách phải sử dụng cùng một phiên bản giao thức NFS (ví dụ: tất cả các máy chủ ESXi kết nối với chia sẻ qua NFS v.4.1). Nếu hai máy khách không tương thích sử dụng các phiên bản NFS khác nhau để truy cập tệp trên máy chủ NFS, có thể xảy ra hành vi không nhất quán và hỏng dữ liệu.
Khó khăn trong cấu hình
Khi sử dụng NFS, việc cấu hình máy chủ và máy khách sẽ dễ dàng hơn. Sử dụng iSCSI để cấu hình bộ lưu trữ chia sẻ sẽ khó khăn hơn. Bạn cần cấu hình IQN cho bộ lưu trữ và máy chủ; thực hiện cấu hình dịch vụ iSCSI, LUN và masking; đồng thời cấu hình nhiều VLAN vì lý do bảo mật (cách ly các phân đoạn mạng được sử dụng cho giao tiếp iSCSI để cung cấp mức độ bảo mật cao hơn). Tìm hiểu về Khối lượng ảo VMware có thể được sử dụng để lưu trữ dữ liệu máy ảo.
So sánh NFS và iSCSI trong VMware vSphere – Bảng tóm tắt
Hãy điểm qua các tính năng chính của từng giao thức chia sẻ dữ liệu trong bảng so sánh iSCSI và NFS trên VMware này.
| iSCSI | NFS | |
| Chia sẻ dữ liệu | Cấp độ khối | Cấp độ tệp |
| Raw Device Mapping cho VM | Có | Không |
| Độ khó cấu hình | Trung bình | Dễ dàng |
| Khởi động từ SAN | Có | Không |
| Kiểm tra lỗi | Có | Có |
| Tính năng bảo mật | CHAP | Kerberos |
| Storage vMotion | Có | Có |
| Storage DRS | Có | Có |
Kết luận
Cả hai giao thức chia sẻ đều đủ trưởng thành để sử dụng trong VMware vSphere. Sự khác biệt chính giữa iSCSI và NFS là iSCSI chia sẻ dữ liệu ở cấp độ khối, trong khi NFS chia sẻ dữ liệu ở cấp độ tệp. Hiệu suất gần như tương đương, nhưng trong một số tình huống, iSCSI có thể mang lại kết quả tốt hơn. Ổ đĩa RDM cho máy ảo có thể được sử dụng với iSCSI nhưng không thể sử dụng với NFS.
Cả hai giao thức chia sẻ mạng đều đáng tin cậy. Tuy nhiên, bạn vẫn cần sử dụng giải pháp bảo vệ dữ liệu của bên thứ ba để tránh mất dữ liệu và thời gian ngừng hoạt động. Tránh sự cố mất điện và các sự cố phần cứng khác để tránh mất dữ liệu trên bộ lưu trữ chia sẻ của bạn. Sử dụng bộ nguồn liên tục (UPS) và tạo bản sao lưu thường xuyên.