So sánh hiệu năng Proxmox với Ceph & LINSTOR
Storage trong Proxmox
Không chỉ riêng Promox mà hầu như các nền tảng ảo hóa như VMware, Openstack, HyperV thì Storage là thành phần cực kỳ quan trọng, nó quyết định hiệu năng VM hệ thống của bạn có đáp ứng nhu cầu của ứng dụng, cơ sở dữ liệu hay không? Ngày nay có hàng trăm các giải pháp Storgae từ thiết bị SAN truyền thống của NetApp, Dell, IBM, HPE,... vốn dĩ là tượng đài cho sự ổn định, hiệu năng đáp ứng hầu hết mọi dạng workload và quá trình phát triển lâu dài cũng giúp các sản phẩm storage enterprise luôn là lựa chọn hàng đầu của các doanh nghiệp vừa và lớn vì tính an toàn cao, khả năng hỗ trợ kỹ thuật...
Tuy nhiên bên cạnh đó SAN lại có gía thành cao và giới hạn khả năng mở rộng. Bên cạnh đó chúng ta cũng có những giải pháp Software Defined Storage mã nguồn mở như Ceph, Glusterfs, LINSTOR với khả năng mở rộng cực lớn và miễn phí có thể cài đặt trên bất kỳ loại Hardware nào.
Proxmox VE từ phiên bản 9.0 trở đi hầu như đã hỗ trợ hầu hết các loại Storage phổ biến trên thị trường như sau:
| Description | Plugin Type | Level | Shared | Snapshots | Stable |
|---|---|---|---|---|---|
| ZFS (local) | zfspool |
both | no | yes | yes |
| Directory | dir |
file | no | yes² | yes |
| BTRFS | btrfs |
file | no | yes | TP5 |
| NFS | nfs |
file | yes | yes² | yes |
| CIFS | cifs |
file | yes | yes² | yes |
| Proxmox Backup | pbs |
both | yes | n/a | yes |
| CephFS | cephfs |
file | yes | yes | yes |
| LVM | lvm |
block | no³ | yes⁴ | yes |
| LVM-thin | lvmthin |
block | no | yes | yes |
| iSCSI/kernel SAN | iscsi |
block | yes | no | yes |
| iSCSI/libiscsi SAN | iscsidirect |
block | yes | no | yes |
| Ceph/RBD | rbd |
block | yes | yes | yes |
| ZFS over iSCSI | zfs |
block | yes | yes | yes |
Thêm vào đó, Ceph được tích hợp sâu và mặc định vào giao diện Proxmox (tương tự như bộ ESXI và vSan) giúp người sử dụng dễ dàng deploy và quản trị ngay trên Portal của Proxmox.

Trong bài viết này tôi sẻ chia sẻ một chút so sánh hiệu năng giữa 2 loại SDS dành cho Proxmox phổ biến là Ceph và LINSTOR. Bài viết giúp bạn có cái nhìn tổng quan về 2 loại SDS này và hiệu năng chênh lệch như thế nào để giúp bạn lựa chọn Storage phù hợp khi triển khai Proxmox.
Ceph

Ceph là hệ thống lưu trữ phân tán quy mô lớn quản lý dữ liệu dưới dạng Object. Thành phần cốt lõi của hệ thống lưu trữ Ceph là RADOS (Reliable Autonomic Distributed Object Store), một lớp lưu trữ đối tượng phân tán có khả năng tự động hóa cao. Ceph áp dụng thuật toán CRUSH (Controlled Replication Under Scalable Hashing) để tối ưu hóa việc phân bố dữ liệu, đảm bảo khả năng tự quản lý và tự phục hồi trong trường hợp lỗi phần cứng.
Ceph hỗ trợ cả 3 giao thức phổ biến của Storage là S3 Object Storage Compatible (RadosGW), Block Storage (RBD) và File System (CephFS). Ngày nay, Ceph hầu như khá phổ biến trong các hệ thống Cloud, Private Cloud, S3 trên toàn thế giới bởi tính ổn định, độ an toàn tin cậy dữ liệu cao được chứng mình qua thời gian hơn một thập kỷ phát triển.
LINSTOR
LINSTOR®, được phát triển bởi LINBIT®, là phần mềm mã nguồn mở dùng để quản lý các volume được nhân bản (replicated volumes) trên một cụm máy chủ. LINSTOR tích hợp nguyên bản (natively) với nhiều nền tảng ảo hóa và container , giúp đơn giản hóa việc xây dựng, vận hành và kiểm soát hệ thống lưu trữ dạng block.
LINSTOR được thiết kế để quản lý thiết bị lưu trữ block trong các cụm máy chủ Linux quy mô lớn. Giải pháp này thường được sử dụng để cung cấp lưu trữ block trên Linux với tính bền vững (persistent) và khả dụng cao (high availability) cho môi trường cloud-native và hypervisor.
LINSTOR có vẻ khá mới đối với một số bạn. Giải thích ngắn gọn thì đây là một hệ thống giúp quản lý và thực hiện replicate dữ liệu trên các ổ cứng. VD. Có 1 phân vùng LVM trên node1 được replicate sang node2, node3 nguyên bản và trong một thời điểm chỉ có 1 node thực hiện đọc và ghi gọi là Primary. Kiến trúc này simple hơn Ceph rất nhiều và tất nhiên cũng ảnh hưởng nhiều đến hiệu năng sẻ được trình bày ở phần sau. Tuy vậy, Proxmox không tích hợp native LINSTOR như Ceph mà phải setup và tích hợp manual khá nhiều, sau tôi sẽ làm 1 thread khác chia sẻ về cách thức triển khai LINSTOR trên Proxmox theo HCI và dedicated.
Benchmark Topology
Hệ thống Benchmark được dựng ảo hóa hoàn toàn kiến trúc như sau:
- 3 x Proxmox Node cấu hình
- 8 CPU
- 32 GB RAM
- Disk 0: 100 GB / Root
- Disk 1: 500 GB / Ceph
- Disk 2: 500 GB / LINSTOR

Với cùng 3 node Promox VE, triển khai cả Ceph và LINSTOR trên cả 3 node tương đồng từ đó có thể đánh giá hiệu năng một cách rõ nét nhất.
Cụm Ceph được triển khai theo dạng HCI, cài đặt ngay trên giao diện của Proxmox bao gồm 3 MON, 3 OSD 500GB, bào gồm Pool volumes (chứa disk của VM) được cấu hình replicate 3.

Hệ thống LINSTOR cũng được triển khai ngay trên 3 node Proxmox VE trên, cấu hình Pool Resource tương ứng replicate 3.

Cuối cùng, chúng ta tích hợp tất cả các cluster Storage lên Proxmox ở đây Pool Volumes (RBD) tương ứng cho hệ thống Ceph và linstor_storage (DRBD) tương ứng cho LINSTOR cluster đã triển khai ở trên. Mọi thứ đã sẵn sàng cho việc đánh giá hiệu năng
.

Kết quả
Nguyên lý chung của các bài đánh giá Storage là đo kiểm về IOPs, Throughout và Latency của hệ thống trong nhiều kịch bản như khác blocksize 4k/32k/1M, tải lớn, đơn/đa luồng, đọc/ghi random, sequence, 30/70,... Để đánh giá nhanh thì tôi chọn sử dụng ioping để so sánh latency, fio kịch bản 4k để đánh giá IOPs đọc/ghi và 1M để đánh giá throughput. Chúng ta chuẩn bị một con VM gắn cả 2 loại disk vào để đánh giá Benchmark.

1. Latency
Kết quả cho thấy ceph vda có latency ~2ms còn LINSTOR vdd ~800us gần như bằng 1/2 của Ceph. Bài test này LINSTOR win (1-0).
2. IOPs bs 4k , RW 75/25
Ceph cho kết quả tổng IOPs ~ 10k trong đó Read 7772 và Write 2677
Cùng một VM đó kết quả với LINSTOR khá bất ngờ tổng IOPs 44k trong đó Read 35k và Write 11k
Bài test này LINSTOR tiếp tục dẫn trước (2-0)
2. IOPs bs 128k , RandWrite
Ceph cho kết quả BW=229MB/s IOPS=1748
LINSTOR cho kết quả BW=344MB/s IOPS=2625
Bài test này LINSTOR vẫn dẫn đầu về Throughput (3-0)
3. Một số tính năng
| Tính năng | Ceph | LINSTOR |
|---|---|---|
| Proxmox HA di tản VM | Yes | Yes |
| Live-migration | Yes | Yes |
| Snapshot | Yes | Yes |
| Clone | Yes | Yes |
Tính năng cả 2 dạng SDS đều tương đối ngang nhau nên cả 2 đều đạt ở điểm này (4-1).
Lời kết
Như vậy sau một số bài test kể trên đã cho thấy sự vượt trội của LINSTOR về hiệu năng khi so sánh với CEPH, điều này cũng dễ dàng giải thích do Ceph là dạng Object Storage qua nhiều layer trước khi đến đĩa cứng còn LINSTOR thực tế là đang map một phân vùng LVM vào máy ảo nên hiệu năng gần như bằng với đĩa cứng.
Trong môi trường Production thực tế có thể vẫn tùy vào yêu cầu sử dụng để lựa chọn giải pháp Storage phù hợp, LINSTOR cho hiệu năng tốt hơn nhưng cần nhiều kỹ năng mới có thể quản trị giám sát ổn định, đặc biệt là vấn đề an toàn dữ liệu khi các kết nối không ổn định có thể dẫn đến sai lệch trong quá trình replication hoặc ổ cứng hỏng hóc badsector dẫn đến việc các bản replica bị thiếu dữ liệu so với primary rủi ro mất dữ liệu là có thể xảy ra. Bên cạnh đó thì kiến trúc của LINSTOR rất trong sáng trong trường hợp toàn bộ phần quản trị bị hỏng, vẫn có thể dễ dàng lấy lại dữ liệu trực tiếp từ phân vùng LVM trên Storage Node.
Đối với mã nguồn mở Ceph đã trãi qua hơn 1 thập kỷ phát triển được ứng dụng rộng rãi trên toàn thế giới các cloud provider lớn như OVHcloud, CERN,... sử dụng rất nhiều. Nếu chúng ta chỉ cần 1 hiệu năng vừa phải với khả năng an toàn dữ liệu tuyệt vời thì Ceph luôn là sự lựa chọn hoàn hảo, các cơ chế EC, Replication giúp dữ liệu được nhân bản trên vùng Fault Domain được định nghĩa (rack, DC, physical server), ngoài ra các tiến trình deep-scrub của Ceph luôn hoạt động để đảm bảo tính consistency của dữ liệu, một vùng nào đó bị badsector sẽ được phát hiện và "chữa lành" đảm bảo toàn vẹn dữ liệu của bạn.
All rights reserved