> 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
Felicitari! :) > 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. Ca sa ai /dev/hw_raid trebuie sa ai un driver pentru controller-ul respectiv care sa stie si de 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. De ce nu ai facut RAID1 si pe boot? > 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! E normal pentru ca ai scris ceva pe hard-uri in momentul cind erau singure. Cind le-ai pus impreuna md-ul a detectat asta si pe cel mai vechi l-a scos din array. Sa zicem ca ai pornit asa: versiune disk1: 1 versiune disk2: 1 Ai butat numai cu disk1 si ai scris ceva: versiune disk1: 2 Ai butat numai cu disk2 si ai scris ceva: versiune disk1: 3 Ai butat cu amindoua: versiune disk1: 2 versiune disk2: 3 Bang! > 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. Nu ai specificat cu ce ai creat array-ul. raidtools sau mdadm? Pentru scoaterea unui disc trebuia sa faci asa: mdadm --set-faulty /dev/md0 /dev/sdx3 mdadm --remove /dev/md0 /dev/sdx3 Apoi, ca sa-l adaugi: mdadm --add /dev/md0 /dev/sdx3 > 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 > :) Ai facut fsck? > 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! Trebuie sa mearga fara sa recreezi matricea. E normal sa-ti arunce discul cu date "vechi" afara din 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/ > > --- Catalin(ux aka Dino) BOIE catab at deuroconsult.ro http://kernel.umbrella.ro/ --- Detalii despre listele noastre de mail: http://www.lug.ro/
