SOLVED j'ai cassé mon mirroir, comment faire?

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Bonjour,
suite à un disque HS dans un Volume en mirroir , j'ai malencontreusement supprimé la ligne contenant le disque à remplacer.

Donc maintenant je n'ai plus qu'un Volume 1 contenant 1 disque, je viens de remplacer le disque HS par un neuf de meme capacité , comment faut il faire pour recréer le mirroir à 2 disques?
 
Last edited:

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,134
Sept ans de malheur…

Il est toujours possible d'élargir un vdev mirroir (y compris un disque seul, qui est un mirroir à un seul membre) :
Storage > Pool > (engrenage) > Status > (disque) > (…) > Extend
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
ca veut pas
1654090623703.png
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Code:
Erreur: Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 355, in run
    await self.future
  File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 391, in __run_body
    rv = await self.method(*([self] + args))
  File "/usr/local/lib/python3.9/site-packages/middlewared/schema.py", line 975, in nf
    return await f(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/pool_/attach_disk.py", line 86, in attach
    await job.wrap(extend_job)
  File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 484, in wrap
    raise CallError(subjob.exception)
middlewared.service_exception.CallError: [EFAULT] concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zfs.py", line 212, in extend
    i['target'].attach(newvdev)
  File "libzfs.pyx", line 392, in libzfs.ZFS.__exit__
  File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zfs.py", line 212, in extend
    i['target'].attach(newvdev)
  File "libzfs.pyx", line 2092, in libzfs.ZFSVdev.attach
libzfs.ZFSException: device is too small

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/concurrent/futures/process.py", line 243, in _process_worker
    r = call_item.fn(*call_item.args, **call_item.kwargs)
  File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 111, in main_worker
    res = MIDDLEWARE._run(*call_args)
  File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 45, in _run
    return self._call(name, serviceobj, methodobj, args, job=job)
  File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 39, in _call
    return methodobj(*params)
  File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 39, in _call
    return methodobj(*params)
  File "/usr/local/lib/python3.9/site-packages/middlewared/schema.py", line 979, in nf
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zfs.py", line 215, in extend
    raise CallError(str(e), e.code)
middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 355, in run
    await self.future
  File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 386, in __run_body
    rv = await self.middleware._call_worker(self.method_name, *self.args, job={'id': self.id})
  File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1276, in _call_worker
    return await self.run_in_proc(main_worker, name, args, job)
  File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1192, in run_in_proc
    return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1166, in run_in_executor
    return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small



il me dit que le disque est trop petit mais il est de la même capacité par contre il y a déjà un partitionement sur ada1 comment le supprimer pour récupérer le disque entier ?
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
je viens de trouver comment effacer le disque, maintenant il est vierge, dois je copier la structure de partition du disque existant (ada2) sur le nouveau (ada1) avant de tenter l'insertion en mirroir ?
 

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,134
Écraser la table de partition au tout début du disque devrait résoudre le problème.
dd if=/dev/zero of=/dev/ada1 count=1M

[Ninja'd !]

Si le disque est vu comme vierge, TrueNAS devrait le formatter sans qu'aucune autre préparation soit nécéssaire.
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
les disques sont partionnés comme ci dessous:
1654091673862.png
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
je viens de lancer ta ligne de commande avec le retour suivant:
1654091835654.png


j'ai ressayé de faire l'extension du volume avec le même plantage (toujours disk too small)
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
1654092100094.png
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
j'ai un autre disque ironwolf de 2To, je vais tester avec pour voir si le problème disparait
 

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,134
Aïe ! Si le disque est d'un autre fabricant et vraiment un peu trop petit, même avec le possible tampon de 2 Go pour le swap, la seule solution est d'en prendre un assez grand. Ou alors de créér une autre pool, répliquer les données de Volume1 dessus et ensuite utiliser ada2 pour recréer un mirroir.
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Après changement du disque , même résultat
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
je sens que je vais tout perdre ou tout avoir à refaire:frown:
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
pourquoi j'ai toutes ces erreurs dans l'extension de Vdev ? tu as une idée? cela te parait normal s'il s'agit juste d'une discordance de taille, ce que je ne crois pas
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Je viens de tenter de creer un volume 2 avec ada1 seul et cela plante aussi, il y a donc un autre soucis
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
j'ai l'impression qu'il a gardé les infos de l'ancien disque HS qui était sur ada1 et c'est çà qui à l'air de tout faire planter
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
finalement malgré les erreurs en console j'ai bien un volume 2, je ne comprends plus rien
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
je viens de voir tout un tas de taches non lancées ou plantées
1654096021731.png

1654096132734.png

1654096154096.png
 

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,134
finalement malgré les erreurs en console j'ai bien un volume 2, je ne comprends plus rien
Que donnent zpool status et glabel status ? (Résultat à poster comme "Code", par souci de lisibilité.)
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Top