- Back to Home »
- IBM AIX MPIO: Tìm hiểu về một số tham số trong MPIO
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.