Nous avons un serveur basé sur CentOS 6.4 attaché au stockage Hitachi HNAS 3080 et avons observé que le noyau remonte le système de fichiers en mode lecture seule:
16 mai 07:31:03 Noyau GNS3-SRV-CMP-001: [1259725.675814] EXT3-fs (dm-1): erreur: remontage du système de fichiers en lecture seule
Cela s'est produit après plusieurs erreurs d'E / S et tous les chemins vers le périphérique seraient en panne:
16 mai 07:31:03 GNS3-SRV-CMP-001 multipathd: mpatha: chemins actifs restants: 0
J'ai regardé les journaux sar et je peux voir quelques temps d'attente très importants (2 secondes):
07:40:00 dev8-0 17.91 112.04 98.03 11.73 0.00 0.20 0.07 0.12
07:40:00 dev8-16 0.23 1.85 0.00 8.00 0.00 3.71 3.71 0.09
07:40:00 dev8-32 91.50 8338.76 5292.93 148.98 8.38 91.60 9.76 89.35
07:40:00 dev252-0 91.27 8336.91 5292.93 149.34 17.79 194.88 9.79 89.38
07:40:00 dev252-1 674.80 8168.16 5292.93 19.95 1473.53 2183.60 1.32 88.98
La durée entre 07: 30: 00-07: 40: 00 se produit au moment où le système de fichiers a été monté en lecture seule. Cependant, même dans des conditions normales, une observation répétée est que le temps d'attente pour les dispositifs sous-jacents est beaucoup plus court que celui du dispositif à trajets multiples. Par exemple:
00:00:00 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00:10:00 dev8-0 19.27 129.41 78.61 10.80 0.01 0.27 0.16 0.32
00:10:00 dev8-16 0.23 1.80 0.00 8.00 0.00 0.86 0.84 0.02
00:10:00 dev8-32 94.88 10285.16 3363.48 143.86 3.39 35.76 6.83 64.82
00:10:00 dev252-0 94.65 10283.34 3363.48 144.18 3.64 38.47 6.86 64.89
00:10:00 dev252-1 435.06 10087.12 3363.48 30.92 118.42 272.21 1.47 64.12
dev8-0 se trouve être le disque local, tandis que dev8-16 ( /dev/sdb
) et dev8-32 ( /dev/sdc
) sont les disques sous-jacents de dev252-0 ( /dev/mapper/mpatha
). dev252-1 ( /dev/mapper/mpathap1
) est une partition unique couvrant l'ensemble du périphérique à chemins multiples. Voici la sortie de multipath -ll
:
mpatha (2521501cbffffffffe96773b50ec30020) dm-0 BlueArc,NAS Platform
size=10T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 9:0:0:0 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=active
`- 8:0:0:0 sdb 8:16 active ready running
Pourquoi le temps d'attente devrait-il /dev/mapper/mpathap1
être tellement plus élevé que celui de /dev/mapper/mpatha
ou même /dev/sdb
ou /dev/sdc
?
mpatha
( /sys/block/dm-0/queue/scheduler
) est noop
et celui pour mpathap1
( /sys/block/dm-1/queue/scheduler
) est none
.
dm
écritures fusionnables ont une attente (et des files d'attente plus longues) sur le périphérique que sur le périphérique physique sous-jacent, tandis que les demandes de lecture et les écritures sans aucune fusion ne sont généralement pas affectées. Je ne sais pas encore s'il s'agit simplement d'une erreur de présentation en raison de la façon dont les attentes sont calculées ou des temps de réponse réellement prolongés en raison de la nature de l'algorithme de mise en file d'attente / fusion.
/dev/mapper/mpathap1
à/dev/mapper/mpatha
. C'est également la couche où la plupart duawait
temps semble être ajoutée. Pouvez-vous vérifier dans quels ascenseurs sont utilisés/sys/block/mpathap1/queue/scheduler
et/sys/block/mpatha/queue/scheduler
, éventuellement, le changerdeadline
ou lenoop
comparer?