In november dit jaar introduceerde Sun de tiende versie van zijn besturingssysteem Solaris. Sun noemt als verbeteringen onder meer de nieuwe bestandsstructuur ZFS, de met ‘containers’ werkende partitioneringstechnologie, Dtrace voor het afstemmen van applicaties in een productieomgeving en het op het verbeteren van de beveiliging gerichte ‘process rights management’ dat voorheen alleen in de ’trusted’ versie van Solaris beschikbaar was.
Het zelfvertrouwen is terug bij Sun Microsystems. De inmiddels vijftig jaar oude oprichter Scott McNeally heeft in de 38-jarige ‘president’ Jonathan Schwartz een nieuwe ‘sparring partner’ gevonden voor het uit de problemen halen van zijn bedrijf. Gezamenlijk kwamen zij bijvoorbeeld op het idee om grid computing aan klanten aan te bieden voor de toch wel verrassende prijs van één dollar per cpu per uur. “Ik begrijp dat CIO’s dit bedrag momenteel zelfs als interne benchmark voor hun eigen ict-operaties gebruiken”, schreef Schwartz onlangs in zijn weblog.
Heel belangrijk voor de toekomst van Sun is Solaris. Zou het met dit besturingssysteem dezelfde kant opgaan als IBM’s AIX en HP’s HP-UX of zou Sun de strijd met Linux voluit blijven aangaan? Sinds de introductie van Solaris 10 weten we dat McNeally en Schwartz de negatieve beoordelingen van analisten en de open brieven van aandelenmakelaars naast zich hebben neergelegd en hebben gekozen voor een hoofdrol voor Solaris. McNeally: “Het liefst innoveren we ons uit de problemen. Dat doen we door zoveel mogelijk nieuwe voorzieningen in het besturingssysteem in te bouwen en Solaris tegelijkertijd op zoveel mogelijk platformen beschikbaar te maken.” Dit betekent dat naast de Ultrasparc- en Sparc64-versie nu een functioneel min of meer equivalente x86-versie en een variant voor AMD’s Opteron beschikbaar komen. Schwartz: “Interessant is dat we daardoor inmiddels klanten hebben die HP-UX de deur uit hebben gedaan en Solaris draaien op HP’s eigen x86-hardware.” Er komt geen Itanium-versie, maar wellicht wel een variant voor de PowerPC-processor.
Solaris 10 biedt op tal van punten verbeteringen ten opzichte van versie 9. Een aantal aspecten springt er uit: een ‘containers’ of ‘zones’ geheten partitioneringstechnologie, het nieuwe ZFS-bestandssysteem, de analysetool Dtrace, en een aantal min of meer ‘zichzelf corrigerende’ te noemen voorzieningen en verbeteringen van de beveiliging.
8192 partities
Er bestaan grofweg drie technieken voor het partitioneren van servers. Allereerst kennen we op hardware gebaseerde methoden als Dynamic System Domains die al in Sun-systemen worden gebruikt als concurrent voor IBM’s LPAR- en HP’s vPARS-technologieën. Dan bestaan er virtuele machines zoals die van VMWare. Een derde groep vormen de partitioneringstechnieken op het niveau van besturingssystemen: Jails uit FreeBSD of VServers in Linux bijvoorbeeld.
Solaris Zones hoort in dit laatste rijtje thuis. Iedere Solaris ‘instance’ is in staat maximaal 8192 virtuele containers aan te maken. Iedere zone kent zijn eigen softwareomgeving, ip-adres, voorzieningen voor bronnenbeheer, root-toegang en dergelijke. De applicatie die in een zone draait, heeft geen enkele weet van de rest van de systeemomgeving. Treedt in een container een probleem op, dan heeft dit geen invloed op het functioneren van andere containers. Bovendien kan een container in enkele seconden worden herstart.
Wat kan een ict-afdeling met containers? Iedere zone kan Solaris-, maar ook Linux-applicaties draaien. Ook die kunnen ‘native’ worden toegepast. Dat is mogelijk doordat Solaris 10 niet alleen een Solaris System Call Handler kent, maar ook een Linux System Call Handler. Met andere woorden: iedere systeemfunctie die door een applicatie wordt aangeroepen, wordt opgevangen en vervolgens door de juiste ‘call handler’ verwerkt. “Dat levert een kleine overhead op van circa vijf procent”, erkent Andy Tucker van de Solaris Data and Kernel Services Group en de belangrijkste architect van deze aanpak. “Solaris is echter dermate snel dat ‘native’ Linux-applicaties op Solaris betere prestaties laten zien dan op Red Hat.”
De containers maken het voor Sun mogelijk Solaris te positioneren als een platform voor consolidatie. Het kan nu native Unix én Linux aan. En hoewel het officieel wordt ontkend, blijkt uit informele gesprekken dat ook gekeken wordt naar mogelijkheden om Windows-applicaties naar het eigen platform te trekken.
Tunen met Dtrace
Dtrace is eveneens nieuw. Het is een voorziening die het mogelijk maakt om op een productiesysteem de kernel en applicaties te bekijken en op basis daarvan de gehele systeemomgeving in te stellen. “Stel dat een applicatie een probleem vertoont. Het prestatieniveau is bijvoorbeeld veel lager dan verwacht”, legt Bryan Cantrill van de Solaris Kernel Development Group van Sun uit. “Normaal proberen we dan de applicatieomgeving op een testsysteem na te bootsen. Daarbij lopen we echter tegen het probleem aan dat een symptoom door tal van oorzaken kan ontstaan. Alleen het symptoom bestrijden is dus niet voldoende, we moeten de werkelijke oorzaak achterhalen. Een test- en productieomgeving zijn echter nooit identiek, zodat het maar de vraag is of we werkelijk de oorzaak te pakken hebben als het symptoom verdwijnt. Dus is het beter om de fout op te sporen in de productieomgeving zelf. Dat kan met Dtrace.”
Dtrace is gebaseerd op het idee van het dynamisch aanpassen van de kernel. Het programma kijkt naar zowel de activiteiten van de kernel zelf als van de applicaties, ook als deze in een Java Virtual Machine draaien. Dat gebeurt met zogeheten ‘probes’. Dit zijn activiteiten of locaties in de kernel waaraan het programma een bepaald verzoek (request) kan koppelen voor het uitvoeren van activiteiten. Op tal van plaatsen zijn probes in Solaris ingebouwd. Deze kunnen door een beheerder worden ingeschakeld, waarna met scripts handelingen kunnen worden uitgevoerd – zoals het verzamelen van een aantal gegevens – zodat een analyse van een probleem kan worden gemaakt. “Met Dtrace kunnen we goed zien wat er gebeurt bij de interactie tussen applicatie, kernel en hardware. Hierdoor hebben de resultaten die wij met het programma hebben bereikt onze verwachtingen overtroffen”, zegt Jarod Jensen, chief systems architect van systeemintegrator Aeysis. “Bij sommige klanten konden we binnen enkele uren prestatieverbeteringen van vele tientallen procenten realiseren.”
Sun claimt bovendien dat Dtrace geen effect heeft op het prestatieniveau van Solaris 10 als het niet wordt gebruikt. Probes worden dynamisch aan- en uitgezet. Zodra het programma beëindigd is, worden alle probes uitgeschakeld en van hun data ontdaan, zodat de kernel in de oude toestand wordt teruggebracht. Voorlopig is alleen een command-line-versie van dit programma beschikbaar. Er wordt gewerkt aan een versie met een grafische interface.
Nieuw bestandssysteem: ZFS
Een traditioneel bestandssysteem bestaat uit een gegevensstructuur die over een schijfvolume wordt heengelegd. Deze opslageenheid wordt door een aparte volume manager beheerd. Dit betekent dat er altijd opslagsystemen geconfigureerd zullen moeten worden, zodat meerdere schijven in logische volumes worden gegroepeerd, waarna het bestandssysteem over dit volume wordt heengelegd. Dit is een omslachtige manier van werken, waarbij de applicatie niet weet waar data zich fysiek bevindt. De vertaalslagen die hierdoor nodig zijn, maken van het opslaan van gegevens een complex en tijdrovend proces.
Met het nieuwe bestandssysteem ZFS wil Sun dit probleem oplossen. Het heeft hiertoe bestandssysteem en volume management geïntegreerd. ZFS is volgens Sun wat capaciteit betreft een stap vooruit (van 32 naar 128 bits), en is bovendien belangrijk om het werken met containers of zones goed te ondersteunen. Doordat volume management en bestandssysteem zijn samengevoegd, kan nu met één bestandssysteem per container worden gewerkt.
Ook claimt Sun dat een nieuw bestandssysteem binnen een seconde is gecreëerd. Van ieder datablok dat wordt vastgelegd, wordt een ‘checksum’ gemaakt die gescheiden van de data wordt vastgelegd. Bovendien wordt ieder blok volgens het copy-on-write-principe op twee plaatsen weggeschreven. Deze maatregelen vergroten de kans op consistente data. De integratie van volume management in het bestandssysteem betekent verder dat een bestaande bestandsstructuur wat volume betreft kan groeien zonder dat er sprake behoeft te zijn van bijvoorbeeld ‘unmounting’ of ‘locking’. Configuratie gebeurt op basis van policies. Overigens wordt ZFS, net als eerder met NFS, als open source vrijgegeven.
Zelfcorrectie en beveiliging
Sun wil de stroom van onduidelijke foutmeldingen indammen met een architectuur voor foutbeheer. Deze bestaat uit modulen voor het stellen van een diagnose van de kernel en in een aantal gevallen kan automatisch gereageerd worden door scripts te starten die fouten herstellen. Lukt dat niet, dan geeft deze Fault Manager suggesties voor te ondernemen acties. Overigens is deze Fault Management Architecture zodanig opgezet dat nieuwe modulen kunnen worden toegevoegd zonder dat het systeem hiervoor hoeft te worden herstart.
Solaris 10 bevat tot slot ook de nodige voorzieningen ter verbetering van de veiligheid. Een aantal hiervan is afkomstig uit Trusted Solaris. Bijvoorbeeld: process rights management (procestoegangsbeheer). Het idee hierachter is dat processen met minder dan toegangsrechten op root-niveau slechts toegang krijgen tot een beperkte set systeemservices. Met andere woorden, er kunnen naast root nog enkele zelf in te stellen niveaus van toegangsrechten worden gecreëerd. Doordat procestoegangsbeheer is geïntegreerd met gebruikersrechten kan dus de toegang van zowel processen als beheerders tot systeemcomponenten veel verfijnder worden gereguleerd.< BR>