Filsystem til server med software raid?

pawsen
Antal: 71
Tilmeldt:
22-10-2011
User is offline
Filsystem til server med software raid?

Hej,

Jeg hjælper med administrationen af en server der kører klassiske tjenester som SQL, www, mai, owncloud samt fungerer som firewall.
Diskene bliver opgraderet til fire 1TB diske og tanken er at de skal køre software raid 6.
Backup foregår pt. med backupninja(~frontend til rsync) hver nat til en separat computer kun til formålet.

Jeg er i tvivl om hvilket filsystem vi skal vælge og hvorfor.
Jeg tænker BtrFS, men jeg ved ikke helt hvad fordelene vil være.
Vil det gøre backup nemmere og hvordan skal backup så foretages?

Mvh
Paw


julemand101
julemand101's picture
Antal: 1626
Tilmeldt:
17-01-2004
User is offline
Altså den store fordel ved

Altså den store fordel ved btrfs er snapshots således du kan tage løbende snapshots af filsystemet og tage backup af disse snapshots således du får en "komplet billede af virkeligheden". Et problem du kan opleve ved en langsom backup er at de første filer du tager backup af ikke passer sammen med de sidste filer. Fx hvis du først tager backup af databasen og efterfølgende backup af uploaded filer så kan det sagtens være du finder uploaded filer der ikke står i databasen fordi de blev uploadet mens du foretog backup. Ved snapshots undgår du dette da du straks tager et øjebliksbillede af hele serveren og kan så efterfølgende tage backup af disse filer.

Ulempen er du ofre noget performance ved at bruge btrfs da mange af filsystemets features ikke er gratis. Jeg ville personligt vælge XFS hvis snapshots ikke er vigtige da XFS skalerer ret godt ved store mængder data men andre vil nok pege på EXT4. XFS kan endda sætte dit filsystem i "pause" således alle programmer bare står og venter på IO imens du kan tage backup/snapshot af disken hvorefter du kan sætte filsystemet i gang igen. Dette påvirker self. din server som vil være nede i mellemtiden. Men muligheden er der. :)

Overvej ligeledes om RAID6 er smart. RAID5 og RAID6 benytter sig begge af avanceret algoritmer til at fordele data på tværs af diske men ulempen ved dette er hvis en disk er død så tager det en halv evighed at genopbygge disse data til en ny disk (samt performance generelt er lavere). I denne genopbygningsperiode må du bede til guderne om at dine andre diske ikke oplever diskfejl hvilket ofte kan ske fordi data netop er gemt forholdsvis kompliceret og er mere udsat ved diskfejl).

Selv bruger jeg RAID10 hvilket er en fancy måde at sige RAID1+RAID0. Altså 4 diske opdelt i to grupper i et RAID0 hvor hver gruppe kører RAID1. Fordelen er højere performance da det er langt simplere og du kan meget hurtigt genopbygge dit RAID med en ny disk hvis en går i stykker. Ulempen er så at du i worst case kun kan overleve en død disk og i best case 2 døde diske (det kommer helt an på hvilke diske der går i stykker).


marlar
Antal: 2823
Tilmeldt:
05-12-2009
User is offline
Ved snapshots undgår du

#1: Ved snapshots undgår du dette da du straks tager et øjebliksbillede af hele serveren og kan så efterfølgende tage backup af disse filer.

Kan man ikke også benytte LVM ovenpå filsystemet til at tage snapshots?


julemand101
julemand101's picture
Antal: 1626
Tilmeldt:
17-01-2004
User is offline
#2 Har ikke nogen erfaringer

#2
Har ikke nogen erfaringer med snapshots med LVM men som jeg kan forstå på det så går det ret meget ud over performance når du foretager dig dette (indtil dit snapshot er slettet igen hvorefter LVM vil forsøge at genetablere tilstanden). Men det er da noget man også kunne få undersøgt når man alligevel er i gang med at se på forskellige opsætninger af sin server.


kreinoee
Antal: 275
Tilmeldt:
08-01-2007
User is offline
Jo lvm snapshots kan godt

Jo lvm snapshots kan godt have performence problemer ved snapshots, men det er så vidt jeg husker lidt afhængigt af hvilke diske man har, og hvad de understøtter. Mener for eksempel ikke at der skulle være nogle problemer på ssd diske generelt.

Men generelt ville jeg klart anbefale lvm til denne situation. LVM vil også kunne håndtere software raid, hvis altså raid 5/6 bliver droppet for en raid 1+0 eller 0+1, hvilket jeg også klart vil anbefale, præcis som #1.

LVM giver store fordele i form af mere dynmanisk plads håndtering. Du kan for eksempel vente med at allokere alt pladsen, indtil du kan se hvor maskinen vil løbe tør. Hvis man vil smide nogle flere diske i, og tildele denne plads til for eksempel mysql, bliver det også meget lettere med LVM. Og jo så giver det muligheden for at lave snapshots, uanset hvilket filsystem du kører (selvom de i nople tilfælde performer dårligt)

Du kan sagtens kører lvm oven på en md software raid, og dette vil da nok også være nødvendigt hvis man vil kører lvm på et raid 5/6 system. Men hvis du kan holde dig til raid 1, 0 eller kombinationerne af disse to (raid 10), så kan lvm selv klarer det, hvilket giver et lag mindre, og derved et setup der er en pæn del simplere.

I forhold til filsystemet vil jeg fraråde btrfs, hvad mindre du har erfaringer med det i forvejen. Tror i det hele taget ikke du kommer til at mærke den store forskel på det. Så umiddelbart ville jeg nok sige ext4 eller xfs da det vist er de 2 mest benyttede. Du kan eventuelt vælge ud fra hvad der er standard filsystemet i den linux distribution du benytter.


pawsen
Antal: 71
Tilmeldt:
22-10-2011
User is offline
Tak for jeres svar. Jeg kan

Tak for jeres svar. Jeg kan godt se det smarte i RAID 10.
Det er alle HDD diske.

Hvordan vil det være smart at partionere diskene?
Der hostes:
* Nogle interne web-tjenester, bl.a. www, wiki, forum + tilhørende databaser
* Mailserver, hvor en del af de indkommende mails gemmes lokalt + mail-liste
* Owncloud, der dog kun bruges af få personer og i opsætningen er begrænset til et vidst antal GB.
* Billedgalleri
* Systemservices som print, dhcp og firewall
* Linux brugerkonto.

Tidligere har diskene været opdelt i en system(incl db)-, websites-, mail- og brugerpartition.
Er det stadig en god idé at partitionere eller kan jeg bare bruge en stor partition?

Hvordan bruges snapshot som backup?
Jeg forstår snapshot som en fuld kopi af en partition, gerne gemt på en anden partition. Kopien består af hardlinks men når en fil på partionen ændres, gemmes den oprindelige fil i kopien i stedet for hardlinket.


marlar
Antal: 2823
Tilmeldt:
05-12-2009
User is offline
Jeg forstår snapshot

#5: Jeg forstår snapshot som en fuld kopi af en partition, gerne gemt på en anden partition. Kopien består af hardlinks men når en fil på partionen ændres, gemmes den oprindelige fil i kopien i stedet for hardlinket.

Det er ikke sådan LVM snapshots virker. Du tænker nok snarere på programmer som rsnapshot og rsync der kan lave kopier på den måde (bortset fra at hardlinks ikke kan gemmes på andre partitioner eller filsystemer, hvorimod symlinks godt kan).

LVM virker ved at der oprettes en form for skyggepartition som er et øjebliksbillede af den pågældende partition som det så ud på præcis det tidspunkt. Denne partition kan du så mounte på normal vis i fx /mnt/xxx. Herfra kan du tilgå den på normal vis. Slet den efter brug så den ikke tager plads op.


pawsen
Antal: 71
Tilmeldt:
22-10-2011
User is offline
LVM virker ved at der

#6: LVM virker ved at der oprettes en form for skyggepartition som er et øjebliksbillede af den pågældende partition som det så ud på præcis det tidspunkt.

Ja men optager den samme plads som den oprindelige partition? Jeg troede at kun ændrede filer blev kopieret, som copyonwrite.


marlar
Antal: 2823
Tilmeldt:
05-12-2009
User is offline
Ja men optager den samme

#7: Ja men optager den samme plads som den oprindelige partition? Jeg troede at kun ændrede filer blev kopieret, som copyonwrite.

Så vidt jeg ved optager den ikke ekstra plads (ud over noget metadata). I det øjeblik filer bliver ændret eller oprettet, tager det plads op. Så efterhånden vil partitionen jo fylde en del, hvorfor det er meningen man sletter den igen når man har taget backup.


kreinoee
Antal: 275
Tilmeldt:
08-01-2007
User is offline
LVM snapshot tager kun plads

LVM snapshot tager kun plads for de filer der bliver ændret. Men du skal på forhånd allokere den plads der skal bruges til dette formål, og hvis den plads løber tør, slettes snapshottet. Sammenholdt med at snapshots også kan være en performence tung ting at have kørende, er det derfor ikke en backup løsning i sig selv. Du skal have noget andet til at kopierer filerne fra snapshottet, over hvor du vil gemme din backup. Rsync kunne være et godt bud her. Bemærke i øvrigt at mange servicec, her i blandt databaser, ofter har deres egne backup systemer, som man klart skal bruge i stedet, hvis de er der.

I forhold til at partitionere, vil jeg klart anbefale at splitte ud, så de skrivbarer dirs til de forskellige services, har vær deres partition. Der ud over er det en god ide at have seperater partitioner til:
/home
/var/
/var/log
/var/tmp
/tmp

Det giver større robust hed. For eksempel vil owncload ikke gå ned, bare fordi mysql ikke går amok ok skriver 8gb logs i sekundet.

Problemet med at lave forskellige partitioner, er at der bliver en lille smule mere spildplads, da der jo skal være lidt ledig plads på alle partionerne. Dette er dog intet problem i dag, hvor diske er så store og billige. Et langt større problem, kan være at det er svært på forhånd at vide hvor stor man skal lave hver enkelt partition. Dette problem er dog ikke rigtigt ekstisterende hvis man bruger lvm, da man så kan lave hver partition så lille som den minimun kan være fra start, og så bare udvide der hvor der er brug for det hen ad vejen.


mikbund
Antal: 26
Tilmeldt:
13-06-2005
User is offline
ZFS

ZFS kunne også være en løsning - kræver lidt ekstra, afhængig af distribution.

Bemærk dog at mange anbefaler ECC ram.
http://zfsonlinux.org/

Min begrundelse for ZFS på filserver:
Simpel opsætning af diskpool i raidz (Svarende til raid5)
Simpel oprettelse af partition(filområde)
snapshots
Quota system
Disk komprimering af filer