De conversie naar HiX 6.3 was een enorme operatie voor het Haaglanden Medisch Centrum (HMC). Maar de omvang was niet het meest bijzondere aan dit project. Het HMC kon nu eindelijk volop profiteren van de voordelen van virtualisatie. Daarmee stelde het ziekenhuis een voorbeeld voor alle ziekenhuizen in Nederland. Een nieuw tijdperk voor het ziekenhuis en de patiënten die erop vertrouwen.

Datacheck

Het is vrijdagnacht, 11 november 2022 in het IT-hoofdkwartier van het Haagsch Medisch Centrum. De taskforce staat onder grote druk. Ons team heeft net, samen met ChipSoft, de finale versie van het elektronische patiëntendossier gemigreerd. Tijdelijk staan álle patiëntgegevens op read-only. Team HMC controleert nu zo snel mogelijk of alle data van duizenden patiënten goed is gemigreerd.

Nou gaan ziekenhuizen wel vaker over op een nieuwe versie van HiX. Maar deze keer is anders. Deze keer doen we iets wat nog geen enkel ziekenhuis in Nederland heeft gedaan.

Virtualisatie

Het HMC is het eerste grote ziekenhuis dat ervoor kiest om HiX volledig virtueel, zowel wat betreft compute als storage op basis van vSAN te draaien – dus ook de databaseserver. HiX-leverancier ChipSoft voorzag een extra laag van complexiteit en stelde tot nu toe nog altijd een fysieke server als voorwaarde voor garantie.

Edward Dortland, managing director en medeoprichter van Twintos: “Dat is ook begrijpelijk. Niet alle ziekenhuizen beschikken over de juiste expertise om dit soort complexe virtuele omgevingen goed te configureren. Maar wij zien bij klanten met veel grotere hoeveelheden data op hun servers dat virtueel draaien an sich nooit performanceproblemen geeft. Bovendien zagen we dat HMC wél over de juiste expertise beschikte.”

Twintos is een ontzettend goede partij om mee te werken. Ze stellen hoge eisen aan zichzelf en die weten ze dan nog te overtreffen. Dat heeft echt indruk op mij gemaakt.

Edwin Mentink, manager ICT bij het HMC

Nog één fysieke server

Bij dit ziekenhuis draaiden alle andere systemen al op virtuele servers, behalve het elektronische patiëntendossier. En dat is voor de toch al drukbezette systeembeheerders een extra belasting, vertelt Edward: “Je moet die ene fysieke server altijd anders behandelen. Voor al je virtuele servers is de configuratie gestandaardiseerd en geautomatiseerd. Dat scheelt heel veel tijd en voorkomt fouten. Voor die ene fysieke server moet je wel nog afzonderlijk van alles bijhouden; netwerk, firewall, firmware, drivers. En als je pech hebt, moet je bij een storing ook nog naar het datacenter.”

Voorbeeldfunctie

Het was dan ook tijd dat één ziekenhuis de eerste stap zou zetten. Om te laten zien dat het kan, de HiX database draaien op een virtuele server met storage op basis van vSAN. Het HMC nam die voortrekkersrol op zich. In nauwe samenwerking met ChipSoft startten wij de voorbereiding.

Hoe wij de conversie voorbereiden

Wat we in die fase doen, is het bouwen van een compleet nieuwe omgeving naast de al draaiende versie van HiX. Op die nieuwe omgeving zet ons team in samenwerking met ChipSoft een geconverteerde versie van de bestaande database, waarop het ziekenhuis kan testen. Verspreid over een jaar doen we dat meerdere keren.

Meerdere proefmigraties

Elke proefmigratie voeren we uit volgens exact hetzelfde procedé als de livegang. Het ziekenhuis test daarna het nieuwe systeem. Het mooie van HiX is dat iedere actie, elke muisklik wordt geregistreerd, met de doorlooptijd erbij. Die data combineert de performance werkgroep van het HMC met de ervaringen van medewerkers, om te beoordelen of het nieuwe systeem doet wat het moet doen.

Er was één database die eruit sprong in omvang: multimediadatabase. Die nodes zijn we parallel gaan migreren. Daarmee wonnen we enorm veel tijd.

Edward Dortland, mede-oprichter Twintos

Spannend

En zo komen we bij deze laatste proefmigratie. Iedereen staat op scherp. ‘s Avonds starten wij de synchronisatie van de brondata naar de nieuwe databaseservers. We zetten alles op alles om dat zo snel mogelijk te doen. Want hoe eerder wij klaar zijn, hoe meer tijd Chipsoft heeft om ’s nachts de data te converteren naar de nieuwe versie. En hoe eerder Chipsoft klaar is, hoe meer tijd er op vrijdagochtend is voor het ziekenhuis om te controleren of alles goed is gegaan.”

Tuning aan de hardware en de virtualisatielaag

Het duurt nog 24 uur voordat we alle data hebben verplaatst naar de nieuwe servers. We willen naar 12 uur. Tijd voor Team Twintos om alles uit de kast te halen om het migratietempo op te voeren.

Edward: “Kwestie van heel veel tunen aan de hardware en de virtualisatielaag, samen met de systeembeheerders van het HMC. Wij werken op databaseniveau en zij zoeken op de onderliggende lagen heel veel uit. We krijgen de conversie wel binnen de limiet, alleen nog niet redundant. Het synchroniseren van de tweede kopie van de database naar de server in het andere datacenter duurt ook nog eens uren.”

Creatieve ideeën

Het is zaak om nieuwe, creatieve manieren te vinden om de conversie te versnellen. Edward: “Eén database springt eruit in doorlooptijd: de multimediadatabase met dingen als labuitslagen. Voor het ziekenhuis is het randvoorwaardelijk dat er minimaal 2 nodes actief zijn voordat zij live kunnen. Er moet altijd een kopie van de data in een tweede datacenter beschikbaar zijn. Normaliter converteer je eerst naar de primaire node en start je vervolgens de synchronisatie naar het tweede datacenter. Voor deze database hebben we conversie naar beide nodes tegelijk uitgevoerd. Een enorme tijdwinst.”

Het is zover – de live migratie

Het is zover. We zijn klaar voor de live migratie. Omdat dat voornamelijk nachtwerk is, hadden we het remote kunnen doen. We besluiten toch in een hotel naast het ziekenhuis te gaan zitten. Mocht er iets aan de hand zijn, dan zou het team er direct bij zijn – dag en nacht. Edward: “Dat blijkt ‘s nachts niet nodig. Er gaat niets mis. Maar ‘s ochtends bij de livegang is het wél goed dat we vlakbij zijn. Op dat moment is het alle hens aan dek.”

We kijken of we een query heel vaak voorbij zien komen. Een dashboard dat is ingesteld om elke seconde te verversen - zulke fouten kunnen enorme consequenties hebben.

Edward Dortland, mede-oprichter Twintos

Performance tuning op de live database

De live belasting van het systeem is namelijk nooit helemáál te testen. Edward: “Op de dag van livegang is iedereen nieuwsgierig naar de nieuwe versie van HiX. Er is een lancering met een rode knop, die live gestreamd wordt door het ziekenhuis. Als op dat moment alle medewerkers van al die locaties inloggen, loopt het aantal connecties met de database op tot 10.000. Op dat moment zat de cpu-belasting bij de 90%. Er was dus nog veel meer performance tuning nodig op de live database. ”

Detectivewerk

Edward: “Als het systeem voor het eerst live wordt gebruikt, wordt er ook veel nieuwe configuratiedata ingevoerd. Daardoor zijn voor veel kleine tabellen de statistieken snel gedateerd. Met als gevolg dat je niet altijd optimale query executieplannen krijgt.”

De daaropvolgende uren staan in het teken van razendsnel detectivewerk. Edward: “Daarvoor gebruiken we zelf ontwikkelde Grafana dashboards die alle performance data zichtbaar maken. Zo sporen we de meest belastende queryplannen op. Daarna kijken we of we het probleem kunnen oplossen door het updaten van de statistieken, het forceren van een beter executieplan of het toevoegen van een index.”

Elke seconde ververst

Ook onderzoekt het team of het epd-systeem door inrichtingsfouten de databaseserver overbelast. Edward: “We kijken bijvoorbeeld of we een query heel vaak voorbij zien komen. Een dashboard met metrics van patiënten was ingesteld om elke seconde te verversen, in plaats van eens per minuut. Als een medewerker dat in de testfase zo instelt, valt dat nog niet op. Maar als na de livegang een paar duizend medewerkers dat dashboard gebruiken, gaat het hard. Dan heeft zo’n kleine inrichtingsfout enorme consequenties. Dankzij een hele goede samenwerking met ChipSoft konden we zulke gevallen snel opsporen.”

Een nieuwe HiX-versie moet in elk geval 3 jaar functioneren. Daarom wilden we dat het systeem ruim in zijn jasje zat.

Edward Dortland, mede-oprichter Twintos

We zijn nog niet tevreden

Na de eerste dag zijn de scherpe randjes eraf. We zitten op een cpu-belasting van 70% en de gebruikers zijn tevreden. Maar we willen de performance toch verder opschroeven. Edward: “Een nieuwe versie van HiX moet in elk geval 3 jaar functioneren. Zit de cpu-load bij oplevering op 70%, dan kun je voorspellen dat je het einde van die 3 jaar niet gaat halen. Daarom kunnen wij daar geen genoegen mee nemen. Naarmate de database groeit, wordt de belasting steeds zwaarder. Dan is er geen marge over wanneer iemand bijvoorbeeld een heel zwaar rapport opstart. We willen dat het systeem ruim in zijn jasje zit.”

CPU-belasting van 70% naar 30 à 40%

Ook die zondag gaan we in nauwe samenwerking met ChipSoft verder met optimaliseren. Edward: “We sporen de zwaarste queries op en overleggen met Chipsoft of dat een normale belasting is. Zo ja, dan kijken we hoe we die query sneller kunnen maken door een index toe te voegen of een executieplan te forceren. Dat werkt. Uiteindelijk is de cpu-belasting 30 à 40%.”

Microsoft SQL Server bug

We komen zelfs nog achter een bug in SQL Server, waardoor we de cpu-belasting nog verder omlaag kregen. Edward: “We ontdekten dat de hoeveelheid CPU privileged time relatief hoog was: 10%. Bij een totaal CPU-verbruik van 40% is dat erg hoog. Dit zagen wij bij andere HiX-klanten van ons niet eerder. Na verder onderzoek kwamen we er achter dat er een relatie zat tussen het oplopen van het geheugengebruik voor security permission tokens en het hoge CPU verbruik voor kernel commando’s.”

Liever geen workaround, maar een fix

Een bekend probleem, waar ook wel een oplossing voor is. Maar liever wilden we dat Microsoft de bug herstelde.

Edward: “Het continu oplopende geheugenverbruik wordt meestal opgelost met een workaround. Je schrijft bijvoorbeeld een job die ieder uur de betreffende memoryclerk reset. Het probleem daarbij is dat je dan een continu fluctuerende performance hebt. Net ná de reset heb je namelijk een 10% lagere CPU belasting dan net voor de reset. Dat is voor ons niet goed genoeg. We hebben daarom een case geopend bij Microsoft. Nadat Microsoft hier een fix voor opleverde, zaten we op een stabiele cpu-belasting van 25 à 35%.”

Missie geslaagd.

En zo beleeft medisch Nederland een primeur. Met het HMC en ChipSoft hebben we bewezen dat het kon, de HiX database-server op vSAN laten draaien. Het Haaglanden Medisch Centrum bewees daarmee andere ziekenhuizen een dienst. Vanaf nu is virtualisatie voor HiX ook in andere zorginstellingen mogelijk. De last voor systeembeheerders wordt lichter. En de patiëntenzorg kan weer met sprongen vooruit.

Ook behoefte om een grote efficiencyslag te maken met de informatie in je organisatie?
Neem contact op met Twintos. We inspireren je graag.

Mail Edward Dortland, managing director Twintos