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
informatica:linux:raid [2015/01/11 10:06] – [Cambiar un disco] javiinformatica:linux:raid [2020/11/15 13:11] (current) jose
Line 71: Line 71:
 For the record, here's how I do the MBR replication: For the record, here's how I do the MBR replication:
  
-# grub --no-floppy +  # grub --no-floppy 
- +<code> 
-device (hd0) /dev/sda \\ +device (hd0) /dev/sda 
-root (hd0,0) \\+root (hd0,0)
 setup (hd0) setup (hd0)
  
-device (hd0) /dev/sdb \\ +device (hd0) /dev/sdb 
-root (hd0,0) \\+root (hd0,0)
 setup (hd0) setup (hd0)
  
-device (hd0) /dev/sdc \\ +device (hd0) /dev/sdc 
-root (hd0,0) \\+root (hd0,0)
 setup (hd0) setup (hd0)
  
Line 93: Line 93:
 * take great care that the raid1 is in sync, to insure that all the required files are in their final position on disk * take great care that the raid1 is in sync, to insure that all the required files are in their final position on disk
 * thanks to grub's architecture, this only has to be done when upgrading grub or when changing a disk, not on every reconfiguration or kernel upgrade. * thanks to grub's architecture, this only has to be done when upgrading grub or when changing a disk, not on every reconfiguration or kernel upgrade.
 +</code>
  
 ==== Cambiar un disco ==== ==== Cambiar un disco ====
Line 99: Line 100:
 Mostramos los discos que hay Mostramos los discos que hay
  
-  clear; cat /proc/mdstat+  cat /proc/mdstat
 <code> <code>
   Personalities : [raid1] [raid6] [raid5] [raid4]   Personalities : [raid1] [raid6] [raid5] [raid4]
Line 154: Line 155:
 </code> </code>
  
-  clear; mdadm --detail /dev/md1+  mdadm --detail /dev/md1
 <code> <code>
   /dev/md1:   /dev/md1:
Line 249: Line 250:
 </code> </code>
  
-  clear; mdadm --detail /dev/md1+  mdadm --detail /dev/md1
 <code> <code>
   /dev/md1:   /dev/md1:
Line 320: Line 321:
         9767424 blocks [3/3] [UUU]         9767424 blocks [3/3] [UUU]
  
-#mdadm --detail /dev/md0 \\ +  #mdadm --detail /dev/md0 
-/dev/md0: \\ + 
-        Version : 00.90.03 \\ +<code> 
-  Creation Time : Thu Oct 25 21:15:28 2007 \\ +/dev/md0:  
-     Raid Level : raid1 \\ +        Version : 00.90.03 
-     Array Size : 9767424 (9.31 GiB 10.00 GB) \\ +  Creation Time : Thu Oct 25 21:15:28 2007 
-    Device Size : 9767424 (9.31 GiB 10.00 GB) \\ +     Raid Level : raid1 
-   Raid Devices : 3 \\ +     Array Size : 9767424 (9.31 GiB 10.00 GB) 
-  Total Devices : 3 \\ +    Device Size : 9767424 (9.31 GiB 10.00 GB) 
- Preferred Minor : 0 \\ +   Raid Devices : 3 
-    Persistence : Superblock is persistent \\+  Total Devices : 3 
 + Preferred Minor : 0 
 +    Persistence : Superblock is persistent
    
-    Update Time : Sat Nov  3 15:07:36 2007 \\ +    Update Time : Sat Nov  3 15:07:36 2007 
-          State : clean \\ +          State : clean 
- Active Devices : 3 \\ + Active Devices : 3 
- Working Devices : 3 \\ + Working Devices : 3 
- Failed Devices : 0 \\ + Failed Devices : 0 
-  Spare Devices : 0 \\+  Spare Devices : 0
  
-           UUID : a912d356:3a213509:fb13e982:631824f5 \\+           UUID : a912d356:3a213509:fb13e982:631824f5
          Events : 0.1284          Events : 0.1284
  
-    Number   Major   Minor   RaidDevice State \\ +    Number   Major   Minor   RaidDevice State 
-                    1        0      active sync   /dev/sda1 \\ +                    1        0      active sync   /dev/sda1 
-                   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 \\ +  mdadm: added /dev/sdb1
-mdadm: added /dev/sdb1+
  
-Ahora el disco aparecerà en reserva: \\+Ahora el disco aparecerà en reserva:
  
 servidor:~# mdadm --detail /dev/md0 servidor:~# mdadm --detail /dev/md0
 +<code>
 /dev/md0: /dev/md0:
         Version : 00.90.03         Version : 00.90.03
Line 381: Line 386:
  
                    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 394: Line 399:
       [>....................]  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 399: Line 405:
 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 409: Line 416:
   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 416: Line 423:
  
 servidor:~# pvdisplay\\ servidor:~# pvdisplay\\
 +<code>
   --- Physical volume ---   --- Physical volume ---
   PV Name               /dev/md1   PV Name               /dev/md1
Line 426: Line 434:
   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 438: Line 448:
     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 444: Line 454:
  
 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.1420970789.txt.gz · Last modified: 2015/04/13 20:19 (external edit)