Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
servidores:raid [2010/01/12 21:21] fmolinuevo |
servidores:raid [2020/03/21 16:29] (actual) fmolinuevo [Particionar un disco en forma idéntica a otro con GPT] |
||
---|---|---|---|
Línea 5: | Línea 5: | ||
===== Tareas generales ===== | ===== Tareas generales ===== | ||
- | ==== Particionar un disco en forma idéntica a otro ==== | + | ==== Particionar un disco en forma idéntica a otro con MBR ==== |
sfdisk -d /dev/hdb | sfdisk /dev/hdc | sfdisk -d /dev/hdb | sfdisk /dev/hdc | ||
+ | |||
+ | ==== Particionar un disco en forma idéntica a otro con GPT ==== | ||
+ | |||
+ | sgdisk /dev/sdX -R /dev/sdY | ||
+ | sgdisk -G /dev/sdY | ||
+ | |||
+ | El primero comando copia la tabla de particiones del disco sdX al sdY. El segundo randomiza los GUID de cada partición del disco sdY, lo cual es imprescindible ya que serán usados en el mismo equipo. | ||
==== Obtener el número de serie de un disco (serial number) ==== | ==== Obtener el número de serie de un disco (serial number) ==== | ||
Línea 44: | Línea 51: | ||
===== RAID (mdadm) ===== | ===== RAID (mdadm) ===== | ||
- | *Crear una unidad RAID5: <code> | + | ==== Crear una unidad RAID5 ==== |
+ | |||
+ | <code> | ||
mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sda9 /dev/sdb9 /dev/sdc9 | mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sda9 /dev/sdb9 /dev/sdc9 | ||
</code> | </code> | ||
- | *Ver configuración del disp RAID que falla: <code> | + | |
+ | ==== Ver configuración de la unidad RAID que falla ==== | ||
+ | |||
+ | <code> | ||
mdadm --detail /dev/md3 | mdadm --detail /dev/md3 | ||
cat /proc/mdstat | cat /proc/mdstat | ||
</code> | </code> | ||
- | *Agregar unidades físicas al RAID: cuando se desconectan, agregarlas con <code> | + | |
+ | ==== Agregar unidades físicas al RAID: cuando se desconectan, agregarlas con ==== | ||
+ | |||
+ | <code> | ||
mdadm --manage -a /dev/md3 /dev/hdd8 | mdadm --manage -a /dev/md3 /dev/hdd8 | ||
</code> | </code> | ||
- | *Desactivar una unidad RAID: <code> | + | |
+ | ==== Desactivar una unidad RAID: ==== | ||
+ | |||
+ | <code> | ||
mdadm --misc -S /dev/md3 | mdadm --misc -S /dev/md3 | ||
</code> | </code> | ||
- | *Activar una unidad RAID: <code> | + | |
+ | ==== Activar una unidad RAID ==== | ||
+ | |||
+ | <code> | ||
mdadm --assemble /dev/md3 | mdadm --assemble /dev/md3 | ||
</code> | </code> | ||
- | * Cuando se rompe un disco: | + | |
+ | ==== Cuando se rompe un disco ==== | ||
- Cambiar el disco roto por uno idéntico | - Cambiar el disco roto por uno idéntico | ||
- Particionarlo con sfdisk: <code> | - Particionarlo con sfdisk: <code> | ||
Línea 68: | Línea 91: | ||
mdadm --add /dev/md0 /dev/sdc1 | mdadm --add /dev/md0 /dev/sdc1 | ||
</code> | </code> | ||
- | * Agregar un disco o partición a un RAID5, para incrementar el espacio disponible <code> | + | |
+ | ==== Agregar un disco o partición a un RAID5, para incrementar el espacio disponible ==== | ||
+ | |||
+ | <code> | ||
mdadm --add /dev/md0 /dev/sde1 | mdadm --add /dev/md0 /dev/sde1 | ||
mdadm --grow /dev/md0 --raid-devices=4 | mdadm --grow /dev/md0 --raid-devices=4 | ||
Línea 76: | Línea 102: | ||
resize2fs /dev/md0 | resize2fs /dev/md0 | ||
</code> | </code> | ||
- | * Crear el archivo de configuración mdadm.conf desde cero | + | |
+ | ==== Agregar un disco a una unidad RAID0 ==== | ||
+ | |||
+ | * Obviamente tiene que ser otro idéntico, y el proceso tardará **mucho** tiempo | ||
+ | * mdadm hará un reshape a RAID4, sincronizará y finalmente volverá a RAID0 | ||
+ | * Lo he usado para pasar de dos discos con datos a una unidad RAID0 que combina ambos: | ||
+ | - Se mueven primero todos los datos del primer disco al segundo | ||
+ | - Se convierte el primero a RAID0 | ||
+ | - Se vuelven a mover los datos a esa nueva unidad | ||
+ | - Se agrega el segundo disco: <code> | ||
+ | mdadm /dev/md0 --grow --raid-devices=2 --backup-file=/root/grow_md0.bak --add /dev/sdb5 | ||
+ | </code> | ||
+ | - Luego se vuelve a hacer un reshape a RAID0:<code> | ||
+ | mdadm /dev/md0 --grow --level=0 --raid-devices=2 --backup-file=/root/grow_md4.bak | ||
+ | </code> | ||
+ | - Finalmente, convertir la unidad a RAID0 con:<code> | ||
+ | echo raid0 > /sys/block/md0/md/level | ||
+ | </code> | ||
+ | - Hecho eso, la unidad se puede utilizar. Para comprobar que esté todo bien:<code> | ||
+ | mdadm -D /dev/md0 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Renombrar una unidad MD ==== | ||
+ | |||
+ | Primero se debe detener la unidad en cuestión: | ||
+ | |||
+ | mdadm --stop /dev/md127 | ||
+ | |||
+ | Luego, ensamblarla con el nuevo nombre, cuidando de poner algo similar a lo que ya esté en mdadm.conf: | ||
+ | |||
+ | mdadm --assemble --update=name --name=srv01:4 /dev/md4 /dev/sda8 /dev/sdb8 | ||
+ | |||
+ | Luego se debe agregar la información de esta unidad en el archivo mdadm.conf, lo que se obtiene con el comando | ||
+ | |||
+ | mdadm --examine --scan | ||
+ | |||
+ | La línea correspondiente a esta nueva unidad debe ser copiada al archivo mdadm.conf | ||
+ | |||
+ | Finalmente, se debe actualizar el archivo initrd.img: | ||
+ | |||
+ | update-initramfs -u | ||
+ | |||
+ | ==== Crear el archivo de configuración mdadm.conf desde cero ==== | ||
- Agregar en /etc/mdadm/mdadm.conf lo siguiente: <code> | - Agregar en /etc/mdadm/mdadm.conf lo siguiente: <code> | ||
# mdadm.conf | # mdadm.conf | ||
Línea 161: | Línea 231: | ||
</code> | </code> | ||
-Crear nuevamente la unidad md, teniendo la precaución de usar la opción --assume-clean que informa a mdadm que el array ya existe: <code> | -Crear nuevamente la unidad md, teniendo la precaución de usar la opción --assume-clean que informa a mdadm que el array ya existe: <code> | ||
- | mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 missing /dev/sde1 | + | mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=4 --metadata=1.2 /dev/sdb1 /dev/sdc1 missing /dev/sde1 |
- | </code> "missing" reemplaza a la unidad que se va a agregar más tarde (sdd1); mdadm informará que las unidades ya pertenecen a un array, y preguntará si realmente se desea continuar con la creación del array, a lo que debe responderse que sí. Este paso reescribe los metadatos y crea un nuevo UUID, dejando todo como estaba e iniciando el array con tres dispositivos. | + | </code> "missing" reemplaza a la unidad que se va a agregar más tarde (sdd1); mdadm informará que las unidades ya pertenecen a un array, y preguntará si realmente se desea continuar con la creación del array, a lo que debe responderse que sí. Este paso reescribe los metadatos y crea un nuevo UUID, dejando todo como estaba e iniciando el array con tres dispositivos. **Antes de recrear la unidad MD debe revisarse con CUIDADO que el estilo de metadata y el chunk size original son los que se va a usar para crearla. De otra manera se DESTRUYE el sistema de archivos. Por ejemplo, si la unidad preexistente tenía estilo de metadata 0.90 y se usa ahora 1.2, o si el chunk size era de 64k y ahora se usa 512k, ocurre la destrucción del sistema de archivos**. |
-Detener nuevamente el array:<code> | -Detener nuevamente el array:<code> | ||
mdadm --stop /dev/md0 | mdadm --stop /dev/md0 |