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/
