PowerFlex: 잘못된 디바이스 ID로 장애가 발생한 디스크
Summary: ScaleIO 시스템 디스크가 다른 SDS 노드에서 사용되었을 때 장애가 발생한 것으로 표시됩니다.
Symptoms
시나리오
고객이 두 개 이상의 SDS 노드에 동일한 디스크 인클로저를 사용하는 경우 각 디스크와 디스크가 속한 노드에 대해 오프라인/온라인을 구성해야 합니다.
고객이 두 SDS 노드에서 동일한 디스크를 온라인으로 잘못 사용했을 때 하나의 디스크에 장애가 발생한 경우가 있습니다.
가능한 실수 :
- 고객이 두 SDS 노드 모두에서 동일한 디스크를 온라인 상태로 전환하면 하나의 디스크에 장애가 발생한 것으로 표시됩니다.
- 고객이 스왑 디스크란 각 디스크가 잘못된 노드에서 온라인 상태임을 의미합니다. 이 경우 각 SDS 노드에서 두 개의 장애가 발생한 드라이브가 표시됩니다.
증상
SDS 노드에서 잘못된 디스크 디바이스 ID를 찾았고 SDS 프로세스에서 디스크를 장애 상태로 설정했습니다.
디스크가 스케일리오용으로 사용되지 않을 때(예: 시스템 OS 디스크 또는 사용 가능한 디스크) mosConf 부분 SDS 프로세스가 물리적 디바이스 검색으로 이동한 후 SDS 프로세스가 시작될 때 "Invalid device header signature" 오류가 표시됩니다(출력의 첫 번째 줄). ScaleIO에서 디스크를 사용 중이면 디바이스가 검색되고 디바이스 ID가 옆에 표시됩니다.
아래의 첫 번째 출력 (서버 1의 trc 파일)에서 12 개의 장치가 발견 된 것을 볼 수 있지만 자세히 살펴보면 두 개의 장치가 서로 다르다는 것을 알 수 있습니다 (L, M) - 장치 ID의 12 번째 문자는 다른 모든 장치 ID와 마찬가지로 0이 아닌 3입니다.
아래의 두 번째 출력 (서버 2의 trc 파일)에서 12 개의 디스크가 발견되었고 다시 두 개의 디스크가 다릅니다 (K, L) - 장치 ID의 12 번째 문자는 다른 모든 장치 ID와 마찬가지로 3이 아닌 0입니다.
검색 프로세스 후 SDS 프로세스는 SDS에 디바이스를 다시 추가하는 것으로 이동합니다. SDS가 디스크를 찾지 못하면 rc 결과가 NOT_FOUND됩니다(서버 1의 trc 파일). 아래 예에서 볼 수 있듯이 각 SDS에는 SDS에 속하지 않는 디바이스 ID를 가진 디스크가 있습니다. SDS는 해당 디스크가 NOT_FOUND 있기 때문에 장애가 발생한 것으로 표시합니다(서버 1의 trc 파일).
서버 1의 trc 파일
30/04 09:48:16.328000 000000A170629EA0:phyDev_ReadDevId:02679: Invalid device header signature : path=C, devVersion=2807280628052804, sigStart=2803280228012800, sigEnd=283b283a28392838
30/04 09:48:16.328000 000000A170629EA0:phyDevMap_ReloadSpecific:00128: Failed to read DeviceId of C. rc=351
30/04 09:48:16.329000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device F ,a2901dcd00000000
30/04 09:48:16.330000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device G ,a2901dce00000001
30/04 09:48:16.331000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device H ,a2901dcf00000002
30/04 09:48:16.332000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device I ,a2901dd000000003
30/04 09:48:16.333000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device J ,a2901dd100000004
30/04 09:48:16.333000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device K ,a29044bf00000005
30/04 09:48:16.337000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device L ,a29044c400030006
30/04 09:48:16.342000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device M ,a29044c000030005
30/04 09:48:16.343000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device N ,a29044cb00000008
30/04 09:48:16.344000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device O ,a2906bcf00000009
30/04 09:48:16.345000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device P ,a2906bd30000000a
30/04 09:48:16.345000 000000A170629EA0:phyDevMap_ReloadSpecific:00136: Found device Q ,fbd792df0000000b
...
30/04 09:48:16.345000 000000A1730BCEA0:contCmd_AddDev:01204: DevId a2901dce00000001 - Start rc = SUCCESS
30/04 09:48:16.346000 000000A173086EA0:contCmd_AddDev:01204: DevId a29044c700000007 - Start rc = SUCCESS
30/04 09:48:16.346000 000000A173098EA0:contCmd_AddDev:01204: DevId a2906bd30000000a - Start rc = SUCCESS
30/04 09:48:16.346000 000000A1730E0EA0:contCmd_AddDev:01204: DevId fbd792e50000000c - Start rc = SUCCESS
30/04 09:48:16.346000 000000A1730B3EA0:contCmd_AddDev:01204: DevId a2901dcf00000002 - Start rc = SUCCESS
30/04 09:48:16.346000 000000A17310DEA0:contCmd_AddDev:01204: DevId a2901dcd00000000 - Start rc = SUCCESS
30/04 09:48:16.346000 000000A173062EA0:contCmd_AddDev:01204: DevId a29044cb00000008 - Start rc = SUCCESS
30/04 09:48:16.346000 000000A1730C5EA0:contCmd_AddDev:01204: DevId a2901dd100000004 - Start rc = SUCCESS
30/04 09:48:16.346000 000000A1730E0EA0:contCmd_AddDev:01391: DevId fbd792e50000000c - Done rc = NOT_FOUND
30/04 09:48:16.348000 000000A1730A1EA0:contCmd_AddDev:01204: DevId fbd792ee0000000e - Start rc = SUCCESS
30/04 09:48:16.348000 000000A1730A1EA0:contCmd_AddDev:01391: DevId fbd792ee0000000e - Done rc = NOT_FOUND
30/04 09:48:16.349000 000000A1730F2EA0:contCmd_AddDev:01204: DevId fbd792e90000000d - Start rc = SUCCESS
30/04 09:48:16.349000 000000A17306BEA0:contCmd_AddDev:01204: DevId a2901dd000000003 - Start rc = SUCCESS
30/04 09:48:16.349000 000000A17307DEA0:contCmd_AddDev:01204: DevId a2906bcf00000009 - Start rc = SUCCESS
30/04 09:48:16.349000 000000A173074EA0:contCmd_AddDev:01204: DevId a29044bf00000005 - Start rc = SUCCESS
30/04 09:48:16.349000 000000A173086EA0:contCmd_AddDev:01391: DevId a29044c700000007 - Done rc = NOT_FOUND
30/04 09:48:16.349000 000000A1730F2EA0:contCmd_AddDev:01391: DevId fbd792e90000000d - Done rc = NOT_FOUND
30/04 09:48:16.351000 000000A1730FBEA0:contCmd_AddDev:01204: DevId fbd792ef0000000f - Start rc = SUCCESS
30/04 09:48:16.352000 000000A1730FBEA0:contCmd_AddDev:01391: DevId fbd792ef0000000f - Done rc = NOT_FOUND
30/04 09:48:16.352000 000000A173104EA0:contCmd_AddDev:01391: DevId a29044c300000006 - Done rc = NOT_FOUND
서버 2의 TRC 파일
30/04 11:37:57.065000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device F ,a2901dc800030000
30/04 11:37:57.065000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device G ,a2901dc900030001
30/04 11:37:57.065000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device H ,a2901dca00030002
30/04 11:37:57.065000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device I ,a2901dcb00030003
30/04 11:37:57.065000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device J ,a2901dcc00030004
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device K ,a29044c300000006
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device L ,a29044c700000007
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device M ,a29044c800030007
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device N ,a29044cc00030008
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device O ,a2906bd000030009
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device P ,a2906bd40003000a
30/04 11:37:57.081000 000000EE1DC2AEA0:phyDevMap_ReloadSpecific:00136: Found device Q ,fbda92e00003000b
SDS 디바이스 ID 설명
각 SDS 디바이스에는 64번째 LB에 저장된 헤더가 있습니다.
헤더의 구조는 다음과 같습니다.
64비트 서명
64비트 디바이스 버전
64비트 SDS ID
64비트 SDS 장치 ID ß 찾고 있는 것.
TgtDevId라고도 하는 SDS 디바이스 ID는 다음으로 구성됩니다.
고유 ID 32비트
TGT 인덱스 16비트
디바이스 인덱스 16비트
예를 들어 ID가 2df4737600000002인 SDS에는 ID가 다음과 같은 두 개의 디바이스가 있습니다. 7fff29ea00020000, 7fff29eb00020001
어쨌든 SDS x에 속한 장치가 SDS y로 바뀐 경우 장치를 SDS y에 다시 연결하면 헤더에 저장된 SDS ID를 확인하여 다른 SDS에 속한다는 것을 알 수 있습니다.
"Wrong device"를 검색하면 SDS 로그에서 확인할 수 있습니다.
영향
디스크가 FAILED 상태이므로 시스템을 재구축 및 재조정합니다.
Cause
디스크 디바이스 ID는 다른 SDS 노드에 속하므로 ScaleIO는 이를 사용하지 않습니다.
Resolution
올바른 SDS 노드에 디스크 추가
영향을 받는 버전
모든 PowerFlex 버전
수정된 버전
디자인으로 작업.