Tại sao không nên dùng mãi lưu trữ cục bộ (Local Storage)?
Cài đặt Proxmox lên một server duy nhất và lưu VM vào ổ cứng nội bộ là cách nhanh nhất để bắt đầu. Tuy nhiên, rủi ro sẽ ập đến ngay khi phần cứng gặp sự cố. Nếu server chết, toàn bộ dữ liệu máy ảo sẽ bị kẹt lại bên trong. Việc mở rộng dung lượng cũng rất đau đầu vì số lượng khe cắm ổ cứng trên một node luôn có hạn.
Trong hệ thống lab của mình với 12 VM, việc dùng ổ SSD local từng khiến mình mất gần 5 tiếng để restore dữ liệu sau một lần hỏng controller. Để triển khai các tính năng như Live Migration (chuyển máy ảo không tắt máy) hay High Availability (tự phục hồi khi host chết), một hệ thống lưu trữ tập trung (Centralized Storage) là điều kiện bắt buộc.
TrueNAS là giải pháp hoàn hảo để giải quyết bài toán này. Chúng ta sẽ cùng cấu hình hai giao thức phổ biến nhất để kết nối Proxmox và TrueNAS: NFS và iSCSI.
NFS và iSCSI: Đâu là lựa chọn phù hợp?
Mỗi giao thức có một thế mạnh riêng. Việc hiểu rõ bản chất của chúng sẽ giúp bạn tối ưu hóa hệ thống tốt hơn.
1. NFS (Network File System) – Đơn giản và linh hoạt
NFS hoạt động ở mức File-level. Nó giống như một thư mục dùng chung qua mạng, nơi Proxmox lưu các file .qcow2.
- Điểm cộng: Cấu hình cực nhanh, cho phép nhiều host truy cập đồng thời, dễ dàng quản lý file trực tiếp.
- Điểm trừ: Hiệu năng thường thấp hơn iSCSI khoảng 10-15% do độ trễ của hệ thống file (filesystem overhead).
2. iSCSI (Internet Small Computer System Interface) – Tốc độ và sức mạnh
iSCSI hoạt động ở mức Block-level. Giao thức này đánh lừa Proxmox rằng nó đang kết nối với một ổ cứng vật lý qua cáp LAN.
- Điểm cộng: Tốc độ truy xuất vượt trội, độ trễ cực thấp, phù hợp cho Database hoặc các ứng dụng nặng.
- Điểm trừ: Quy trình thiết lập qua nhiều bước (Target, Portal, LUN) và khó quản lý file lẻ từ phía storage.
Lời khuyên thực tế: Bạn nên dùng NFS để chứa file ISO và bản Backup. Đối với ổ đĩa hệ điều hành của VM cần tốc độ cao, hãy ưu tiên dùng iSCSI kết hợp với LVM.
Bước 1: Thiết lập trên phía TrueNAS
Trước khi bắt đầu, hãy đảm bảo bạn đã tạo sẵn một Storage Pool trên TrueNAS (Core hoặc SCALE).
Cấu hình NFS
Đầu tiên, hãy tạo một Dataset mới với tên proxmox-nfs. Sau đó, truy cập vào Shares -> Unix Shares (NFS) và nhấn Add. Tại đây, bạn chọn đường dẫn đến Dataset vừa tạo.
Lưu ý quan trọng: Trong mục Advanced Options, hãy đặt Maproot User là root và Maproot Group là wheel. Nếu thiếu bước này, Proxmox sẽ bị từ chối quyền ghi file (Permission Denied).
Cấu hình iSCSI
Quy trình iSCSI phức tạp hơn một chút, bạn cần thực hiện theo đúng trình tự:
- Tạo Zvol: Trong Datasets, chọn Add Zvol (ví dụ: 500GB). Đây sẽ là phân vùng thô cấp cho Proxmox.
- Thiết lập Portal: Tại Shares -> Block (iSCSI), thêm một Portal với IP của TrueNAS.
- Cấu hình Target: Tạo một Target mới để định danh hệ thống lưu trữ.
- Tạo Extent: Trỏ Extent vào đúng Zvol bạn đã tạo ở bước 1.
- Liên kết: Tại mục Associated Targets, hãy kết nối Target và Extent lại với nhau.
Bước 2: Kết nối từ giao diện Proxmox VE
Mở trình duyệt và đăng nhập vào node Proxmox của bạn (thường là cổng 8006).
Thêm NFS Storage
Truy cập Datacenter -> Storage -> Add -> NFS. Bạn đặt tên gợi nhớ tại ô ID, nhập IP của TrueNAS vào ô Server. Khi nhấn vào mục Export, Proxmox sẽ tự động liệt kê các đường dẫn khả dụng. Đừng quên chọn ISO Image và VZDump trong phần Content.
Thêm iSCSI và LVM
Với iSCSI, chúng ta cần thực hiện hai giai đoạn để máy ảo có thể sử dụng được.
Giai đoạn 1: Kết nối Target
Vào Add -> iSCSI, nhập IP TrueNAS vào Portal. Tại mục Target, nhấn tìm kiếm để chọn đúng IQN đã cấu hình. Hãy bỏ tích mục “Use LUNs directly” để chúng ta có thể quản lý qua LVM ở bước sau.
Giai đoạn 2: Tạo lớp LVM
Bây giờ, hãy vào Add -> LVM. Chọn Base storage là kết nối iSCSI vừa tạo. Đặt tên cho Volume Group và chọn Content là Disk Image. Lúc này, iSCSI đã sẵn sàng để bạn tạo máy ảo mới.
Kiểm tra trạng thái kết nối
Nếu storage hiện dấu X đỏ, hãy SSH vào Proxmox để kiểm tra bằng dòng lệnh. Lệnh iscsiadm -m discovery -t sendtargets -p [IP_TRUENAS] sẽ giúp bạn xác nhận server có thấy Target hay không. Ngoài ra, hãy dùng lsblk để kiểm tra xem ổ đĩa mới đã xuất hiện trong danh sách thiết bị chưa.
Cảnh báo về nghẽn cổ chai (Bottleneck)
Lưu trữ mạng phụ thuộc hoàn toàn vào băng thông. Một cổng 1Gbps chỉ đạt tốc độ tối đa khoảng 110-125MB/s. Nếu chạy 5-7 VM cùng lúc, hệ thống sẽ rất lag.
Nếu có thể, bạn hãy đầu tư card 10Gbps cũ (như Mellanox ConnectX-3) với giá chỉ vài trăm nghìn đồng. Việc tách riêng luồng dữ liệu lưu trữ (Storage Traffic) và luồng mạng máy ảo sẽ giúp hệ thống vận hành cực kỳ mượt mà.
Tổng kết
Tách rời Storage và Compute là bước ngoặt để biến hệ thống của bạn trở nên chuyên nghiệp hơn. NFS mang lại sự tiện lợi cho việc lưu trữ file, còn iSCSI đảm bảo hiệu năng cho các ứng dụng quan trọng. Hãy bắt đầu với NFS để làm quen, sau đó nâng cấp lên iSCSI khi nhu cầu xử lý tăng cao. Chúc các bạn thiết lập thành công!

