Proxmox Une procédure de changement d'un disque HS - Grappe ZFS RAIDZ-1

Cram28

Padawan
3 Novembre 2023
94
27
18
Bonjour,

«J'ai tombé en panne !» :(... Disque HS.
M'étonne pas plus que çà: vieux disque WDC de 4To repris d'une ancienne config. avec 45 000 heure de vol au compteur (un peu plus de 5 ans).

Donc Proxmox me dit que j'ai un pool ZFS dégradé. J'ai tenté un zpool clear dpool, mais sans succès, Proxmox a mis le disque fautif en statut... ''FAULTED'':

pve-ZFZ-Degrade.png

Je sais donc quel est le disque a problème, mais je ne sais pas dans quel tiroir il est. Il faut en effet se méfier des sda, sdb, etc..., qui peuvent ne pas correspondre aux positions physiques réelles dans le serveur.

Donc je préfère éteindre la machine - malgré le support de hot-swap - pour identifier et le disque et sa position à l'aide de son numéro de série (ici WD-WCC4E2STUJLZ):
Bash:
lsblk -I 8 -d -o NAME,MODEL,SERIAL,SIZE
NAME MODEL                   SERIAL            SIZE
sda  ST4000VN008-2DR166      ZGY04DTN          3.6T
sdb  ST4000VN008-2DR166      ZDH1BCQZ          3.6T
sdc  WDC WD40EFRX-68WT0N0    WD-WCC4E2STUJLZ   3.6T
sdd  WDC WD40EFRX-68N32N0    WD-WCC7K4PTPDE8   3.6T
sde  Samsung SSD 870 EVO 1TB S75CNX0W632315F 931.5G
sdf  Samsung SSD 870 EVO 1TB S75CNX0W632312J 931.5G

Il se trouve que j'ai eu du pot: le disque était bien dans le troisième tiroir :)

Donc, je le remplace par un nouveau HDD, WDC aussi, un 4To aussi, modèle RED Pro (garantie 5 ans). A la place du modèle WDC «RED tout court».

Je rallume et je vois donc une nouvelle référence à la place de l'ancienne (nouveau S/N: VBHX55HF)
Bash:
lsblk -I 8 -d -o NAME,MODEL,SERIAL,SIZE
sda  ST4000VN008-2DR166      ZGY04DTN          3.6T
sdb  ST4000VN008-2DR166      ZDH1BCQZ          3.6T
sdc  WDC WD4003FFBX-68MU3N0  VBHX55HF          3.6T
sdd  WDC WD40EFRX-68N32N0    WD-WCC7K4PTPDE8   3.6T
sde  Samsung SSD 870 EVO 1TB S75CNX0W632315F 931.5G
sdf  Samsung SSD 870 EVO 1TB S75CNX0W632312J 931.5G


Et donc, pour remplacer, c'est simple avec la commande: # zpool replace <nom du pool> <référence ancien disque> <référence nouveau disque>.

La commande : ls -als /dev/disk/by-id/ | grep "<Numéro de série du disque>" peut aider à nommer ancien et nouveau disques, à lancer avant/après le changement physique.

Donc pour moi:
Bash:
zpool replace dpool ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E2STUJLZ ata-WDC_WD4003FFBX-68MU3N0_VBHX55HF
NB: On parle bien de disque ici, pas de partition.

A partir de là, le système entame une phase de reconstruction (resilvering) de la grappe, qu'on peut suivre et voir l'échéance estimée avec zpool status -v <nom du pool>:
Bash:
# zpool status -v dpool
  pool: dpool
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Sat Dec  2 09:46:16 2023
    1.28T / 1.28T scanned, 228G / 1.28T issued at 595M/s
    57.2G resilvered, 17.46% done, 00:30:58 to go
config:
 
    NAME                                          STATE     READ WRITE CKSUM
    dpool                                         DEGRADED     0     0     0
      raidz1-0                                    DEGRADED     0     0     0
        ata-ST4000VN008-2DR166_ZGY04DTN           ONLINE       0     0     0
        ata-ST4000VN008-2DR166_ZDH1BCQZ           ONLINE       0     0     0
        replacing-2                               DEGRADED     0     0     0
          5431492458126741569                     UNAVAIL      0     0     0  was /dev/disk/by-id/ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E2STUJLZ-part1
          ata-WDC_WD4003FFBX-68MU3N0_VBHX55HF     ONLINE       0     0     0  (resilvering)
        ata-WDC_WD40EFRX-68N32N0_WD-WCC7K4PTPDE8  ONLINE       0     0     0
 
errors: No known data errors

Quand c'est fini, tout est rentré dans l'ordre avec ce changement de disque:
Bash:
zpool status -v dpool
  pool: dpool
 state: ONLINE
  scan: resilvered 327G in 00:37:49 with 0 errors on Sat Dec  2 10:24:05 2023
config:

    NAME                                          STATE     READ WRITE CKSUM
    dpool                                         ONLINE       0     0     0
      raidz1-0                                    ONLINE       0     0     0
        ata-ST4000VN008-2DR166_ZGY04DTN           ONLINE       0     0     0
        ata-ST4000VN008-2DR166_ZDH1BCQZ           ONLINE       0     0     0
        ata-WDC_WD4003FFBX-68MU3N0_VBHX55HF       ONLINE       0     0     0
        ata-WDC_WD40EFRX-68N32N0_WD-WCC7K4PTPDE8  ONLINE       0     0     0

errors: No known data errors

De même que sur le portail web Proxmox évidemment.

Ce mécanisme me parait assez simple et bien fait, d'autant qu'il reconstruit tout seul les partitions 1 (les data) et 9 (une zone de «réserve») sans avoir à s'en préoccuper.

Woula, si ça peut servir :)

Merci, @+
 
Merci pour ce retour, c'est intéressant ! Je me suis permis de déplacer dans Tutoriaux, cela y ressemble beaucoup a mon avis :) Plus qu'une demande d'aide :ROFLMAO:
 
Ah ben voui, c'est mieux !
J'avais pointé «dépannage», mais en effet, y a pas de question ;)

Merki, @+
 
  • J'aime
Réactions: EVO
Bonjour

Sinon pour identifier un disque en allumant la LED d'activité moi j'utilise cette commande :
dd if=/dev/sdX of=/dev/null
 
Bonjour,

Yep !
Mais ça ne fonctionne pas sur QNAP (en tous les cas mon modèle concerné ici): l'unique LED reste verte et fixe sur chaque disque, contrairement à mon vieux VHS qui dispose d'une LED bleu «tension» et d'une LED rouge «activité» qui clignote bien avec cette commande pour le disque concerné...

Dommage... sauf si quelqu'un a une autre astuce :)