Tổng quan công nghệ Raid-DP

Trong môi trường vận hành tồn tại nhiều công nghệ Raid khác nhau để hỗ trợ nâng cao hiệu suất I/O cũng như xử lý HDD failed. Trong đó, ta biết tới một kỹ thuật đặc  biệt được  sử  dụng để  xây  dựng RAID đó là kỹ  thuật  “Parity  RAID”.  Đây là phương pháp bảo vệ an toàn cho dữ liệu sử dụng phương pháp tính toán các giá trị “ chẵn – lẻ ” trực tiếp trên dữ liệu. Hai công nghệ RAID điển hình sử dụng kỹ thuật này là RAID 4, 5, 6 như được trình bày trong khá nhiều bài viết trên mạng.

Với  kỹ  thuật  parity  sử  dụng  trong  RAID  4,  RAID  5  hiện  nay  chỉ  thực  hiện  tính toán Parity 1 lần cho từng hàng dữ  liệu trong một nhóm RAID, hay còn gọi là Single  – Parity  RAID ngoài ra còn có Raid 6 hơi biến đổi là nhân đỗi parity.  Kỹ  thuật  này  chỉ  cho  phép  bảo  vệ  sự  an  toàn  cho  hệ  thống trong trường hợp có 1 đĩa trong 1 nhóm RAID bị sự cố. Khi đó hệ thống có thể dựa trên giá trị Parity, và các giá trị dữ liệu còn lại để phục hồi lại dữ liệu bị mất trên đĩa bị hư. Việc xây dựng này chỉ thành công nếu trong quá trình phục hồi dữ liệu không có 1 đĩa nào khác bị sự cố, hoặc dữ  liệu có sự  thay đổi, hay  có 1  bít lỗi  không  thể  sửa được xảy ra trong quá  trình đọc dữ liệu phục vụ cho quá trình tái tạo dữ liệu bị mất. Ngược lại thì có thể một vài dữ liệu sẽ bị mất hoặc toàn bộ dữ liệu chứa trong dãy đĩa có thể bị mất hoàn toàn.

Như vậy  với  kỹ  thuật  Single  –  Parity này  thì những loại đĩa lưu trữ  hiện đại,  với dung lượng lớn như hiện nay thì khả năng bảo vệ dữ liệu của nó bị hạn chế. Do dó, hiện nay đã phát triển 1 công nghệ  RAID  mới  với kỹ  thuật  Double  –  Parity,  hay còn  gọi là RAID  –  DP  (là  một  thể  hiện  với  khả  năng thực  thi  cao  của  RAID6),  khắc  phục được những nhược điểm  trên  của  kỹ  thuật  Single  –  Parity.  RAID  –  DP  đã  sẵn sàng để  được triển khai trên nhiều thiết bị lưu trữ mạng. 
image

Bài viết này giới thiệu về công nghệ RAID – DP để thấy được những khác biệt với
công nghệ Single – Parity RAID đang phổ biến hiện nay. Nội dung trình bày gồm có:

  1. Giới thiệu về RAID – DP
  2. Hoạt động
  3. Ưu điểm
  4. Nhược điểm
  5. Khuyến nghị sử dụng

1. Giới thiệu RAID – DP

RAID – DP thực hiện stripe dữ liệu theo Block  và tính toán giá trị Parity 2 lần
khác nhau cho mỗi khối dữ liệu. Giá trị Parity thứ nhất được tính trong từng stripe theo chiều ngang như trong RAID 4, và giá trị  Parity thứ 2 sẽ được tính cho từng stripe theo đường  chéo.  Cả  2  giá  trị  parity  này  sẽ  được lưu trong 2 đĩa chuyên  dụng  cho  việc lưu thông tin Parity. Phần sau sẽ minh họa cụ thể hoạt động của RAID – DP trong việc tạo và lưu trữ thông tin parity này.

Mục đích của việc nhân đôi tính toán thông tin parity này là tăng khả  năng chịu
lỗi của hệ thống, trong trường hợp có 2 đĩa dữ liệu bị hư trong một nhóm RAID.

RAID – DP sử dụng cho các hệ thống có yêu cầu về khả năng dự phòng và tính sẵn sàng rất cao. Nó yêu cầu 2 lần tính toán Parity khác nhau cho mỗi stripe, vì thế cần phải sử dụng thêm 2 đĩa cho việc lưu trữ các giá trì Parity này.

Ví dụ  một hệ thống yêu cầu sử dụng 4 đĩa dữ liệu thì sẽ cần đến 6 đĩa để xây dựng hệ thống RAID – DP.

2. Hoạt động

Trong RAID – DP dữ liệu được chia thành từng khối (block) và được ghi trải đều lên các ổ đĩa vật lý. Một khối thì bao gồm một số sector liên tục nhau trên đĩa

Một loạt các khối (mỗi một khối từ một đĩa trong một mảng các đĩa vật lý)  được
gọi là một stripe. Và trong một stripe thì thông tin parity được tính toán dự trên giá trị của các khối dữ liệu trên stripe đó sử dụng phép toán XOR. Và thông tin Parity này được lưu trên đĩa Parity chuyên dụng.  Khi có sự  thay đổi  về  dữ  liệu  trong  một stripe (thêm hoặc xóa dữ liệu) thì các thông tin Parity này sẽ được tính toán lại cho stripe đó.

Nếu có N đĩa vật lý trong một nhóm RAID – DP thì chỉ có (N-2) đĩa để lưu trữ dữ liệu và 2 đĩa còn lại là dành cho Parity data.

2.1. Xây dựng dữ liệu và giá trị Parity cho hệ thống

Việc tính toán thông tin Parity của RAID – DP được thực hiện qua 2 quá trình. Giả sử 1 cần xây dựng một hệ thống RAID cho 4 đĩa dữ liệu. Khi đó cấu trúc đĩa cần thiết để xây dựng 1 hệ thống RAID – DP phải là 6 đĩa như hình sau.

image

Trong đó các đĩa dữ liệu được ký hiệu với chữ “D”, đĩa “P” dùng để lưu thông tin Parity thứ nhất và đĩa “DP” để lưu thông tin Parity thứ 2.

2.2 Tính toán giá trị Parity thứ nhất

Việc tính giá trị Parity này hoàn toàn giống với kỹ thuật được sử dụng trong RAID 4. Dựa vào giá trị của các khối dữ liệu trên cùng một stripe trên hàng ngang sẽ tính toán ra giá trị Parity tương ứng và lưu vào đĩa “P”.

Phép toán logic thường dùng là XOR. Ví dụ, nếu có 4 disk được sử dụng là DD,
DD2, DD3, DD4 và một đĩa chẵn lẻ là PD1, khi mà dữ liệu được ghi vào các ổ đĩa, phép toán logic được thực hiện là:

P = DD1 XOR DD2 XOR DD3 XOR DD4

và kết quả được lưu trên “P”.

Sau đó nếu có một trong các đĩa bị fail thì dữ liệu có thể được tái tạo lại bằng cách thực thi  một phép tính tương tự – phép tính ngược, lúc này thì  dữ  liệu bị  fail sẽ  được phục hồi bằng cách dùng giá trị trong “P”. Giả sử nếu fail trên DD2 thì phép tính sau sẽ được thực hiện:

DD1 XOR P XOR DD3 XOR DD4 = DD2 (the missing data)

Một trong những hạn chế của việc dùng fault tolerance là sự hao phí về tốc độ do
sự  mất thời  gian của các phép tính, nó hiển nhiên cần thiết để  tận dụng không gian đĩa trống.

Để đơn giản phép toán, ta minh họa một ví dụ sử dụng phép toán cơ bản “cộng” và “trừ” để  tính  toán  giá  trị  Parity  cho  các  khối  dữ  liệu  trên  từng  stripe.  Theo  ví  dụ  trong hình  trên,  hàng  thứ  2  được đưa vào một  vài  mẫu  dữ  liệu  trong  mỗi  khối  4KB. Khi đó, thông tin Parity được tính toán cho hàng này bằng cách cộng giá trị của từng khối dữ liệu trên hàng, và sau đó lưu trữ tổng của chúng (3 + 1 + 2 + 3 = 9) như là giá trị Parity vào đĩa “P”.

image

Nếu  xảy  ra  sự  cố  và  cần  phải  phục  hồi  lại  dữ  liệu  bị  mất  từ  1 đĩa bị  hư, thì  tiến trình sẽ  sử  dụng thông tin  Parity  trên đĩa “P” này  để  phục hồi lại dữ  liệu bị  mất. Ví dụ, nếu đĩa đầu tiên bị hư, thì sẽ tiến hành tạo lại dữ liệu có giá trị “3” trong khối đầu tiên. Sử dụng giá trị Parity và những giá trị dữ liệu trên các đĩa còn lại để tính toán lại giá trị dữ liệu bị mất (9 – 3 – 2 – 1 = 3).

2.3 Tính toán giá trị Parity thứ 2

Đây là bước  khác  biệt  chính  của  RAID  –  DP  so  với  các  loại  RAID  cũ. Giá  trị Parity  thứ  2 được  tính  dựa  trên  giá  trị  từ  các  khối  dữ  liệu  trên  1  stripe  chéo.  Và  giá  trị Parity tính được sẽ được lưu vào đĩa “DP”. Hình sau minh họa việc tính toán giá trị Parity cho các ô dữ liệu trên một đường chéo (được tô màu xanh) cũng sử dụng phép toán XOR. Tuy nhiên ở ví dụ này ta sử dụng phép toán cộng để minh họa. Giá trị Parity thu được (1 + 2 + 2 + 7 = 12 ) được lưu trên đĩa “DP”.

image

Một điều cần chú ý là giá trị Parity này được tính toán dựa trên 3 giá trị dữ liệu và 1 giá trị từ đĩa Parity thứ nhất “P”. Nghĩa là RAID – DP coi tất cả các đĩa kể cả đĩa Parity thứ nhất như là đĩa dữ liệu bình thường. Kết quả của quá trình tính toán cả 2 giá trị Parity được thể hiện trong hình sau:

image

2.4 Phục hồi dữ liệu trong trường hợp sự cố

Trong trường hợp hệ thống RAID – DP có 2 đĩa bị hư thì hệ thống hoàn toàn có
khả năng phục hồi lại được dữ liệu đã bị mất trên 2 đĩa này. Giả sử rằng hệ thống RAID – DP trên vẫn hoạt động bình thường đến khi dữ liệu trên cả 2 đĩa 1 và 2 bị mất như hình sau:

image

Để  tiến hành xây dựng lại dữ  liệu bị  mất, RAID  –  DP đầu tiên sẽ  xác định điểm bắt đầu việc  khôi phục dữ  liệu. Trong trường hợp này,  ta thấy rằng  Stripe  chéo có  màu xanh chỉ có 1 ô bị mất dữ liệu. Do đó RAID – DP có đủ thông tin cần thiết cho việc khôi phục dữ liệu bị mất trong stripe này, sử dụng thông tin từ 4 ô màu xanh còn lại. Như vậy giá trị dữ liệu cho ô màu xanh bị mất được phục hồi sử dụng phép toán trừ (12 – 7 – 2 – 2 = 1).

image

Tiếp theo với hàng đầu tiên bây giờ chỉ còn 1 ô bị mât dữ liệu. Do đó có đủ thông
tin để xây dựng lại dữ liệu cho ô này sử dụng giá trị Parity thứ nhất và 3 giá trị dữ liệu còn lại của hệ thống. Giá trị của ô màu xám bị mất được khôi phục sử dụng phép toán (9 – 3 – 2 – 1 = 3). Kết quả của bước này ta thu được:

image

Tiếp tục lại quá trình tương tự như trên ta thu được toàn bộ dữ liệu bị mất đã được phục hồi chính xác trên 2 đĩa bị hư. Và hệ thống lại hoạt động bình thường.

image

Một đặc điểm quan trọng của RAID – DP cần chú ý là: Nếu hệ thống phát hiện 1
đĩa bị hư hỏng thì RAID – DP sẽ tự động tăng độ ưu tiên của tiến trình phục hồi lại dữ liệu cho đĩa bị hư đó, do đó việc phục hồi dữ liệu diễn ra nhanh hơn. Và kết quả là thời gian phục hồi cho trường hợp 2 đĩa bị hư gần như ít hơn thời gian để phục hồi lại 1 đĩa bị hư trong công nghệ RAID cũ.

Một đặc điểm khác của RAID – DP là với 1 cặp đĩa bị hư thì gần như là sẽ có 1
đĩa bị  hư trước  một  khoảng  thời gian khi đĩa thứ  2  bị  hư.  Do đó ít nhất  sẽ  có  một  vài thông tin bị mất trên đĩa hư trước đã được phục hồi lại sử dụng giá trị Parity thứ nhất. Và như vậy thời gian cũng như độ đảm bảo của việc phục hồi những giá trị bị mất còn lại sẽ tốt hơn.

3. Ưu điểm

Khả năng chịu lỗi (fault tolerance) và chịu hư hỏng ổ đĩa (drive-failure tolerance) nên có thể hỗ trợ hiệu quả khi nhiều đĩa đồng thời bị hỏng. RAID –DP có khả năng xử lý lỗi trên hơn 2 đĩa cứng hư trong khi ở các loại RAID khác chỉ có thể xử lý lỗi trên 1 đĩa cứng bị hư là nhiều nhất. RAID – DP là giải pháp lý tưởng cho các ứng dụng yêu cầu tính ổn định.

RAID – DP giúp tăng khả năng dự phòng lỗi cho hệ thống hơn so với công nghệ
RAID cũ. Người ta tính toán được rằng RAID – DP gấp 10.000 lần về độ tin cậy hơn so với  các  loại RAID thường.  Với  khả  năng về  độ  tin  cậy  này,  RAID  –  DP  tiếp  cận  với RAID 1 về khả năng dự phòng, nhưng với RAID 4 về giá cả. RAID – DP đưa ra một chi phí phù hợp để xây dựng hệ thống mà  vẫn đảm bảo độ tin cây rất cao.

4. Nhược điểm

Mỗi thao tác ghi phải cần đến 2 lần tính toán và ghi giá trị parity riêng biệt. Do đó tốc độ ghi dữ liệu của RAID – DP sẽ chậm hơn so với RAID 5. Nhưng nó sẽ nhanh hơn RAID 5 trong việc đọc ngẫu nhiên dữ liệu do việc lưu trữ riêng biệt giữa thông tin Parity và giữ liệu trên các đĩa khác nhau. Đồng thời việc dành riêng 2 đĩa để lưu giá trị Parity cũng làm tăng chi phí xây dựng hệ thống. Do đó với hệ thống lưu trữ nhỏ thì việc này quả là tốn kém.

5. Khuyến nghị sử dụng

Công  nghệ  này  thực  sự  thích  hợp đối  với  những  hệ  thống  yêu  cầu  cao  về  khả năng chụi  lỗi  và  tính  an  toàn  về  dữ  liệu,  những  ứng  dụng  yêu  cầu  về  tính  ổn định cao. Ví dụ một số hệ thống như:

  • Các tập tin và ứng dụng trên máy chủ.
  • Cơ sở dữ liệu cho máy chủ.
  • Máy chủ email, web, tin tức,…
  • Máy chủ mạng nội bộ (intranet servers)
  • Thích hợp tốt cho đa người dùng (multiple users)

Posted on 05/11/2011, in Tổng quan công nghệ and tagged , , . Bookmark the permalink. 1 Phản hồi.

  1. Nguyễn Ngọc Sang

    Mình đã đọc hết bài và thấy có một vấn đề chưa thông. Theo ví dụ thì với 6HDD và cách tính DP là đường chéo. Giả dụ có 16 khối trên 4 HDD chứa data thì mình có thể dễ dàng tính ta được DP. Nhưng giả dụ mình chép 1 file có kích thước các khối không phải là bội của 16 thì phần dư sẽ không chép hết vào 16 khối. Với trường hợp như vậy thì mình tính DP như thế nào?

    Giả dụ: nếu không đủ 16 khối thì sẽ chờ khi nào đủ thì thực hiện DP. Nhưng lại vướn một vấn đề là trong lúc chờ (chưa đủ số khối để tính DP) mà xảy ra hư một ổ cứng thì khi đó file đó sẽ không thể phục hồi tại vị trí 16 khối cuối.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: