Tìm hiểu về RAID trên ổ cứng máy tính



Vào cuối những năm 1980 và đầu 1990, các nhà cung cấp dịch vụ công nghệ thông tin đã phải đối mặt với việc tăng nhanh một khối lượng khổng lồ các dữ liệu cần được lưu trữ. Các công nghệ lưu trữ đang trở nên rất đắt để đặt một số lượng lớn ổ cứng có khả năng cao trên các máy chủ. RAID ra đời đã giải quyết vấn đề trên.

RAID được định nghĩa như thế nào? Trước hết RAID là viết tắt của Redundant Array of Inexpensive Disks (Hệ thống đĩa dự phòng). Đây là hệ thống hoạt động bằng cách kết nối một dãy các ổ cứng có chi phí thấp lại với nhau để hình thành một thiết bị nhớ đơn có dung lượng lớn hỗ trợ hiệu quả cao và đáng tin cậy hơn so với các giải pháp trước đây. RAID được sử dụng và triển khai thành phương pháp lưu trữ trong doanh nghiệp và các máy chủ, nhưng trong 5 năm sau đó RAID đã trở nên phổ biến đối với mọi người dùng.

Lợi thế của RAID

Có 3 lý do chính để áp dụng RAID:
  • Dự phòng
  • Hiệu quả cao
  • Giá thành thấp
Sự dự phòng là nhân tố quan trọng nhất trong quá trình phát triển RAID cho môi trường máy chủ. Dự phòng cho phép sao lưu dữ liệu bộ nhớ khi gặp sự cố. Nếu một ổ cứng trong dãy bị trục trặc thì nó có thể hoán đổi sang ổ cứng khác mà không cần tắt cả hệ thống hoặc có thể sử dụng ổ cứng dự phòng. Phương pháp dự phòng phụ thuộc vào phiên bản RAID được sử dụng.

Khi áp dụng các phiên bản RAID mạnh bạn có thể thấy rõ hiệu quả tăng cao của nó. Hiệu quả cũng tùy thuộc vào số lượng ổ cứng được liên kết với nhau và các mạch điều khiển.

Tất cả các nhà quản lý những tập đoàn CNTT đều muốn giảm giá thành. Khi chuẩn RAID ra đời, giá thành là một vấn đề chủ chốt. Mục tiêu của các dãy RAID là cung cấp bộ nhớ tốt hơn cho hệ thống so với việc sử dụng riêng biệt các ổ đĩa có dung lượng lớn.

Có 3 cấp độ RAID sử dụng cho hệ thống máy tính để bàn là RAID 0, RAID 1 và RAID 5. Trong nhiều trường hợp thì chỉ hai trong ba cấp trên là có hiệu lực và một trong hai kỹ thuật được sử dụng không phải là một cấp độ của RAID.

RAID 0

RAID 0 thực ra không phải là cấp độ RAID hợp lệ. Cấp độ 0 được đưa ra không thể cung cấp cấp độ dự phòng nào cho các dữ liệu được lưu trữ. Do vậy nếu một ổ cứng bị lỗi thì sẽ gây nguy hiểm cho dữ liệu.

RAID 0 sử dụng một kĩ thuật gọi là “striping”. “Striping” phân chia khối dữ liệu đơn như trong hình vẽ và trải chúng qua các ổ cứng. Tác dụng của striping là làm tăng hiệu quả thực thi. Có thể ghi được hai khối dữ liệu cùng lúc tới hai ổ cứng, hơn hẳn so với một ổ cứng như trước đây.

Dưới đây là ví dụ cho thấy dữ liệu đã được ghi vào RAID 0 như thế nào. Mỗi dòng trong biểu đồ biểu diễn một khối dữ liệu và mỗi cột biểu diễn một ổ cứng khác nhau. Những số trong bảng đại diện cho các khối dữ liệu. Các số giống nhau biểu thị một khối dữ liệu được lặp lại.

Ổ cứng 1
Ổ cứng 2
Khối 1
1
2
Khối 2
3
4
Khối 3
5
6
Do vậy, nếu cả 6 khối dữ liệu trong bảng kết hợp thành một file dữ liệu duy nhất thì có thể đọc và ghi tới các ổn cứng nhanh hơn nhiều so với đọc trên một ổ. Mỗi ổ khi hoạt động song song với nhau chỉ có thể đọc được 3 khối dữ liệu trong khi nó cần sử dụng thêm một ổ đơn để đọc hết 6 khối dữ liệu. Hạn chế của kĩ thuật này là nếu một ổ gặp sự cố thì dữ liệu sẽ không hoạt động. Cần phải truy cập tất cả 6 khối dữ liệu mới có thể đọc được dữ liệu nhưng chỉ có thể truy cập vào 3 khối.

Thuận lợi:
  • Tăng hiệu quả lưu trữ.
  • Không làm mất dung lượng dữ liệu.
Bất lợi:
  • Không có ổ dự phòng.
RAID 1 
RAID 1 mới là phiên bản thực sự đầu tiên. RAID cung cấp phương pháp dự phòng dữ liệu đơn giản bằng kĩ thuật “mirroring” (nhân bản dữ liệu). Kĩ thuật này cần 2 ổ cứng riêng biệt có cùng dung lượng. Một ổ sẽ là ổ hoạt động, ổ còn lại là ổ dự phòng. Khi dữ liệu được ghi vào ổ hoạt động thì đồng thời nó cũng được ghi vào ổ dự phòng.

Đây là ví dụ cho thấy dữ liệu được ghi vào RAID 1 như thế nào. Mỗi dòng trong biểu đồ biểu diễn một khối dữ liệu và mỗi cột biểu diễn một ổ cứng khác nhau. Những số trong bảng đại diện cho các khối dữ liệu. Các số giống nhau biểu thị một khối dữ liệu được lặp lại.

Ổ cứng 1
Ổ cứng 2
Khối 1
1
1
Khối 2
2
2
Khối 3
3
3
RAID 1 cung cấp một phiên bản dự phòng dữ liệu đầy đủ cho hệ thống. Nếu một ổ gặp sự cố, ổ còn lại vẫn còn hoạt động. Hạn chế của kĩ thuật này là dung lượng RAID chỉ bằng dung lượng nhỏ nhất của hai ổ cứng nếu như dung lượng lưu trữ trên hai ổ được sử dụng độc lập.

Thuận lợi:
  • Cung cấp dự phòng dữ liệu toàn diện.
Bất lợi:
  • Dung lượng lưu trữ chỉ lớn bằng dung lượng ổ nhỏ nhất.
  • Không tăng hiệu suất thực thi.
  • Nhiều thời gian chết để thay đổi ổ hoạt động khi có sự cố.
RAID 0+1 
Đây là sự kết hợp RAID mà một số hãng sản xuất đã thực hiện để gộp các lợi ích của hai phiên bản lại với nhau. Sự kết hợp này chỉ áp dụng với các hệ thống có ít nhất 4 ổ cứng. Các kĩ thuật “mirroring” và “striping” kết hợp với nhau tạo ra hiệu quả dự phòng. Thiết lập đầu tiên của các ổ được kích hoạt và các dữ liệu sẽ được phân chia qua đó, thiết lập thứ hai sẽ phản chiếu những dữ liệu này sang ổ thứ hai.

Ví dụ sau cho thấy dữ liệu được ghi vào RAID 0+1 như thế nào. Mỗi dòng trong biểu đồ biểu diễn một khối dữ liệu và mỗi cột biểu diễn một ổ cứng khác nhau. Những số trong bảng đại diện cho các khối dữ liệu. Các số giống nhau biểu thị một khối dữ liệu được lặp lại.

Ổ cứng 1
Ổ cứng 2
Ổ cứng 3
Ổ cứng 4
Khối 1
1
2
1
2
Khối 2
3
4
3
4
Khối 3
5
6
5
6
Trong trường hợp này, các khối dữ liệu sẽ được phân chia qua các ổ và được phản chiếu giữa hai thiết lập. Hiệu quả thực thi của RAID 0 được tăng lên vì ổ cứng chỉ phải mất một nửa thời gian thực hiện so với một ổ riêng lẻ mà vẫn đảm bảo sự dự phòng. Hạn chế chính của phương pháp này là giá thành bởi nó cần phải có ít nhất 4 ổ cứng.

Thuận lợi:
  • Tăng hiệu quả thực thi.
  • Dữ liệu được dự phòng toàn bộ.
Bất lợi:
  • Yêu cầu số lượng ổ cứng lớn.
  • Khả năng truy xuất dữ liệu giảm một nửa.
RAID 10 hay 1+0

RAID 10 gần giống như RAID 0+1. Thay vì phân chia dữ liệu giữa các thiết lập ổ đĩa rồi phản chiếu chúng thì hai ổ cứng đầu tiên sẽ được phản chiếu với nhau. Đây là thiết lập RAID lồng. Hai cặp ổ 1 và 2, 3 và 4 sẽ phản chiếu lẫn nhau. Sau đó chúng sẽ được thiết lập thành các dãy phân chia dữ liệu.

Dưới đây là một ví dụ cho thấy dữ liệu được ghi vào RAID 10 như thế nào. Mỗi dòng trong biểu đồ biểu diễn một khối dữ liệu và mỗi cột biểu diễn một ổ cứng khác nhau. Những số trong bảng đại diện cho các khối dữ liệu. Các số giống nhau biểu thị một khối dữ liệu được lặp lại.

Ổ cứng 1
Ổ cứng 2
Ổ cứng 3
Ổ cứng 4
Khối 1
1
1
2
2
Khối 2
3
3
4
4
Khối 3
5
5
6
6
Cũng thiết lập giống như RAID 0+1, RAID 10 cần tối thiểu là 4 ổ cứng để thực hiện chức năng của mình. Tuy nhiên dữ liệu được bảo vệ bằng RAID 10 an toàn hơn RAID 0+1 rất nhiều.

Thuận lợi:
  • Tăng hiệu quả thực thi.
  • Dữ liệu được dự phòng toàn bộ.
Bất lợi:
  • Yêu cầu số lượng ổ cứng lớn.
  • Khả năng truy xuất dữ liệu giảm một nửa.
RAID 5

RAID 5 mạnh nhất cho hệ thống các máy để bàn. Đặc trưng của chúng là cần phải có một bộ điều khiển phần cứng quản lý các dãy ổ cứng nhưng một số hệ điều hành máy tính có thể thực hiện điều này qua các phần mềm. Phương pháp này sử dụng phân chia “parity” (chẵn lẻ) để duy trì dự phòng dữ liệu. Cần ít nhất 3 ổ cứng có năng xuất cao như nhau để áp dụng RAID 5.

“Parity” là là một phép toán nhị phân so sánh 2 khối dữ liệu với một khối dữ liệu thứ 3 dựa trên 2 khối đầu tiên. Cách giải thích đơn giản nhất là chẵn và lẻ. Nếu tổng của 2 khối dữ liệu là chẵn thì số bit là chẵn, nếu tổng của 2 khối dữ liệu là lẻ thì số bit là lẻ. Do đó phép toán 0+0 and 1+1 đều bằng 0 còn 0+1 or 1+0 sẽ bằng 1. Dựa trên phép toán nhị phân này, một ổ trong dãy bị trục trặc thì thì sẽ cho phép các bit “parity” khôi phục lại dữ liệu khi ổ đó được thay thế.

Sau đây là một ví dụ cho thấy dữ liệu được ghi vào RAID 5 như thế nào. Mỗi dòng trong biểu đồ biểu diễn một khối dữ liệu và mỗi cột biểu diễn một ổ cứng khác nhau. Những số trong bảng đại diện cho các khối dữ liệu. Các số giống nhau biểu thị một khối dữ liệu được lặp lại. “P” là các bit “parity” cho hai khối dữ liệu

Ổ cứng 1
Ổ cứng 2
Ổ cứng 3
Khối 1
1
2
P
Khối 2
3
P
4
Khối 3
P
5
6
Các bit “parity” luân chuyển giữa các ổ cứng sẽ làm tăng hiệu xuất và độ tin cậy cho dữ liệu. Dải ổ cứng vẫn sẽ tăng hiệu xuất thông qua một ổ riêng lẻ bởi vì nhiều ổ thì khả năng ghi dữ liệu sẽ nhanh hơn một ổ. Dữ liệu cũng được dự phòng toàn bộ nhờ các bit “parity”. Trường hợp ổ 2 bị lỗi thì dữ liệu có thể được phục hồi dựa trên dữ liệu và các bit trên hai ổ còn lại. Dung lượng dữ liệu giảm là do các khối dữ liệu chẵn lẻ. Trong thực tế nếu n là số lượng ổ và z là dung lượng thì ta có công thức sau:
(n-1)*z = Dung lượng
Trong trường hợp có 3 ổ cứng với dung lượng 500GB /ổ thì tổng dung lượng sẽ là (3-1)x500GB = 1000 GB

Thuận lợi:
  • Tăng dung lượng lưu trữ
  • Dữ liệu được dự phòng toàn bộ
  • Khả năng hoán đổi nhanh 24x7
Bất lợi:
  • Giá thành cao
  • Hiệu quả thực thi giảm trong quá trình phục hồi
RAID phần mềm và phần cứng

Để sử dụng chức năng RAID, cần phải có cài phầm mềm trên hệ điều hành hoặc thông qua các phần cứng chuyên dụng để điều khiển các dòng dữ liệu di chuyển từ máy tính tới các ổ cứng. Điều này thực sự quan trọng khi mà RAID 5 được thừa hưởng khối lượng lớn các yêu cầu máy tính nhằm đưa ra các phép tính toán phù hợp.

Đối với các phần mềm, chu trình bộ xử lý trung tâm (CPU) sẽ thực hiện các nhiệm vụ cần thiết cho RAID. Sử dụng phần mềm thì giá thành sẽ thấp bởi vì tất cả những thứ cần thiết là ổ cứng. Vấn đề duy nhất với các RAID sử dụng phần mềm đó là sự giảm sút hiệu xuất hệ thống. Nhìn chung, kết quả có thể từ 5% hay nhiều hơn nữa phụ thuộc vào bộ xử lý, bộ nhớ, ổ cứng và loại RAID nào được đưa vào sử dụng. Nhiều người không còn sử dụng RAID phần mềm nữa do giá của điều khiển RAID phần cứng đã giảm trong những năm gần đây.

RAID phần cứng có lợi thế là dùng các mạch chuyên dụng để điều khiển tất cả các phép tính toán cho RAID ở bên ngoài bộ xử lý. Phương pháp này tạo ra hiệu suất lưu trữ cao. Vấn đề của RAID phần cứng chính là giá thành. Giá cho các điều khiển RAID 0/1 là rất nhỏ bởi nhiều “chipset” đã được tích hợp sẵn trên các bo mạch chủ. Trong khi đó phần cứng RAID 5 thì lại yêu cầu cần phải có các mạch được gắn thêm .

Lựa chọn ổ cứng

Nhiều người vẫn không hề hay biết rằng công suất và dung lượng của một dãy RAID phụ thuộc rất nhiều vào loại ổ cứng nào được sử dụng. Để đạt được kết quả tốt nhất thì tất cả ổ cứng trong mạng nên có cùng kiểu dáng và nhãn hiệu. Bên cạnh đó chúng cũng cần phải có cùng dung lượng và hiệu xuất giống nhau. Không có yêu cầu nào về thống nhất giữa các ổ nhưng nếu các ổ không thống nhất chúng có thể ảnh hưởng tới dãy RAID.

Công suất của RAID tùy thuộc vào cấp độ của chúng. Đối với RAID 0, phân chia có thể được thực thi thông qua khoảng trống của 2 ổ cứng. Với hai ổ 80Gb và 100Gb thì công xuất cuối cùng của dãy sẽ là 160GB. Tương tự như vậy đối với RAID 1 thì các ổ chỉ có thể đối chiếu dữ liệu theo kích cỡ nhỏ nhất do vậy mà công suất cuối cùng sẽ chỉ còn là 80GB. RAID 5 thì còn phức tạp hơn khi tính theo công thức ở trên. Nếu sử dụng 3 ổ 80GB, 100GB và 120GB thì công suất sẽ là 160GB dữ liệu.

Thời gian thực thi của dãy cũng phụ thuộc vào ổ cứng. Để thực hiện một chức năng lệnh thì ta phải chờ để dữ liệu được ghi vào mỗi ổ trước khi có thể tiếp tục các bước tiếp theo. Có nghĩa là trên biểu đồ ví dụ của dãy RAID, bộ điều khiển phải chờ cho tới khi các dữ liệu đã được ghi thành khối 1 qua tất cả các ổ trong dãy trước khi có thể tiếp tục các thiết lập khác cho ổ cứng. Cũng có nghĩa là ở những dãy mà một ổ cứng có tốc độ thực thi chỉ còn một nửa sẽ làm chậm tốc độ của các ổ khác.

Kết luận

RAID hỗ trợ các hệ thống với nhiều tiện ích khác nhau tùy vào phiên bản được áp dụng. Đa số khách hàng sử dụng sẽ lựa chọn RAID 0 để tăng tốc độc thực thi mà không làm giảm không gian bộ nhớ. Chủ yếu là do dư thừa chưa phải là vấn đề chính cho người sử dụng trung bình. Thật ra, hầu hết các hệ thống máy tính chỉ cung cấp RAID 0 hay RAID 1. Chi phí để thực hiện RAID 0+1 hay RAID 5 là quá đắt đối với những khách hàng trung bình và chỉ được áp dụng cho các trạm làm việc hay các hệ thống máy chủ cấp cao.
2/ Khả năng chịu lỗi hỏng hóc ổ cứng
Ngày nay người ta vẫn còn đang tranh luận gay gắt liệu công nghệ RAID có thật sự bảo vệ dữ liệu hay không? Có ngăn ngừa các lỗi hư ổ đĩa không. Gần đây thôi trên diễn đàn này cũng có vài ý kiến bài bác thẳng thừng Raid. Ví dụ như ở Raid 5, nếu chẳng may có từ 2 ổ cứng rù nhau cùng về chầu Diêm vương thì toàn bộ dữ liệu chết sạch, không cách gì cứu vãn được. Theo ý kiến cá nhân, thì tôi cũng cho là Raid không bảo vệ dữ liệu hoàn hảo như backup, nhưng.... Vâng nhưng RAID cung cấp sự bảo hiểm an toàn nhất định khi nó có thể chống đỡ sự hỏng hóc của ổ đĩa (nhiều hay í thì còn tùy loại Raid) bằng cách cho phép kéo dài thời gian để phục hồi dữ liệu.
Các khả năng chịu lỗi của các Raid cũng có thể được tăng cường đáng kể bằng cách chọn loại Raid lưu trữ đúng đắn (sẽ nói ở sau).
Ở trên ta đã biết parity được Raid tạo ra và tính toán ra sao, thì khi nhìn vào cách phân bố parity trong một Raid, ta có thể biết khả năng chịu lỗi hỏng hóc HDD của Raid đó dư lào ngay, ví dụ:
-    Raid 5, các phần tử parity Ap, Bp, Cp, Dp,... được phân bố tuần tự lần lượt trên từng HDD trong Raid. Nếu cộng tất cả lại ta sẽ thấy chúng chiếm vừa đứng dung lượng (nhỏ nhất) của một ở cứng trong Raid đó. Đó là lý do tại sao ta thấy ở các Raid 5, chúng ta phải hy sinh 1 ổ cho Raid và Raid thường bắt (hay nói đúng hơn nó chỉ bảo kê) chúng ta sử dụng các HDD có cùng dung lượng. Thằng HDD nào lớn chuẩn sẽ bị nó vạc bớt ráng chịu. Và cũng từ đây ta có thể biết rằng, trong Raid 5, nó chỉ cho phép 1 HDD toi mạng mà thôi, còn hơn nữa thì khi đó chính người dùng ... toi mạng.
 

-    Raid 6, cũng tương tợ như Raid 5 thôi, nhưng lần này ta để ý thấy có xuất hiện thêm Aq, Bq, Cq, Dq,... mà nếu ngồi cộng tổng chúng lại sẽ vừa bằng 2 HDD trong Raid. Vâng giống như trên, ta biết dung sai cho phép hard drive chết tối đa chỉ là 2 thôi. Dễ ẹt phải không các bạn?
 

Vì đề tài về Raid rất rộng, trong bài này tôi không thể nói cụ thể Raid là gì, nguyên lý họat động của nó ra sao, có mấy cấp độ Raid và chúng khác nhau thế nào, hy vọng đến đây bạn vẫn chưa bị “bơi”. Mà muốn biết có đang bị “bơi” hay không dễ lắm. Nếu bạn trả lời được những câu hỏi này thì bạn có thể an tâm đi tiếp phần còn lại của bài:
Backup và Raid 1 giống và khác nhau ở điểm nào?
Tại sao nói Raid ngày nay có khả năng chịu được mức độ hư hỏng của một đến vài ổ cứng trong mảng Raid?
Cái gì làm cho Rai có khả năng đọc/ chép nhanh hơn là các ổ cứng độc lập?
Các yếu tố làm gia tăng sự phát triển của Raid trong giai đoạn hiện nay
Ngày nay ngày càng có nhiều công ty lớn đã tạo ra những mạng lưới nội bộ riêng cho mình trên toàn doanh nghiệp để nâng cao năng suất và sắp xếp luồng thông tin. Trong khi đó thì các cơ sở dữ liệu lại được lưu trữ phân tán trên các máy chủ riêng rẽ. Bằng cách kết hợp nhiều ổ đĩa vào một mảng duy nhất - được xem bởi các hệ điều hành mạng như một ổ đĩa duy nhất, ứng dụng Raid gom về một kho dữ liệu duy nhất trên mạng, nó cung cấp lợi ích đáng kể là giảm chi phí , các khoản tiết kiệm có thể được, đồng thời nhanh chóng phục hồi nếu thông tin thường xuyên bị mất hoặc không thể truy cập.
Các bạn cũng biết, các ứng dụng hiện nay tạo ra các tập tin lớn hơn do đó nhu cầu lưu trữ mạng đã tăng lên tương ứng. Ngoài ra, sự tăng tốc của tốc độ CPU đã vượt xa tốc độ truyền tải dữ liệu để lưu trữ, tạo ra tắc nghẽn trong hệ thống hiện nay. Vì thế giải pháp lưu trữ RAID vượt qua những thách thức này bằng cách cung cấp một sự kết hợp của tính sẵn sàng dữ liệu , hiệu suất nổi bật, khả năng mở rộng, năng suất cao và phục hồi mà không làm mất dữ liệu hoặc gián đoạn truy cập của người dùng.

Post a Comment

Mới hơn Cũ hơn