User Tools

Site Tools


informatica:linux:raid

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatica:linux:raid [2013/03/19 14:37] javiinformatica:linux:raid [2020/11/15 13:08] jose
Line 99: Line 99:
 Mostramos los discos que hay Mostramos los discos que hay
  
-# clear;cat /proc/mdstat+  cat /proc/mdstat 
 +<code>
   Personalities : [raid1] [raid6] [raid5] [raid4]   Personalities : [raid1] [raid6] [raid5] [raid4]
   md1 : active raid5 sda2[0] sdc2[2] sdb2[1]   md1 : active raid5 sda2[0] sdc2[2] sdb2[1]
       957232896 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]       957232896 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
 +</code>
  
- +  mdadm --detail /dev/md1 
-mdadm - - detail /dev/md1+<code>
   /dev/md1:   /dev/md1:
         Version : 00.90.03         Version : 00.90.03
Line 134: Line 136:
                    18        1      active sync   /dev/sdb2                    18        1      active sync   /dev/sdb2
                    34        2      active sync   /dev/sdc2                    34        2      active sync   /dev/sdc2
 +</code>
  
 Los 3 discos del RAID 5 están funcionando correctamente. Los 3 discos del RAID 5 están funcionando correctamente.
  
-Forzamos el fallo en un disco:\\ +Forzamos el fallo en un disco: 
-mdadm --manage --set-faulty /dev/md1 /dev/sdb2+ 
 +  mdadm --manage --set-faulty /dev/md1 /dev/sdb2 
 +<code>
   mdadm: set /dev/sdb2 faulty in /dev/md1   mdadm: set /dev/sdb2 faulty in /dev/md1
 +</code>
  
-cat /proc/mdstat\\+  cat /proc/mdstat 
 +<code>
   Personalities : [raid1] [raid6] [raid5] [raid4]   Personalities : [raid1] [raid6] [raid5] [raid4]
   md1 : active raid5 sda2[0] sdc2[2] sdb2[3](F)   md1 : active raid5 sda2[0] sdc2[2] sdb2[3](F)
       957232896 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]       957232896 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
 +</code>
  
-# clear;mdadm --detail /dev/md1\\+  mdadm --detail /dev/md1 
 +<code>
   /dev/md1:   /dev/md1:
         Version : 00.90.03         Version : 00.90.03
Line 178: Line 186:
  
                    18        -      faulty spare   /dev/sdb2                    18        -      faulty spare   /dev/sdb2
 +</code>
  
- +En /var/log/syslog vemos las lineas: 
-En /var/log/syslog vemos las lineas:\\+<code>
   Oct 26 12:04:03 servidor kernel:  --- rd:3 wd:2 fd:1   Oct 26 12:04:03 servidor kernel:  --- rd:3 wd:2 fd:1
   Oct 26 12:04:03 servidor kernel:  disk 0, o:1, dev:sda2   Oct 26 12:04:03 servidor kernel:  disk 0, o:1, dev:sda2
Line 190: Line 199:
   Oct 26 12:04:03 servidor kernel:  disk 2, o:1, dev:sdc2   Oct 26 12:04:03 servidor kernel:  disk 2, o:1, dev:sdc2
   Oct 26 12:04:03 servidor mdadm: Fail event detected on md device /dev/md1, component device /dev/sdb2   Oct 26 12:04:03 servidor mdadm: Fail event detected on md device /dev/md1, component device /dev/sdb2
 +</code>
  
-Sacamos el disco del RAID5. Se saca en caliente si no está activo en el RAID: \\ +Sacamos el disco del RAID5. Se saca en caliente si no está activo en el RAID: 
-mdadm  /dev/md1 --remove /dev/sdb2+ 
 +  mdadm  /dev/md1 --remove /dev/sdb2 
 +<code>
   mdadm: hot removed /dev/sdb2   mdadm: hot removed /dev/sdb2
 +</code>
 +
 +Aparece quitado:
  
-Aparece quitado:\\ +  mdadm --detail /dev/md1 
-mdadm --detail /dev/md1+<code>
   /dev/md1:   /dev/md1:
         Version : 00.90.03         Version : 00.90.03
Line 225: Line 240:
                     0        1      removed                     0        1      removed
                    34        2      active sync   /dev/sdc2                    34        2      active sync   /dev/sdc2
 +</code>
  
 +Lo volvemos a añadir:
  
-Lo volvemos a añadir: \\ +  mdadm  /dev/md1 -a /dev/sdb2 
-mdadm  /dev/md1 -a /dev/sdb2+<code>
   mdadm: re-added /dev/sdb2   mdadm: re-added /dev/sdb2
 +</code>
  
- +  mdadm --detail /dev/md1 
-# clear;mdadm --detail /dev/md1+<code>
   /dev/md1:   /dev/md1:
         Version : 00.90.03         Version : 00.90.03
Line 263: Line 281:
                    18        1      spare rebuilding   /dev/sdb2                    18        1      spare rebuilding   /dev/sdb2
                    34        2      active sync   /dev/sdc2                    34        2      active sync   /dev/sdc2
 +</code>
  
-Si volvemos a lanzar el comando:\\+Si volvemos a lanzar el comando: 
 +<code>
   Rebuild Status : 18% complete   Rebuild Status : 18% complete
 +</code>
  
 +Vemos como se está reconstruyendo el disco:
  
-Vemos como se está reconstruyendo el disco:\\ +  cat /proc/mdstat 
-cat /proc/mdstat+<code>
   Personalities : [raid1] [raid6] [raid5] [raid4]   Personalities : [raid1] [raid6] [raid5] [raid4]
   md1 : active raid5 sdb2[3] sda2[0] sdc2[2]   md1 : active raid5 sdb2[3] sda2[0] sdc2[2]
       957232896 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]       957232896 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
       [>....................]  recovery =  0.8% (3914236/478616448) finish=112.2min speed=70464K/sec       [>....................]  recovery =  0.8% (3914236/478616448) finish=112.2min speed=70464K/sec
-       +</code>
 ==== Configuracion ==== ==== Configuracion ====
  
Line 300: Line 321:
  
 #mdadm --detail /dev/md0 \\ #mdadm --detail /dev/md0 \\
 +<code>
 /dev/md0: \\ /dev/md0: \\
         Version : 00.90.03 \\         Version : 00.90.03 \\
Line 325: Line 347:
                    33        1      active sync   /dev/sdc1 \\                    33        1      active sync   /dev/sdc1 \\
                    49        2      active sync   /dev/sdd1                    49        2      active sync   /dev/sdd1
 +</code>
 Añadimos el disco: \\ Añadimos el disco: \\
 #mdadm /dev/md0 -a /dev/sdb1 \\ #mdadm /dev/md0 -a /dev/sdb1 \\
Line 333: Line 355:
  
 servidor:~# mdadm --detail /dev/md0 servidor:~# mdadm --detail /dev/md0
 +<code>
 /dev/md0: /dev/md0:
         Version : 00.90.03         Version : 00.90.03
Line 360: Line 383:
  
                    17        -      spare   /dev/sdb1                    17        -      spare   /dev/sdb1
 +</code>
 Aumentamos el tamaño del RAID para que lo coja: Aumentamos el tamaño del RAID para que lo coja:
 #mdadm --grow /dev/md0 --raid-devices=4 #mdadm --grow /dev/md0 --raid-devices=4
 +<code>
 md0 : active raid1 sdb1[4] sda1[0] sdd1[2] sdc1[1] md0 : active raid1 sdb1[4] sda1[0] sdd1[2] sdc1[1]
       9767424 blocks [4/3] [UUU_]       9767424 blocks [4/3] [UUU_]
Line 373: Line 396:
       [>....................]  reshape =  1.4% (7020736/478616448) finish=539.3min speed=14570K/sec       [>....................]  reshape =  1.4% (7020736/478616448) finish=539.3min speed=14570K/sec
  
 +</code>
 Para que coja todo el tamaño del disco: \\ Para que coja todo el tamaño del disco: \\
   #mdadm --grow /dev/md1 --size=max   #mdadm --grow /dev/md1 --size=max
Line 378: Line 402:
 Todavía no ha cogido el filesystem todo el tamaño: Todavía no ha cogido el filesystem todo el tamaño:
 #pvdisplay #pvdisplay
 +<code>
   --- Physical volume ---   --- Physical volume ---
   PV Name               /dev/md1   PV Name               /dev/md1
Line 388: Line 413:
   Allocated PE          233699   Allocated PE          233699
   PV UUID               FWHDaX-piDe-3962-ThyA-xUoX-I49J-v2qOoF   PV UUID               FWHDaX-piDe-3962-ThyA-xUoX-I49J-v2qOoF
 +</code>
 Le decimos que lo coja todo:\\ Le decimos que lo coja todo:\\
 # pvresize /dev/md1 # pvresize /dev/md1
Line 395: Line 420:
  
 servidor:~# pvdisplay\\ servidor:~# pvdisplay\\
 +<code>
   --- Physical volume ---   --- Physical volume ---
   PV Name               /dev/md1   PV Name               /dev/md1
Line 405: Line 431:
   Allocated PE          233699   Allocated PE          233699
   PV UUID               FWHDaX-piDe-3962-ThyA-xUoX-I49J-v2qOoF   PV UUID               FWHDaX-piDe-3962-ThyA-xUoX-I49J-v2qOoF
 +</code>
 Primero hacemos un test: Primero hacemos un test:
 #lvresize -v -d -t  -L +457G /dev/servidor/servidor_home #lvresize -v -d -t  -L +457G /dev/servidor/servidor_home
  
 Nos la jugamos:\\ Nos la jugamos:\\
-#lvresize -v -d -L +457G /dev/servidor/servidor_home+  #lvresize -v -d -L +457G /dev/servidor/servidor_home 
 + 
 +<code>
     Found volume group "servidor"     Found volume group "servidor"
     Loading servidor-servidor_home table     Loading servidor-servidor_home table
Line 417: Line 445:
     Resuming servidor-servidor_home (253:3)     Resuming servidor-servidor_home (253:3)
   Logical volume servidor_home successfully resized   Logical volume servidor_home successfully resized
 +</code>
  
 Una vez añadido incrementamos el tamaño online. Necesitamos el paquete ext2resize: Una vez añadido incrementamos el tamaño online. Necesitamos el paquete ext2resize:
Line 423: Line 451:
  
 http://scotgate.org/?p=107 http://scotgate.org/?p=107
 +
 +===== Cambiar disco en frio (apagando server) =====
 +
 +1. Apagar servidor
 +
 +2. Desconectar disco que creemos que falla
 +
 +3. Arrancar servidor
 +
 +4. Entrar en la BIOS
 +
 +  supr
 +
 +5. Comprobar que el unico disco conectado es master. En mi caso en la BIOS Asus:
 +
 +  SATA6G_1
 +
 +6. (Opcional) si el disco no estaba como master apagar servidor y conectar el disco como master cambiando cables y encender de nuevo
 +
 +7. Arrancar servidor
 +
 +8. Tocar flecha arriba/abajo para que muestre opciones de grub
 +
 +9. Arrancar en modo recovery
 +
 +10. Decir que se quiere arrancar el RAID degradado
 +
 +  y
 +  Enter
 +
 +11. Arrancar normal
 +
 +  TODO: provide menu label
 +  Enter
 +
 +12. Ver las pariciones del disco bueno, en mi caso /dev/sda
 +
 +  sudo fdisk /dev/sda
 +<code>
 +The device presents a logical sector size that is smaller than
 +the physical sector size. Aligning to a physical sector (or optimal
 +I/O) size boundary is recommended, or performance may be impacted.
 +
 +Command (m for help): 
 +</code>
 +
 +  p
 +<code>
 +Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
 +255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
 +Units = sectors of 1 * 512 = 512 bytes
 +Sector size (logical/physical): 512 bytes / 4096 bytes
 +I/O size (minimum/optimal): 4096 bytes / 4096 bytes
 +Disk identifier: 0x000ab48f
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048  1953523711   976760832   fd  Linux RAID autodetect
 +
 +Command (m for help): 
 +</code>
 +
 +  q
 +
 +13. Copiar el mismo particionado:
 +
 +13.1. Crear particion
 +
 +  sudo fdisk /dev/sdb
 +<code>
 +The device presents a logical sector size that is smaller than
 +the physical sector size. Aligning to a physical sector (or optimal
 +I/O) size boundary is recommended, or performance may be impacted.
 +
 +Command (m for help):
 +</code>
 +
 +  p
 +<code>
 +Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
 +255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
 +Units = sectors of 1 * 512 = 512 bytes
 +Sector size (logical/physical): 512 bytes / 4096 bytes
 +I/O size (minimum/optimal): 4096 bytes / 4096 bytes
 +Disk identifier: 0x4d1b267d
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +
 +Command (m for help):
 +</code>
 +
 +  n
 +<code>
 +Partition type:
 +     primary (0 primary, 0 extended, 4 free)
 +     extended
 +Select (default p): 
 +</code>
 +
 +  Enter
 +<code>
 +Using default response p
 +Partition number (1-4, default 1): 
 +</code>
 +
 +  Enter
 +<code>
 +Using default value 1
 +First sector (2048-1953525167, default 2048): 
 +</code>
 +
 +  Enter
 +<code>
 +Using default value 2048
 +Last sector, +sectors or +size{K,M,G} (2048-1953525167, default 1953525167): 
 +</code>
 +
 +  Enter
 +<code>
 +Using default value 1953525167
 +
 +Command (m for help):
 +</code>
 +
 +  w
 +<code>
 +The partition table has been altered!
 +
 +Calling ioctl() to re-read partition table.
 +Syncing disks.
 +</code>
 +
 +13.2. Cambiar label
 +
 +  sudo fdisk /dev/sdb
 +<code>
 +The device presents a logical sector size that is smaller than
 +the physical sector size. Aligning to a physical sector (or optimal
 +I/O) size boundary is recommended, or performance may be impacted.
 +
 +Command (m for help):
 +</code>
 +
 +  t
 +<code>
 +Selected partition 1
 +Hex code (type L to list codes):
 +</code>
 +
 +  fd
 +<code>
 +Changed system type of partition 1 to fd (Linux RAID autodetect)
 +
 +Command (m for help):
 +</code>
 +
 +  w
 +<code>
 +The partition table has been altered!
 +
 +Calling ioctl() to re-read partition table.
 +Syncing disks.
 +</code>
 +
 +14. Ver estado del raid:
 +
 +  cat /proc/mdstat
 +<code>
 +Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
 +md0 : active raid1 sda1[1]
 +      976629568 blocks super 1.2 [2/1] [_U]
 +      
 +unused devices: <none>
 +</code>
 +
 +15. Anyadir particion (en mi caso /dev/sdb1) al RAID (en mi caso md0)
 +
 +  sudo mdadm -a /dev/md0 /dev/sdb1
 +<code>
 +mdadm: added /dev/sdb1
 +</code>
 +
 +16. Ver progreso
 +
 +  cat /proc/mdstat
 +<code>
 +Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
 +md0 : active raid1 sdb1[2] sda1[1]
 +      976629568 blocks super 1.2 [2/1] [_U]
 +      [>....................]  recovery =  0.0% (19072/976629568) finish=15349.0min speed=1059K/sec
 +      
 +unused devices: <none>
 +</code>
 +
 +17. Install grub on the MBR of new hard disk
 +
 +  sudo grub-install /dev/sdb
 +<code>
 +/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
 +Installation finished. No error reported.
 +</code>
 +
 +**TODO**: quiza esperar a que termine el rebuild
 +
 +===== Errores =====
 +
 +====== incrementally starting raid arrays ======
 +
 +A mi me paso cuando casco 1 de los 2 discos de un RAID 0 e intente arrancar con uno de los discos.
 +
 +Entra en un loop infinito y no llega a arrancar:
 +
 +<code>
 +incrementally starting raid arrays
 +mdadm: Create user root not found 
 +mdadm: create group disk not found 
 +incrementally started raid arrays
 +</code>
 +
 +**Causa**: intercanvie de lugar en la placa base el disco. Es decir, antes era el disco maestro, y lo puse conectado a los cables que lo hacian esclavo
 +
 +**Solucion**
 +
 +http://www.larrystendebach.com/fixing-incrementally-starting-raid-arrays/
 +
 +1. Volver a colocar el disco en la "posicion" que okupaba anteriormente en el RAID. Basicamente ensallo/error. Se apaga el servidor, se colocan cables y se enciende. ¿Que no arranca? se vuelve a apagar y se cambian cables etc...
 +
 +2. Una vez haya arrancado:
 +
 +<code>
 +sudo su
 +echo mpt2sas >>/etc/initramfs-tools/modules
 +</code>
 +
 +3. Apagar el servidor. Ya se puede colocar el disco en cualquier posicion que arrancara
 +
 +
 +====== Recuperar RAID ======
 +  # mdadm --detail --scan
 +
 +  ARRAY /dev/md/0 metadata=1.2 name=proxmox01:0 UUID=ccc2aadb:7808895c:d4339489:b9b0e569
 +  ARRAY /dev/md/2 metadata=1.2 name=proxmox01:2 UUID=bc05007c:2855e55e:45d0671c:86e24616
 +  ARRAY /dev/md/1 metadata=1.2 name=proxmox01:1 UUID=4b92d787:c7f43fb7:ab52584c:c6207c8a
  
  
informatica/linux/raid.txt · Last modified: 2020/11/15 13:11 by jose