Oke, eerst een korte introductie:
Bijna 1,5 jaar geleden ben ik begonnen met een groot laptop project bij een klant van mijn werkgever. De opdracht omvat het ontwerpen en bouwen van een volledige mobiele ICT werkplek voor een specifieke gebruikersgroep van 165 personen die geen echte affiniteit met computers hebben. De opstelling moest omvatten:
- Een robuste laptop
- Een GPRS / UMTS / HSDPA (afhankelijk van beschikbaarheid) verbinding
- Een printer
- Een dockingstation
- GPS plaatsbepaling
De software die uiteindelijk op de laptop komt is niet heel erg belangrijk in dit verhaal, een aantal wel relevante kernpunten zijn:
- Windows XP SP3
- MsSQL 2000 SP4
- RES PowerFuse
- RES Wisdom
- Data om mee te werken (3x XML Database van 3,x GB)
- Text, JPG, PDF en TIFF bestanden met informatie (45 GB, 3.000.000 bestanden)
Het probleem / vraagstuk waar we nu mee bezig zijn ligt in het verlengde van een probleem dat we eerder tegen gekomen zijn en deels opgelost hebben. In het begin van het originele project hadden we de volgende opstelling om de laptops mee te installeren (inspoelen)
Hardware:
- 2x HP DL360 G5 – 2 x 74GB in RAID1 als boot + 4 x 146 GB in RAID5 voor storage + 512 MB Cache op de (standaard) RAID controller
- 1x 48 Poorts full Gigabit Cisco switch

Software:
- Inspoelen basisimage + essentiele drivers: Microsoft BDD
- Installeren software + overige drivers: RES Wisdom
- Filetransfers: Robocopy
Client laptops die we gekozen hebben:

Het originele probleem:
Toen we op grotere schaal de laptops gingen installeren kwamen we er achter dat het in 1 Robocopy script kopieren van 45 GB aan data geen probleem was, tenzij het 3.000.000 kleine bestanden waren, op volstrekt willekeurige punten in de job kreeg de laptop een blue-screen, wat wel vast stond was dat geen enkele laptop de gehele installatie procedure goed doorliep. Als eerste hebben we uiteraard gecontroleerd of we de meest recente AHCI en Intel Matrix Storage drivers hadden, deze bleken beiden recent te zijn. Echter, ondanks de verschillende oplossingen die we bedachten vonden we niets dat werkte.
Echter, ergens ver weg gestopt in alle Google resultaten bleek dat met de combinatie Windows XP, ons type chipset en onze drivers problemen konden ontstaan die erg sterk op die van ons leken. Oudere driver versies waren geen optie in verband met problemen met BDD en AHCI. De oplossing kon gevonden worden in een specifiek KB artikel (linkje volgt nog) van Microsoft dat een custom versie van NTFS.sys aanbood als oplossing van ons probleem.
Dit in combinatie met het inpakken (zonder compressie ivm uitpak-tijd) van de files in 4 GB blokken zorgde er voor dat we voor toen snel genoeg (14-16 laptops gelijktijdig) laptops konden installeren.
Van:

Naar:

Tussendoor:
Ondertussen hebben we de laptops uitgeleverd, zijn er gezien het zeer complexe ontwerp wel nog redelijk wat problemen die we nu stuk voor stuk aan het oplossen zijn. Al met al worden de laptops met redelijke tevredenheid gebruikt. Gezien redelijke tevredenheid niet goed genoeg is zijn we er nog steeds druk mee bezig en voeren we regelmatig optimalisaties uit. Zeer binnenkort gaat er in 1 weekend overgestapt worden op een nieuwe SAP backend, waardoor ook alle clients opnieuw ingericht moeten worden (mijn laptops dan in ieder geval). De vorige keer hadden we 174 laptops en 3 weken de tijd.. Nu hebben we 225 laptops en 3 dagen voor het inrichten en 2 dagen voor het verpersoonlijken van de laptops
Uitdaging:
De uitdaging is duidelijk, 225 laptops installeren en voorzien van 60 GB aan data (de “probleem-data” en nog wat extra) in 72 uur.. Volgens mijn planning moet het lukken als we een beetje door kunnen werken en een nieuwe inspoel-omgeving bouwen. Dat deel is gebeurt.. en goed ook.. Dus die inspoelomgeving is niet zo zeer het probleem. De specs:
- 1x HP DL360 G5 – 2 x 74GB in RAID1 als boot + 4 x 146 GB in RAID5 voor storage + 512 MB Cache op de (standaard) RAID controller (Voor het aanleveren van de BDD basisimage voor de laptops)
- 4x HP DC7900 Desktop systemen met on-board INTEL 82567LM Gigabit netwerk chipset
- 4x INTEL X25-m 160 GB SSD (voor in de bovengenoemde systemen als 2e / data disk)
- 4x Windows 7 professional (Betere SSD ondersteuning)
- 2x 48 poorts full gigabit Cisco switches in een stack

Even een korte uitleg over het bovenstaande, de keuze voor dit type HP client is gebasseerd op de aanwezige netwerkchip die er voor zorgt dat we geen zware CPU belasting krijgen door het netwerkverkeer. Gezien we ze alleen voor deze actie nodig hebben en ze alleen maar data aan hoeven te leveren zijn “echte” servers overbodig. De SSD’s hebben we gekozen voor de enorme hoeveelheid data die dit type schijf aan kan leveren. De INTEL X25-m die wij gebruiken doet ongeveer 240 MB per seconde tegenover +- 80-90 MB voor een “normale” disk. We hebben voor Windows 7 gekozen vanwege de betere SSD ondersteuning dan in Windows XP en het feit dat het systeem moet werken zonder dat we daar teveel aan hoeven te tunen.
Met de bovengenoemde opstelling kunnen we zonder enig probleem een volle gigabit aan dataverkeer aanleveren (per “server”) en als het zou moeten denk ik dat we in totaal (de 4 systemen samen) 6-7 Gigabit kunnen halen met extra netwerkadapters (wat neer zou komen op 875 MB per seconde (meer dan 1 cd per seconde dus). Maar voor onze plannen is 500 Mb (4 Gigabit) voldoende.
De opstelling is bedoeld om 40 laptops gelijktijdig te kunnen installeren terwijl we de batch van daarvoor afconfigureren.. Dus, 80 laptops tegelijk aangesloten aan het netwerk, wat weer de nodige bekabeling met zich mee brengt die ik gister ter ontspanning tijdens het werk heb neergelegd..
Van:

naar:

naar:

Het nieuwe “probleem”:
Oke, we hebben al het bovenstaande, alleen hebben we ook een “oud ” probleem terug… Eerder spoelden we al laptops in maar hadden we meer tijd, gezien de tijdsdruk de vorige keer niet al te groot was konden we er goed mee leven dat het binnenhalen van de 45 GB aan data 3 uur duurde.. Nu hebben we echter haast.. Wanneer we de data naar de laptop toe beginnen te sturen (in blokken van 4 GB, ingepakt, uncompressed) zien we dat de laptop begint met een kleine 250-300 Mbit (25 – 37,5 MB per seconde), wat een zeer acceptabele snelheid zou zijn. Echter, na een korte periode zakt de snelheid in naar +- 30 Mbit (3,75 MB per seconde) wat dus te langzaam is. Het zou aan de drivers of de custom ntfs.sys kunnen liggen, maar daar kunnen we helaas niets aan doen.
Wat we nu morgen gaan testen is het opbreken van de 4 GB bestanden in bestanden van 100 MB, en kijken wat hij dan doet. De “grote” achives komen dus op de 4 fileservers (iedere server heeft een eigen complete set en bedient 10 van de 40 clients). Andries en Steph merkten terrecht op dat het wel eens een beperking van NTFS zou kunnen zijn waardoor de transfer na x MB inzakt, dus daar had ik vanmiddag al het een en ander voor in gang gezet (het uitpakken en opnieuw inpakken van de bestanden duurt samen ongeveer 5 uur op een laptop).
Een ander alternatief waar Steph mee kwam is het gebruiken van een nieuwe versie van Robocopy die meerdere transfers gelijktijdig kan doen, maar dit wil ik als noodoplossing gebruiken omdat Robocopy voor veel dingen gebruikt worden die we dan ook weer individueel zullen moeten testen (waar we zo goed als geen tijd meer voor hebben om dat ook nog te doen).
Het uiteindelijke doel is dat iedere client 100 Mbit per seconde aan data aangeleverd krijgt.. Het uitpakken van de data gebeurt vervolgens geautomatiseerd (net als de rest van het installatie proces overigens) op de laptops zelf. Met 100 Mbit per client kan ik de 4 “file-servers” volledig belasten (qua netwerk) en zou ik dus dus de meest redelijkerwijs haalbare oplossing hebben bereikt..
Ik vind het in ieder geval erg leuk om hier mee te werken. het is geen fijn probleem, maar wel een leuk probleem om uit te zoeken en ik denk ook wel dat we uiteindelijk een goede oplossing gaan vinden, die ik hier dan ook zeker met jullie ga delen.
Uiteindelijk is dit een iets groter stuk geworden dan ik voorzien had, maar het geeft denk ik wel een klein beetje inzicht een een deel van de technische kant van mijn werkzaamheden..