alika
08-02-2007, 12:58 AM
Chắc chắn bạn không khỏi thắc mắc RAID là gì? RAID hoạt động như thế nào? Cần những gì để chạy RAID?
Bất kể có phải là “dân trong nghề” hay không, nếu đã có một niềm đam mê với công nghệ máy tính, đặc biệt là phần cứng, ít nhiều chúng ta đều đã từng nghe nói đến công nghệ chống lỗi và tăng tốc đĩa cứng RAID (Redundant Array of Inexpensive Disk). Chắc chắn bạn không khỏi thắc mắc RAID là gì ? RAID hoạt động như thế nào ? Cần những gì để chạy RAID ? …
Để trả lời cho những câu hỏi như vậy, chúng tôi thực hiện bài viết này nhằm giúp bạn có thể tìm thêm cho mình một “hòn sỏi” nữa trên bãi biển mênh mông của đại dương tri thức. Hy vọng bạn có thể tìm thấy nhiều điều bổ ích cho mình sau khi đọc bài này. Tuy nhiên trước hết xin có một lưu ý nhỏ, để thuận tiện cho bạn đọc tìm hiểu, bài viết được xây dựng từ những khái niệm cơ bản nhất tới những vấn đề mang tính công nghệ, nhằm giúp bạn có một cái nhìn tổng quan nhất về RAID.
Khái niệm cơ bản và các kỹ thuật RAID
I – Dãy đĩa vật lý, luận lý và bộ điều khiển RAID
Trước khi đi sâu vào vấn đề chính của bài viết, bạn cần nắm được khái niệm “dãy đĩa” (Disk array). Khái niệm dãy nói đến việc một số ổ đĩa cứng đã được thiết lập, định dạng, quản lý và tổ chức theo một cách đặc biệt để đem lại hiệu quả hoạt động cao hơn. Số lượng ổ đĩa trong một dãy và cách chia sẻ dữ liệu để các đĩa cứng trong dãy hoạt động, đặc trưng cho từng chuẩn RAID mà chúng ta sẽ bàn đến ở phần sau của bài viết. Ngoài ra, mỗi loại RAID còn có một đặc điểm riêng như: tổng dung lượng của dãy, hiệu năng tổng thể, khả năng bảo vệ dữ liệu… Quyết định sẽ sử dụng dãy đĩa dạng nào chính là việc đầu tiên bạn cần làm khi thiết lập một hệ thống RAID.
Sau đây là một số khái niệm cơ bản nhằm giúp bạn chuẩn bị tốt để chuẩn bị cho những phần sau của bài viết:
Ổ đĩa vật lý (Physical Drive): là những ổ đĩa cứng “thực” mà bạn sử dụng để thiết lập RAID.
Dãy đĩa vật lý (Physical Array): Một hoặc nhiều ổ đĩa vật lý hợp lại với nhau tạo thành một dãy đĩa vật lý. Đa số các chuẩn RAID đơn giản thường chỉ thiết lập một dãy đĩa vật lý để hoạt động, tuy nhiên những chuẩn RAID cao cấp hơn thường sử dụng từ hai dãy đĩa vật lý trở lên.
Dãy đĩa luận lý (Logical Array): Dãy đĩa luận lý được thiết lập bằng các “tách” hoặc tổng hợp các dãy đĩa vật lý. Một dãy đĩa luận lý cũng tương tự như một dãy đĩa vật lý. Chúng ta hoàn toàn có thể tổng hợp một dãy đĩa luận lý từ nhiều dãy đĩa vật lý khác nhau để chạy các chuẩn RAID phức tạp.
Ổ đĩa luận lý (Logicak Drive): Một hoặc nhiều các ổ đĩa phân chia bởi dãy đĩa luận lý. Nó được hiểu như một ổ cứng thông thường trong hệ điều hành.
Bộ điều khiển RAID (RAID Controller): Bộ phần điều khiển và chịu trách nhiệm quản lý, tổ chức các chế độ RAID và các dãy đĩa (vật lý và luận lý) trong hệ thống. Các bộ phận điều khiển này thường dưới dạng tích hợp vào bo mạch chủ, card gắn trong hay một thiết bị phần cứng độc lập.Trước khi tìm hiểu về từng loại RAID, cũng như nguyên lý hoạt động của chúng, bạn cần phân biệt CÁC CHUẨN RAID với CÁC LOẠI RAID. CÁC CHUẨN RAID là các công nghệ lưu trữ, tổng hợp, phân tách dữ liệu,… được sử dụng trong RAID, còn CÁC LOẠI RAID (hay cấp độ RAID) là những chế độ RAID được ứng dụng dựa trên những công nghệ nói trên. Sau đây sẽ là các chuẩn RAID đã và đang được nghiên cứu, phát triển.
II – Ánh xạ (Mirroring)
Mirroring là một trong hai công nghệ cao cấp được sử dụng trong RAID (công nghệ còn lại là Parity RAID). Trên một hệ thống RAID sử dụng Mirroring, tất cả dữ liệu được ghi một cách giả lập trên hai đĩa cứng như đối với một đĩa. Chính vì lẽ đó, Mirroring yêu cầu một số chẵn các ổ đĩa trong dãy đĩa vật lý cũng như luận lý.
http://www.itconnect.vn/tapchi/baiviet/So23_CNUD_RAID_image1.jpg
Sơ đồ hoạt động của Mirroring. Bộ điều khiển RAID sao chépcác dữ liệu từ mỗi đĩa cứng tới các đĩa cứng còn lại trongdãy đĩa.
Lợi ích của Mirroring là toàn bộ dữ liệu của bạn luôn được đặt trong tình trạng an toàn cao nhất, bảo đảm cho hệ thống tiếp tục hoạt động khi một trong hai đĩa cứng gặp lỗi vật lý, đồng thời đem lại khả năng phục hồi dữ liệu cực nhanh. Công việc cần làm chỉ là thay đĩa cứng bị hỏng bởi một đĩa cứng mới và… bật máy lên! Từ sơ đồ hoạt động trên, chúng ta dễ dàng hiểu được Mirroring sẽ cải thiện tốc độ đọc dữ liệu – mặc dù tốc độ ghi có phần giảm sút, nhưng không nhiều. Tuy nhiên, Mirroring cũng có nhược điểm là gây ra cảm giác “lãng phí” khi bạn phải chi tiền cho một dung lượng lưu trữ khá lớn mà hiệu quả sử dụng chỉ là phân nửa.
Công nghệ Mirroring được sử dụng trong RAID 1, cũng như các loại RAID tổng hợp có bao gồm RAID 1 (như RAID 10). Mirroring cũng là nền móng cho kỹ thuật RAID “ghép đôi” (Duplexing RAID) ra đời sau này.
III – Ghép đôi (Duplexing)
Là một chuẩn mở rộng của Mirroring, Duplexing có những nét tương tự về mặt công nghệ như chuẩn ánh xạ đề cập ở trên. Dữ liệu cũng được ghi như nhau trên hai ổ đĩa. Tuy nhiên có một điểm khác biệt ở đây là Duplexing không chỉ “nhân đôi” dữ liệu mà thậm chí còn “nhân đôi” cả yêu cầu về phần cứng. Cụ thể, bạn cần tới hai bộ điều khiển RAID để kết nối hai ổ đĩa dùng trong Duplexing (mỗi ổ đĩa sẽ kết nối tới một bộ điều khiển).
http://www.itconnect.vn/tapchi/baiviet/So23_CNUD_RAID_image3.jpgSơ đồ hoạt động của Duplexing
Duplexing mang tính bảo mật cao hơn Mirroring một bậc, vì nó còn có khả năng hạn chế những hư hỏng từ bộ phận điều khiển. Duplexing cũng là một lựa chọn đáng giá khi bạn muốn sử dụng RAID 1 cho hệ thống lưu trữ của mình, mặc dù có giá thành cao hơn Mirroring. Ở đây có một điểm đáng chú ý là đa số chúng ta (kể cả những tay “chơi” phần cứng lâu năm lẫn những tạp chí và website danh tiếng) đều nhầm lẫn rằng để sử dụng RAID 1, chúng ta chỉ có thể áp dụng phương pháp Mirroring. Thậm chí mức độ nhầm lẫn còn lớn đến mức nhiều tạp chí còn gọi RAID 1 là RAID Mirroring!
Từ khi chuẩn RAID bắt đầu trở nên phổ biến trên các hệ thống máy tính để bàn, vẫn chưa có một giải pháp chính thức nào được công bố hỗ trợ Duplexing RAID từ phần cứng, mà hầu hết là dưới dạng phần mềm. Có chăng chỉ là những thiết bị RAID dưới dạng gắn ngoài. Do đó, bạn cần cân nhắc kỹ trước khi có ý định chọn giải pháp này cho mình.
IV – Song hành (Striping)
Một trong những chuẩn RAID đem lại hiệu năng cao nhất. Trong một dãy gồm nhiều ổ đĩa, chúng ta có thể tăng tốc độ truy cập lên mức tối đa bằng cách ghi song song dữ liệu trên các ổ đĩa này. Theo đó, dung lượng ổ đĩa sẽ được chia thành nhiều phần nhỏ giống như những sọc kẻ (stripe) vậy. Dữ liệu sẽ được ghi trên các sọc của từng ổ đĩa. Dễ hiểu hơn, trong trường hợp bạn muốn ghi một tập tin lên đĩa cứng, thay vì phương pháp cổ điển, kỹ thuật Striping sẽ chia nhỏ tệp này ra rồi ghi mỗi phần của tệp lên một ổ cứng trong dãy một cách đồng thời. Theo cách này, khi bạn cần đọc dữ liệu, bộ điều khiển cũng sẽ đọc cùng lúc trên tất cả các ổ đĩa, hệ quả là hiệu năng của hệ thống lưu trữ sẽ được nâng cao lên rất nhiều – tùy thuộc vào số ổ đĩa trong dãy.
Striping có thể thực hiện ở cấp độ các byte, hoặc ở cấp độ các block dữ liệu. Ở cấp độ byte được sử dụng trong RAID 3, tập tin sẽ được chia thành từng gói nhỏ có kích thước một byte, và bộ điều khiển sẽ ghi từng byte này lên các ổ đĩa. Trái lại, trong cấp độ block, tùy theo kích thước block mà các phần của tập tin được chia nhỏ sẽ được lưu và phân bố trên các block này. Để hiểu rõ hơn về cách ghi dữ liệu của Striping, bạn có thể xem hình vẽ.
http://www.itconnect.vn/tapchi/baiviet/So23_CNUD_RAID_image5.jpgSơ đồ hoạt động của Striping. Bộ điều khiển RAID chia nhỏ dữ liệu vàocác block hoặc thành từng bit rồi phân bố chúng vào các ổ đĩa cứng. Kích thước block xác định kích thước của từng phần dữ liệu bị chia nhỏ. Trong hình vẽ, block đầu tiên của dữ liệu được ghi lên đĩa 1, block thứ hai được ghi lên đĩa 2… cho tới block thứ 5 lại được ghi lên đĩa 1, cứ tiếp tục như vậy cho đến khi ghi hết dữ liệu.
Theo nhiều thống kê từ các website nổi tiếng, phần lớn người dùng chọn RAID 1 cho việc lưu trữ của mình. Tốc độ kèm theo sự linh hoạt với hứa hẹn “số ổ đĩa tăng thêm bao nhiêu thì tốc độ cũng tăng lên bấy nhiêu” đã đem lại thị phần lớn cho RAID 1 trong các hệ thống máy tính gia đình. Tuy nhiên, chấp nhận sử dụng RAID 1 cũng đồng nghĩa với việc dữ liệu của bạn có thể không cánh mà bay bất kỳ lúc nào, bởi chỉ cần một trong số các đĩa cứng gặp trục trặc thì toàn bộ hệ thống sẽ không thể tiếp tục duy trì hoạt động được.
V - Parity RAID
Mirroring là một công nghệ được sử dụng trong một số cấp độ RAID phổ biến (điển hình là RAID 1), cung cấp khả năng bảo vệ dữ liệu trên các dãy đĩa. Mặc dù vậy, Mirroring cũng gặp khá nhiều hạn chế. Thứ nhất, nó gây ra cảm giác lãng phí cho người dùng như đã đề cập ở trên. Thứ hai, nó đem lại khả năng tăng tốc rất ít cho việc lưu trữ và sử dụng dữ liệu. Chính những nguyên này đã thúc đẩy công nghệ RAID tiếp tục phát triển không ngừng. Các nhà sản xuất trong lĩnh vực lưu trữ đã đưa ra một phương pháp khác để bảo vệ an toàn cho dữ liệu là sử dụng các thông tin mang tính “chẵn lẻ” đặc biệt gọi là Parity Information được tính toán thực tế từ giá trị của dữ liệu.
Có thể bạn đã nghe nói đến thuật ngữ “Parity” từ trước khi đọc bài viết này. Thật vậy, khái niệm “chẵn lẻ” được sử dụng trong cơ chế chống lỗi của bộ nhớ truy xuất ngẫu nhiên (RAM) máy tính: trước hết, bộ nhớ kiểm tra chẵn lẻ bằng cách lưu giữ một con số nhị phân (0 hoặc 1) cho biết tổng số các bit trong một gói dữ liệu hay chẵn hay lẻ. Khi gói dữ liệu đó được đọc từ bộ nhớ ra, hoặc nhận được từ máy tính khác truyền tới, một quá trình kiểm tra chẵn lẻ sẽ xảy ra. Nếu việc kiểm tra chẵn lẻ này khẳng định bit bậc là không đúng, máy tính sẽ hiển thị một thông báo lỗi.
Sự thật, “Parity” của công nghệ RAID cũng có rất nhiều điểm tương đồng với thuật ngữ trên trong công nghệ bộ nhớ. Nguyên tắc hoạt động của Parity rất đơn giản: trước hết, bộ điều khiển sẽ lấy gói dữ liệu X làm mẫu, từ đó tính toán các gói dữ liệu khác. Ví dụ: lấy gói dữ liệu X + 1 rồi ghi chúng lên ổ đĩa thứ “X + 1”, cứ như vậy tiếp tục đến gói thứ X + 2, X + 3,… Nếu bạn mất bất kỳ gói dữ liệu nào từ các gói sau này, bộ điều khiển sẽ khôi phục lại nó dựa trên các tính toán từ gói X, bất chấp gói bị mất vì lý do gì.
Parity RAID được ứng dụng trong công nghệ Striping đã nói ở trên, và gói dữ liệu X tượng trưng cho các byte hay block dữ liệu được phân bố cho các ổ đĩa trong dãy. Việc tính toán “chẵn lẻ” được nhắc đến như trên được thực hiện bởi các hàm luận lý “OR” và “XOR” khá quen thuộc với những người học lập trình mà bạn có thể thấy như trong bảng dưới đây:
http://img165.imageshack.us/img165/5756/untitledod1.jpg
Lợi ích lớn nhất của Parity RAID là không yêu cầu hệ thống RAID phải bớt đi phân nửa dung lượng lưu trữ để đổi lấy độ an toàn dữ liệu. Bạn chỉ mất đi dung lượng của ổ đĩa X + 1 dành cho việc khôi phục dữ liệu mà thôi. Tuy nhiên, hạn chế của công nghệ này là yêu cầu một nền tảng phần cứng thật mạnh, đặc biệt là bộ vi xử lý, để có thể vừa làm việc, vừa tính toán các giá trị chẵn – lẻ cho công việc lưu trữ.
Parity RAID được sử dụng cho tất cả các cấp độ RAID từ 3 đến 7, trong đó RAID 5 là phổ biến nhất. Cấp độ RAID 2 cũng sử dụng một cơ chế gần giống như Parity RAID, tuy nhiên giữa chúng cũng có nhiều điểm khác biệt. Ngoài ra, chúng ta cũng không thể không kể đến sự kết hợp tuyệt vời giữa Striping và Parity RAID – một sự kết hợp đem lại tốc độ và tính an toàn hoàn hảo cho dữ liệu.
Bất kể có phải là “dân trong nghề” hay không, nếu đã có một niềm đam mê với công nghệ máy tính, đặc biệt là phần cứng, ít nhiều chúng ta đều đã từng nghe nói đến công nghệ chống lỗi và tăng tốc đĩa cứng RAID (Redundant Array of Inexpensive Disk). Chắc chắn bạn không khỏi thắc mắc RAID là gì ? RAID hoạt động như thế nào ? Cần những gì để chạy RAID ? …
Để trả lời cho những câu hỏi như vậy, chúng tôi thực hiện bài viết này nhằm giúp bạn có thể tìm thêm cho mình một “hòn sỏi” nữa trên bãi biển mênh mông của đại dương tri thức. Hy vọng bạn có thể tìm thấy nhiều điều bổ ích cho mình sau khi đọc bài này. Tuy nhiên trước hết xin có một lưu ý nhỏ, để thuận tiện cho bạn đọc tìm hiểu, bài viết được xây dựng từ những khái niệm cơ bản nhất tới những vấn đề mang tính công nghệ, nhằm giúp bạn có một cái nhìn tổng quan nhất về RAID.
Khái niệm cơ bản và các kỹ thuật RAID
I – Dãy đĩa vật lý, luận lý và bộ điều khiển RAID
Trước khi đi sâu vào vấn đề chính của bài viết, bạn cần nắm được khái niệm “dãy đĩa” (Disk array). Khái niệm dãy nói đến việc một số ổ đĩa cứng đã được thiết lập, định dạng, quản lý và tổ chức theo một cách đặc biệt để đem lại hiệu quả hoạt động cao hơn. Số lượng ổ đĩa trong một dãy và cách chia sẻ dữ liệu để các đĩa cứng trong dãy hoạt động, đặc trưng cho từng chuẩn RAID mà chúng ta sẽ bàn đến ở phần sau của bài viết. Ngoài ra, mỗi loại RAID còn có một đặc điểm riêng như: tổng dung lượng của dãy, hiệu năng tổng thể, khả năng bảo vệ dữ liệu… Quyết định sẽ sử dụng dãy đĩa dạng nào chính là việc đầu tiên bạn cần làm khi thiết lập một hệ thống RAID.
Sau đây là một số khái niệm cơ bản nhằm giúp bạn chuẩn bị tốt để chuẩn bị cho những phần sau của bài viết:
Ổ đĩa vật lý (Physical Drive): là những ổ đĩa cứng “thực” mà bạn sử dụng để thiết lập RAID.
Dãy đĩa vật lý (Physical Array): Một hoặc nhiều ổ đĩa vật lý hợp lại với nhau tạo thành một dãy đĩa vật lý. Đa số các chuẩn RAID đơn giản thường chỉ thiết lập một dãy đĩa vật lý để hoạt động, tuy nhiên những chuẩn RAID cao cấp hơn thường sử dụng từ hai dãy đĩa vật lý trở lên.
Dãy đĩa luận lý (Logical Array): Dãy đĩa luận lý được thiết lập bằng các “tách” hoặc tổng hợp các dãy đĩa vật lý. Một dãy đĩa luận lý cũng tương tự như một dãy đĩa vật lý. Chúng ta hoàn toàn có thể tổng hợp một dãy đĩa luận lý từ nhiều dãy đĩa vật lý khác nhau để chạy các chuẩn RAID phức tạp.
Ổ đĩa luận lý (Logicak Drive): Một hoặc nhiều các ổ đĩa phân chia bởi dãy đĩa luận lý. Nó được hiểu như một ổ cứng thông thường trong hệ điều hành.
Bộ điều khiển RAID (RAID Controller): Bộ phần điều khiển và chịu trách nhiệm quản lý, tổ chức các chế độ RAID và các dãy đĩa (vật lý và luận lý) trong hệ thống. Các bộ phận điều khiển này thường dưới dạng tích hợp vào bo mạch chủ, card gắn trong hay một thiết bị phần cứng độc lập.Trước khi tìm hiểu về từng loại RAID, cũng như nguyên lý hoạt động của chúng, bạn cần phân biệt CÁC CHUẨN RAID với CÁC LOẠI RAID. CÁC CHUẨN RAID là các công nghệ lưu trữ, tổng hợp, phân tách dữ liệu,… được sử dụng trong RAID, còn CÁC LOẠI RAID (hay cấp độ RAID) là những chế độ RAID được ứng dụng dựa trên những công nghệ nói trên. Sau đây sẽ là các chuẩn RAID đã và đang được nghiên cứu, phát triển.
II – Ánh xạ (Mirroring)
Mirroring là một trong hai công nghệ cao cấp được sử dụng trong RAID (công nghệ còn lại là Parity RAID). Trên một hệ thống RAID sử dụng Mirroring, tất cả dữ liệu được ghi một cách giả lập trên hai đĩa cứng như đối với một đĩa. Chính vì lẽ đó, Mirroring yêu cầu một số chẵn các ổ đĩa trong dãy đĩa vật lý cũng như luận lý.
http://www.itconnect.vn/tapchi/baiviet/So23_CNUD_RAID_image1.jpg
Sơ đồ hoạt động của Mirroring. Bộ điều khiển RAID sao chépcác dữ liệu từ mỗi đĩa cứng tới các đĩa cứng còn lại trongdãy đĩa.
Lợi ích của Mirroring là toàn bộ dữ liệu của bạn luôn được đặt trong tình trạng an toàn cao nhất, bảo đảm cho hệ thống tiếp tục hoạt động khi một trong hai đĩa cứng gặp lỗi vật lý, đồng thời đem lại khả năng phục hồi dữ liệu cực nhanh. Công việc cần làm chỉ là thay đĩa cứng bị hỏng bởi một đĩa cứng mới và… bật máy lên! Từ sơ đồ hoạt động trên, chúng ta dễ dàng hiểu được Mirroring sẽ cải thiện tốc độ đọc dữ liệu – mặc dù tốc độ ghi có phần giảm sút, nhưng không nhiều. Tuy nhiên, Mirroring cũng có nhược điểm là gây ra cảm giác “lãng phí” khi bạn phải chi tiền cho một dung lượng lưu trữ khá lớn mà hiệu quả sử dụng chỉ là phân nửa.
Công nghệ Mirroring được sử dụng trong RAID 1, cũng như các loại RAID tổng hợp có bao gồm RAID 1 (như RAID 10). Mirroring cũng là nền móng cho kỹ thuật RAID “ghép đôi” (Duplexing RAID) ra đời sau này.
III – Ghép đôi (Duplexing)
Là một chuẩn mở rộng của Mirroring, Duplexing có những nét tương tự về mặt công nghệ như chuẩn ánh xạ đề cập ở trên. Dữ liệu cũng được ghi như nhau trên hai ổ đĩa. Tuy nhiên có một điểm khác biệt ở đây là Duplexing không chỉ “nhân đôi” dữ liệu mà thậm chí còn “nhân đôi” cả yêu cầu về phần cứng. Cụ thể, bạn cần tới hai bộ điều khiển RAID để kết nối hai ổ đĩa dùng trong Duplexing (mỗi ổ đĩa sẽ kết nối tới một bộ điều khiển).
http://www.itconnect.vn/tapchi/baiviet/So23_CNUD_RAID_image3.jpgSơ đồ hoạt động của Duplexing
Duplexing mang tính bảo mật cao hơn Mirroring một bậc, vì nó còn có khả năng hạn chế những hư hỏng từ bộ phận điều khiển. Duplexing cũng là một lựa chọn đáng giá khi bạn muốn sử dụng RAID 1 cho hệ thống lưu trữ của mình, mặc dù có giá thành cao hơn Mirroring. Ở đây có một điểm đáng chú ý là đa số chúng ta (kể cả những tay “chơi” phần cứng lâu năm lẫn những tạp chí và website danh tiếng) đều nhầm lẫn rằng để sử dụng RAID 1, chúng ta chỉ có thể áp dụng phương pháp Mirroring. Thậm chí mức độ nhầm lẫn còn lớn đến mức nhiều tạp chí còn gọi RAID 1 là RAID Mirroring!
Từ khi chuẩn RAID bắt đầu trở nên phổ biến trên các hệ thống máy tính để bàn, vẫn chưa có một giải pháp chính thức nào được công bố hỗ trợ Duplexing RAID từ phần cứng, mà hầu hết là dưới dạng phần mềm. Có chăng chỉ là những thiết bị RAID dưới dạng gắn ngoài. Do đó, bạn cần cân nhắc kỹ trước khi có ý định chọn giải pháp này cho mình.
IV – Song hành (Striping)
Một trong những chuẩn RAID đem lại hiệu năng cao nhất. Trong một dãy gồm nhiều ổ đĩa, chúng ta có thể tăng tốc độ truy cập lên mức tối đa bằng cách ghi song song dữ liệu trên các ổ đĩa này. Theo đó, dung lượng ổ đĩa sẽ được chia thành nhiều phần nhỏ giống như những sọc kẻ (stripe) vậy. Dữ liệu sẽ được ghi trên các sọc của từng ổ đĩa. Dễ hiểu hơn, trong trường hợp bạn muốn ghi một tập tin lên đĩa cứng, thay vì phương pháp cổ điển, kỹ thuật Striping sẽ chia nhỏ tệp này ra rồi ghi mỗi phần của tệp lên một ổ cứng trong dãy một cách đồng thời. Theo cách này, khi bạn cần đọc dữ liệu, bộ điều khiển cũng sẽ đọc cùng lúc trên tất cả các ổ đĩa, hệ quả là hiệu năng của hệ thống lưu trữ sẽ được nâng cao lên rất nhiều – tùy thuộc vào số ổ đĩa trong dãy.
Striping có thể thực hiện ở cấp độ các byte, hoặc ở cấp độ các block dữ liệu. Ở cấp độ byte được sử dụng trong RAID 3, tập tin sẽ được chia thành từng gói nhỏ có kích thước một byte, và bộ điều khiển sẽ ghi từng byte này lên các ổ đĩa. Trái lại, trong cấp độ block, tùy theo kích thước block mà các phần của tập tin được chia nhỏ sẽ được lưu và phân bố trên các block này. Để hiểu rõ hơn về cách ghi dữ liệu của Striping, bạn có thể xem hình vẽ.
http://www.itconnect.vn/tapchi/baiviet/So23_CNUD_RAID_image5.jpgSơ đồ hoạt động của Striping. Bộ điều khiển RAID chia nhỏ dữ liệu vàocác block hoặc thành từng bit rồi phân bố chúng vào các ổ đĩa cứng. Kích thước block xác định kích thước của từng phần dữ liệu bị chia nhỏ. Trong hình vẽ, block đầu tiên của dữ liệu được ghi lên đĩa 1, block thứ hai được ghi lên đĩa 2… cho tới block thứ 5 lại được ghi lên đĩa 1, cứ tiếp tục như vậy cho đến khi ghi hết dữ liệu.
Theo nhiều thống kê từ các website nổi tiếng, phần lớn người dùng chọn RAID 1 cho việc lưu trữ của mình. Tốc độ kèm theo sự linh hoạt với hứa hẹn “số ổ đĩa tăng thêm bao nhiêu thì tốc độ cũng tăng lên bấy nhiêu” đã đem lại thị phần lớn cho RAID 1 trong các hệ thống máy tính gia đình. Tuy nhiên, chấp nhận sử dụng RAID 1 cũng đồng nghĩa với việc dữ liệu của bạn có thể không cánh mà bay bất kỳ lúc nào, bởi chỉ cần một trong số các đĩa cứng gặp trục trặc thì toàn bộ hệ thống sẽ không thể tiếp tục duy trì hoạt động được.
V - Parity RAID
Mirroring là một công nghệ được sử dụng trong một số cấp độ RAID phổ biến (điển hình là RAID 1), cung cấp khả năng bảo vệ dữ liệu trên các dãy đĩa. Mặc dù vậy, Mirroring cũng gặp khá nhiều hạn chế. Thứ nhất, nó gây ra cảm giác lãng phí cho người dùng như đã đề cập ở trên. Thứ hai, nó đem lại khả năng tăng tốc rất ít cho việc lưu trữ và sử dụng dữ liệu. Chính những nguyên này đã thúc đẩy công nghệ RAID tiếp tục phát triển không ngừng. Các nhà sản xuất trong lĩnh vực lưu trữ đã đưa ra một phương pháp khác để bảo vệ an toàn cho dữ liệu là sử dụng các thông tin mang tính “chẵn lẻ” đặc biệt gọi là Parity Information được tính toán thực tế từ giá trị của dữ liệu.
Có thể bạn đã nghe nói đến thuật ngữ “Parity” từ trước khi đọc bài viết này. Thật vậy, khái niệm “chẵn lẻ” được sử dụng trong cơ chế chống lỗi của bộ nhớ truy xuất ngẫu nhiên (RAM) máy tính: trước hết, bộ nhớ kiểm tra chẵn lẻ bằng cách lưu giữ một con số nhị phân (0 hoặc 1) cho biết tổng số các bit trong một gói dữ liệu hay chẵn hay lẻ. Khi gói dữ liệu đó được đọc từ bộ nhớ ra, hoặc nhận được từ máy tính khác truyền tới, một quá trình kiểm tra chẵn lẻ sẽ xảy ra. Nếu việc kiểm tra chẵn lẻ này khẳng định bit bậc là không đúng, máy tính sẽ hiển thị một thông báo lỗi.
Sự thật, “Parity” của công nghệ RAID cũng có rất nhiều điểm tương đồng với thuật ngữ trên trong công nghệ bộ nhớ. Nguyên tắc hoạt động của Parity rất đơn giản: trước hết, bộ điều khiển sẽ lấy gói dữ liệu X làm mẫu, từ đó tính toán các gói dữ liệu khác. Ví dụ: lấy gói dữ liệu X + 1 rồi ghi chúng lên ổ đĩa thứ “X + 1”, cứ như vậy tiếp tục đến gói thứ X + 2, X + 3,… Nếu bạn mất bất kỳ gói dữ liệu nào từ các gói sau này, bộ điều khiển sẽ khôi phục lại nó dựa trên các tính toán từ gói X, bất chấp gói bị mất vì lý do gì.
Parity RAID được ứng dụng trong công nghệ Striping đã nói ở trên, và gói dữ liệu X tượng trưng cho các byte hay block dữ liệu được phân bố cho các ổ đĩa trong dãy. Việc tính toán “chẵn lẻ” được nhắc đến như trên được thực hiện bởi các hàm luận lý “OR” và “XOR” khá quen thuộc với những người học lập trình mà bạn có thể thấy như trong bảng dưới đây:
http://img165.imageshack.us/img165/5756/untitledod1.jpg
Lợi ích lớn nhất của Parity RAID là không yêu cầu hệ thống RAID phải bớt đi phân nửa dung lượng lưu trữ để đổi lấy độ an toàn dữ liệu. Bạn chỉ mất đi dung lượng của ổ đĩa X + 1 dành cho việc khôi phục dữ liệu mà thôi. Tuy nhiên, hạn chế của công nghệ này là yêu cầu một nền tảng phần cứng thật mạnh, đặc biệt là bộ vi xử lý, để có thể vừa làm việc, vừa tính toán các giá trị chẵn – lẻ cho công việc lưu trữ.
Parity RAID được sử dụng cho tất cả các cấp độ RAID từ 3 đến 7, trong đó RAID 5 là phổ biến nhất. Cấp độ RAID 2 cũng sử dụng một cơ chế gần giống như Parity RAID, tuy nhiên giữa chúng cũng có nhiều điểm khác biệt. Ngoài ra, chúng ta cũng không thể không kể đến sự kết hợp tuyệt vời giữa Striping và Parity RAID – một sự kết hợp đem lại tốc độ và tính an toàn hoàn hảo cho dữ liệu.
