Exadata và Netezza: Giải pháp nào cho Data Warehouse?
Cập nhật 21/12/2011

Đối với các giải pháp Data Warehouse và BI, việc lựa chọn một máy chủ cơ sở dữ liệu phù hợp là vô cùng quan trọng. FPT IS giới thiệu và so sánh Exadata và Netezza -  hai giải pháp máy chủ cơ sở dữ liệu phù hợp cho các hệ thống database lớn, các kho dữ liệu và ứng dụng BI.

 

Oracle luôn tự hào rằng Exadata Database Machine là máy chủ cơ sở dữ liệu (CSDL) duy nhất và nhanh nhất phù hợp cho cả các ứng dụng kho dữ liệu (data warehouse) và các giao dịch trực tuyến (OLTP). Đây là một nền tảng lý tưởng cho phép khách hàng tập hợp nhất toàn bộ CSDL của mình lên đó. Máy chủ CSDL Exadata là sự kết hợp máy chủ ứng dụng, máy chủ lưu trữ, mạng và phần mềm chuyên dụng exadata cung cấp cho khách hàng một giải pháp an toàn với tính sẵn sàng cao và khả năng mở rộng gần như không giới hạn.

Không chịu thua kém Oracle, IBM cũng cung cấp giải pháp Netezza chuyên phục vụ cho các ứng dụng kho dữ liệu và phân tích kinh doanh. Netezza cũng là một thiết bị được đóng gói trọn bộ từ máy chủ, lưu trữ, CSDL và phần mềm chuyên biệt. Và mục đích cũng là nhằm cung cấp tới khách hàng một giải pháp máy chủ CSDL với hiệu suất cao, tính sẵn sàng và khả năng mở rộng tốt.

Nếu nhìn thoáng qua sẽ thấy Oracle Exadata và Netezza của IBM không có nhiều khác biệt, tuy nhiên về kiến trúc vật lý, phần mềm cũng như nguyên tắc hoạt động và các tính năng bên trong của hai giải pháp có nhiều điểm riêng biệt. Hãy cùng FIS Link tìm hiểu những điểm khác biệt này.

Kiến trúc phần cứng

Tủ rack của Oracle Exadata Database Machine bao gồm các thiết bị:

  • Máy chủ CSDL: là máy chủ Intel hoặc Sparc có cấu hình mạnh (nhiều CPU core và RAM) được sử dụng để cài đặt ứng dụng Oracle Database.
  • Máy chủ lưu trữ (còn gọi là Exadata cell) là các máy chủ Intel có cấu hình không mạnh như máy chủ CSDL tuy nhiên có dung lượng lưu trữ lớn. Mục đích chính của máy chủ lưu trữ là dùng để lưu trữ dữ liệu chính vì vậy các tác vụ vào ra (IO) sẽ là những tác vụ được thực hiện nhiều nhất. Để tăng cường khả năng đọc, ghi mỗi máy chủ này được trang bị thêm 384 GB Flash Card.
  • InfiniBand Switch: hỗ trợ việc kết nối theo chuẩn truyền dữ liệu tốc độ cao giữa máy chủ CSDL và máy chủ lưu trữ.
  • Ethernet switch: dùng để quản trị các máy chủ CSDL.

Tùy từng cấu hình trong mỗi phiên bản mà số lượng các thiết bị trong tủ rack sẽ khác nhau. Ví dụ Exadata X2-2 bản Fullrack có 8 máy chủ CSDL, 14 máy chủ lưu trữ, 3 InfiniBand Switch và 1 Ethernet switch.

Về kiến trúc, máy chủ CSDL được kết nối với các máy chủ lưu trữ (exadata cell) thông qua InfiniBand Switch, và dữ liệu của database được lưu trữ trên ổ đĩa của exadata cell. Chính vì vậy khi truy vấn dữ liệu, máy chủ CSDL sẽ không đọc trực tiếp từ ổ cứng thay vào đó sẽ đẩy truy vấn xuống để thực hiện song song ở tất cả các cell, và chỉ kết quả sẽ được trả về để tổng hợp trên máy chủ CSDL. Phương pháp này của Oracle được gọi là Smart Scan. Với Smart Scan thay bằng việc phải đọc rất nhiều dữ liệu vào bộ nhớ để xử lý, máy chủ CSDL chỉ phải nhận một lượng dữ liệu nhỏ từ các cell.

Giải pháp Netezza của IBM cũng được gói gọn trong 1 tủ rack với các thành phần thiết bị bao gồm:

  • Netezza host (SMP host) là các máy chủ Linux hiệu năng cao được cài đặt theo chế độ Active-Standby nhằm nâng cao tính sẵn sàng. Các host này có nhiệm vụ biên dịch các truy vấn SQL thành các đoạn mã nhỏ hơn (gọi là snippet), tạo ra các kế hoạch truy vấn tối ưu, sau đó đẩy các mã thực thi xuống các snippet Blade (S-Blade).
  • Snippet Blade (S-Blade): Mỗi hệ thống Netezza bao gồm nhiều S-Blade. Đây là nơi các lệnh truy vấn SQL và các quá trình phân tích phức tạp được thực thi. Mỗi S-Blade là một máy chủ Intel đa lõi độc lập được tích hợp thêm card FPGA chuyên dụng của IBM. Các S-Blade được quản trị để hoạt động song song, phân tải nhằm đem lại hiệu năng cao nhất cho hệ thống.
  • Tủ đĩa: về cơ bản tủ đĩa này không có gì đặc biệt so với tủ đĩa  thông thường, điều đặc biệt ở cách phân bổ dữ liệu trên tủ đĩa. Mỗi bảng dữ liệu được phân bổ đều trên tất cả các đĩa, điều này giúp cho tốc độ đọc, ghi từ các S-Blade tới các đĩa đạt được mức cao nhất.
  • Ethernet switch: Dùng để kết nối các thành phần trong hệ thống.

Cũng giống như Exadata, tùy từng cấu hình và phiên bản mà số lượng các thiết bị được nêu trên trong mỗi tủ rack là khác nhau.

Về kiến trúc, kết nối giữa các thiết bị trong giải pháp Netezza được  thể hiện trong sơ đồ trên. Trong đó các SMP host là nơi tiếp nhận trực tiếp các yêu cầu truy vấn, phân tích rồi chia nhỏ các yêu cầu này ra thành các snippet để chuyển xuống thực hiện song song ở S-Blade. Snippet thực chất là các truy vấn đơn giản được thực thi bởi phần cứng FPGA. Chính nhờ nhờ vậy chúng được thực thi gần như ngay lập tức, giúp nhanh chóng trả kết quả về các SMP host. Các SMP host khi đó chỉ cần tổng hợp các kết quả thu về mà không cần trực tiếp truy vấn dữ liệu khổng lồ từ đĩa.

Về tổng thể, kiến trúc của cả 2 giải pháp đều hướng tới mục tiêu là hạn chế tối đa việc đọc các dữ liệu không cần thiết vào bộ nhớ. Chính vì vậy tuy rằng cách giải quyết vấn đề khác nhau, nhưng cả hai đều tiến hành lọc bớt dữ liệu một phần (Exadata thực hiện ở cell, còn Netezza thực hiện ở S-Blade) trước khi xử lý.

Về chi tiết, so với Exadata có thể thấy kiến trúc của Netezza có nhiều điểm khác, đặc biệt là phần cứng FPGA được thiết riêng để thực hiện các truy vấn snippet (bên Exadata các truy vấn trên cell được thực hiện bởi phần mềm exadata cài trên mỗi cell đó). Phần cứng FPGA của Netezza được đánh giá là thông mình và khá "độc", tuy nhiên bù lại mỗi exadata cell lại được trang bị 384 GB Flash, cùng với công nghệ Smart Flash Cache, và InfiniBand giúp cho việc đọc, ghi và truyền tải dữ liệu trong giải pháp Exadata trở nên vô cùng nhanh chóng.

Phần mềm

Exadata sử dụng CSDL Oracle vốn đã rất nổi tiếng và quen thuộc trên máy chủ CSDL với mô hình Single-Instance hoặc RAC. Còn các máy chủ lưu trữ (exadata cell) được cài phần mềm exadata. Đây chính là "trái tim" của giải pháp, giúp đem lại cho máy chủ CSDL Exadata nhiều tính năng vượt trội so với các máy chủ CSDL truyền thống như: Smart Scan, Smart Flash Cache, Hybrid Columnar Compression, Exadata Storage Indexes...  Như vậy giải pháp Exadata có thể được tách thành 2 phần: phần CSDL và phần exadata với hai hệ thống quản trị riêng biệt là Enterprise Manager cho database và CellCLI cho các cell. Kiến trúc này đem lại 3 lợi ích cho Exadata:

  • Thứ nhất việc thay thế máy chủ CSDL truyền thống bằng Exadata đối với các phần mềm sử dụng CSDL Oracle có thể thực hiện hoàn toàn trong suốt. Bởi bản thân Exadata vẫn là Oracle Database.
  • Thứ hai là khách hàng có thể di trú dữ liệu và hợp nhất nhiều CSDL  Oracle vào một máy chủ Exadata.
  • Thứ ba là dễ dàng hơn cho người quản trị. Bởi những nhà quản trị CSDL Oracle chỉ cần biết thêm kiến thức về CellCLI là có thể làm chủ toàn bộ giải pháp Exadata.

Trong khi đó Netezza sử dụng một phần mềm CSDL riêng cho cả giải pháp của mình. Theo Netezza hệ thống CSDL này rất đơn giản và dễ quản trị hơn rất nhiều so với các hệ CSDL khác. Cấu trúc lệnh của CSDL này cũng khá giống với các lệnh SQL thông thường và sẽ không mất nhiều thời gian để một người mới có thể làm quen sử dụng. Đây vừa là một lợi thế nhưng cũng vừa là một nhược điểm. Với những khách hàng chưa dùng Oracle và phải lựa chọn giữa Exadata và Netezza thì những đặc điểm trên sẽ khiến họ cân nhắc. Tuy nhiên với những khách hàng đang dùng Oracle thì đó lại là một điểm yếu. Bởi họ phải học lại rất nhiều thứ từ việc quản trị đến việc phát triển ứng dụng khi sử dụng CSDL mới này. Nói như vậy không có nghĩa là Netezza hoàn toàn "đuối thế" so với Exadata, bởi với kiến trúc "1 khối" như của Netezza người quản trị sẽ dễ dàng nắm bắt được toàn bộ hệ thống hơn so với kiến trúc riêng rẽ "2 phần" của Exadata. Hơn nữa với giải pháp của Exadata người quản trị phải can thiệp khá sâu tới phần cứng thông qua CellCLI như các việc tạo ASM Disk Group, nhóm các đĩa ... còn trong giải pháp của Netezza họ chỉ cần quan tâm đến CSDL ở phía trên mà thôi.

Triển khai

Do trong cả hai giải pháp phần mềm và phần cứng đều đã được "đóng gói", kiểm thử và chuẩn hóa trước khi cung cấp cho khách hàng, nên thời gian triển khai những giải pháp này rất ngắn (chỉ một vài ngày). Các bước triển khai cũng không quá phức tạp.

Về vận hành, quản trị sau triển khai, giải pháp Netezza có phần đơn giản hơn so với Exadata. Bởi người quản trị không cần phải quan tâm và can thiệp sâu tới mức dưới mà chỉ cần quản trị ở mức CSDL mà thôi. Tuy nhiên CSDL Netezza lại khá mới mẻ đối với đa phần khách hàng  trong khi Oracle lại là một hệ CSDL rất phổ biến. Vì vậy nếu đã dùng Oracle khách hàng hoàn toàn có sử dụng những kiến thức quản trị CSDL Oracle cho việc quản trị Exadata.

Các yếu tố khác

Exadata và Netezza đều là các giải pháp máy chủ CSDL cho các ứng dụng data warehouse, tuy nhiên tính năng của chúng lại không hoàn toàn trùng nhau. Trong khi Netezza được thiết kế riêng cho ứng dụng data warehouse thì Exadata lại có thể được sử dụng cho cả các ứng dụng OLTP, ngoài ra nó còn được dùng để hợp nhất (consolidate) nhiều CSDL. Chính vì lý do trên mà phân khúc khách hàng mà Exadata hướng tới rộng hơn khá nhiều so với Netezza.

Cũng vì được sử dụng cho nhiều mục đích hơn nên Exadata có nhiều tính năng nâng cao như hỗ trợ sao lưu nhanh, giải pháp nén theo cột, tính năng quản trị IO theo từng CSDL.... Nhưng bên cạnh đó giá thành của giải pháp này cũng khá cao hơn so với Netezza.

Đỗ Hoài Nam