Artikel top billede

(Foto: Computerworld)

Et univers af lagerplads

Nu skal vi se intet mindre end galaxens herligste lagersystem komme til udfoldelse.

Af Torben Okholm, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Vi ved alle, at ssd’er kommer til at lægge det gamle, roterende lager i graven, men for mange af os leverer en stribe harddiske stadig den kapacitet, vi har brug for – 8K-optagelser, mængder af megabyte-tunge fotos, og hvem ved, hvilke gigantiske lagerkrav den kræsne læser af Alt om DATA har? Og det hele skal ske, uden at vi fuldstændig sprænger banken.

Der er ingen tvivl om, at ssd’erne indhenter deres klodsede roterende slægtninge, når det gælder kapacitet, men udgiften til et fremragende ssd på 4 TB svarer til næsten 30 TB roterende lager. Hvis der blot fandtes en mulighed for at kombinere harddiskenes lagerplads med superhurtigt ssd-lager ... Det er her, vi skal byde Microsoft Lagerplads velkommen. En moderne løsning på et ældgammelt problem: Hvor skal vi lagre alt vores gamle materiale? Lagerplads er Microsofts udgave af det, som den øvrige computerverden ville kalde lagerkapacitet.

Det er et forsøg på at styre uden om mylderet af raid, mirrors og JBOD’er og forsyne brugeren med en simpel, samlet mængde lager, der giver en række fordele: Man kan tilføje caching-drev, man kan blande og matche drev med forskellig kapacitet, man opnår fordelen ved drev-redundans, og man får en nem måde at håndtere pladsen på.

Det lyder som en ideel løsning. Hvorfor er det så ikke alle, der bruger Lagerplads? Tja, nu er det jo Microsoft, vi taler om, og derfor har man spændt ben for sig selv i forsøget på at lave et anvendeligt system til almindelige brugere af Windows 10. Derfor er vores opgave ikke blot at forklare, hvordan man får mest muligt ud af Microsoft Lagerplads, men også at fremskaffe den manglende fuktionalitet, uanset hvad Microsoft ønsker. Lad os se på sagerne ...

Alle er ude efter løsninger, der kan gøre deres travle liv nemmere og enklere. Dovenskab er en særdeles magtfuld drivkraft, og verden er fuld af systemadministratorer, der ikke vil hjemsøges af svigtende drev. Derfor kom der en løsning: Lagerpladser. De udgør en måde, hvorpå man kan oprette virtuelle drev på baggrund af håndgribeligt hardwarelager, uanset hvilken form dette lager antager.

Man behøver ikke længere at have et mylder af forskellige drev. Slut med at rode rundt med raid-systemer. Med Windows 10 kan man blot samle sig en dynge lager og få den til at fremstå som et enkelt lagerområde, der rummer en række ekstra fordele.

Lagerplads er inkluderet i forbrugerversionen af Windows 10; serverproduktet Storage Spaces Direct har nogle få yderligere funktioner, men det er kun tilgængeligt på Windows Server 2012/16/19. I det store og hele er de ekstra funktioner rettet mod virksomheder og datacentre. En af funktionerne er dog support af ssd-lagdelt lager og skrivecache.

Funktionen gør det muligt at sætte et eller flere dedikerede ssd’er til at cache en større Lagerplads. Det lader til, at Microsoft har fjernet GUI-baseret support i forbrugerudgaven af Windows 10, men det er muligt at bruge PowerShell til manuelt at specificere et drev. Det vil vi derfor se på, når vi har været igennem de grundlæggende begreber.

Vi skal afdække mulighederne for at konfigurere Lagerplads. Det omfatter en undersøgelse af, hvordan de forskellige muligheder fungerer, når man skal kombinere fysiske drev i det, som Microsoft kalder en lagerpulje. Kombinationerne kan være temmelig varierede, navnlig når man inddrager udvidede puljer og de måder, hvorpå man kan håndtere virtuelle lagerpladser på tværs af dem. Vi vil styre puljer, erstatte drev, genopbygge dem og optimere dem efter behov – samtidig med at vi også ser på brugen af et ssd til at forbedre skriveydelsen. Og naturligvis vil vi smide nogle få benchmarks efter vores pulje for at se, hvor godt den yder.

Den videnskabelige baggrund

Før vi begynder at jonglere med nogle drev, må vi gennemgå noget teori om, hvordan man laver puljer, og hvorfor de eksisterer. Det kan nemlig spare dig for en del hovedbrud og for at skulle genopbygge dine lagerpladser, når det går op for dig, at du ikke har løst opgaven optimalt. Hvis du er pjattet med raid og den slags, kan du springe det næste over. Som vi har antydet, udsprang Lagerplads af systemadministratorers ønske om at forenkle lagerstyring – det vil sige fjerne kompleksiteten.

Sørg for at rydde drevene, før du prøver at føje dem til en lagerpulje.

Det er ikke svært at se for sig. Man kan have et datacenter, der er fuldt af serverracks, som er stuvende fuldt af roterende drev, der bliver ved med at svigte. Man vil ikke blot have et system, der kan forhindre datatab, når drevene svigter; man ønsker også et system, som simplificerer håndteringen af alt dette lager til en enkelt blok eller i hvert fald en række blokke.

Hvis vi tager den første del af problemert altså forhindring af datatab, skal vi føje redundans til vores lager: Hvis ét drev svigter, mister man ikke data, og alt kan fortsætte, som om der ikke var sket noget slemt. Lagerplads og traditionelt computerarbejde tilbyder to muligheder: drevspejling og paritetslager, også kendt som raid.

Samme størrelse, men forskellige

Kan man bruge drev af forskellig størrelse? Ja, men nej. Klart som blæk – sådan kan vi lide det. Det korte og basale svar er, at i enhver paritetspulje eller spejlet pulje kan man bruge drev af enhver størrelse, men puljens maksimale kapacitet er determineret af det mindste drev.

Tag en spejling, der består af to drev på henholdsvis 1 TB og 2 TB – den maksimale spejlede kapacitet er 1 TB; drevet på 2 TB er begrænset til 1 TB lagerplads. Tag så et paritetsarray med tre drev på 4 TB, 4 TB og 6 TB. Den generelle kapacitet ville være 12 TB, fordi drevet på 6 TB er begrænset til de 4 TB hos de to mindste drev – selv om den tilgængelige plads burde være 8 TB, idet et tredje er reserveret til paritetsdata.

Hvis denne situation opstår, kan man matche sine drev af forskellige størrelser i spejlinger og dermed maksimere pladsen. Hvis man for eksempel har to 4 TB-drev og to 6 TB-drev, kan man parre et 4 TB-drev og et 6 TB-drev som én side af en 10 TB-spejling med de to andre på den anden.

Spejling er nemmest at forstå. Den grundlæggende konfiguration består i, at man har to identiske drev, og de samme data bliver skrevet til dem begge. Hvis et drev svigter, har man en ekstra udgave på det andet. Simpelt, ikke sandt? Faktisk kan det blive mere komplekst. Forestil dig hver side af en spejling som en “lagersøjle”. Lagerplads gør det muligt at kombinere flere drev i hver lagersøjle.

Den ene søjle spejler den anden, men med flere drev. Det er praktisk, når man vil udvide en eksisterende spejling med flere drev. Lagerplads har også udvidet ideen om den basale spejling til en trevejsspejling. I stedet for kun to spejling-lagersøjler har man tre. Teorien er, at fejlmulighederne på en kompleks tovejsspejling er store nok til at berettige yderligere redundans i systemet.

Man kan tildele flere Lagerpladser, også hvis de er større end det fysiske lager.

Problemet her er, at en standardspejling spilder plads – 50 procent af den samlede lagerplads går tabt på grund af redundans. En trevejsspejling er endnu værre, idet 66 procent går tabt på grund af redundans. Findes der ikke en mere effektiv løsning?
Her kommer vi til paritetslager, der også er kendt som raid (Redundant Array of Inexpensive/Independent Drives). V

i skal ikke fordybe os i matematikken, men paritet bruger et logisk trick – det bliver også brugt ved fejltjek – der betyder, at når man sammenligner to bit, der bliver lagret, genererer man en tredje paritetsbit. De bliver lagret over ens tre “paritets”-drev – det er det mindst mulige antal. Bit nummer et bliver skrevet til drev nummer et, bit to til det andet drev og paritetsbitten til det tredje drev. Hvis et af drevene nu svigter, kan man få sine data tilbage ved at vende om på paritets-oprettelsesprocessen.

Ud fra dette grundlæggende system er det forhåbentlig klart, hvordan man kan gå videre og skrive to data og derefter en paritetsbyte – den faktiske mængde af data er variabel og bliver typisk kaldet en “stripe”, fordi datablokke og paritetsblokke føres i striber på tværs af rækken af paritetsdrev. Man kan tilføje fire, fem og flere drev, og data og paritetsdata bliver simpelthen spredt over drevene. I dette tilfælde bliver 33 procent af den samlede lagerplads brugt som redundans, og teknikken er derfor mere effektiv end en spejling, navnlig når det gælder et større antal drev.

Gang i et ssd

Windows rummer to funktioner til at accelerere Lagerplads-ydelse: skrivecache og ssd-lag. I forbrugerudgaven af Windows 10 kan man kun bruge dem via PowerShell, når Lagerpladsen bliver oprettet. Det lykkedes os ikke at føje et ssd-lag til et paritetsarray af harddiske, men vi havde succes med et enkelt ssd og et simpelt array, plus et spejlet ssd- og harddiskarray. Vi vil se på oprettelsen af dem begge.

Vi indleder processen fra grunden. Først skal du fjerne dine Lagerpladser og puljer. Vi agter at bruge PowerShell, og derfor skal du søge efter den og køre den i Administratortilstand. Det første skridt består i at oprette en variabel, der lagrer de tilgængelige tomme drev; kør denne kommando uden $disks = for at se outputtet. Derefter kan vi oprette vores pulje fra den liste.

$disks = Get-PhysicalDisk -CanPool
$True
New-StoragePool -PhysicalDisks $disks –
StorageSubSystemFriendlyName “Windows
Storage*” -FriendlyName “Pool”
Dernæst opretter vi to variabler mere, der gemmer detaljerne for det, der skal være vores ssd-lag og harddisk-lag til drev.
$ssd = New-StorageTier -StoragePoolFriend
lyName “Pool” -FriendlyName SSDTier -Me-
diaType SSD
$hdd = New-StorageTier -StoragePoolFriend-
lyName “Pool” -FriendlyName HDDTier -Me-
diaType HDD

Til sidst opretter vi en Lagerplads med kommandoen New-VirtualDisk – du skal ændre værdierne for -StorageTierSizes i overensstemmelse med dine enheder.

New-VirtualDisk -StoragePoolFriendlyName
“Pool” -FriendlyName MySpace -StorageTiers
$ssd, $hdd -StorageTierSizes 400GB, 3000GB
-ResiliencySettingName Simple -
WriteCacheSize 10GB

Åbn Manage Spaces kontrolpanel og du ser et nyt, uformateret område. Du kan formatere og styre det med GUI’et herfra. Hvis du har to ssd’er, er du heldig, fordi du kan oprette et
cachet spejlområde. Gentag det sidste sæt kommandoer, men denne gang skal du blot køre ResiliencySettingName som Mirror . Vi antager, at hvis du havde tre ssd’er, ville du kunne køre paritet.

New-VirtualDisk -StoragePoolFriendlyName
“Pool” -FriendlyName MySpace -StorageTiers
$ssd, $hdd -StorageTierSizes 400GB, 2000GB
-ResiliencySettingName Mirror -
WriteCacheSize 10GB

I den gamle jargon ville man have kaldt dette et raid 5-system – striped paritet – og det kan håndtere, at et enkelt drev i arrayet svigter. En dualparitetsfunktion leverer paritetsredundans, hvilket betyder, at to drev kan svigte uden tab af data; det ville man have kaldt raid 6. Hvorfor skal man bruge paritetsredundans? Teknisk set er den tid, det tager at genopbygge et array, der bruger drev, som er større end 1 TB, så lang, at et andet drev kan svigte imens. Derfor anbefalede man i disse tilfælde raid 6.

En sidste form for array bliver blot kaldt “simpel”. Den tilbyder ikke nogen redundans – den samler simpelthen drev til lagerformål. En egenskab ved det at pulje harddiske, som vi ikke bør overse, er ydelsen ved parallel adgang. Det forbedrer typisk kun skrivning, fordi drevcontrolleren kan sætte parallelle læsninger i kø over arrayet til både spejlet plads og paritetsplads uden yderligere cache.

Den væsentligste fordel i denne sammenhæng er, at man kan tilføje og fjerne drev relativt sikkert uden at miste data, om end der altid er en genopbygningsperiode, som påvirker ydelsen, mens paritetsdata bliver gendannet. Windows omfatter en optimer-funktion, som bør køre, når en lagerplads bliver udvidet eller reduceret. Og nu dykker vi ned i håndteringen af Lagerpladser.

Giv mig plads!

Nu kender vi det grundlæggende ved det, der foregår bag kulisserne med Lagerpladser. Lad os så gå videre og vise, hvordan vi kan oprette en i Windows 10 Pro. Vi har været inde på, at en Lagerplads er et “virtuelt drev”, der består af mange andre drev, som er samlet i en lagerpulje. Det betyder, at Windows kan opbygge en Lagerplads ud fra forskellige typer drev, der kører over ATA, SATA, SAS, USB eller NVMe. Det kræver kun det minimale antal drev til den type Lagerplads, man ønsker. Men Windows leverer advarsler i takt med, at en Lagerplads bliver fyldt op.

I vores eksempel vil vi bruge fire harddiske på hver 1 TB i forskellige konfigurationer, og vi vil forsøge at tilknytte et ssd som en skrivecache via PowerShell. Til at begynde med skal du fyre op under dine drev. Når du er tilbage i Windows, tjekker du, at drevene er blevet identificeret og er tomme – på vores lå der en blanding af GPT, dynamisk disk og tidligere spejlede arrays.

En lagerpulje er ikke meget værd uden nogle drev, man kan lege med.

I søgefeltet skriver du “diskmgmt” og trykker Enter for at åbne Diskhåndtering-konsollen. Her er du nødt til at bruge din sunde fornuft til at identificere dine nye drev – de skal ryddes, før du kan føje dem til en lagerpulje. Højreklik på eventuelle partitioner, og vælg “Slet diskenhed” – tjek indholdet med “Åbn”, før du tilintetgør dine data.

Når drevene er ryddet, kan vi gå i gang med at oprette en pulje. I søgefeltet skriver du “Lager” og vælger “Administrer lagerpladser”. Da der ikke findes nogen, klikker du på linket til “Opret en ny pulje og lagerplads.” Nu får du en liste over egnede drev, som du kan føje til en lagerpulje – altså dine tomme drev. Vælg de drev, du vil tilføje, og klik på knappen “Opret pulje”. Hvis du får en fejlmeddelelse om, at handlingen ikke kan gennemføres, kan du prøve at genstarte Windows – det problem har vi oplevet et par gange.

Det er her, du vælger funktionerne for din nye Lagerplads: navn, drevbogstav og filesystem. Til filsystem bør du kun have NTFS til din rådighed. Microsoft udvikler REFS (REsilient File System), men det sigter på datacenter-applikationer med checksum-funktioner over spejlede arrays og hurtig blok-genallokering til virtualisering. Det lader til, at Microsoft ikke vil rulle dette system ud til forbrugerne – endnu.

Angiv en Lagerplads’ resiliens og kapacitet i kontrolpanelet.

“Resilient” henviser til de tre typer, vi hidtil har dækket: simpel, spejlet og paritet. Afhængig af den type, man vælger, ændrer systemet de generelle lagerkapaciteter. Eftersom det er et virtuelt lagersystem, kan man over-allokere den fysiske plads, og forudsætningen er, at man vil tilføje mere lagerplads, når det bliver nødvendigt. Når du er tilfreds, klikker du “Opret lagerplads”.

Så er vi faktisk færdige. Den nye Lagerplads kommer frem under “Denne pc”, eller hvad Microsoft nu kalder din pc dette år – som et nyt, monolitisk drev. Du kan teste det, installere på det, kopiere fra det og så videre som med ethvert andet drev. Men det er ikke et normalt drev. Åbn igen Lagerpladser, så ser du et væld af nye valgmuligheder plus den generelle status for puljen og de individuelle drev.

Når en pulje og en Lagerplads er blevet oprettet, styrer du dem her.

Eftersom alt dette er virtualiseret, kan man oprette yderligere lagerplads i den samme pulje. Selv hvis den samlede plads overstiger det fysisk tilgængelige, er Windows ligeglad – sådan er det nu om dage. Hvis du vil indføre ændringer, skal du klikke på knappen “Skift indstillinger”. Her bør du kunne se, at du er i stand til at oprette yderligere Lagerpladser, idet du gennemgår den tidligere nævnte procedure.

Ydelsesresultater

Til vores test brugte vi en stribe på fire Toshiba-SATA-harddiske på 1 TB og med 7200 rpm i en række Lagerplads-konfiguratio-ner: simpel, spejlet eller paritet. Ved siden af dem kørte vi to ssd’er på 480 GB (SATA). Vi er kun interesserede i et overblik over ydelsen, og derfor hentede vi vores resultater fra CrystalDiskMark 6. Vi oprettede endda et par Lagerpladser via Lagerpladsers GUI for at se, hvad det ville betyde for dem, og for at se, om PowerShell-vejen faktisk var den overlegne metode.

Du har mulighed for at ændre en eksisterende Lagerplads, når det gælder dens navn, drevbogstav og generelle kapacitet. Bemærk, at man ikke føjer drev til en Lagerplads; det er forbeholdt lagerpuljen. Hvis du vil udvide din kapacitet, skal du føje et drev til puljen og øge den tilgængelige kapacitet hos en Lagerplads, der fortjener det. Efter at du har forøget kapaciteten hos en Lagerplads, bør du køre funktionen “Optimer drevanvendelse” – den genallokerer data- og paritetsstripes og øger dermed drevenes effektivitet. Vær dog opmærksom på, at det reducerer ydelsen, mens den bliver kørt.

Sektionen “Fysiske drev” opregner status og valgmuligheder for alle de tilknyttede drev. Hvis et drev svigter, eller hvis du har planer om at opgradere et drev eller af en anden årsag vil fjerne et drev fra lagerpuljen, skal du klikke på “Forbered fjernelse”. Læg mærke til “Model” og “SN” (serienummer), således at du fjerner det rigtige fysiske drev. Data bliver flyttet væk fra drevet, og når det er færdigt, fremkommer der en knap ved navn “Fjern drev”. Drevet vil ikke være synligt i Stifinder, fordi det stadig er formateret som en lagerpuljeenhed; du er nødt til at slette det via Diskhåndtering, som vi gjorde, da vi i begyndelsen forberedte drevene.

Hvis du beslutter dig for, at disse Lagerpladser ikke er noget for dig, kan du fjerne dem ved blot at klikke på “Slet”-knappen – sørg blot for, at du fjerner alle Lagerpladser, før du prøver at slette puljen. Du kan faktisk slet ikke se nogen “Slet”-funktion, hvis der er en Lagerplads, som er i brug. Hvis du igen vil have kontrol med dine drev, skal du fjerne alle Lagerpladserne, hvorefter du kan fjerne puljen. Det er den nemme metode, hvis man vil oprette en almindelig Lagerplads fra en lagerpulje via GUI’et.

Men den drager ikke fuld nytte af nogen ssd’er, og den sætter dig ikke i stand til at forøge skrivecachen i forhold til standarden på 1 GB. Her er du nødt til at skifte til PowerShell – i tekstboksen “Gang i et ssd” kan du i detaljer læse, hvordan det fungerer. Vores benchmarks viser, at der sker en dramatisk stigning ved et simpelt array: Ydelsen stiger, og det hjælper afgjort på den sølle ydelse, som Lagerplads-paritetsarrays kan tilbyde.