Difference between revisions of "RAID"

From Alessandro's Wiki
(5 intermediate revisions by the same user not shown)
Line 3: Line 3:
# guadagnare velocità di lettura
# guadagnare velocità di lettura
# se un disco muore, l'altro farà il suo lavoro  
# se un disco muore, l'altro farà il suo lavoro  
== mdadm ==
== mdadm ==
''' Gestore + comune e semplice di dispositivi RAID '''
''' Gestore + comune e semplice di dispositivi RAID '''
=== comandi al volo ===
== comandi al volo ==
* crea bitmap
* crea bitmap
  mdadm /dev/md3 -Gb internal
  mdadm /dev/md3 -Gb internal
oppure
mdadm --grow --bitmap=internal /dev/md3
* mdadm: set /dev/sda1 faulty in /dev/md0
* mdadm: set /dev/sda1 faulty in /dev/md0
  mdadm /dev/md0 -f /dev/sda1
  mdadm /dev/md0 -f /dev/sda1
Line 19: Line 20:
  Continue creating array? yes
  Continue creating array? yes
  mdadm: array /dev/md0 started.
  mdadm: array /dev/md0 started.
* Verificare la consistenza:
echo check >> /sys/block/mdX/md/sync_action
watch -n .1 cat /proc/mdstat


 
== recuperare un raid1 ==
=== creare un raid1 ===
livecd ~ # mdadm --assemble /dev/md1 /dev/hda5 /dev/hdc5
mdadm: /dev/md1 has been started with 2 drives.
livecd ~ # cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[0] hdc5[1]
      19542976 blocks [2/2] [UU]
      bitmap: 0/150 pages [0KB], 64KB chunk
unused devices: <none>
== Installare il sistema su RAID software ==
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
mknod /dev/md3 b 9 3
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
mdadm --detail --scan > /etc/mdadm.conf
mdadm /dev/md1 -Gb internal
mdadm /dev/md2 -Gb internal
mdadm /dev/md3 -Gb internal
grub
  grub> root (hd0,x)
  grub> setup (hd0)
  grub> quit
== Creare un raid0 (Dis+Disk+Disk..) ==
localhost ~ # mknod /dev/md0 b 9 0
localhost ~ # mdadm --create /dev/md0 --chunk=64 --level=raid0 --raid-devices=2 /dev/hda7 /dev/hdc1
mdadm: /dev/hda7 appears to contain a reiserfs file system
    size = 4891648K
Continue creating array? y
mdadm: array /dev/md0 started.
localhost ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid0 hdc1[1] hda7[0]
      303363200 blocks 64k chunks
unused devices: <none>
== Creare un raid1 (Disk=Disk+Disk=Disk+..) ==
* vediamo i modelli di disco che ho a disposizione: (sapendo che sono PS e SM)
* vediamo i modelli di disco che ho a disposizione: (sapendo che sono PS e SM)
  [root@elwood ~]# cat /proc/ide/ide[01]/hd[bc]/model
  [root@elwood ~]# cat /proc/ide/ide[01]/hd[bc]/model
Line 28: Line 67:
Il primo è un modello difettuoso di fabbrica (6Y***P0)
Il primo è un modello difettuoso di fabbrica (6Y***P0)
Il secondo è un pò meglio
Il secondo è un pò meglio
* Faacio una partizione per disco (devono essere identiche) e togglo il file syste a linux raid autodetect (tipo fd)
* Faacio una partizione per disco (devono essere identiche) e togglo il file syste a linux raid autodetect (tipo fd)
  # fdisk -l /dev/hd[bc]
  # fdisk -l /dev/hd[bc]
Line 36: Line 74:
   Device Boot      Start        End      Blocks  Id  System
   Device Boot      Start        End      Blocks  Id  System
  /dev/hdc1              1      19929  160079661  83  Linux raid autodetect
  /dev/hdc1              1      19929  160079661  83  Linux raid autodetect
* formattimao il file system (ext3)
* formattimao il file system (ext3)
  [root@elwood ~]# mkfs.ext3 -L raid1 -m0 /dev/hdb1
  [root@elwood ~]# mkfs.ext3 -L raid1 -m0 /dev/hdb1

Revision as of 12:40, 11 February 2007

Il Raid è la soluzione migliore per non rischiare di perdere tutto per colpa di discacci malfnzionanti.

  • Appunto, ho questi due discacci (Maxtor molto cattivi) li metto a specchio per:
  1. guadagnare velocità di lettura
  2. se un disco muore, l'altro farà il suo lavoro

mdadm

Gestore + comune e semplice di dispositivi RAID

comandi al volo

  • crea bitmap
mdadm /dev/md3 -Gb internal

oppure

mdadm --grow --bitmap=internal /dev/md3
  • mdadm: set /dev/sda1 faulty in /dev/md0
mdadm /dev/md0 -f /dev/sda1
  • mdadm: hot removed /dev/sda1
mdadm /dev/md0 -r /dev/sda1
  • mdadm: hot added /dev/sda1
mdadm /dev/md0 -a /dev/sda1
  • creo un raid multipath con 4 dischi
mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.
  • Verificare la consistenza:
echo check >> /sys/block/mdX/md/sync_action
watch -n .1 cat /proc/mdstat

recuperare un raid1

livecd ~ # mdadm --assemble /dev/md1 /dev/hda5 /dev/hdc5
mdadm: /dev/md1 has been started with 2 drives.
livecd ~ # cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[0] hdc5[1]
     19542976 blocks [2/2] [UU]
     bitmap: 0/150 pages [0KB], 64KB chunk
unused devices: <none>

Installare il sistema su RAID software

mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
mknod /dev/md3 b 9 3
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
mdadm --detail --scan > /etc/mdadm.conf
mdadm /dev/md1 -Gb internal
mdadm /dev/md2 -Gb internal
mdadm /dev/md3 -Gb internal
grub
 grub> root (hd0,x)
 grub> setup (hd0)
 grub> quit

Creare un raid0 (Dis+Disk+Disk..)

localhost ~ # mknod /dev/md0 b 9 0
localhost ~ # mdadm --create /dev/md0 --chunk=64 --level=raid0 --raid-devices=2 /dev/hda7 /dev/hdc1
mdadm: /dev/hda7 appears to contain a reiserfs file system
    size = 4891648K
Continue creating array? y
mdadm: array /dev/md0 started.
localhost ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid0 hdc1[1] hda7[0]
     303363200 blocks 64k chunks
unused devices: <none>

Creare un raid1 (Disk=Disk+Disk=Disk+..)

  • vediamo i modelli di disco che ho a disposizione: (sapendo che sono PS e SM)
[root@elwood ~]# cat /proc/ide/ide[01]/hd[bc]/model
	Maxtor 6Y160P0
	Maxtor 6L160P0

Il primo è un modello difettuoso di fabbrica (6Y***P0) Il secondo è un pò meglio

  • Faacio una partizione per disco (devono essere identiche) e togglo il file syste a linux raid autodetect (tipo fd)
# fdisk -l /dev/hd[bc]
  Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       19929   160079661   83  Linux raid autodetect
  Device Boot      Start         End      Blocks   Id  System
/dev/hdc1               1       19929   160079661   83  Linux raid autodetect
  • formattimao il file system (ext3)
[root@elwood ~]# mkfs.ext3 -L raid1 -m0 /dev/hdb1
[root@elwood ~]# mkfs.ext3 -L raid1 -m0 /dev/hdc1
  • costruiamo e facciamo partire il raid:
[root@elwood ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hdb1 /dev/hdc1
mdadm: /dev/hdb1 appears to contain an ext2fs file system
   size=160079660K  mtime=Mon May 29 22:32:40 2006
mdadm: /dev/hdc1 appears to contain an ext2fs file system
   size=160079660K  mtime=Thu Jan  1 01:00:00 1970
Continue creating array? (y/n) y
mdadm: array /dev/md0 started.
  • Ora vedo cosa è successo:
[root@elwood ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hdc1[1] hdb1[0]
     160079552 blocks [2/2] [UU]
     [>....................]  resync =  0.4% (652864/160079552) finish=44.7min speed=59351K/sec
  • Con il seguente comando facciamo partire a ogni avvio la monitoria del raid che ci manderà e-mails
[root@elwood ~]# echo " nohup mdadm --monitor --mail=aledelg@gmail.com --delay=300 /dev/md0 & " >> /etc/rc.local
  • Scriviamo un paio di linee in mdadm.conf per far riavviare il raid al riavvio (non sempre necessario)
[root@elwood ~]# vi /etc/mdadm.conf
DEVICE /dev/hd[bc]1
ARRAY /dev/md0 devices=/dev/hdb1,/dev/hdc1