PowerFlex: Disco fallido con ID de dispositivo incorrecto
Summary: El disco del sistema ScaleIO se muestra como fallido cuando se utilizó en otro nodo SDS.
Symptoms
Situación
Cuando un cliente utiliza el mismo gabinete de discos para dos nodos SDS o más, debe configurar el estado offline/en línea para cada disco y el nodo al que pertenece.
En ocasiones, el cliente puede equivocarse y conectar el mismo disco en ambos nodos SDS y, a continuación, vemos un disco como fallido.
Posibles errores:
- El cliente conecta el mismo disco en línea en ambos nodos SDS y, a continuación, vemos un disco como fallido.
- El cliente intercambia discos, lo que significa que cada disco está en línea en el nodo incorrecto; en ese caso, vemos dos unidades fallidas, una en cada nodo de SDS.
Síntomas
El ID de dispositivo de disco incorrecto encontrado por el nodo SDS y el proceso de SDS configuró el disco en estado FALLIDO.
En el inicio del proceso de SDS después de la parte mosConf, el proceso de SDS se traslada al descubrimiento de dispositivos físicos, cuando el disco no es para uso de ScaleIO (como el disco del SO del sistema o el disco libre), se mostrará el error "Invalid device header signature" (primera línea en el resultado). Cuando ScaleIO utiliza el disco, se encuentra un dispositivo y el ID del dispositivo se muestra junto a él.
En la primera salida a continuación (archivo trc del servidor 1) podemos ver que se encontraron 12 dispositivos, pero si miramos de cerca, podemos ver que dos dispositivos son diferentes (L, M): el carácter número 12 en el ID de dispositivo es 3 y no 0 como todos los demás ID de dispositivos.
En la segunda salida a continuación (archivo trc del servidor 2) se encontraron 12 discos y, nuevamente, dos discos son diferentes (K, L): el 12º carácter en el ID de dispositivo es 0 y no 3 como todos los demás ID de dispositivos.
Después del proceso de descubrimiento, el proceso de SDS pasa a agregar dispositivos nuevamente al SDS. Cuando el SDS no encuentre el disco, el resultado de rc será NOT_FOUND (archivo trc del servidor 1), como podemos ver en los ejemplos a continuación, en cada SDS, tenemos discos con ID de dispositivo que no pertenecen a su SDS, el SDS mostrará esos discos como FALLIDOS porque están NOT_FOUND (archivo trc del servidor 1).
Archivo TRC del servidor 1
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
Archivo TRC del servidor 2
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
Explicación del ID del dispositivo SDS
Cada dispositivo SDS tiene un encabezado guardado en su64.ª LB.
El encabezado tiene la siguiente estructura:
Firma de 64 bits
Versión del dispositivo de 64 bits
ID de SDS de 64 bits
ID del dispositivo SDS de 64 bits ß lo que está buscando.
El ID de dispositivo SDS, también conocido como TgtDevId, consta de lo siguiente:
ID único de 32 bits
Índice TGT de 16 bits
Índice de dispositivos de 16 bits
Por ejemplo: un SDS con el ID 2df4737600000002 tendría dos dispositivos con los ID: 7FFF29EA00020000, 7FFF29EB00020001
De todos modos, si un dispositivo que pertenece al SDS x se cambió al SDS y, al volver a conectar el dispositivo al SDS y, descubre que pertenece a un SDS diferente; para ello, comprueba el ID del SDS guardado en el encabezado.
Tal vez pueda verlo en los registros de SDS si busca "Wrong device"
Impacto
Reconstruir y reequilibrar el sistema, ya que el disco está en estado FALLIDO.
Cause
El ID del dispositivo de disco pertenece a otro nodo SDS; por lo tanto, ScaleIO nunca lo utilizará.
Resolution
Adición del disco al nodo SDS correcto.
Versiones afectadas
Todas las versiones de PowerFlex
Problema corregido en la versión
Trabajar como diseño.