Ik ben wat uitzoekwerk aan het doen voor een upgrade van een online storage omgeving.
De huidige storage is qua capaciteit en performance op termijn niet meer toereikend en zal uitgebreid moeten worden. Het gaat hier om serveren van statische video files via HTTP varierend van 20-500MB per stuk.
Voor de nieuwe omgeving heb ik de volgende wensen:
- Capaciteit van tenminste 9TB
- Redundatie van data
- 2 Gbit per seconde uitgaand verkeer (inclusief overhead)
Op dit moment draaien er 2 servers achter een loadbalancer die elk 150 concurrent users average bedienen en een piek van 400 concurrent users hebben. Dit betekent dat als ik wil dat elke user minimaal 1Mbit tot zijn beschikking heeft er nu al 400Mbit per server verstookt wordt tijdens piek belasting. Ik wil echter voorbereid zijn op geleidelijke groei (capaciteit en performance).
Een fractie van de files zal verantwoordelijk zijn voor het overgrote deel van de requests.
Ik ga er van uit dat ik met een flinke hoeveelheid RAM geheugen de disks kan ontlasten
als het OS en de webserver intelligent genoeg kunnen cachen.
Zelf dacht ik aan 2x een 3U chassis met elk:
- Linux based webserver
- Xeon 51xx
- 8GB geheugen
- 16x 750GB SATAII schijven in RAID5 (veel reads, weinig writes)
(1 systeem disk, 1 hot-spare, 1 parity, 13 datadisks = 9,75TB = 9TB effectief)
- Areca ARC-1160 16-port PCI-X to SATA II RAID Adapter + 1GB controller cache upgrade
- 3x Gigabit NIC (2 voor externe connecties, 1 voor interne data replicatie)
2 maal bovenstaande configuratie zal rond de 20k Euro gaan kosten schat ik.
Ik vraag me af waar met de hier bovengenoemde array de bottelneck komt te liggen.
Ik heb geen onderzoek gedaan maar een klein gedeelte van de files zal verantwoordelijk zijn voor het overgrote deel van het totale verkeer. Ik ben benieuwd welk percentage van een gigabit verbinding 1 van de bovengenoemde machines zal kunnen benutten.
Daarnaast heb ik voor mezelf nog niet helder hoe ik nieuwe data tussen de 2 servers synchroon ga houden. Elke 5 minuten een rsync draaien over een tree met 100.000+ files is wel erg primitief en zal veel onnodige disk activiteit veroorzaken. Ik heb al even gekeken naar DRDB (realtime mirror of local blockdevice) http://www.linux-ha.org/DRBD/FAQ maar dit is echt bedoeld voor HA clustering. Mooie techniek alleen kan de secondary niet gemount worden tijdens de replicatie.
Daarnaast moet ik niet aan denken aan een scenario waar de primary en secondary out of sync zijn en er bijvoorbeeld een full sync nodig is.
Om te voorkomen dat ik me blind staar op 1 oplossing en probeer het wiel opnieuw uit te vinden vroeg ik me af of er hier mensen zijn die hier ervaring mee hebben.
Als snel kom je in het enterprise segment met snelle marketingpraat en bijkomende kosten.
Hoe lossen andere partijen dit op met een 'normaal' budget? Hoe zouden jullie dit doen?
Iemand tips of advies?
De huidige storage is qua capaciteit en performance op termijn niet meer toereikend en zal uitgebreid moeten worden. Het gaat hier om serveren van statische video files via HTTP varierend van 20-500MB per stuk.
Voor de nieuwe omgeving heb ik de volgende wensen:
- Capaciteit van tenminste 9TB
- Redundatie van data
- 2 Gbit per seconde uitgaand verkeer (inclusief overhead)
Op dit moment draaien er 2 servers achter een loadbalancer die elk 150 concurrent users average bedienen en een piek van 400 concurrent users hebben. Dit betekent dat als ik wil dat elke user minimaal 1Mbit tot zijn beschikking heeft er nu al 400Mbit per server verstookt wordt tijdens piek belasting. Ik wil echter voorbereid zijn op geleidelijke groei (capaciteit en performance).
Een fractie van de files zal verantwoordelijk zijn voor het overgrote deel van de requests.
Ik ga er van uit dat ik met een flinke hoeveelheid RAM geheugen de disks kan ontlasten
als het OS en de webserver intelligent genoeg kunnen cachen.
Zelf dacht ik aan 2x een 3U chassis met elk:
- Linux based webserver
- Xeon 51xx
- 8GB geheugen
- 16x 750GB SATAII schijven in RAID5 (veel reads, weinig writes)
(1 systeem disk, 1 hot-spare, 1 parity, 13 datadisks = 9,75TB = 9TB effectief)
- Areca ARC-1160 16-port PCI-X to SATA II RAID Adapter + 1GB controller cache upgrade
- 3x Gigabit NIC (2 voor externe connecties, 1 voor interne data replicatie)
2 maal bovenstaande configuratie zal rond de 20k Euro gaan kosten schat ik.
Ik vraag me af waar met de hier bovengenoemde array de bottelneck komt te liggen.
Ik heb geen onderzoek gedaan maar een klein gedeelte van de files zal verantwoordelijk zijn voor het overgrote deel van het totale verkeer. Ik ben benieuwd welk percentage van een gigabit verbinding 1 van de bovengenoemde machines zal kunnen benutten.
Daarnaast heb ik voor mezelf nog niet helder hoe ik nieuwe data tussen de 2 servers synchroon ga houden. Elke 5 minuten een rsync draaien over een tree met 100.000+ files is wel erg primitief en zal veel onnodige disk activiteit veroorzaken. Ik heb al even gekeken naar DRDB (realtime mirror of local blockdevice) http://www.linux-ha.org/DRBD/FAQ maar dit is echt bedoeld voor HA clustering. Mooie techniek alleen kan de secondary niet gemount worden tijdens de replicatie.
Daarnaast moet ik niet aan denken aan een scenario waar de primary en secondary out of sync zijn en er bijvoorbeeld een full sync nodig is.
Om te voorkomen dat ik me blind staar op 1 oplossing en probeer het wiel opnieuw uit te vinden vroeg ik me af of er hier mensen zijn die hier ervaring mee hebben.
Als snel kom je in het enterprise segment met snelle marketingpraat en bijkomende kosten.
Hoe lossen andere partijen dit op met een 'normaal' budget? Hoe zouden jullie dit doen?
Iemand tips of advies?