Am un sistem ce contine urmatoarele chestii relevante:
p4 2.8G
2 hdd s-ata
Mainboard Assus P4P800-e Deluxe cu urmatoarele controllere storage:
ICH5 (in southbridge)
Promise 20378

Ambele controllere suporta raid 0 si raid 1 configurabil dintr-un meniu
bios.

Desi eram hotarat sa pun hdd-urile intr-o matrice raid software am zis
sa ma joc un pic si cu raid hardware.
Ce am facut:
1. Am pus hdd in conectorii s-ata corespunzatori controllerului integrat
in southbridge ICH5. Am setat controllerul dintr-un meniu bios sa
formeze o matrice radi1 cu cele 2 hdd. Am butat cu FC3 si la partea de
partitionare stupoare: imi apareau 2 hdd in loc de unul. Aveam /dev/sda
si /dev/sdb, iar eu ma asteptam la ceva de genul /dev/hw_raid.

2. Acelasi lucru dar cu hdd infipte in controllerul promise. Tot asa,
installerul FC3 imi vede 2 hdd in loc de un singur device hardware cum
ma asteptam eu.

Gresesc undeva? Sistemul de operare nu trebuia sa vada un sigur device
storage ??

Am abandonat pana la urma experimentele si am trecut la software raid.
Am mutata hdd la loc pe conectorii coresp controllerului ICH5 dar fara
sa activez vreo matrice raid hardware. Am butat cu FC3 si la
partitionare am procedat asa: pe fiecare hard am facut 3 partitii: 

1. 75M pt /boot
2. 256M pt swap
3. restul de tip raid autodetect

Din cele 2 ultime partitii de pe fiecare hdd am facut o matrice raid 1.
Am instalat sistemul ok, si apoi am clonat cu dd partitia de boot de pe
primul hdd si pe al doilea. Totul era ok, cat /proc/mdstat spunea ca
totul e in regula.
Am trecut la urmatoarea faza: testarea matricei in caza de hdd failure.

Am pornit sistemul cu un singur hdd: totul ok, mdadm raporteaza ca in
/dev/md0 am un singur hdd
Am pornit sistemul cu celalalt hdd: idem
Am pornit sistemul cu ambele hdd si acum apare problema:

 md: raid1 personality registered as nr 3
 md: Autodetecting RAID arrays.
 md: autorun ...
 md: considering sdb3 ...
 md:  adding sdb3 ...
 md:  adding sda3 ...
 md: created md0
 md: bind<sda3>
 md: bind<sdb3>
 md: running: <sdb3><sda3>
 md: kicking non-fresh sdb3 from array!
 md: unbind<sdb3>
 md: export_rdev(sdb3)
 raid1: raid set md0 active with 1 out of 2 mirrors
 md: ... autorun DONE.

dupa cum se vede imi construieste matricea raid din sda3 si sdb3 dar
apoi: kicking non-fresh sdb3 from array!
Dupa ce am incercat zeci de metode care toate se soldau scoaterea in
afara matricei a unui hdd, am facut urmatoarea chestie care a
functionat:

mdadm -C /dev/md0 -n2 -l1 /dev/sda3 /dev/sdb3 
dupa ce am pornit cu un live cd.

In mod normal in scripturile de init o matrice se initializeaza cu 
mdadm -A /dev/md0 bla bla (-A stands for Assemble)
iar eu am rezolvat cu
mdadm -C /dev/md0 bla bla (-C stands for Create new array)

Din fericire datele din matrice nu s-au pierdut, sau cel putin asa pare
:)

Intrebare: e normal sa se intample asa? Adica daca pornesc sistemul doar
cu un hdd, apoi el nu mai vrea sa mearga din nou cu ambele pana nu
recreez matricea raid ? Eu am repetat experimetul de 2 ori si de fiecare
data am patit asa: kicking non-fresh sdb3 from array!

O explicatie la care m-am gandit, desi nu stiu cat e de corecta, ar fii
ca in mod normal, in superblocul celor 2 partitii ale matricei raid
scrie (si) ceva de genul /dev/sda3 bala bla si /dev/sdb3 bla bla. Dar
problema este ca atunci cand bootez cu cate un singur disc, acel disc
va fii mereu /dev/sda3 si in consecinta cand se creaza matricea se
actualizeaza superblocul partitiei cu acel info despre /dev/sda3. Apoi
cand pornesc la loc cu ambele hdd, unul va fi sda iar altul sdb si cand
se reincearca formarea matricei in superblocul celor 2 partitii se afla
info gresite. Am vazut in man mdadm ca exista diferite optiuni cu care
pot aborda problemele legata de superblock, dar ma intereseaza daca s-a
mai lovit cineva de problema asta si daca are o rezolvare eleganta (nu
ca cea folosita de mine care presupune crearea unei noi matrici )

Thx

-- 
Mihai Voica

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui