PowerFlex : Disque en échec avec un ID de périphérique incorrect
Summary: Le disque système ScaleIO s’affiche comme défaillant lorsqu’il a été utilisé sur un autre nœud SDS.
Symptoms
Scénario
Lorsqu’un client utilise le même boîtier de disque pour deux nœuds SDS ou plus, il doit configurer hors ligne/en ligne pour chaque disque et le nœud auquel il appartient.
Parfois, le client peut se tromper et mettre en ligne le même disque sur les deux nœuds SDS, auquel cas un disque indique une défaillance.
Erreurs possibles :
- Le client a connecté en ligne le même disque sur les deux nœuds SDS, puis nous constatons qu’un disque est en panne.
- Le client échange les disques, ce qui signifie que chaque disque est en ligne sur le mauvais nœud. Dans ce cas, nous voyons deux disques en échec, un sur chaque nœud SDS.
Symptômes
Le nœud SDS a détecté un ID de périphérique de disque incorrect et le processus SDS a défini le disque sur l’état FAILED.
Lors du démarrage du processus SDS, une fois que la pièce mosConf passe à la découverte de périphériques physiques, lorsque le disque n’est pas destiné à être utilisé par scaleio (comme le disque du système d’exploitation système ou le disque libre), l’erreur « Invalid device header signature » s’affiche (première ligne de la sortie). Lorsque le disque est en cours d’utilisation par ScaleIO, un appareil est trouvé et l’ID de l’appareil s’affiche à côté de celui-ci.
Sur la première sortie ci-dessous (fichier trc du serveur 1), nous pouvons voir que 12 périphériques ont été trouvés, mais en regardant de plus près, nous pouvons voir que deux périphériques sont différents (L,M) - le 12ème caractère dans l’ID de périphérique est 3 et non 0 comme tous les autres ID de périphériques.
Sur la deuxième sortie ci-dessous (fichier trc du serveur 2), 12 disques ont été trouvés et encore une fois, deux disques sont différents (K, L) - le 12e caractère de l’ID de périphérique est 0 et non 3 comme tous les autres ID de périphériques.
Après le processus de découverte, le processus SDS passe à l’ajout de périphériques au SDS, lorsque SDS ne trouve pas le disque rc, le résultat est NOT_FOUND (fichier trc du serveur 1), comme nous pouvons le voir dans les exemples ci-dessous, sur chaque SDS, nous avons des disques avec un ID d’appareil n’appartenant pas à son SDS, SDS affichera ces disques comme FAILED car ils sont NOT_FOUND (fichier trc du serveur 1).
Fichier TRC du serveur 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
TRC du serveur 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
Explication de l’ID d’appareil SDS
Chaque appareil SDS dispose d’un en-tête enregistré sur sa 64e lb.
L’en-tête a la structure suivante :
Signature 64 bits
Version de périphérique 64 bits
ID SDS 64 bits
ID du périphérique SDS 64 bits ß ce que vous recherchez.
L’ID d’appareil SDS, également connu sous le nom de TgtDevId, se compose des éléments suivants :
ID unique 32 bits
Index TGT 16 bits
Index de périphérique 16 bits
Par exemple, un SDS avec l’ID 2df4737600000002, aurait deux appareils avec les ID : 7fff29ea00020000, 7fff29eb00020001
Quoi qu’il en soit, si un appareil appartenant au SDS x a été échangé dans le SDS y, il découvre qu’il appartient à un autre SDS, en vérifiant l’ID du SDS enregistré dans l’en-tête.
Vous pouvez peut-être le voir dans les journaux SDS, si vous recherchez « Wrong device »
Impact
Reconstruction et rééquilibrage du système lorsque le disque est à l’état En échec.
Cause
L’ID de l’appareil de disque appartient à un autre nœud SDS, par conséquent, ScaleIO ne l’utilisera jamais.
Resolution
Ajout du disque au nœud SDS approprié.
Versions concernées
Toutes les versions de PowerFlex
Problème résolu dans la version
Fonctionne comme une conception.