RAID (Redundant Array of Independent Disk) là công nghệ cho phép nhóm các đĩa cứng vật lý riêng rẽ lại với nhau tạo nên một đơn vị đĩa cứng logic, các đĩa sử dụng công nghệ RAID có khả năng chịu lỗi, có tính dự phòng cao và có hiệu năng lớn [21].
Kỹ thuật Mirroring
Trong kỹ thuật này, một bản sao của dữ liệu được ghi trên một đĩa khác một cách đồng thời, do đó khi có một đĩa bị hỏng thì hệ thống lập tức chuyển sang làm việc với đĩa còn lại mà không bị mất dữ liệu hay gián đoạn dịch vụ.
Có hai loại mirror:
- Mirror phần cứng: bộ điều khiển của thiết bị lưu trữ tự động đồng bộ hai đĩa mà không cần đến sự can thiệp của người quản trị hay hệ điều hành.
- Mirror phần mềm: đòi hỏi hệ điều hành của máy chủ phải đồng bộ các đĩa.
Kỹ thuật Striping
Là một kỹ thuật trong đó dữ liệu được ghi vào và đọc ra từ những phân đoạn có kích thước giống nhau nằm trải trên tất cả các đĩa trong một nhóm RAID. Các đoạn có kích thước giống nhau đó được gọi là các block stripe.
Kỹ thuật này có thể được thực hiện bằng cách cấu hình các đĩa chạy ở chế độ RAID-1/0, RAID 3 hoặc RAID 5. Bằng cách cho phép nhiều đầu đọc ghi làm việc đồng thời trong một hoạt động vào/ra, kỹ thuật này làm hiệu năng ghi đọc được tăng lên rất nhiều.
Kỹ thuật Parity
Parity là một kỹ thuật được áp dụng nhằm bảo vệ dữ liệu, làm cho dữ liệu luôn sẵn sàng ở mức độ cao. Parity giúp cho hệ thống vẫn hoạt động tốt khi có một số đĩa bị lỗi. Nếu một đĩa bị lỗi, bộ điều khiển có thể tái tạo dữ liệu từ những dữ liệu còn lại và thông tin parity. Nếu đĩa chứa thông tin parity lỗi thì thông tin parity có thể được tính toán lại từ các đĩa dữ liệu.
Parity được tính toán trong mỗi lần ghi I/O bằng cách thực hiện một chuỗi phép toán logic XOR giữa các segment dữ liệu được ghi vào đĩa.
2.2.2.1. RAID 0
Đây là dạng RAID có khả năng nâng cao hiệu suất trao đổi dữ liệu của đĩa cứng. Đòi hỏi tối thiểu hai đĩa cứng, RAID 0 cho phép máy tính ghi dữ liệu lên đĩa cứng theo một phương thức đặc biệt được gọi là Striping. Ví dụ, có 8 đoạn dữ liệu được đánh số từ 1 đến 8, các đoạn đánh số lẻ (1,3,5,7) sẽ được ghi lên đĩa cứng đầu tiên và các đoạn đánh số chẵn (2,4,6,8) sẽ được ghi lên đĩa thứ hai.
Thực tế, RAID 0 vẫn ẩn chứa nguy cơ mất dữ liệu. Nguyên nhân chính lại nằm ở cách ghi thông tin xé lẻ vì như vậy dữ liệu không nằm hoàn toàn ở một đĩa cứng nào và mỗi khi cần truy xuất dữ liệu, máy tính sẽ phải tổng hợp từ các đĩa cứng. Nếu một đĩa cứng gặp trục trặc thì dữ liệu đó coi như không thể đọc được và mất luôn. Như vậy RAID 0 thực sự thích hợp cho những người dùng cần truy cập nhanh khối lượng dữ liệu lớn.
Hình 2-11: RAID 0
2.2.2.2. RAID 1
Đây là dạng RAID cơ bản nhất có khả năng đảm bảo an toàn dữ liệu. Cũng giống như RAID 0, RAID 1 đòi hỏi ít nhất hai đĩa cứng để làm việc. Dữ liệu được ghi vào 2 ổ giống hệt nhau (mirroring). Trong trường hợp một ổ bị trục trặc, ổ còn lại sẽ tiếp tục hoạt động bình thường.
2.2.2.3. RAID 0+1
RAID 0+1 là loại RAID lưu trữ nhanh như RAID 0, an toàn như RAID 1. Chính vì thế mà hệ thống RAID kết hợp 0+1 đã ra đời, tổng hợp ưu điểm của cả hai “đàn anh”. Tuy nhiên chi phí cho một hệ thống kiểu này khá đắt, sẽ cần tối thiểu 4 đĩa cứng để chạy RAID 0+1. Dữ liệu sẽ được ghi đồng thời lên 4 đĩa cứng với 2 ổ dạng Striping tăng tốc và 2 ổ dạng Mirroring sao lưu. 4 ổ đĩa này phải giống hệt nhau và khi đưa vào hệ thống RAID 0+1, dung lượng cuối cùng sẽ bằng ½ tổng dung lượng 4 ổ.
Hình 2-13: RAID 0+1
2.2.2.4. RAID 2
RAID 2 xử lý dữ liệu ở mức các bit (thay vì các khối) và sử dụng mã Hamming trong việc sửa lỗi. Các đĩa được đồng bộ nhờ các bộ điều khiển để chạy song song nhau. Đây là loại RAID đầu tiên và hiện không còn được sử dụng nữa.
Hình 2-14: RAID 2
2.2.2.5. RAID 3
RAID 3 xử lý dữ liệu ở mức byte, ghi các byte lên các đĩa khác nhau và dành riêng một đĩa parity. RAID 3 hiếm sử dụng trong thực tế. RAID 3 thường không cho phép phục vụ nhiều yêu cầu đồng thời do bất cứ khối dữ liệu nào đều được trải đều trên tất cả các đĩa.
Hình 2-15: RAID 3
2.2.2.6. RAID 4
RAID 4 sử dụng phương pháp ghi đồng thời các khối dữ liệu lên đĩa và dành riêng ra một đĩa parity. RAID 4 khá giống RAID 3 ngoại trừ nó làm việc với khối dữ liệu thay vì các byte dữ liệu như RAID 3.
Hình 2-16: RAID 4
2.2.2.7. RAID 5
Dữ liệu và bản sao lưu được chia lên tất cả các ổ cứng. Nguyên tắc này khá rắc rối. Trở lại ví dụ về 8 đoạn dữ liệu (1-8) và giờ là 3 ổ đĩa cứng. Đoạn dữ liệu số 1 và số 2 sẽ được ghi vào ổ đĩa 1 và 2 riêng rẽ, đoạn sao lưu của chúng được ghi vào ổ cứng 3. Đoạn số 3 và 4 được ghi vào ổ 1 và 3 với đoạn sao lưu tương ứng ghi vào ổ đĩa 2. Đoạn số 5, 6 ghi vào ổ đĩa 2 và 3, còn đoạn sao lưu được ghi vào ổ đĩa 1 và sau đó trình tự này lặp lại, đoạn số 7, 8 được ghi vào ổ 1, 2 và đoạn sao lưu ghi vào ổ 3 như ban đầu.
Như vậy RAID 5 vừa đảm bảo tốc độ có cải thiện, vừa giữ được tính an toàn cao. Dung lượng đĩa cứng cuối cùng bằng tổng dung lượng đĩa sử dụng trừ đi một ổ.
2.2.2.8. RAID 6
RAID 6 là sự mở rộng của RAID 5 nhằm tăng cường khả năng chịu lỗi bởi việc sử dụng hai thuật toán chẵn lẻ khác nhau. Dữ liệu được trải theo mức block trên các ổ đĩa, cũng giống như RAID 5, tập chẵn lẻ thứ hai sẽ được tính toán và ghi lên tất cả các ổ đĩa. RAID 6 cho phép nhiều ổ đĩa bị hỏng đồng thời. Số lượng ổ đĩa tối thiểu được sử dụng là 4.
Hình 2-18: RAID 6
2.3. CÁC GIAO THỨC SỬ DỤNG TRONG MẠNG LƢU TRỮ
Các giao thức nền tảng được sử dụng trong SAN bao gồm: FCP (Fibre Channel Protocol), FCIP (Fibre Channel over IP), iFCP (Internet Fibre Channel Protocol), iSCSI (Internet SCSI), ... Mỗi giao thức đều có những điểm thuận lợi và những hạn chế riêng. Sau đây là giới thiệu về các công nghệ lưu trữ tiêu chuẩn được sử dụng phổ biến hiện nay.
2.3.1. Giao thức FC (Fibre Channel)
Mục đích của kênh quang là phát triển các phương tiện thích hợp thực tế, giá thành hạ đáp ứng nhu cầu truyền dẫn tốc độ cao giữa các máy trạm, mainframe, super computer, desktop, storage device, …
Có hai kiểu truyền dữ liệu cơ bản giữa các bộ xử lý và giữa bộ xử lý với thiết bị ngoại vi, đó là truyền qua kênh và truyền qua mạng. Một kênh cho phép các kết nối trực tiếp điểm-tới-điểm hoặc chuyển mạch giữa các thiết bị trao đổi thông tin. Kênh là phần cứng chuyên dụng, truyền dẫn dữ liệu tốc độ cao với tổng chi phí thấp. Ngược lại, mạng là một tập hợp các node phân tán (như các máy trạm, các file server, các thiết bị ngoại vi) và có các giao thức hỗ trợ tương tác giữa chúng. Mạng có chi phí tổng thể cao bởi vì chúng sử dụng phần mềm để truyền dẫn, và do đó tốc độ chậm hơn so với truyền dẫn qua kênh. Mạng có thể mở rộng thực hiện nhiều tác vụ hơn, linh động hơn kênh do chúng có thể điều khiển được các kết nối không định trước, trong
khi đó các kênh chỉ điều khiển được một lượng nhỏ các thiết bị với các địa chỉ cho trước.
Kênh quang là giao thức kết hợp cả hai loại hình truyền dữ liệu trên, tạo nên một giao diện mới có cả hai đặc tính của truyền dẫn qua kênh và truyền dẫn qua mạng, đáp ứng nhu cầu của cả những người sử dụng muốn sử dụng kênh và những người sử dụng muốn sử dụng mạng.
Mặc dù có tên gọi “kênh quang” nhưng kiến trúc của nó không đại diện cho cả topo kênh cũng như topo mạng. Nó cho phép một hệ thống các đường kết nối thông minh, gọi là Fabric, kết nối các thiết bị. Tất cả những gì mà một cổng kênh quang làm là quản lý một kết nối điểm - điểm đơn giản giữa nó và Fabric.
Kênh quang là công nghệ kết nối nối tiếp có hiệu năng cao, hỗ trợ các giao thức mức cao hơn khác gồm: FDDI, SCSI, HIPPI và IPI. Chuẩn kênh quang tập trung vào các yêu cầu truyền dẫn tốc độ rất cao với lượng dữ liệu lớn [5, 8].
Hình 2-19: Kiến trúc kênh quang
2.3.1.1. Tầng FC-0
Mức thấp nhất FC-0 liên quan đến các kết nối vật lý trong hệ thống, các phương tiện trong lớp FC-0 bao gồm các cáp, các connector và các bộ phát/thu.
FC-0 liên quan chặt chẽ đến các luồng bit được gửi, nhận và môi trường được sử dụng để truyền luồng bit. Lớp này được gọi là lớp vật lý, chuẩn kênh quang gọi chức năng của lớp này là LCF (Link Control Facility). Lớp vật lý được thiết kế sao cho có thể sử dụng nhiều công nghệ, đáp ứng mức độ cao nhất về yêu cầu hệ thống. Một tuyến truyền dẫn end-to-end có thể chứa nhiều công nghệ kết nối khác nhau để đạt được hiệu năng cao nhất và giảm chi phí tối đa.
Hình 2-20: Sơ đồ cơ chế kết nối quang Fibre Channel
Mô đun OFC (Open Fibre Control)
Kênh quang thường dùng tia laser để truyền dữ liệu. Trong FC-0, mô đun OFC là mô đun đảm bảo an toàn được sử dụng để điều khiển mức công suất của các liên kết dữ liệu qua tia laser sóng ngắn khi công suất quang vượt quá giới hạn an toàn.
Khi xảy ra tình trạng vượt quá công suất trong kết nối, bộ thu của cổng có sợi cáp kết nối tới sẽ phát hiện ra và phát một xung yêu cầu điều chỉnh công suất laser xuống mức thấp hơn, bộ thu của cổng bên kia của dây cáp sẽ nhận xung này và điều khiển bộ phát để phát sóng có công suất thấp hơn. Tuy nhiên nếu sử dụng tia laser có cường độ thấp thì không nhất thiết phải có thành phần OFC (Non-OFC).
Đầu nối
FC-0 cung cấp 4 loại đầu nối để phù hợp với nhiều phương tiện vật lý và các loại cáp đã tồn tại trước đó, đó là: SC đơn mode, SC đa mode, Coax (cho cáp đồng trục), STP 9-pin (cho cáp đồng).
Các đầu nối SC đơn và SC đa mode kết nối với cáp quang. Cáp quang đơn mode mỏng và có băng thông nhỏ hơn cáp quang đa mode do đó cáp quang đơn mode được sử dụng trong truyền dẫn khoảng cách xa, khoảng 10 km, còn cáp quang đa mode dùng trong truyền dẫn với khoảng cách gần hơn, khoảng 500 m.
Chuẩn FC còn cung cấp các đầu nối cho kết nối cáp đồng trục và cáp đồng. Với cáp đồng trục, TNC cho đầu thu còn BNC cho đầu phát. Với cáp đồng, đầu nối STP (Shield Twisted-pair) 9-pin, loại D (DB9) được sử dụng. Để tránh nhầm lẫn trong đấu nối, 5 lỗ ở giữa trong FC DB9 được đổ kín (không sử dụng).
Khái niệm bước sóng laser, liên quan đến các đầu nối đơn và đa mode. Laser sóng dài (LW) được sử dụng cho các kết nối FC khoảng cách xa, từ 500 m đến 10 km, chúng thường được sử dụng với các cáp quang đơn mode có lõi 9 µm.
Laser sóng ngắn (SW) được sử dụng cho các kết nối FC-AL với khoảng cách tối đa 500 m, thông thường được sử dụng cho cáp quang đa mode. Cáp đa mode thông thường có kích thước lõi 50 µm, tuy nhiên kích thước 62,5 µm cũng được sử dụng để tương thích với các thiết bị theo chuẩn FDDI đã tồn tại.
2.3.1.2. Tầng FC-1
FC-1 xác định giao thức truyền dẫn, bao gồm các luật mã hóa và giải mã, các ký tự đặc biệt (các bit đồng bộ) và điều khiển lỗi. Các thông tin truyền qua cáp được mã hóa đồng thời từng 8 bit thành 10 bit ký tự truyền dẫn, gọi là cơ chế mã hoá 8B/10B. Phương pháp mã hoá này được phát triển bởi IBM và là loại mã hoá tốt nhất trong việc hạn chế tốc độ lỗi bit của hệ thống.
8B/10B có thể tìm được các lỗi mà phương pháp kiểm tra chẵn lẻ không phát hiện được, kiểm tra chẵn lẻ không phát hiện ra các bit lỗi ở vị trí lẻ mà chỉ phát hiện các bit lỗi ở vị trí chẵn nhưng 8B/10B phát hiện được hầu hết các lỗi. Kênh quang cũng sử dụng cờ CRC (Cyclic Redundant Check) trong khung dữ liệu truyền cũng với mục đích phát hiện lỗi.
Để tăng độ tin cậy trong truyền dữ liệu, giao thức truyền dẫn FC sử dụng 12 ký tự đặc biệt (mỗi ký tự 8 bit). Tuy nhiên ở đây chỉ đề cập đến một loại phổ biến, đó là ký tự 28.5. Hiện tại, đây là ký tự đặc biệt duy nhất được kênh quang sử dụng trong mã hóa 8B/10B.
Mã hóa trong FC-1
Một byte tín hiệu chưa mã hoá tạo nên bởi 8 bit thông tin A, B, C, D, E, F, G, H và biến số điều khiển Z. Các bit thông tin này được mã hoá bởi FC-1 thành các bit a, b, c, d, e, i, f, g, h, j của ký tự truyền dẫn 10 bit. Giá trị i và j phụ thuộc vào RD (Running Disparity). Biến điều khiển có giá trị D - ứng với dữ liệu, hoặc K - ứng với ký tự đặc biệt.
Mỗi ký tự truyền dẫn hợp lệ được gán một tên theo quy tắc: Zxx.y, trong đó Z là biến điều khiển của byte thông tin chưa mã hoá FC-1, xx là giá trị thập phân của số nhị
phân tạo nên bởi các bit E, D, C, B, A và y là giá trị thập phân tạo nên bởi các bit F, H, G trong byte thông tin chưa mã hoá FC-1 theo đúng thứ tự.
Ví dụ tên của ký tự truyền dẫn FC-1 được tạo bởi số thập lục phân „BC‟, mã hoá kiểu K là K28.5
Luật mã hóa
Các byte mã hoá 8B/10B có một đặc tính gọi là độ lệch (disparity), thông số này có thể nhận giá trị âm, giá trị dương hoặc trung lập. Một byte 8B/10B được gọi là lệch âm nếu số bit 1 lớn hơn số bit 0 trong byte đó, ngược lại là lệch dương, và trung lập khi số bit 0 và số bit 1 bằng nhau.
Mỗi byte dữ liệu hoặc ký tự đặc biệt có hai mã truyền (không nhất thiết phải khác nhau). Byte dữ liệu và ký tự đặc biệt được mã hóa thành các mã này một cách lần lượt, phụ thuộc vào RD ban đầu.
RD là một thông số nhị phân, được tính toán dựa trên sự cân bằng giữa các bit 0 và 1 trong các block con (6 bit đầu tiên và 4 bit cuối cùng) của ký tự truyền dẫn. Một RD mới được tính toán từ ký tự đã được truyền ở cả hai bộ phát và bộ thu. Nếu ký tự được phát hiện có RD ngược với RD mà lẽ ra bộ phát phải phát (phụ thuộc vào RD của dòng bit trước) thì bộ thu sẽ hiển thị tình trạng không tương ứng.
Từ truyền dẫn
Một từ truyền dẫn được tạo bởi 4 ký tự truyền dẫn liền nhau. Do luật mã hoá 8B/10B mã 8 bit thành một ký tự 10 bit nên một từ truyền dẫn là một nhóm gồm 40 bit. Một từ truyền dẫn có thể thuộc về một trong hai loại sau:
- Dữ liệu: Ký tự truyền dẫn đầu tiên là một byte dữ liệu đã được mã hóa. - Ordered Set: Ký tự truyền dẫn thứ 4 là ký tự đặc biệt K28.5.
2.3.1.3. Tầng FC-2
Tầng FC-2 là tầng phức tạp nhất trong các tầng của giao thức. Chức năng chính của tầng FC-2 là đóng gói dữ liệu sử dụng các khung, điều khiển luồng và các lớp dịch