역방향 재구축 중 잠재적인 I/O 오류가 발생하는 PowerFlex 3.x 성능 문제
요약: 후방 재구축 이벤트 중에 I/O 오류가 보고될 수 있습니다. 심각한 경우에는 볼륨이 읽기 전용이 되어 데이터 가용성 손실이 발생할 수 있습니다. 역방향 재구축 중에는 조합 역할(기본/보조)이 전환됩니다. SDS가 1) 유지 보수 모드에서 해제되거나 2) SDS가 중단되었다가 즉시 복구되는 경우 역방향 재구축이 발생할 수 있습니다. ...
증상
시나리오
MDM은 재구축 중에 SDS에 많은 제어 명령을 전송하지만 SDS가 이를 즉시 처리할 수 없습니다.
조짐
다음 항목에서 MDM은 콤 역할 전환을 수행하려고 하지만 SDS가 작업을 완료하는 데 30초가 걸렸습니다. 이 30초 지연은 이 예에서 볼륨이 읽기 전용이 되는 데 충분했습니다.
15/06 04:18:18.362502 0x7f3cc590ddb0:multiHeadMgr_HandleNetRPCResponse:02653: TgtId: 5ce02d7e00000003 RC: TIMEOUT CombID: 71e0000480e3 msgType: TGT_MSG_TYPE__SET_COMB_STATE 15/06 04:18:23.364575 0x7f3cc5904db0:multiHeadMgr_HandleNetRPCResponse:02653: TgtId: 5ce02d7e00000003 RC: TIMEOUT CombID: 71e0000480e3 msgType: TGT_MSG_TYPE__SET_COMB_STATE 15/06 04:18:28.370493 0x7f3cc5928db0:multiHeadMgr_HandleNetRPCResponse:02653: TgtId: 5ce02d7e00000003 RC: TIMEOUT CombID: 71e0000480e3 msgType: TGT_MSG_TYPE__SET_COMB_STATE 15/06 04:18:33.379554 0x7f3cc5928db0:multiHeadMgr_HandleNetRPCResponse:02653: TgtId: 5ce02d7e00000003 RC: TIMEOUT CombID: 71e0000480e3 msgType: TGT_MSG_TYPE__SET_COMB_STATE 15/06 04:18:38.380498 0x7f3cc5955db0:multiHeadMgr_HandleNetRPCResponse:02653: TgtId: 5ce02d7e00000003 RC: TIMEOUT CombID: 71e0000480e3 msgType: TGT_MSG_TYPE__SET_COMB_STATE 15/06 04:18:43.380564 0x7f3cc590ddb0:multiHeadMgr_HandleNetRPCResponse:02653: TgtId: 5ce02d7e00000003 RC: TIMEOUT CombID: 71e0000480e3 msgType: TGT_MSG_TYPE__SET_COMB_STATE (...) 15/06 04:18:43.380573 0x7f3cc590ddb0:mdmTgtMsg_SendAsyncSetCombState:06228: devId: ff7fb6fc00030006 CombId: 71e0000480e3 CombState: PRI->SEC RaidState: 0x1->0x1 ProtType: SECONDARY Switch roles (subtask) GenNums: Primary: 71707 Cmd: 9 MH: 71746 Connection: 1357 15/06 04:18:46.920989 0x7f3cc5943db0:mdmTgtMsg_SendAsyncSetCombState:06228: devId: ffd7690d00070009 CombId: 71e0000480e3 CombState: SEC->PRI RaidState: 0x21->0x1 ProtType: SECONDARY Switch roles (subtask) GenNums: Primary: 71707 Cmd: 11 MH: 71758 Connection: 1353 15/06 04:18:46.921312 0x7f3cc5955db0:multiHeadRow_MoveState_Inner:03054: [multiHead_HandleNormStateFlow:1359]: MultiHead: e3c00009 Row: 227 NORMAL->NORMAL (NORM2NORM_ROLE_BALANCE)
이 조건을 확인하려면 (두 번째 열과 세 번째 열이 동일하고 100으로 설정되어야 함):
scli --query_performance_parameters --all_sds --print_all | grep SDS_NUMBER_SDS_CONTROL_UMT
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
Query_all 출력에서도 다음과 같이 보고됩니다.
grep CONTROL_UMT query_all.txt
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
SDS_NUMBER_SDS_CONTROL_UMT 10 100
영향
I/O 오류가 보고될 수 있으며 심각한 경우 볼륨이 읽기 전용이 될 수 있습니다.
원인
SDS_NUMBER_SDS_CONTROL_UMT가 10으로만 설정되므로 SDS에서 많은 수의 제어 명령을 처리할 수 없습니다. 이 문제는 SDS 성능 프로파일이 Compact로 설정되거나 High Performance로 설정되었지만 시스템이 PowerFlex 2.x에서 3.x로 업그레이드된 경우에 발생할 수 있습니다.
high_performance 프로파일은 SDS_NUMBER_SDS_CONTROL_UMT에서 100으로 설정됩니다. 그러나 2.x 버전에서 3.0.1.5/3.5.1.3 미만의 3.x 버전으로 업그레이드할 때 10으로 잘못 변경될 수 있습니다.
컴팩트 성능 프로필이 설정된 경우 SDS_NUMBER_SDS_CONTROL_UMT에 필요한 설정은 10입니다(버전 3.x에서는 high_performance 프로필이 기본값임).
해결
high_performance SDS 프로파일을 사용하는 경우 다음 명령을 실행하여 이 문제를 해결합니다.
scli --set_performance_parameters --tech --all_sds --sds_number_sds_control_umt 100
컴팩트 SDS 프로파일을 사용하는 경우 high_performance로 변경합니다.
영향을 받는 버전
3.0.1.5 및 3.5.1.3 아래의 모든 3.x 버전
고정 버전
3.0.1.5 및 3.5.1.3