Giải thích về khả năng phục hồi — Hiểu về kiến ​​trúc tự phục hồi, tự cân bằng của PowerFlex

Điện thoại của tôi reo. Khi tôi nhấc máy thì đó là Rob*, một trong những khách hàng PowerFlex yêu thích của tôi, người điều hành Cơ sở hạ tầng lưu trữ của công ty anh ấy. Năm ngoái, CTO của anh ấy đã quyết định áp dụng chuyển đổi số trên toàn bộ công ty, bao gồm phương pháp tiếp cận được xác định bằng phần mềm. Trong quá trình đó, họ đã chọn dòng sản phẩm Dell EMC PowerFlex làm cơ sở hạ tầng Lưu trữ được xác định bằng phần mềm (SDS) vì họ có sự kết hợp giữa khối lượng công việc ảo hóa và khối lượng công việc thực tế, cần một giải pháp có thể xử lý được sự tăng trưởng lưu trữ không thể đoán trước của họ và cũng đủ mạnh để hỗ trợ các ứng dụng kinh doanh chính của họ. 

Trong quá trình thử nghiệm hệ thống PowerFlex, tôi đã hướng dẫn Rob về cách chúng tôi cung cấp cho khách hàng danh sách gần như vô tận các lợi ích quan trọng – hiệu suất lưu trữ khối cực nhanh, có thể mở rộng tuyến tính khi các nút mới được thêm vào hệ thống; nền tảng lưu trữ tự phục hồi và tự cân bằng tự động đảm bảo rằng nó luôn mang lại hiệu suất tốt nhất có thể; xây dựng lại siêu nhanh trong trường hợp đĩa hoặc nút bị lỗi, cùng với khả năng thiết kế một hệ thống đáp ứng hoặc vượt quá các cam kết kinh doanh của anh ấy về thời gian hoạt động và SLA. 

PowerFlex cung cấp tất cả những điều này (và hơn thế nữa) nhờ vào “Secret Sauce” – Kiến trúc lưới-gương phân tán. Nó đảm bảo luôn có hai bản sao dữ liệu ứng dụng của bạn – do đó đảm bảo tính khả dụng trong trường hợp xảy ra bất kỳ lỗi phần cứng nào. Dữ liệu được phân phối thông minh trên tất cả các thiết bị đĩa trong mỗi nút trong một nhóm lưu trữ. Khi thêm nhiều nút hơn, hiệu suất tổng thể tăng gần như tuyến tính, mà không ảnh hưởng đến độ trễ của ứng dụng. Tuy nhiên, đồng thời, việc thêm nhiều đĩa hoặc nút hơn cũng làm giảm thời gian xây dựng lại trong những tình huống lỗi (phải thừa nhận là hiếm) đó – điều đó có nghĩa là PowerFlex tự phục hồi nhanh hơn khi hệ thống phát triển!

PowerFlex tự động đảm bảo rằng hai bản sao của mỗi khối dữ liệu được ghi vào Storage Pool nằm trên các nút SDS (lưu trữ) khác nhau, vì chúng ta cần có khả năng nắm giữ bản sao dữ liệu thứ hai nếu đĩa hoặc nút lưu trữ giữ khối đầu tiên bị lỗi bất cứ lúc nào. Và vì dữ liệu được ghi trên tất cả các đĩa trong tất cả các nút trong Storage Pool, điều này cho phép thời gian phản hồi IO cực nhanh, vì chúng ta truy cập tất cả dữ liệu song song. 

Dữ liệu cũng được ghi vào đĩa bằng các kích thước khối rất nhỏ – 1MB hoặc 4KB, tùy thuộc vào loại Storage Pool. Tại sao lại như vậy? Làm như vậy đảm bảo rằng chúng ta luôn phân bổ dữ liệu đều trên tất cả các thiết bị đĩa, tự động ngăn chặn các điểm nóng về hiệu suất trở thành vấn đề ngay từ đầu. Vì vậy, khi một ổ đĩa được chỉ định cho một máy chủ hoặc một VM, dữ liệu đó đã được phân bổ hiệu quả trên tất cả các đĩa trong tất cả các Storage Node. Ví dụ: hệ thống PowerFlex 4-Node, với 3 ổ đĩa được cung cấp từ hệ thống này, sẽ trông giống như sau:

 

Hình 1: Một góc nhìn đơn giản về hệ thống PowerFlex 4 nút trình bày 3 khối lưu trữ

Bây giờ, đây là nơi phép thuật bắt đầu. Trong trường hợp ổ đĩa bị lỗi, quy trình xây dựng lại PowerFlex sử dụng một lược đồ nhiều-nhiều hiệu quả để xây dựng lại rất nhanh. Nó sử dụng TẤT CẢ các thiết bị trong nhóm lưu trữ cho các hoạt động xây dựng lại và sẽ luôn tự động cân bằng lại dữ liệu trong nhóm bất cứ khi nào các đĩa hoặc nút mới được thêm vào Nhóm lưu trữ. Điều này có nghĩa là, khi hệ thống phát triển, hiệu suất sẽ tăng theo tuyến tính – điều này rất tuyệt vời để bảo vệ cơ sở hạ tầng của bạn trong tương lai nếu bạn không chắc chắn hệ thống của mình sẽ phát triển như thế nào. Nhưng điều này cũng mang lại một lợi ích khác – khi hệ thống của bạn phát triển về quy mô, việc xây dựng lại sẽ nhanh hơn!

Những khách hàng như Rob thường ngước mắt lên khi nghe câu tuyên bố cuối cùng đó – cho đến khi chúng tôi đưa ra một ví dụ đơn giản để làm rõ vấn đề – và rồi họ chợt nảy ra ý tưởng. Hãy nghĩ xem điều gì sẽ xảy ra nếu chúng ta sử dụng hệ thống PowerFlex 4 nút, nhưng chỉ có một ổ đĩa trong mỗi nút lưu trữ. Tất cả dữ liệu sẽ được phân bổ đều trên 4 Nút, nhưng chúng ta cũng có một số dung lượng dự phòng được dành riêng, cũng được phân bổ đều trên mỗi ổ đĩa. Dung lượng dự phòng này là cần thiết để xây dựng lại dữ liệu vào, trong trường hợp đĩa hoặc nút bị lỗi và thường tương đương với dung lượng của toàn bộ nút hoặc 10% của toàn bộ hệ thống, tùy theo mức nào lớn hơn. Ở cấp độ bề ngoài, hệ thống 4 Nút sẽ trông giống như thế này:

 

Hình 2: Góc nhìn đơn giản về Hệ thống PowerFlex 4 nút và Luồng dữ liệu khả dụng

Nếu một trong những ổ đĩa (hoặc nút) đó bị lỗi, thì rõ ràng là chúng ta sẽ phải xây dựng lại giữa ba đĩa còn lại, mỗi đĩa cho một nút:

Hình 3: Hệ thống PowerFlex 4 nút đơn giản hóa của chúng tôi và các luồng dữ liệu khả dụng với một đĩa bị lỗi  

Tất nhiên, trong trường hợp này, việc xây dựng lại sẽ mất một thời gian để hoàn tất. Chúng tôi sẽ thực hiện nhiều bản sao 1MB hoặc 4KB giữa ba nút còn lại, theo cả hai hướng, khi chúng tôi xây dựng lại thành dung lượng dự phòng khả dụng trên các nút còn lại và quay lại có hai bản sao dữ liệu để được bảo vệ hoàn toàn một lần nữa. Điều đáng lưu ý ở đây là một nút thường chứa 10 hoặc 24 ổ đĩa, không chỉ một, vì vậy PowerFlex không chỉ bảo vệ bạn khỏi lỗi “một” ổ đĩa, chúng tôi có thể bảo vệ bạn khỏi cả một đống ổ đĩa. Đây không phải là lược đồ thẻ RAID thông thường của bạn.

Bây giờ – hãy để phép thuật của PowerFlex bắt đầu! Điều gì sẽ xảy ra nếu chúng ta thêm một nút lưu trữ thứ năm vào hỗn hợp? Và điều gì sẽ xảy ra khi một đĩa hoặc nút bị lỗi trong trường hợp này??

Hình 4: Luồng dữ liệu trong Hệ thống PowerFlex 5 nút đang chạy bình thường … & Luồng dữ liệu khả dụng với một đĩa hoặc nút bị lỗi  

Mọi người đều có thể thấy rõ rằng hiện tại chúng ta có nhiều đĩa hơn – và các nút – để tham gia vào quá trình xây dựng lại, giúp quá trình xây dựng lại hoàn tất nhanh hơn đáng kể so với kịch bản 4 nút trước đây của chúng ta. Nhưng các nút PowerFlex không chỉ có một đĩa duy nhất bên trong chúng – Chúng thường có 10 hoặc 24 khe ổ đĩa, do đó ngay cả đối với một triển khai nhỏ với 4 nút, mỗi nút có 10 đĩa, chúng ta sẽ có dữ liệu được đặt một cách thông minh và đồng đều trên tất cả 40 ổ đĩa, được định cấu hình như một Nhóm lưu trữ. Bây giờ, với phương tiện flash ngày nay, đó là rất nhiều khả năng hiệu suất có sẵn trong tầm tay bạn, có thể được cung cấp với độ trễ dưới mili giây nhất quán. 

Tôi cũng xin nhấn mạnh đến lược đồ xây dựng lại “nhiều-nhiều” được sử dụng bởi mỗi Storage Pool. Điều này có nghĩa là bất kỳ dữ liệu nào trong Storage Pool đều có thể được xây dựng lại thành tất cả các đĩa khác trong cùng một Pool. Nếu chúng ta có 40 ổ đĩa trong pool, điều đó có nghĩa là khi một ổ đĩa bị lỗi, 39 ổ đĩa còn lại sẽ được sử dụng để xây dựng lại dữ liệu của ổ đĩa bị lỗi. Điều này dẫn đến việc xây dựng lại cực kỳ nhanh chóng diễn ra song song, với tác động tối thiểu đến hiệu suất ứng dụng nếu chúng ta mất một đĩa:

 

Hình 5: Một nhóm lưu trữ 40 đĩa, với lỗi đĩa… Hiển thị sự kỳ diệu của việc xây dựng lại song song

Lưu ý rằng chúng ta phải đơn giản hóa luồng dữ liệu giữa các đĩa trong hình trên, vì nếu chúng ta cố gắng hiển thị tất cả các kết nối đang hoạt động, chúng ta sẽ chỉ thấy một mớ mũi tên màu xanh lá cây!

Đây là một ví dụ khác để giải thích sự khác biệt giữa PowerFlex và bảo vệ ổ đĩa kiểu RAID thông thường. Kiểm tra xây dựng lại ban đầu trên một hệ thống trống thường mất hơn một phút để hoàn tất việc xây dựng lại. Điều này là do PowerFlex sẽ chỉ xây dựng lại các khối dữ liệu ứng dụng, không giống như bộ điều khiển RAID truyền thống, sẽ xây dựng lại các khối đĩa cho dù chúng có chứa dữ liệu hay không. Tại sao lại lãng phí tài nguyên để xây dựng lại các số không trống của dữ liệu khi bạn cần sửa chữa từ một đĩa hoặc nút bị lỗi càng nhanh càng tốt? 

Kiến trúc PowerFlex Distributed Mesh-Mirror thực sự độc đáo và cung cấp cho khách hàng nền tảng lưu trữ khối nhanh nhất, có khả năng mở rộng nhất và phục hồi nhất hiện có trên thị trường!