Difference between revisions of "RAID"
From Alessandro's Wiki
Porcelinux (talk | contribs) |
|||
(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 == | |||
* 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 == | |||
=== | 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:
- guadagnare velocità di lettura
- 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