¿Se puede cambiar la versión de metadatos en una matriz existente?


21

Por lo tanto, grub requiere la versión 0.90 de metadatos. Me pregunto si puedo cambiar mis matrices existentes para usarlas en lugar de la predeterminada, que es 1.2. De esa manera no tengo que hacer una reinstalación. En caso afirmativo, ¿cómo puedo hacerlo?

Respuestas:


5

El wiki de GRUB confirma:

Además, (a partir de 1.96 + 20080724) GRUB solo puede arrancar desde RAID que utiliza un superbloque de metadatos de la versión 0.90 (es decir, uno creado con la opción --metadata = 0.90 para mdadm).

Curiosamente, la página de manual de mdadm dice

-e, --metadata =

Declare el estilo de superbloque (metadatos de banda) que se utilizará. El valor predeterminado es 0.90 para --create, y para adivinar otras operaciones.

Verificaría dos veces mdadm -Q -D <device>para estar seguro.

Después de eso, ¿qué nivel de RAID estás ejecutando? El mejor escenario que se me ocurre para un espejo (RAID 1) sería

  1. Tomar copias de seguridad
  2. Desmontar matriz 0
  3. Eliminar el dispositivo A de la matriz 0 de ndispositivos
  4. Cero superbloque en el dispositivo A
  5. Cree la matriz 1 usando el dispositivo A y n-1repuestos, explícitamente usando el formato antiguo de superbloque
  6. Repita para el resto de B a través de n-1dispositivos
  7. (Opcional) vuelva a numerar la matriz

... pero definitivamente verifique que absolutamente necesita pasar por esto.


así que lo confirmé hace mucho tiempo. Estoy ejecutando raid10, f2. obviamente, recrear la matriz era lo que estaba tratando de evitar.
xenoterracide

¿Has probado la linux-raid at vger.kernel.orglista de correo?
Andrew

extraño que no recibí una notificación sobre esto. No, no lo intenté. Simplemente lo limpié y recreé la matriz. Voy a aceptar esta respuesta con la breve solución de que sea NO o tal vez (ridículamente difícil)
xenoterracide

16

Esta información probablemente sea demasiado tarde para ayudar al OP, pero tal vez ayude a alguien más.

El primer comando borra los superbloques y el segundo comando crea una nueva matriz, pero supone que los dispositivos están limpios. Acabo de realizar esto y todo parece estar bien. Definitivamente recomendaría una copia de seguridad antes de hacer esto. No tenía datos que perder y, por lo tanto, no tenía que verificar la integridad. Solo quería evitar otra resincronización de 4 horas.

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90

1
probablemente demasiado tarde para el OP pero me salvaste, gracias por tu respuesta
neofutur

7

La creación de una matriz con metadatos supuestos limpios e inconsistentes, como se sugirió anteriormente, ciertamente puede dañar los datos existentes, ya que los bloques de metadatos 0.90 y 1.2 no solo difieren en tamaño sino también en ubicación.

puede funcionar para 0.90 <-> 1.0, que es una excepción.

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.