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
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
Kommentarer10
Altså den store fordel ved
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).
Ved snapshots undgår du
Kan man ikke også benytte LVM ovenpå filsystemet til at tage snapshots?
#2
Har ikke nogen erfaringer
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.
Jo lvm snapshots kan godt
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.
Tak for jeres svar. Jeg kan
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.
Jeg forstår snapshot
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.
LVM virker ved at der
Ja men optager den samme plads som den oprindelige partition? Jeg troede at kun ændrede filer blev kopieret, som
copyonwrite.
Ja men optager den samme
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.
LVM snapshot tager kun plads
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.
ZFS
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