Jurassic Park-effekten
“Hvis jeg må… Øh, jeg vil fortælle dig problemet med den videnskabelige kraft, du bruger her: den krævede ikke nogen disciplin at opnå. Du læste, hvad andre havde gjort, og du tog det næste skridt. Du tjente ikke selv viden, så du tager ikke noget ansvar for den. Du stod på skuldre af genier for at opnå noget så hurtigt som muligt, og inden du vidste, hvad du havde, patenterede du det, pakkede det ind og klistrede det på en plastiklunchboks, og nu …” – Dr. Ian Malcolm, Jurassic Park
Når man overvejer at bygge en lagerserver eller NAS, er der en almindelig fornemmelse af, at det, der er brug for, er et “NAS-operativsystem.” Dette finder jeg en underlig reaktion, da udtrykket NAS ikke betyder mere end en “filserver med en dedikeret lagergrænseflade.” Eller med andre ord blot en filserver med begrænset eksponeret funktionalitet. Grunden til, at vi vælger fysiske NAS-apparater, er den integrerede support og nogle gange for særlig, proprietær funktionalitet (NetApp er et nøgleeksempel med omfattende SMB- og NFS-integration og nogle virkelig unikke RAID- og filsystemindstillinger, eller Exablox, der tilbyder fuldt administreret scale-out-fillager og RAIN-lignende beskyttelse). At bruge en NAS til at erstatte en traditionel filserver er for det meste et ret nyere fænomen og et, som jeg har fundet ofte er drevet af misforståelse eller den opfattelse, at styring af en filserver – en af de mest grundlæggende IT-arbejdsbelastninger – er særlig eller svær. Filservere betragtes generelt som den mest grundlæggende form for server og traditionelt det, folk mente, når de brugte udtrykket server, medmindre yderligere beskrivelse blev tilføjet, og den eneste form, der almindeligvis er integreret i desktopen (enhver Mac, Windows og Linux-desktop kan fungere som filserver, og det er meget almindeligt at gøre det).
Der er selvfølgelig ikke noget galt med at vende sig til en NAS i stedet for en traditionel filserver for at imødekomme dine lagerbeov, især da nogle moderne NAS-muligheder, som Exablox, tilbyder scale-out- og lagerindstillinger, der ikke er tilgængelige i de fleste operativsystemer. Men det ser ud til, at tendensen til at bruge en NAS i stedet for en filserver har ført til en mærkelig adfærd, når IT-professionelle vender tilbage til at overveje filservere igen. En kaskadeseffekt, fornemmer jeg, hvor årsagerne til, at NAS'er nogle gange foretrækkes, og måltænkningens niveau går tabt, og den resulterende idé om “jeg bør have en NAS” forbliver, så at når man vender tilbage til at se på filserverindstillinger, er der et drive til at “have en NAS” uanset om der er en logisk grund til at føle, at dette er nødvendigt eller ej.
Først må vi overveje, at det generelle koncept bag en NAS er et enkelt: tag en traditionel filserver, forenkl den ved at fjerne indstillinger og pak den med al nødvendig hardware for at gøre et forenklet apparat med al support inkluderet fra grænsefladen ned til de roterende drev og alt imellem. Lager kan være vanskeligt, når brugere har brug for at bestemme RAID-niveauer, drevtyper, overvåge effektivt osv. En NAS adresserer dette ved at integrere hardwaren i platformen. Dette gør tingene enkle, men kan tilføje risiko, da du har færre supportmuligheder og mindre evne til selv at reparere eller erstatte ting. En overgang fra en filserver til et NAS-apparat handler næsten udelukkende om support og er generelt en meget stærk forpligtelse over for én enkelt leverandør. Du vælger NAS-tilgangen, fordi du ønsker at stole på en leverandør for alt.
Når vi skifter til en filserver, går vi i den modsatte retning. En filserver er en traditionel enterprise-server som enhver anden. Du køber din serverhardware fra én leverandør (HP, Dell, IBM osv.) og dit operativsystem fra en anden (Microsoft, Red Hat, Suse osv.). Du specificerer de dele og den konfiguration, du har brug for, og du har den mest almindelige computing-model for al IT. Med denne model bruger du generelt standard, commodity-dele, der giver dig mulighed for nemt at migrere mellem hardwareleverandører og softwareleverandører. Du har “leverandørredundans”-muligheder, og generelt er alt gjort med åbne, standardprotokoller. Du får stor fleksibilitet og kan administrere og overvåge din filserver ligesom ethvert andet medlem af din serverflåde, herunder holde den fuldstændigt virtualiseret. Du giver afkald på den vertikale integration af NAS til gengæld for horisontal fleksibilitet og standardisering.
Det er derfor mærkeligt, når man vender tilbage til commodity-modellen men søger det, der folkelig kaldes et NAS-operativsystem. Almindelige eksempler på disse inkluderer NAS4Free, FreeNAS og OpenFiler. Denne kategori af produkter er generelt intet andet end et standard operativsystem (ofte FreeBSD, da det har ideel licensering, eller Linux, fordi det er velkendt) med en “lagergrænseflade” lagt ovenpå og ingen speciel eller yderligere funktionalitet, der ikke ville eksistere med det normale operativsystem. I teorien er de et “enkeltfunktions”-operativsystem, der kun gør én ting. Men dette er ikke virkelighed. De er generelle operativsystemer med et ekstra GUI-administrationslag tilføjet ovenpå. Man kunne sige det samme om de fleste fysiske NAS-produkter selv, men de inkluderer typisk brugerdefineret engineering helt ned på lagerniveauet, specielle funktioner og vigtigst af alt et integreret supportstak og ægte isolation af “generaliteten” i det underliggende OS. Et “NAS-OS” er ikke en enklere version af et generelt operativsystem – det er en mere kompleks, men mindre funktionel version af det.
Det er derudover mærkeligt, at generelle operativsystemer med sjældne undtagelser allerede leveres med meget enkle, ekstremt velkendte og fuldt understøttede lagergrænseflader. Næsten alle varianter af Windows eller Linux-servere har for eksempel i meget lang tid inkluderet enkle grafiske grænseflader til disse funktioner. Disse inkluderede GUI'er afvises ofte af systemadministratorer som værende for “tunge og unødvendige” til en simpel filserver. Så det er endnu mere usædvanligt, at tilføjelse af et tredjeparts-GUI – ét der ikke er patchet og testet af OS-teamet og ikke standardmæssigt kendt og understøttet – så ønskes, da dette går imod de almindelige idealer og praksisser ved brug af en server.
Og det er her, Jurassic Park-effekten kommer ind – OS-leverandørerne (Red Hat, Microsoft, Oracle, FreeBSD, Suse, Canonical m.fl.) er giganter med fantastiske ingeniørteams, kodegennemgang, test, tilsyn og enterprise-supportøkosystemer. Mens “NAS-OS”-leverandørerne generelt er meget små virksomheder – nogle med blot én deltidsperson – der står på skuldrene af disse giganter og bygger noget, de vidste, de kunne, men aldrig stoppede op for at spørge, om de burde. De resulterende produkter er fuldstændigt negative sammenlignet med deres rene OS-modparter; de gør ikke systemstyring lettere, og de udfylder heller ikke et hul i markedets servicetilbud. Solid, pålidelig, nem lagerplads er allerede tilgængelig – der er ikke brug for flere leverandører til at udfylde denne plads på markedet.
Den logik, der ofte anvendes ved overvejelse af et NAS-OS, er, at de er “nemme at opsætte.” Dette kan være sandt eller falsk, da let her må være et relativt begreb. For at der er nogen som helst værdi, skal et NAS-OS være let i sammenligning med standardversionen af det samme operativsystem. Så i tilfældet med FreeNAS ville dette betyde FreeBSD. FreeNAS ville skulle være mærkbart nemmere at opsætte end FreeBSD til de samme dedikerede funktioner. Og dette er nemt sandt – opsætning af et NAS-OS er generelt ret let. Men denne lethed er kun en plaster på såret, og IT-professionelle bør være meget opmærksomme på dette. At gøre noget nemt at opsætte er ikke en prioritet i IT – at gøre noget, der er nemt at drive og reparere, når der er problemer, er det, der er vigtigt. Nem opsætning er rart, men hvis det koster at man ikke forstår, hvordan systemet er konfigureret og gør operationelle reparationer vanskeligere, er det en meget, meget dårlig ting. NAS-OS-produkter gør det rutineret farligt nemt at få et produkt i produktion til en lagerrolle – hvilket næsten altid er den mest kritiske eller næsten den mest kritiske rolle for enhver server i et miljø – som IT ikke har erfaring med eller sandsynligvis kompetencer til at vedligeholde, drive eller vigtigst af alt reparere, når noget går galt. Vi har brug for præcis det modsatte: et system, der er nemt at drive og reparere. Det er det, der betyder noget. Så vi har endnu et tilfælde af “at stå på skuldrene af giganter” og bygge et system, vi vidste, vi kunne, men ikke vidste, om vi burde.
Det, der forværrer dette problem, er, at de mennesker, der føler behov for at vende sig til et NAS-OS for at “gøre lager let”, er – af selve NAS-OS'ets natur – præcis de mennesker, for hvem operationel support og reparation af systemet er vanskeligst. Systemadministratorer, der er komfortable med det underliggende OS, ville naturligvis ikke se et NAS-OS som en fordel og ville for det meste undgå det. Det er unikt de mennesker, for hvem det er mest farligt at drive en ikke-fuldt-forstået lagerplatform, der sandsynligvis vil forsøge det. Og selvfølgelig tjener de fleste NAS-OS-leverandører deres penge, som vi kunne forudsige, på supportopkald efter installation fra kunder, der deployede og kom i klemme, når de var i produktion, så de er på nåde hos leverandørerne for eksorbitante supportpriser. Det er i leverandørernes interesse at gøre det nemt at installere og svært at reparere. Alt arbejder imod IT-professionelle her.
Hvis vi tager et almindeligt eksempel og ser på FreeNAS, kan vi se, hvordan dette er en dårlig justering af “vanskeligheder.” FreeNAS er FreeBSD med en yderligere grænseflade ovenpå. Alt, hvad FreeNAS kan gøre, kan FreeBSD gøre. Der er intet tab af funktionalitet ved at gå til FreeBSD. Når noget fejler – i begge tilfælde – skal systemadministratoren have god arbejdskendskab til FreeBSD for at udføre reparationer. Der er ingen vej uden om dette. FreeBSD-viden er almindelig i branchen, og det er relativt nemt at få ekstern hjælp. At bruge FreeNAS tilføjer adskillige komplikationer, den største er, at alle tilpasninger foretaget af FreeNAS-GUI'en er specialviden, der er nødvendig til fejlsøgning oven på den viden, der allerede er nødvendig for at drive FreeBSD. Så dette er et stort vidensæt samt flere ting, der kan fejle. Det er også et relativt ualmindeligt vidensæt, da FreeNAS er et nichelagringsprodukt fra en lille leverandør, og FreeBSD er en større enterprise IT-platform (plus at al brug af FreeNAS er FreeBSD-brug, men kun en lille procentdel af FreeBSD-brug er FreeNAS). Så vi kan se, at brug af et NAS-OS blot tilføjer risiko igen og igen.
Dette samme problem overføres til de fællesskaber, der vokser op omkring disse produkter. Hvis du vender dig til fællesskaber omkring FreeBSD, Linux eller Windows for vejledning og hjælp, har du at gøre med store antal IT-professionelle, dygtige systemadministratorer og dem med forretnings- og enterprise-erfaring. Selvfølgelig deltager hobbyister, de uinformerede og andre også, men disse er enterprise IT-platformene, og al branchens viden er tilgængelig for dig, når du implementerer disse produkter. Sammenlign dette med fællesskabet for et NAS-OS. Af selve sin natur ville kun folk, der kæmper med administration af et standard operativsystem og/eller lagergrundlæggende, se på en NAS-OS-pakke, og dette filtrerer naturligt medlemskabet i deres fællesskaber til kun at omfatte de folk, man bedst bør undgå at få råd fra. Dette skaber en isoleret kultur af misinformation og misforståelser om lager og lagerprodukter. Myter florerer, vejledning bliver ofte hensynsløs og farlig, og branchebedste praksisser ignoreres, som om årtiers akkumuleret erfaring aldrig var sket.
Et NAS-OS introducerer også almindeligvis forsinkelser i patching og opdateringer. Et NAS-OS vil næsten altid og næsten nødvendigvis halte bag sit forældre-OS i sikkerheds- og stabilitetsopdateringer og vil meget ofte følge måneder eller år bagud på store funktioner. I ét meget velkendt scenarie var OpenFiler bygget på et upstream ikke-enterprise-grundlag (RPath Linux), som manglede fællesskabs- og leverandørsupport, fejlede og blev opgivet, hvilket efterlod downstream-brugere – inkluderet alle på OpenFiler – forladte uden det øko-system, der er nødvendigt for at understøtte dem. Brug af et NAS-OS betyder ikke kun at stole på den store, enterprise og velkendte primære OS-leverandør, der laver basis-OS'et, men også at stole på NAS-OS-leverandøren. Og NAS-OS-leverandøren er størrelsesordener mere tilbøjelig til at fejle, hvis de baserer deres produkter på enterprise-klasse basis-OS'er.
Lager er en kritisk funktion og bør ikke behandles skødesløst og bør ikke ignoreres, som om dens kritikalitet ikke eksisterede. NAS-OS'er frister os til at installere hurtigt og glemme, i håb om, at intet nogensinde går galt, eller at vi kan skifte til andre roller eller virksomheder fuldstændigt, inden de dårlige ting sker. Det stiller os op til fiasko, hvor fiaskoen er mest virkningsfuld. Når en typisk applikationsserver fejler, kan vi altid kopiere filerne fra dens lager og starte forfra. Når lager fejler, mistes data, og systemer går ned.
“John Hammond: Alle store temaparker har forsinkelser. Da de åbnede Disneyland i 1956, virkede intet!
Dr. Ian Malcolm: Ja, men John, hvis Pirates of the Caribbean bryder ned, spiser piraterne ikke turisterne.”
Når lager fejler, fejler virksomheder. At tage den lette vej til opsætning af lager og ignorere de langsigtede supportbehov og søge råd fra fællesskaber, der har filtreret de erfarne lagrings- og systemingeniører fra, øger risikoen dramatisk. Desværre er det sådan, at af selve NAS-OS'ets natur er den meget årsag, folk vender sig til det (mangel på dyb teknisk viden til at bygge systemerne), netop den årsag, de må undgå det (endnu større behov for support). De folk, for hvem NAS-OS'er er effektivt sikre at bruge – dem med meget dyb og bred lagrings- og systemviden – ville sjældent overveje disse produkter, fordi de for dem ikke tilbyder nogen fordele.
I sidste ende, mens konceptet med et NAS-OS lyder vidunderligt, er det ikke en universalløsning, og værdien af en NAS overføres ikke fra den fysiske appliance-verden til den installerede OS-verden, og værdien af standard-OS'er er langt for stor til, at NAS-OS'er effektivt kan tilføje reel værdi.
“Dr. Alan Grant: Hammond, efter nogen overvejelse har jeg besluttet ikke at godkende din park.
John Hammond: Det har jeg også.”

