Toon posts:

fileserver voor 12 simultane videostreams

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor het maken en analyseren van videobeelden van sportevenementen willen we
een fileserver hebben die behalve flinke capaciteit (1tb) ook een flinke
throughput heeft.
We willen met 6 camera's (2 op elk van onze 3 laptops) tegelijkertijd opnamen
maken en die naar de centrale fileserver schrijven. Of dat direct kan (6x 3.5
Mbyte/sec) of beter nadat de opname eerst op de hd van een laptop is
weggeschreven zijn we nog niet helemaal uit. In ieder geval hebben alleen al
voor de opnames dus minstens 21Mbyte/sec sustained throughput nodig. Een
opname zal niet veel langer dan 15 minuten (ca. 3 gb) worden, maar meestal
kleiner dan 2 minuten (ca. 400 MB)
Daarnaast moeten tegelijkertijd, andere, eerder gemaakte opnames afgespeeld
kunnen worden. Ook daarvoor zijn zeker 6 videostromen tegelijk nodig, totaal
verkeer 42Mbyte/sec ofwel 336 Mbit/sec. Zou moeten kunnen over een gb netwerk
zou je zeggen.

Vraag is: hoe creeeren we de hoogstmogelijk throughput voor het
lezen/schrijven van 12 (verschillende) bestanden tegelijkertijd? En standaard
NAS apparaat zal hier waarschijnlijk moeite mee hebben, of niet?

Idee: we bouwen zelf een machine met:
- 2 dual gigabit ethernetkaarten, zodat we voor elk van de laptops een eigen
gigabit poort hebben, en nog een voor de analyses (minder krititsch, zou
zelfs nog moeten werken als netwerksnelheid naar 100mbit valt)
- flink wat geheugen tbv cache: 4 gb minimaal, wellicht meer.
- een sata raid controller met 5 schijven in raid 5.

Alternatief:
- we zetten in de machine voor elk van de laptops een aparte, niet al te grote
schijf waar de video's naar geschreven worden
- en daarnaast een grote schijf (of raid array)
- waarna de server zelf de video's kan verplaatsen van de kleine schijven naar
de grote, zodat we alle video's snel op een schijf beschikbaar hebben en elke
opnameschijf nooit meer dan 2 stromen tegelijk hoeft te verwerken.

OS mogelijk Windows, maar waarschijnlijk is Linux (met Samba) beter.

Heeft iemand enig idee of gewone sata raid 5 controllers moeite zouden hebben
met dergelijke eisen? Of welk filesystem het beste zal werken voor deze
toepassing? Bestaan er methoden om te zorgen dat het schrijven van de data
van de camera's altijd voorrang krijgt op de leesacties?

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Wanneer heb je de data nodig? Kan je niet gewoon achteraf de data naar de server verplaatsen? Bijvoorbeeld tussen opnames door?

Je alternatieve oplossing lijkt me niet handig. Je bus heeft dan veel meer data te verwerken in totaal. Ik denk niet dat het daardoor sneller wordt. Ik denk dat je eerder naar het moment van schrijven naar de server moet kijken.

Verwijderd

Topicstarter
De tijd tussen de races is ook beperkt, soms korter dan de race zelf. Dus als we de video eerst op de laptop opslaan en dan kopieren, wordt het aan de ene kant minder kritisch maar aan de andere kant moet het dan sneller, of de arme laptop hd krijgt 4 datastromen voor zijn kiezen: 2 schrijven en twee lezen omdat de volgende race al begonnen is.... 2 lukt, 3 al niet meer.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Ok, dat is duidelijk. Dan zou je kunnen overwegen om per laptop 2 externe disks te gebruiken. Je wisselt na de race ze om en je kan meteen weer door filmen. Achter de schermen laat je de 2e harddisk de data uitwisselen met de server.

Maar nogmaals mijn belangrijkste vraag: Wanneer heb je de data nodig?

  • Ikje1979
  • Registratie: Augustus 2006
  • Laatst online: 14-02 19:04

Ikje1979

Never argue with an idiot.

Data is direct na afloop van de race benodigd om van de race een analyse te maken. Het is de bedoeling om zo snel mogelijk na een race deze te kunnen analyseren en deze gegevens te kunnen verspreiden.

Ben ook betrokken bij dit project, vandaar de info.

Don't judge me on my creatifity, my genie is mentaly challenged.


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Ok, maar dus niet live? Het zijn geen beelden die direct gestreamed moeten worden naar schermen o.i.d?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:21

Janoz

Moderator Devschuur®

!litemod

Waarom raid 5? Het lijkt me dat het hier vooral om snelheid gaat. Raid 0 lijkt me dan ook de uitgesproken kandidaat. Zodra de opnamen gemaakt zijn kunnen ze (low priority) overgezet worden naar veiligere storage.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Ikje1979
  • Registratie: Augustus 2006
  • Laatst online: 14-02 19:04

Ikje1979

Never argue with an idiot.

@ djluc
Niet live, tijdens de analyse wordt de race opnieuw bekeken en hieruit wordt info gehaald.

Don't judge me on my creatifity, my genie is mentaly challenged.


  • jvanhambelgium
  • Registratie: April 2007
  • Laatst online: 12:37
Omdat je denkelijk met grote sequentiele files gaat werken is een RAID-controller met VEEL CACHE (vb 512MB of 1GB) zeker een plus die echt wel verschil gaat geven.
Verder een RAID0 als voor de files op te dumpen terwijl ze binnenkomen, dit is wel echt het snelste (doch geen dataprotectie)
Desnoods een RAID0+1 als je het niet erg vind een disk extra te kopen ;-)

4 disken van 500GB kopen en die als "mirrorred stripe" zetten dus hou je netto 1x500GB over maar met de snelste performance.
1 x 500GB is meer als genoeg voor hetgeen je nodig hebt.Dat samen met een controller met genoeg CACHE gaat goed lukken.

Jan

  • Loekie
  • Registratie: Juli 2001
  • Laatst online: 13-02 14:40
Mirrored stripe = helft van je theoretische maximum, dus 4x500 = 2000 => 1000 GB. Voor de rest klopt je verhaal ;)
Dit lijkt me voor diskstorage ook de beste oplossing. Je zou raid 0 kunnen overwegen als je gegevens niet van levensbelang zijn, maar dat kan alleen de TS be-oordelen.

Voor netwerk lijkt dual Gbit voldoende, als het kan gecombineerd met switch die trunking ondersteund. Lijkt me iets flexibeler dan voor elke laptop (dual)Gbit-kaart

Waarom laptops trouwens? Niet elke laptop haalt de snelheid die nodig is, zeker als dit via schijf op laptop gaat.

specs


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:21

Janoz

Moderator Devschuur®

!litemod

Och, het lijkt me dat je hiervoor best striped kunt gerbuiken en het mirroring gewoon weg kunt laten. Mocht er een HD kapot gaan (zo groot is die kans helemaal niet) dan ben je 1 wedstrijd kwijt geraakt. Daarnaast gaat er helemaal niks aan schijfruimte verloren door dubbel opslaan of het opslaan van pariteitbitjes. Qua data heb je ook niet van die belachelijk grote schijven nodig. Hierdoor kun je de opstelling nog wel redelijk goedkoop maken waardoor het misschien zelfs nog wel mogelijk is 2 van dergelijke servers aan te schaffen (zeker ook wanneer je de langere opslag van de gegevens ook nog op een andere computer doet. Voordeel hiervan is dat je bij een probleem gewoon omschakeld naar de andere pc. Zeker omdat er tussen de wedstrijden maar een paar minuten zit lijkt me dit handiger dan een hotswappable raid 5 oplossing oid waarbij je in dat geval alleen een kapotte hardeschijf hebt afgedekt.

[ Voor 63% gewijzigd door Janoz op 06-06-2007 15:30 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
dank voor de reacties! Maar toch

- is het niet zo dat raid5 een combinatie is van striping met een pariteitsbit? Als dat pariteitsbit in hardware maar voldoende snel wordt uitgerekend, is het toch niet veel trager dan enkel striping? (maar het gaat idd om snelheid , dus als er significant verschil is wordt het raid 0)

- zelfs met striping/raid vijf wordt volgens mij vooral de transferrate verbeterd, maar als er verschillende datastromen tegelijk zijn moeten de koppen van de disks behoorlijk heen en weer, wat tijd kost. En dat moeten ze dan allemaal, dus heb je daar weinig winst...

- 1 laptopschijf redt 2 datastromen in de praktijk. Een snellere SATA schijf wellicht 3 of 4. Maar als ik er nu vier in raid zet, kom ik dan echt op 12? Het lijkt me krap worden. Misschien heeft er iemand een raid 5 draaien die eens wat kan simuleren?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:21

Janoz

Moderator Devschuur®

!litemod

De pariteits operatie is nog wel redelijk duur. Daarnaast heb je dat helemaal niet nodig eigenlijk. Die pariteit is puur voor als er een HD kapot gaat en je alle data terug moet hebben. Op het moment dat je de data aan het recoveren bent haal je vermoedelijk niet eens 1 stream. Ikzelf zou daarom niet voor raid 5, maar gewoon voor raid 0 gaan. Misschien kun je twee raid 0 array's ook wel weer als 1 raid 0 array binden waardoor je een theoretische wegschrijfsnelheid krijgt die 4x zo hoog ligt. Natuurlijk haal je dat niet zomaar, maar ik denk dat je er in dit geval nog wel ens behoorlijk bij in de buurt kunt komen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • jvanhambelgium
  • Registratie: April 2007
  • Laatst online: 12:37
Je mag de performantie van een laptopschijf NIET vergelijken met de performantie van een uit de kluiten gewassen 500GB / 16MB / 7200RPM (of desnoods zelf 10.000RPM)

Believe me, zet 2 disken in stripe, en daarvan eventueel een mirror en het is retesnel!

Ik heb vroeger nog een nas voor m'n lab gemaakt (Gentoo Linux64, 6 x 400GB/16MB/SATA op een Areca PCI Express met een RAID5 volume.
Transfers van 80MBytes/sec in alle richtingen was niet echt een uitzondering...

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 07:51

Femme

Hardwareconnaisseur

Official Jony Ive fan

Het lijkt me niet zo'n probleem om het gewenste prestatieniveau met een goede sata- of serial attached scsi-controller te bereiken. Mijn advies zou zijn om een Areca ARC-1220 te combineren met een stapeltje 7200 toeren enterprise sata-schijven, bijvoorbeeld Western Digital's Caviar RE2 500GB of Seagate Barracuda ES. RAID 5 hoeft geen grote belemmering voor de prestaties te zijn, mits je de juiste RAID-controller gebruikt. De sata-controllers van Areca presteren erg goed. Voor serial attached scsi is LSI Logic een goede keuze. Sas beidt eigenlijk pas voordelen zodra je zoveel schijven gaat gebruiken dat je externe behuizingen moet gaan werken.

Mijn ervaring is overigens dat het in Windows zo goed als onmogelijk is om meer dan 40MB/s over een enkele gigabit verbinding te pompen, ongeacht het kaliber opslagapparaten dat je aan beide zijden van de verbinding hebt staan. Met meerdere verbindingen naar een Windows Server 2003-systeem heb ik wel naar ~80MB/s kunnen gaan. Onder Linux zijn de prestaties wellicht beter. Gezien de vrij lage bandbreedte die je per client nodig hebt lijkt me dit geen probleem.

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
Je moet niet echt zoveel streamen (qua snelheid) op je storage, ik heb al gekker gezien.

Ik weet niet hoe je software presteert of wat voor camera's je hebt, maar zou je de laptop er niet vantussen kunnen laten? Ik denk dat de meeste laptops daar wel een bottleneck zullen zijn (verkrijgen van 2 streams data, bufferen/verwerken en dan tegelijkertijd doorsturen naar je storage) of je moet een uit de kluiten gewassen laptop hebben met een degelijke netwerkkaart (veelal zitten er goedkope netwerkkaarten zoals Realtek of Via in die beestjes).

Ikzelf zou naar een RAID0+1 oplossing gaan op 2 aparte backplanes als je je data beide snel EN veilig wilt zetten. RAID5 is wel degelijk "duur" omdat je niet alleen je pariteit moet uitrekenen maar ook je pariteit naar de volgende schijf moet wegschrijven zonder er iets van terug te krijgen in vorm van performance, RAID1 is redelijk duur in vorm van capaciteitsreductie maar heeft maar een minimale performancehit tijdens het schrijven (indien goed gedaan).

Hoe je het ook wilt doen (ik ken je budget niet en wat ik hierboven gezet heb heeft vooral een impact op je budget), je kunt ook in de software redelijk wat oplossen. Zoals hierboven al gezegd is, Windows heeft een groot overhead en ook stock-Linux is niet een optimale oplossing, maar je zou je Linux moeten optimalizeren voor netwerksnelheid en je controllers (en de rest uit de kernel gooien). Optimalizeer ook je packet size (MTU) voor je programma/camera's (als je pakketjes bijvoorbeeld 500 groot zijn en je MTU is 450 dan ga je constant fragmented packets krijgen) en gebruik een degelijk (misschien zelfs RAW) protocol, je wilt echt niet SMB gebruiken ;-). Bespaar zeker niet op je gigabit switch, je wilt geen gigabit switch met 24 poorten en 5GBps backplane.

Pandora FMS - Open Source Monitoring - pandorafms.org


  • Femme
  • Registratie: Juni 1999
  • Laatst online: 07:51

Femme

Hardwareconnaisseur

Official Jony Ive fan

Guru Evi schreef op zondag 10 juni 2007 @ 21:17:

Ikzelf zou naar een RAID0+1 oplossing gaan op 2 aparte backplanes als je je data beide snel EN veilig wilt zetten. RAID5 is wel degelijk "duur" omdat je niet alleen je pariteit moet uitrekenen maar ook je pariteit naar de volgende schijf moet wegschrijven zonder er iets van terug te krijgen in vorm van performance, RAID1 is redelijk duur in vorm van capaciteitsreductie maar heeft maar een minimale performancehit tijdens het schrijven (indien goed gedaan).
Een goede RAID 5-performance is gewoon een kwestie van het gebruik van de juiste controller. Op een goede controller is RAID 5 nauwelijks trager dan RAID 10 met een gelijk aantal harde schijven.
Pagina: 1