Parijs

Ik was in 2009 nog niet in Parijs geweest, en gezien de weekenden waarop de dit jaar nog niets te doen hebben zo goed als op zijn werd het weer eens tijd 😉 . Parijs is een stad die ik inmiddels vaker bezocht heb dan Amsterdam, in de afgelopen 10 jaar ben ik er +- 10x geweest en alhoewel ik de stad eigenlijk al wel ken vind ik het wel een leuke stad om naar toe te gaan..

Lees verder Parijs

Airsoft

Afgelopen zaterdag was het weer eens tijd voor een dagje airsoften.. Samen met Steph, bo en de prijswinnars van The Party 7 en CampZone 2009 konden we een hele dag terecht op het airsoft terrein van Airsoftevents.nl in Herentals (België, bij Antwerpen).

Ik denk dat iedereen deze dag zich weer super vermaakt heeft. Alhoewel ik dit niet verwacht had vond ik buiten zelfs nog leuker dan binnen denk ik.

Omdat plaatjes meer zeggen dan 1000 woorden heb ik hier onder een filmpje 🙂

Storage en Netwerk uitdaging (2)

Vorige week besloot ik na een aantal berichten heen en weer op Twitter dat het beter was even een bericht op mijn website te zetten over het probleem waar ik op het werk mee te maken had.. Dat bericht werd wat groter dan verwacht maar stond na 2 uurtjes schrijven online. Gelukkig namen zowel Steph als Andries de tijd om met me mee te denken om tot een goede oplossing te komen.

Ik heb een 11-tal scenario’s uitgewerkt en getest (klik op onderstaand plaatje) om te kunnen bepalen waar het probleem nou zat. Mede door de tips van Andries in zijn meer dan uitgebreide reactie is het uitendelijk gelukt om te vinden waar de vertraging vandaan kwam.

metingen

Tevens heb ik een stuk performance log opgeslagen om te kunnen kijken of de bottleneck dan niet toch op de server zou zitten. Bij het bestuderen van deze logging bleek dat de disk queue length van de SSD die de data aan moest leveren onder de 0.1 bleef, dat in combinatie met een verwaarloosbare CPU belasting en een beperkte hoeveelheid netwerkverkeer bevestigden nogmaals dat de server het probleem niet kon zijn. Om dit te bevestigen heb ik als test terwijl de server 6 clients van data aan het voorzien was (met 300 Mbit) een kopieractie van 40 GB naar de 3 andere servers gestart.. Meteen zat de Gbit verbinding van de server op  92% belasting, wat in dit geval inclusief de overhead onderveer het max is (941 Mbit bij een packetsize van 64k). Vanaf dit punt was het zeker dat de server de beperking niet was.

Steph had al eerder aangegeven dat CIFS mogelijk het probleem was, nadat we de server uitgesloten hadden kwamen Andries en ik eigenlijk tot de conclusie dat het wel in die hoek MOEST zitten.. Om dit te testen heb ik de 6 laptops opnieuw ingericht en weer de standaard filetransfer gestart (490 blokken van 100 MB, 1 robocopy sessie). De netwerkbelasting op de laptosp schommeld op dat moment rond de 50-60 Mbit. Wanneer ik dan handmatig nog een extra Robocopy sessie start van een 4,5 GB bestand schiet de netwerkactiviteit naar +- 300 Mbit op de desbetreffende client.. Hieruit valt op te maken dat het verhogen van het aantal gelijktijdige Robocopy acties de snelheid drastisch doet verhogen..

Op dit punt was het probleem duidelijk en eigenlijk ook meteen de beste oplossing. De nieuwste versie van Robocopy bied ondersteuning voor simultane downloads, deze versie (XP0027) werkt helaas alleen op Windows 7 en Windows Vista.. Als noodoplossing heb ik een kort AutoIT scriptje geschreven dat 2 robocopy sessies start. Wanneer dit script gebruikt wordt starten er 2 gelijktijdige kopieracties.. De totale snelheid van 6 clients komt dan op de 807 Mbit te liggen, wat ruim voldoende is voor wat wij van plan zijn (100 Mbit per client is de max die we met dit netwerk met 10 clients gelijktijdig kunnen behalen).

cacti

Het enige dat nu nog rest is het schrijven van een net script en de implementatie in het grote installatie project, maar dit laat ik volgende week aan anderen over (die zijn daar stukken beter in).

Dan rest mij verder niets dan Steph en Andries te bedanken voor hun hulp bij het oplossen van dit probleem en het nemen van een vrije dag aan het einde van deze week..

Storage en Netwerk uitdaging

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

dl360g5

Software:

  • Inspoelen basisimage + essentiele drivers: Microsoft BDD
  • Installeren software + overige drivers: RES Wisdom
  • Filetransfers: Robocopy

Client laptops die we gekozen hebben:

6930p

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:

dozen

Naar:

laptops

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

systemen

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:

kabels0

naar:

kabels1

naar:

kabels2

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..

Dreamhack

Zoals een deel van jullie wel zal weten ben ik een van de mensen achter het evenement The Party en ben ik zijdelings betrokken als reserve organisatie lid tijdens CampZone en geef ik daar gevraagd en ongevraagd mijn mening 😛 . Sinds vorig jaar organiseren we deze evenementen vanuit DUH-Events en ik moet zeggen dat ik daar best wel trots op ben, zeker onze nieuwste aanwinst is zeker iets waar ik wel trots op ben.

DUH-Events
DUH-Events

We hebben namelijk de voorrondes voor DreamHack on Tour Winter 2009 binnen weten te halen, alhoewel het gebeuren op zich niet zo groot is, online voorrondes met een finale tijdens een beurs, is de samenwerking met DreamHack wel heel erg bruut. Ik zelf heb hier niet veel meer dan wat vertaalwerk en het schrijven van mailings / nieuwsberichten in zitten en Stefan heeft hier verreweg de meeste tijd in zitten, maar toch ben ik dus trots..

DreamHack
DreamHack

Wat is dreamhack dan? Nou, als wij The Party al heel wat vinden (grootste lanparty van de benelux met 1000 deelnemers), is DreamHack het ultieme voorbeeld van groot.. Met 12.000 deelnemers / dagbezoekers in 2008 is dit het grootste lanevent / computer festival ter wereld. Dit evenement wordt jaarlijks gehouden in Zweden, en al jaren probeer ik er ook heen te gaan… Gezien we dit jaar ook busreizen er heen organiseren was dit mijn kans… Ware het niet dat ik dat weekend al wat anders in de planning heb staan dat ik echt niet kan verzetten (Maar wel minstens net zo leuk is :P)..

DreamHack
DreamHack

PHP en MySQL

Vorige week was ik al even begonnen aan een back-end voor een website van Lieneke, gezien ik nog veel moest leren voor mijn examen (dat ik met een 7,3 gehaald heb 🙂 ) kon ik er nog niet echt goed aan werken, maar het begin was er. Bijzonder detail is dat ik ondanks eerdere pogingen nog nooit echt succesvol iets met PHP en MySQL gedaan had, en deze keer toch weer vol goede hoop begonnen was.

En ik moet zeggen dat het me boven verwachting goed is afgegaan :), ik heb de gehele vrijdag avond, zaterdag overdag en zondag overdag aan de code zitten sleutelen, maar ik denk dat ik zowaar een best degelijk systeem in elkaar gezet heb, en dat terwijl ik eigenlijk vanaf het begin af aan alles nog moest leren, ik heb natuurlijk wel wat voorbeelden gelezen op internet, maar de gebruikte code is allemaal door mij zelf geschreven *trots*..  Het systeem kan momenteel het volgende:

  • Aanmaken gebruikersaccount
  • verzenden activatie link
  • Activeren account dmv activatie link
  • Wachtwoord wijzigen
  • Gebruiker blijft ingelogd tot hij zelf uitlogt of 15 dagen niet op de website komt
  • Berichten plaatsen op een messaging board

Zaken die ik nog toe wil voegen:

  • Duidelijke structuur voor het plaatsen van reacties op berichten
  • Gebruiker de mogelijkheid geven account gegevens aan te passen
  • Vergeten wachtwoord resetten dmv activatie mail
  • Inlogsysteem verder beveiligen (onder normale omstandigheden is het al veilig, maar hier had ik nog een nieuw veiliger idee voor)

Al met al vind ik dat ik het nog niet onaardig gedaan heb voor mijn eerste PHP / MySQL projectje 🙂 . Nu is het tijd om een systeem te maken waarin ik al mijn DVD’s, PS3 Games, PC Games en software en bijbehorende keys op kan slaan voor eigen gebruik, maar dat zou eenvoudiger moeten zijn dan bovenstaande  :).

Al met al productief bezig geweest en erg veel geleerd 🙂