Permalänk
Medlem

RAID under unix

Jag har sen ett par år tillbaka försökt att få RAID under Linux att fungera. Först körde jag onboardRAIDchip under Windows och det fungerade. Sen försökte jag få igång det i Linux utan resultat och då försökte jag med mjukvaru-RAID vilket fungerade tills ett strömavbrott då RAIDet gick ner och alla filer bara fanns på den ena disken... och raidet ville inte rebuildas eller ngt så jag gav upp. Jag har gett upp allt vad mdadm, eller vad nu skiten hette, heter.

Nu har jag två möjligheter kvar och minst en av dem måste fungera tycker jag.

Alt. 1. Jag köper ett fett jaefla RAID-kort. Ett mjukvaruoberoende som man direkt säger till "Hej. Du har här två diskar. Sätt dem i RAID1" och då fixar kortet det. När man sen bootar in i OSet ska det vara precis som om man kopplat in en HDD helt vanligt.
(Finns den här sortens RAID-kort? Perci/5 och sådana borde väl kunna sånt?)
+ mjukvaruoberoende?
+ stor chans att fungera
+ lite småcoolt
- kostar pengar, jag vill helst inte lägga mer än 2kkr om det inte finns ngt som verkligen motiveras av ett högre pris
- kräver expansionskortsplats, men jag ska köpa nytt mobo så det spelar ingen roll vilken sorts

Frågor om detta:
I. Redan ställd i parentes, finns det sådana RAID-kort?
II. Om strömmen går, vad händer?
III. Gå det att hitta ett sådant kort begagnat/ebay/nytt för under 2kkr?
IIII. Vad händer om det går sönder? I och med att jag kör RAID1 så ska det väl gå att koppla in en av diskarna "vanligt"?

Alt. 2. ZFS. Det verkar bra, men väldigt krångligt. Jag har ingen aning om vad raidz är, eller zpool eller xfs heller för den delen. Alla termer med x eller z helt enkelt.
+ gratis
+ ingen extra hårdvara
- krångligt
- finns inte till Debian (som jag är van vid)

I. Finns det ngn bra nybörjarguide som tydligt förklarar hur man får upp ett RAID1?
II. Vad händer om strömmen går?

Jag kommer inte köra ngt annat än RAID1 kanske jag ska poängtera. Hastighet är inte jätteviktigt, men självklart är det bättre ju fortare det går.

Det var väl allt tror jag. Hjälp mig att besvara frågorna och/eller motivera mig att välja ngt av alternativen.

Tack på förhand.

Permalänk
Avstängd

Öh... skulle ZFS vara krångligt?? Alt 2 föreslår jag. Prova på det ett tag. ZFS skapades för att vara extremt simpelt att administrera. Det är typiskt bara en kommandorad som är lätt att förstå, för att göra det du vill. Installera FreeBSD (eller OpenSolaris) i VirtualBox och testa det. Du kan skapa några hårddiskar i VirtualBox och skapa ett ZFS raid enkelt.

Så här skapar du ett ZFS raid:
# zpool create myZFSraidTjolahopp disc0 disc1 disc3

Det är allt. Tar nån sekund att göra. Du behöver inte formatera diskarna eller nåt. Det är bara att sätta igång direkt att tanka data.

Men du kanske vill ha motsvarande raid-5 eller raid-6 i ZFS istället? Då måste du säga det: raid-5 motsvarar "raidz1" och raid-6 motsvarar "raidz2". Så då skriver du istället
# zpool create raidz1 myZFSraidTjolahopp disc0 disc1 disc3

Om du frågar folk här, som kört Linux raid och ZFS, så kan de berätta vad de tycker är enklast att administrera och hur svårt ZFS är. Det finns flera människor här, som kan ZFS och FreeBSD (som är ett mycket bra OS, för övrigt. Mycket bättre än Linux säger många människor) som du kan få råd utav.

Permalänk
Medlem

Jag sällar mig till en av dom som använder båda delarna dagligen.
Och jag får nog lov att säga att ZFS är det enklare utav dom.. dock är det "flummigt" med hur allt hänger ihop i ZFS. Du kan skapa ett nytt filsystem i en mapp, men sen kan du även skapa en mapp bredvid filsystemet. Man lär sig hur det funkar, men innan dess kan man stöta på såna här små lustigheter

Men att köpa ett raidkort enbart för att få tillgång till en spegling känns befängt. Och det du beskrev om att din raid inte hittades etc, det kunde nog avhjälpts med ett kommando liknande detta, som fick igång min raid-5a efter den påstod att bara 2 av 4 diskar fanns;

$ sudo mdadm --verbose --assemble --force /dev/md2 /dev/sdc1 /dev/sdd /dev/sde1 /dev/sdf1

Dock är det inte RIKTIGT så enkelt som saddam skriver. I stort ja, men disc0 etc finns inte.. förrän du döpt dina diskar, och innan dess är sökvägen till diskarna lite kryptiskt, om man är van vid linux namngivning. Men det är inte värre än att lära sig.. vilket du gör på 10min kanske

En första disk ligger t.ex på /dev/da0s1a .. där "da" står för SCSI-device, om du har ett raidkort t.ex. (Prefixet ada om du kör på moderkortets kontroller; SATA).
"0" står för första disken.. unix börjar räkna på 0 snarare än 1.
s1 är "slice 1" vilket ungefär är "logisk partition" om man vill försöka förklara det... och sista bokstaven ("a"), är ordningen på partitionerna i slicen.
Denna disken är min systemdisk, och är inkopplad på ett raidkort. Därav "da".

En av mina lagringsdiskar ligger t.ex på /dev/ada4 .. den har inga slices, för ZFS har direkt åtkomst till disken. Och "ada" visar att den ses som SATA-disk, och är mycket riktigt inkopplad på moderkortet.

Det är nog som jag skulle förklarat det..

Permalänk
Medlem

Efter att ha läst på lite om ZFS (ZFS Tutorial Part 1 + del2) så var det inte krångligt som jag trodde. Jag fick nog bara för mig att det var krångligt eftersom alla trådar om det är så himla långa och folk snackar ngt fikonspråk i dem. Jag bryr mig inte om jag inte vet hur det hänger ihop, bara det fungerar så är jag glad.

@Schrimp: Jag hittade en bra guide som du skrivit också. ZFS får det bli.

Dock återstår frågan: Vad händer vid strömavbrott?

EDIT: En fråga till: Är alla diskar som fungerar med FreeBSD kompatibla med ZFS? Har två st Seagate 7200.12 och en Caviar Green.

Permalänk
Medlem
Skrivet av GuTsaV:

Efter att ha läst på lite om ZFS (ZFS Tutorial Part 1 + del2) så var det inte krångligt som jag trodde. Jag fick nog bara för mig att det var krångligt eftersom alla trådar om det är så himla långa och folk snackar ngt fikonspråk i dem. Jag bryr mig inte om jag inte vet hur det hänger ihop, bara det fungerar så är jag glad.

@Schrimp: Jag hittade en bra guide som du skrivit också. ZFS får det bli.

Dock återstår frågan: Vad händer vid strömavbrott?

EDIT: En fråga till: Är alla diskar som fungerar med FreeBSD kompatibla med ZFS? Har två st Seagate 7200.12 och en Caviar Green.

Ja, dina diskar är kompatibla. Det enda som kan vara lite jobbigare är om du har nåt exotiskt kontrollerkort eller raidkort som kanske inte stöds.
Tuta och kör!
Kul att du hittade min guide; har försökt beskriva det lite humanare där

Direkta strömavbrott är aldrig bra, men det ska inte vara konstigare än på andra system.
Du bör låta din bsd-burk köra en scrub på din "zfs-raid" veckovis, så håller den koll på filerna åt dig. Men givetvis klarar ZFS inte av att fixa en fil som blev halvt skriven etc.. det finns det inga filsystem som klarar.
Men om du syftar på att din pool inte ska hittas så kan du importera din pool om den mot förmodan inte skulle dyka upp. Det problemet tror jag inte du ska behöva oroa dig över.

Läs på denna sidan också, en väldigt duktig kille som jag hade mycket nytta av när jag installerade min burk.
sub.mesa

Permalänk
Medlem
Skrivet av GuTsaV:

Dock återstår frågan: Vad händer vid strömavbrott?

Jag hävdar att man inte vet vad som händer vid strömavbrott. Naturligtvis hantera olika RAID-lösningar och filsystem strömavbrott mer eller mindre bra men jag tror inte att det finns någon lösning som inte kan få problem vid strömavbrott.

Frågan är väl hur man ska hantera risken för dataförlust vid strömavbrott, en liten UPS som har tillräckligt med kapacitet för att plocka ner servern kontrollerat är väl kanske det bästa.

Själv kör på den vanligare struts-metoden: hoppas på att det inte blir några strömavbrott. Som en liten twist på metoden har jag offline backup av de data jag verkligen inte vill förlora. Ja, jag tar en medveten, kalkylerad, risk och anser att risknivån är acceptabel för mig.

Permalänk
Avstängd
Skrivet av Schrimp:

Dock är det inte RIKTIGT så enkelt som saddam skriver. I stort ja, men disc0 etc finns inte.. förrän du döpt dina diskar,

I Solaris/OpenSolaris så behöver du inte döpa dina diskar. Du kan skriva deras namn rätt av. Men diskarna heter inte disc0, utan något i stil med "c9t2d0". Du behöver inte skriva path eller så. Jag vet dock inte hur det är i FreeBSD, där kanske du måste skriva path/döpa diskarna?

Skrivet av Fnorken:

Jag hävdar att man inte vet vad som händer vid strömavbrott. Naturligtvis hantera olika RAID-lösningar och filsystem strömavbrott mer eller mindre bra men jag tror inte att det finns någon lösning som inte kan få problem vid strömavbrott.

Frågan är väl hur man ska hantera risken för dataförlust vid strömavbrott, en liten UPS som har tillräckligt med kapacitet för att plocka ner servern kontrollerat är väl kanske det bästa.

Själv kör på den vanligare struts-metoden: hoppas på att det inte blir några strömavbrott. Som en liten twist på metoden har jag offline backup av de data jag verkligen inte vill förlora. Ja, jag tar en medveten, kalkylerad, risk och anser att risknivån är acceptabel för mig.

Strömavbrott ska ZFS klara galant. T.ex. klarar inte hårdvaruraid alltid av strömavbrott, t.ex. klarar de inte av "write-hole-error" som uppkommer vid strömavbrott. ZFS klarar av det utan problem.

Det är viktigt att förstå hur ZFS funkar. Det är ju atomiskt (COW). Det innebär att om du ändrar en fil så skriver ZFS ned alla ändringar på disk, men den gamla filen är helt orörd. Det gamla datat ligger alltid kvar, ehlt orörd.

Sist, när alla nya ändringar är nedskrivna, så kommer ZFS peka om till det nya datat, det är bara ett block som ska ändras - dvs det är en atomisk operation (antingen lyckas ompekningen, eller inte - det är binärt, ja eller nej - det kommer aldrig bli så att halva blocket skrivs ned men andra halvan blir inte nedskrivet så data korruptas). Om strömmen dör mitt under nedskrivningen av det nya datat, så ligger den gamla filen kvar, helt oförändrad. För ZFS rör ju inte den. Mao, så klarar ZFS av strömavbrott utan att korrupta data. Pr0xy här på forumet råkade ju utför strömavbrott och det gick bra.

Det som kan hända dock, är att din senaste nedskrivning inte registreras (eftersom strömmen dog innan ZFS hann peka om superblocket till det nya datat, den pekar fortfarande på det gamla datat).

Om din ZFS raid mot all förmodan blir korruptat, så kan du importera ZFS raiden vid en tidigare tidpunkt, dvs gamla data. Alla gammal data ligger ju kvar. Så du kanske förlorar de senaste 30 sekunders skrivningar. Men det är ett billigt pris att ta, då alternativet vore en korruptad och förlorad ZFS raid.

Mao, strömavbrott är inget problem. ZFS designades för det.

Permalänk
Medlem
Skrivet av GuTsaV:

Dock återstår frågan: Vad händer vid strömavbrott?

Skaffar du ett raidkort så kan du i många fall köpa till en batteribackup som du kopplar till kortet, ex: 3WARE BATTERY BACKUP FÖR 9650SE RAID. Bekymret med raidkort är att du kan få kompabilitetsproblem om kortet pajjar och du måste skaffa ett nytt, det är relativt sällsynt numer men det händer och det är värt att påpeka. Du frågar vad som händer om kortet pajjar och du måste boota systemet med en disk och det går givetvis inte, det är inte en enkel copy+paste som kortet gör med din data och du måste ha ett kort som kan hitta din array för att kunna boota från en av diskarna så det faller ju på min tidigare poäng att i värsta fall hittar inte ditt nya kort arrayen och du kan inte bara stoppa i ena disken och gasa.

ZFS och mdadm är båda bra alternativ till hårdvaruraid och såvida du inte lagrar väldigt känslig data så skulle jag vilja påstå att du kan dra ner på nojjandet och fixa en praktisk lösning som du med relativ lätthet kan åtgärda själv. mdadm är ju bra på så vis att pajjar all din hårdvara men hårddiskarna överlever kan du ta alla diskarna och stoppa dom i en annan maskin och starta upp arrayen där igen, hur det funkar i ZFS ska jag inte kommentera men det torde väl vara möjligt. Det är också billigt att köra mjukvarulösning, du slipper ju tjacka ett raidkort för +2kkr som du pratar om. Lägg dom pengarna på extra hårddiskar istället, dessutom om bara en disk pajjar (eller så många du har i fault-tollerance) så kan du byta den mot garanti det har jag gjort flera gånger - det kräver såklart att garantin inte gått ut men så är det ju med vad du än ska byta ut så det är ju lite av en oskriven regel inte sant.

En mer generell lösning som funkar oavsett om du väljer mjukvaruraid eller ett raidkort är ju att skaffa en liten UPS där hemma och använda apcupsd eller liknande för att prata med UPS'en och om strömmen går kan du sätta gränsvärde som exempelvis "om det är uppskattningsvis 5min batteritid kvar stäng av systemet".