Posted by : Unknown Thứ Sáu, 6 tháng 6, 2014

Giới thiệu:

IBM Power System server được thiết kế để đem lại khả năng sẵn sàng cao cho hệ thống, tuy nhiên đôi khi doanh nghiệp cũng cần phải cấu trúc lại hệ thống để đáp ứng yêu cầu và thay đổi của công nghệ hoặc các công việc bảo trì.
Một mô hình chuẩn của MPIO chưa bao giờ được đề cập trong một tài liệu chính thống. Trong một số tài liệu và IBM Redbook có thể đề cập ngắn tới một số khía cạnh của MPIO nhưng việc đề cập chi tiết về cấu hình MPIO vẫn còn thiếu.
Một số tính năng trong bài này được sử dụng cho công nghệ hiện tại trong AIX, path control module (PCM) được cung cấp kèm theo AIX. Nếu sử dụng Subsystem Device Path Control Module (SDDPCM) hoặc gói Object Dât Manager (ODM) được cung cấp bởi hãng thứ ba thì có thể nội dung trong bài này không còn chuẩn xác và cần tìm hiểu thêm.
Kiến trúc MPIO trong AIX cho phép IBM hoặc hãng cung cấp storage thứ ba có thể cung cấp các định nghĩa ODM là các giá trị duy nhất cho tham số trên disk. Người đọc có thể tìm thấy các tham số trong bài viết này bằng cách sử dụng lệnh lsattr và có thể thay đổi tham số bằng lệnh chdev.  

Nội dung 1: Reserve_policy
Tham số này sẽ quyết định việc thiết bị (disk) được sử dụng như thế nào.
-         Reserve_policy= no_reserve : lúc này, disk có thể được truy nhập bởi nhiều đối tượng, các đối tượng này có thể nằm trên nhiều server.
-         Reserve_policy= single_path_reserve : sử dụng SCSI2 reserve trên disk, khi đó disk chỉ có thể được truy nhập bởi một đối tượng. Cơ chế này ngăn các đối tượng khác trên cùng host hoặc trên nhiều host truy nhập vào thiết bị. Cơ chế này sử dụng SCSI2 reserve để khóa disk cho một đối tượng duy nhất (path). Nếu hệ thống định tuyến I/O thông qua path khác thì có thể gây ra reservation conflict.
-         Reserve_policy = PR_exclusive : áp dụng cho SCSI 3. Lúc này tham số PR_key là tham số riêng cho từng host. PR_key được sử dụng để ngăn không cho các đối tượng ở host khác truy nhập vào disk.
-         Reserve_policy = PR_share: áp dụng cho SCSI 3. PR_key được sử dụng để cho phép đối tượng ở nhiều host có thể đăng ký trước khi truy nhập vào disk.

Nội dung 2: MPIO algorithm và path_priority
MPIO algorithm (thuật toán MPIO) được sử dụng khi:
-         PCM cố gắng phân phối I/O thông qua các path ở trạng thái available tới LUN được cấp.
-         I/O sẽ chỉ ở trạng thái active trên một path tại một thời điểm
-         I/O flow sẽ được đánh trọng số dựa trên kết hợp giữa algorithm setting và path_priority setting cho mỗi disk
Với thiết bị có nhiều controller (tủ đĩa) có thể chỉ rõ 1 controller là active hoặc là preferred controller. Với thiết bị đó, PCM sẽ sử dụng path được gán nhãn active hoặc preferred nếu path đó không fail.
Algorithm = fail_over
Đây là thuật toán phổ biến nhất của các disk được định nghĩa trong ODM AIX. Với thuật toán này, I/O sẽ được định tuyến tới 1 path tại một thời điểm. PCM sẽ giám sát tất cả các đường ở trạng thái enable có trong danh sách. Nếu path đang được sử dụng fail hoặc bị disable, path tiếp theo trong danh sách sẽ được lựa chọn để định tuyến tải I/O tới.
Thuật toán fail_over luôn được sử dụng đối với các giao tiếp ảo virtual SCSI trong VIOS mặc dù backing device có thể vẫn sử dụng round_robin. Fail_over cũng là thuật toán duy nhất có thể sử dụng nếu sử dụng SCSI-2 reserves (reserve_policy=single_path)
Algorithm = round_robin
Với thuật toán này, I/O sẽ được phân phối và activated thông qua tất cả các path để tới disk. Tỷ lệ I/O được định tuyến trên mỗi đường phụ thuộc vào việc setting tham số path_priority path cho mỗi disk. Nếu một path fail, nó sẽ không được sử dụng để truyền I/O và các path còn lại sẽ tính toán lại tỷ lệ phân phối I/O.
Algorithm = shortest_queue
Thuật toán này available trong bản vá technology level gần đây của AIX. Thuật toán này hoạt rất giống với round_robin khi tải thấp. Khi tải tăng cao, thuật toán sẽ ưu tiên định tuyến tải ra các path có ít active I/O. Khi đó path priority value sẽ bị bỏ qua bởi thuật toán.
Khuyến nghị (Recommendation): Nếu sử dụng SCSI-2 reserves hoặc vSCSI disks, thì phải dùng fail_over. Các trường hợp khác, nếu có thể thì sử dụng shortest_queue hoặc round_robin để tối đa đường truyền tới SAN.

Nội dung 3: Cấu hình kiểm tra trạng thái path (Path health check)
Path health check mode: sẽ kiểm tra các path đang ở trạng thái enable. Health checker sẽ không kiểm tra các path đang ở trạng thái disable hoặc missing . Path ở 2 trạng thái này phải được recovered thủ công bằng câu lệnh chpath (với path ở trạng thái Disabled) hoặc câu lệnh cfgmgr (với path ở trạng thái Missing path).
Có 3 trạng thái chó thể cho MPIO path health checker:
Hcheck_mode = nonactive: ở chế độ này, PCM gửi câu lệnh kiểm tra tới path không có tải I/O bao gồm cả path ở trạng thái failed. Nếu thuật toán được chọn là fail_over, checker sẽ gửi kiểm tra tới tất cả path ở trạng thái enable nhưng không có active I/O. Nếu thuật toán là round_robin và shortest_queue, checker chỉ gửi kiểm tra tới path ở trạng thái failed.
-         Hcheck_mode=enable: ở chế độ này, PCM sẽ gửi kiểm tra tới tất cả các path, kể cả path có active I/O.
-         Hcheck_mode= failed: ở chế độ này, PCM chỉ gửi kiểm tra tới path ở trạng thái failed
Khuyến cáo: Giá trị mặc định cho tham số này là nonactive và tốt nhất là không nên thay đổi trừ khi có yêu cầu của ứng dụng.

Nội dung 4: Time out policy
Bản cập nhật gần đây (technology level ) của AIX bổ sung thêm tham số timeout_policy. Tham số này chỉ ra hành động của PCM sẽ thực hiện khi xuất hiện timeout. Timeout xảy ra khi một I/O không thể kết thúc trong thời gian rw_timeout. Tham số timeout_policy có thể được đặt:
-         Timeout_policy = retry_path: đây là cách truyền thống khi đó sẽ gửi tiếp I/O tới path đang sử dụng -> làm tăng trễ trong việc recovery I/O. Sau một vài fail I/O liên tiếp, AIX mới chuyển sang sử dụng alternate path.
-         Timeout_policy = fail_path: khi có một I/O lỗi, AIX sẽ gửi I/O thông qua path khác. Với cách này cho kết quả recovery nhanh hơn và sớm phát hiện được path failed. Path failed do nguyên nhân timeout sau đó có thể được phục hồi dựa vào AIX health check. Tuy nhiên, sau khi phục hồi, AIX cũng tránh dùng path đó trong một thời gian để tránh tình trạng lặp lại lỗi.
-         Timeout_policy = disable_path: cấu hình này sẽ làm cho path bị disable và chỉ có thể phục hồi bằng lệnh chpath.
Khuyến cáo: Nếu tham số fail_path được thiết bị hỗ trợ, hãy sử dụng tham số đó.

Nội dung 5: Bao nhiêu path được cấu hình cho AIX MPIO
Trong cấu hình MPIO, không chắc nhiều đã là tốt. Thực tế, số lượng quá lớn path MPIO có thể làm giảm hiệu năng hệ thống và hiệu năng SAN storage, Fiber Channel fabric hoặc gây lỗi.
Khuyến cáo chung cho số lượng path là từ 4 tới 8 path cho mỗi LUN và tối đa là 16 path được sử dụng trong các tình huống đặc biệt.
Khi sử dụng quá 8 path cho một LUN, hệ thống có thể sẽ phải đối mặt với các nguy cơ:
-         Khi xảy ra lỗi với MPIO disk, error recovery sẽ thử trên tất cả các path (mỗi path 5 lần trong thời gian rw_timeout), do đó sẽ làm tăng thời gian recovery, giảm hiệu năng hệ thống.
-         Với round_robin, có quá nhiều path dẫn tới PCM sẽ phải chia tải ra nhiều đường.
-         Với fail_over, PCM sẽ phải tìm trong nhiều đường hơn để ra đường thay thế
-         Mỗi cấu hình path đều cần sử dụng memory (RAM) trong AIX để chứa data structure in MPIO device drive. Do đó sẽ tốn RAM.

-         Health checker sẽ phải làm việc nhiều hơn.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © aix-san-linux - Skyblue - Powered by Blogger - Designed by Johanes Djogan -