TIDNINGEN. Konsten att partitionera SSD-flash EMBEDDED. Kongeniala rapporter om inbyggda system etn.se/expert. Claus Giebert Kontron

Relevanta dokument
Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Hantering av begränsat antal skrivningar på Solid State diskar

DIG IN TO Dator och nätverksteknik

4 grundregler. Minneshantering. Problemet. Windows minkrav

Spårbarhet i digitala system. Biografi. Spårbarhet. Osynlig övervakning och de spår vi lämnar efter oss

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Diskprestanda Tester

Att använda DVD-RAM-skivor

DIG IN TO Administration av nätverk- och serverutrustning

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

HANDBOK MOBILE HARD DRIVES DESKTOP HARD DRIVES. Rev. 024

Minnen. Informationsteknologi sommarkurs 5p, Agenda. Slideset 4

Digital- och datorteknik

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Mer datorarkitektur. En titt I datorn Minnen

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

HANDBOK MOBILE HARD DRIVES DESKTOP HARD DRIVES. Rev. 034/Mac

Linuxadministration I 1DV417 - Laboration 3 Installation av ny hårddisk, RAID och logisk volymhantering

Rekommenderad felsökning av dator innan service

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Digital- och datorteknik

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Anujan Balasingam IDA14 NAND flashminnen

HANDBOK. HARD DRIVE DOCK QUATTRO EXTERNAL DOCKING STATION / 2.5" & 3.5" SATA / USB 2.0 / FIREWIRE 800 & 400 / esata. Rev. 006

H2O kundservice. Effektiv och säker.

Administration / Disk Management. EC Utbildning AB

HANDBOK MOBILE DRIVE XXS EXTERNAL MOBILE HARD DRIVE / 2.5" / USB 2.0. Rev. 907

DIG IN TO Dator och nätverksteknik

Atlas Copco. Oljetätade vakuumpumpar med roterande ledskena GV , m 3 /h, kubikfot/min

Tech Data Recycling Center

Operativsystem - Filsystem

USB 3.0 fristående raderings-dockningsstation för 2,5" & 3,5" SATA-enheter. StarTech ID: SDOCK1EU3P

Digital elektronik och inbyggda system

Lumia med Windows Phone

En dummy för FreeNAS Thomas Schrimp Mattsson

TOSHIBA LANSERAR NÄSTA GENERATION FÖRETAGSHÅRDDISKAR MED 4 TB


HANDBOK HARD DRIVE DOCK PRO EXTERNAL DOCKING STATION / 2.5" & 3.5" SATA & PATA / USB 2.0. Rev. 933

Systemkrav WinServ II Edition Release 2 (R2)

Grundkurs 1 IKT Filhantering

Minnessystem. Minneshierarki. Flyktigt eller icke flyktigt huvudsakliga egenskaper. Minneshierarki

Ätstörningar. Att vilja bli nöjd

Fristående 1:5 duplikator och raderare för USBminnen - Kopiator för USB-minnen

Bruksanvisning Milestone 311 Daisy

Prestandajämförelse - Sekventiell skrivhastighet i RAID 4 och RAID 5

Internethistoria - Situation

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Övning Installation av Gentoo och/eller Arch Linux

Vad är ett dokument? Gör så här

DDR PC SOFTWARE 2 RELEASENOTES VERSION 2.5. Swerob Service AB Global Robot Parts AB

Användarmanual För skatteverket

Säkerhetskopiering och återställning Användarhandbok

D3 Station ANVÄNDARHANDBOK. Extern hårddisk

Med OmniSound ut i världen

Vi sänker kostnaderna för högt tryck i er verksamhet!

SkeKraft Bredband Installationsguide

Introduktion till hårdvara, mjukvara och operativsystem

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Installation av operativsystemet

Säkerhetskopiering och återställning av asynkrona system

EasyLog 5.7 release noteringar. April 28, Version 1.0 Swedish

Externa mediekort. Dokumentartikelnummer: I den här handboken beskrivs hur du använder externa mediekort. Maj 2006

Övningsuppgifter med E-postklienten MS live Inloggning

Integritets- och cookiepolicy

2,5" till 3,5" SATA-hårddisk-adapterkabinett med RAID och dubbla fack

Vilka är Ibas Kroll Ontrack? Räddning av brända hårddiskar Oförutsedda utgifter Norrmän i rymddräkt

Din leverantör av hissautomater, pallställ, grenställ och utdragsenheter.

XS4 2.0 RE-VOLUTION XS4 MINI. LIMITED EDITION PRINT

komplett kopia av hårddisken 20 minu En instabil dator som ofta drabbas av fel får du snabbt på rätt kurs med en kopia av Windows och alla program.

22 Användarnas hemmamappar

HANDBOK TOUGH DRIVE SPORT EXTERNAL MOBILE HARD DRIVE / 2.5" / USB 2.0. Rev. 901

Kvinnor och män i statistiken 11

Toshiba och Intel Centrino Duo mobile teknologi för professionella användare

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Användarmanual Elevdator

Portable Series ANVÄNDARHANDBOK. S2 Portable 3.0. M3 Portable. S2 Portable. Extern hårddisk

Föreläsning 3.1: Datastrukturer, en översikt

Teoretiska överväganden kring långsiktig lagring av elektronisk information

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Säkerhetskopiering och återställning Användarhandbok

Lathund Blanketthotell Komma igång

IT-Policy för Tanums kommun. ver 1.0. Antagen av Kommunfullmäktige

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Så sparas ström i dagens åttabitare

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Föreläsning 2. Operativsystem och programmering

Användarmanual Elevdator

Säkerhetsinställningar, websolen. Innehåll

ZFS. Linuxadministration I 1DV417. Wednesday, January 23, 13

Anmärkningar till formuläret för överklagande

Tips och tricks. Några bra tips. Lägg till sökvägar

Android. Ett alternativ till traditionella Windows-datorer

Nya FLEX Giraffen. Helt klart den bästa.

Kapitel 5. Tie-breaker-argumentet fungerar dock endast i fall där likvärdiga anspråk står mot varandra.

Föreläsning 1: Intro till kursen och programmering

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Tentamen, Distribuerade System/Programvaruarkitektur

Transkript:

ELEKTRONIK TIDNINGEN Konsten att partitionera SSD-flash Claus Giebert Kontron Flashminnesbaserade SSD-enheter kan bara partitioneras logiskt, inte fysiskt. Här får du veta vilka problem detta medför, och hur de kan lösas. Redaktör Jan Tångring jan@etn.se 0734-17 13 09 EMBEDDED E X P E R T 18 februari 2013 Kontron och Elektroniktidningen Kongeniala rapporter om inbyggda system etn.se/expert

Konsten att partitionera SSD-flash Eftersom filsystemet hos flashbaserade SSD-enheter inte ger någon information om tilldelningen från logiska sektorer till fysiska sektorer kan operativsystemet inte tillhandahålla mekanismer som garanterar säker användning av en ensam SSD-enhet. Men det finns sätt att komma förbi problemet. Claus Giebert, Kontron Claus Giebert är produktchef för inbyggnadsdatorkort på Kontron i Eching, Tyskland. Efter examen vid Erlangen/Nürnbergs tekniska universitet, där hans specialitet var medicinsk teknik, kom han 1996 till Kontron Group (dåvarande Boards AG), där han först arbetade med utveckling av CPU-moduler. Efter att Kontron Elektronik GmbH (nu Kontron AG) tagit över ledde han i över tre år ett utvecklingsteam inriktat på kundanpassade CPU-moduler. År 2002 blev han produktchef för slot CPU -produkter. Idag är han också produktchef i EMEA för M2M-produktfamiljen. Flashminnesbaserade SSDenheter (Solid State Drive) blir allt vanligare i inbyggnadstillämpningar som kräver kompakt utförande. De är platsbesparande och robusta, och de utlovar en livstid så lång som en till fem miljoner möjliga skrivcykler för industrikompatibla flashceller. Detta låter ju bra, kan man tycka. Men när det gäller att uppnå hög tillgänglighet, säkerhet och lång livslängd måste man komma ihåg åtminstone idag att SSD:er bara kan partitioneras logiskt, och inte fysiskt. Och detta har sina konsekvenser. Under ett antal diskussioner med kunder på sistone, särskilt när det handlat om kompakta system som kräver hög tillgänglighet som M2M-tillämpningar har vi i allt högre grad mött uppfattningen att tillförlitlighetsproblem med flashminnen är relativa sällsynta. Artiklar om SSD-enheter och deras användning [1] föreslår att partitionering är den rätta metoden för att undvika förslitning orsakad av ett stort antal skrivoperationer. Vid en första anblick tycks detta också vara en rätt logisk och väl fungerande lösning, eftersom man kan lagra viktiga operativsystemsdata och tillämpningar på en partition och olika swap- och tilllämpningsdata på en annan. Om sektorer i den senare partitionen som ofta får hantera skrivoperationer skulle råka sluta fungera är systemet ändå fortfarande tillgängligt, om än med vissa restriktioner. Det är åtminstone så som teorin säger att det skall fungera. Tyvärr förbiser man nästan alltid samma effekter i verkligheten. Ett system utan en fungerande swap-partition kommer till exempel sällan att starta utan olika aktiviteter från användarens sida. Så det är inte speciellt meningsfullt att skriva swap-data till en egen partition. Detta är dock det minst viktiga problemet. Viktigare är översättningen av logiska adresser till fysiska adresser, och detta är inte någon enkel uppgift när det handlar om flashbaserade SSD-enheter. Varje sektor på en konventionell hårddisk motsvarar ett exakt definierat område på ytan av det magnetiska 2 ELEKTRONIKTIDNINGEN 18 februari 2013 Kontron och Elektroniktidningen

Figur 1 En partition på en hårddisk upptar en exakt definierad area på ytan av det magnetiska mediet. Detta gäller tyvärr ännu inte SSD-enheter. minnet. Därför finns det en säker rumslig separation, vilket man omedvetet förutsätter gälla även för flashbaserade SSD-enheter. Men i verkligheten ser det annorlunda ut. Åtgärder som Wear-Leveling (förslitningsutjämning) som används för att öka SSD-enhetens livslängd, liksom att fördela skrivcykler över flera flashkanaler för att förbättra skrivegenskaperna, undergräver sådana antaganden. Det är fortfarande viktigt att inse det praktiska värdet av att sprida riskerna för att möjliggöra dataåtervinning [3]. Speciellt kommer vi att se närmare på vilken effekt Wear-Leveling har. Wear-leveling har beskrivits på många ställen [2]. För att förstå metoden bättre måste vi se på vilka åtgärder som används för att förbättra livslängden. Här följer en mycket enkel algoritm för Wear- Leveling, baserad på antagandet att radering medför åldrande, men läsning inte gör det: En cell raderas bara om ingen annan cell redan raderats De sektorer som har raderats minst ofta får raderas Skrivoperationer fördelas jämnt mellan sektorerna En sådan algoritm måste också ta hänsyn till geometrin och storleken hos filen, men detta kommer vi inte att se närmare på här, så vi förutsätter i fortsättningen att filerna har en hanterbar storlek. Figur 2 Uppdelningen av en SSD i sektorer och sidor med angivande av Wear-Level. Utgångsläge Figur 3 Vid ändring av befintliga data och insamling av nya data flyttas de fysiska positionerna för de logiska sektorerna vad gäller såväl de fysiska sektorerna som de fysiska sidorna. Planerat resultat Figur 5 Om spänningen bortfaller och Wear- Leveling-algoritmen säger att hela sidan 1 måste raderas och data återskrivas, då kan under ett visst tidsfönster allt innehåll på sidan gå förlorat trots alla säkerhetsmekanismer. Figur 4 Om en sida bortfaller kan detta medföra förlust av data även på den skrivskyddade partitionen för operativsystemet. Skrivskyddet är i detta fall verkningslöst. 3 ELEKTRONIKTIDNINGEN 18 februari 2013 Kontron och Elektroniktidningen

Det är redan uppenbart att om man skriver med Wear-Leveling, men utan fysisk partitionering, är det stor risk att det uppstår problem. Låt oss se närmare på de olika effekter som uppstår. För det första måste vi ta hänsyn till strukturen hos en SSD (figur 2). Låt oss anta att den är uppdelad i åtta sidor (0 7), var och en med lagringsutrymme för fyra sektorer (0 3). För varje sida finns en separat räknare som registrerar hur ofta den redan raderats (till exempel betyder Wear-Level 3 att sidan skrivits tre gånger). De sektorer som markerats med blått innehåller data som skrivits av användaren, medan de grönmarkerade inte tycks ha skrivits alls. Talen i sektorerna representerar de logiska sektorerna. Om data har skrivits, med sektorn inte innehåller några färska data, kommer den att identifieras med xx. I detta exempel ska vi se närmare på de sidor som markerats med grått. Låt oss anta att partition 1 motsvarar de logiska sektorerna 1 8, och att swapoch tillämpningsdata lagras i de logiska sektorerna 9 till slutet. I praktiken skulle en sådan konfiguration kunna produceras genom att man exempelvis registrerar en avbildning av en ny enhet. Mycket förenklat liknar detta proceduren vid produktion av serieenheter. Låt oss se på hur en serieenhet arbetar på fältet. På fältet samlas processdata in och lagras, och sektorer i filsystemet modifieras i enlighet med detta. Den inverkan som filsystemet ger kan negligeras, för den gör bara situationen värre. Anta att data modifieras, först i sektor 10 och sedan i sektor 22 (figur 3). För detta behövs två nya sektorer. Datavolymen växer konstant. Redan här, utan optimal Wear-Leveling (se Wear-Level 5 mot Wear-Level 3), är tilldelningen från logiska till fysiska sektorer inte på något vis en enkel uppgift. Efter bara fyra skrivoperationer har positionen i relation till såväl sidorna som sektorerna ändrats. Så vad händer om det antingen blir fel på en sida, eller mindre dramatiskt mer troligt man får ett spänningsbortfall? Scenario 1: Fel på en sida Här förutsätter vi att det blir fel på en hel flashsida. Detta skulle naturligtvis hända vid en mycket hög Wear-Level. Men sektorernas Wear-Level ökar snabbt vid konstant skrivning, och sannolikheten för fel ökar därför också. Figur 4 visar att detta påverkar sektorerna 1, 9, 17 och 23. Det framgår att sektorerna såväl i den skrivskyddade partitionen för operativsystemet som i partitionen för swap- och tillämpningsdata påverkas. Så skrivskyddet av partitionen visar sig vara ineffektivt. Det medför att filsystemet inte vet vilka sektorer som finns i en viss sida, så det går inte att vidta några säkerhetsåtgärder. Scenario 2: Spänningsbortfall under skrivning Efter ett spänningsbortfall kan en hel del räddas tack vare den interna algoritm och det filsystem som används. Men det finns alltid ett specifikt tidsfönster under skrivprocessen då den nya statusen inte kan registreras. Figur 5 visar detta: Data i sektor 26 skall modifieras, och sida 1 kommer att användas eftersom den har lägst Wear- Level. Vi antar att SSD-enheten är full det vill säga att inga logiska sektorer har kvar sitt ursprungliga tillstånd FF (vilket dock inte betyder att minnet är fullt). Enligt den ovan beskrivna Wear- Level-algoritmen måste därför hela sida 1 raderas och därefter data återskrivas. Om spänningen skulle falla bort under detta steg kommer alla data på denna sida att hamna i ett odefinierat tillstånd. Med hjälp av interna skyddsmekanismer och bättre implementering än i detta exempel kan detta tidsfönster krympas avsevärt. Men det finns fortfarande kvar i alla hittills kända implementeringar. I vårt exempel är det sektorerna 1, 26, 9, 17 och 23 som påverkas. Om vi jämför detta med den ursprungliga partitio- Figur 6 Om det finns tillräckligt med utrymme kan användaren välja vanliga hårddiskar, som här i en Kontron KISS-server med fordonsspecificerade diskar i en RAID-konfiguration för digital passagerarinformation på tåg. Jämfört med idag tillgängliga, flashbaserade SSD-enheter ger detta fördelarna av tydlig fysisk partitionering, plus större lagringskapacitet till lägre kostnad. 4 ELEKTRONIKTIDNINGEN 18 februari 2013 Kontron och Elektroniktidningen

Figur 7 Helt enligt SFF-trenden: Denna box-pc ur Kontrons CB-serie (i detta fall CB 511) erbjuder både en SSD och interna eller externa kortplatser för CompactFlash-kort (här externa). Så de kan lagra operativsystemdata mycket säkert och under lång tid, eftersom dessa data endast skrivs om vid förändring av konfigurationen. Om SSD-enheten för swap- och tillämpningsdata skulle fallera p.g.a. sidfel eller spänningsbortfall kan systemen som regel boota om utan någon aktion från användaren. Källor: [1]: http://en.wikipedia.org/wiki/solid-state_drive [2]: http://en.wikipedia.org/wiki/wear_leveling [3]: c t: Heise, nr 22/2011, sid. 150 151 neringen med operativsystemsdata i sektorerna 1-8, ser vi att såväl sektorer i den skrivskyddade operativsystemspartitionen som swap- och tillämpningsdata påverkats. Så skrivskyddet har varit verkningslöst också här. Filsystemet vet alltså inte vilka sektorer som finns på sidan, och därför går det inte att utforma någon fungerande säkerhetsfunktion. Så länge som filsystemet hos flashbaserade SSD-enheter inte ger någon information om tilldelningen från logiska sektorer till fysiska sektorer, har operativsystemet inga möjligheter att tillhandahålla några mekanismer som garanterar säker användning av en ensam SSD-enhet. De många fördelar som ett icke-roterande minne med mycket korta accesstider ger kan naturligtvis inte förnekas. Och det finns sätt att komma förbi problemen, även om man måste räkna med ökade arbetsinsatser och kostnader. Lösning 1: Använd två separata enheter Detta är naturligtvis den enkla vägen, och man slipper ytterligare problem. Men den ökar kostnaderna och utrymmesbehoven för den totala lösningen. Figur 8 Kontron M2M Smart Services Development Kit är en kompakt plattform med hög tillgänglighet avsedd för utveckling av M2M-tillämpningar. Den integrerar ett 4 Gigabyte MicroSD-kort för M2M smart-servicetillämpningar, middleware samt ett operativsystem. Integration av ytterligare en minnelösning rekommenderas för tillämpningar som regelbundet behöver lagra stora mängder information. Dessutom kan en andra enhet inte alltid läggas till i efterhand. Lösning 2: Använd speciella enheter som kan ge en fixerad uppdelning av sidorna Nya typer av flashbaserade SSD-enheter är på gång: dels sådana som kan betraktas som två separata enheter, och dels sådana där man kan frysa tilldelningen av sektorer och sidor. Innan dessa nya enheter finns tillgängliga och har testats tillräckligt är det inte tillrådligt att använda lösningar baserade på en enda SSD-enhet. Istället är det lämpligt att antingen använda vanliga hårddiskar eller att fördela sina uppgifter över två separata lagringsmedia. Därför erbjuder Kontron möjligheten att använda två självständiga SSD-minnen i sina panel-pc och box-pc. Förutom en flash-ssd för operativsystemet kan man antingen använda ett ickeflyktigt RAM-minne eller en andra flashdisk. Detta enkla exempel visar att svårigheterna vid utveckling av inbyggda system ofta uppstår på detaljnivå, och att sådant som tycks vara innovativa teknologier inte alltid leder till bättre totallösningar. Så nya komponenter skall väljas med omsorg. Om man är tveksam skall man anlita konstruktörer med stor erfarenhet av inbyggnadshårdvara för planering och utvärdering av sina plattformar. Man bör tänka på problemet redan i början av ett projekt för att undvika otrevliga överraskningar senare på fältet. Att behöva sätta in åtgärder senare skapar nästan alltid stora problem, eftersom både hårdvara och mjukvara kan påverkas. 5 ELEKTRONIKTIDNINGEN 18 februari 2013 Kontron och Elektroniktidningen