LVM över SSD och HDD - hur bestämma vilken LV på vilken disk?

Permalänk
Avstängd

LVM över SSD och HDD - hur bestämma vilken LV på vilken disk?

Jag har ett litet problem med att partitionera min systemdisk i samband med installation av Ubuntu 10.04

Jag har tidigare kört min systemdisk på enbart en Intel X25-M 80 GB SSD, inklusive home-partitionen. Min lagring har främst varit på tre 1 TB-diskar, men även i /home förekommer ju rätt mycket skrivningar temporärt.

Nu vill jag organisera om för att minimera skrivningar på SSDn och lägga /home på min äldre systemdisk, en Raptor på 72 GB.

Jag vill ha fulldiskkryptering och vill alltså göra en jbod i LVM mellan SSDn och HDDn. På SSDn ska /boot och /root (/) ligga. På Raptorn vill jag ha /var, swap och /home (jag swappar nästan aldrig, så det gör inget att swap ligger på en HDD).

Att ange en fysiskt utrymme för kryptering på SSDn (för /root) och ett på HDDn för att sedan lägga ihop dessa med en LVM är fullt logiskt, men hur garanterar jag att /root hamnar på SSDn och /home, /var och swap hamnar på HDDn? Visst, jag anger att volymerna ska vara linjära och jag kan skapa dem i rätt ordning, men feedbacken från partitioneraren (alternative CDn) är dålig.

Så, frågan är: Hur gör jag för att säkerställa att rätt volymer hamnar på rätt disk i min volymgrupp?

(Jag skulle kunna ha två volymgrupper, men vill inte göra så eftersom jag då måste ange lösenordet två gånger vid boot - om jag förstått saken rätt.)

Permalänk
Medlem

Blir nog att kika på extents då, vgdisplay, lvdisplay och pvmove för att lösa saken. Har dock inte testat detta själv.

Permalänk
Avstängd

Ja, jag gissar det. Men jag är så att säga inte hemtam med LVM ännu och har lite svårt att orientera mig. Någon som har en utförligare förklaring?

Är det ens vettigt det jag försöker åstadkomma? Jag menar, det jag försöker göra är ju egentligen precis det som LVM är tänkt att abstrahera bort. Å andra sidan har jag ingen annan lösning (jag vill inte mounta /home via skript, då kommer nyckeln finnas på disk. Inget jätteproblem, men ingen god design).

Permalänk
Medlem

Detta kanske är en omständlig lösning, eller så är det bara helt galet, men du kanske kan skapa två volymgrupper (en för respektive disk) och ha dem okrypterade. Sedan lägger du båda i en annan volymgrupp som är krypterad.

Permalänk
Avstängd
Skrivet av Ilja:

Detta kanske är en omständlig lösning, eller så är det bara helt galet, men du kanske kan skapa två volymgrupper (en för respektive disk) och ha dem okrypterade. Sedan lägger du båda i en annan volymgrupp som är krypterad.

Men då måste jag väl skapa nya LVs i den nya volymgruppen och är tillbaka i samma dilemma? Jag hänger inte riktigt med i lösningen, men jag är nyfiken.

Först trodde jag att man skapade VGs först och kryptering sedan, men det ville inte partitioneraren riktigt acceptera (jag kunde inte skapa partitioner/LVs). Jag trodde precis att jag fått kläm på det hela, först fysiska ytor för kryptering, sedan smacka ihop dem med LVM, och sedan logiska volymer. Och så kommer du och ställer till det i min hjärna igen! Jag fick just en anti-aha-upplevelse och begriper mindre än när jag startade tråden!

Permalänk
Medlem
Skrivet av MBY:

Men då måste jag väl skapa nya LVs i den nya volymgruppen och är tillbaka i samma dilemma? Jag hänger inte riktigt med i lösningen, men jag är nyfiken.

Först trodde jag att man skapade VGs först och kryptering sedan, men det ville inte partitioneraren riktigt acceptera (jag kunde inte skapa partitioner/LVs). Jag trodde precis att jag fått kläm på det hela, först fysiska ytor för kryptering, sedan smacka ihop dem med LVM, och sedan logiska volymer. Och så kommer du och ställer till det i min hjärna igen! Jag fick just en anti-aha-upplevelse och begriper mindre än när jag startade tråden!

Måhända är jag bara en dåre som svamlar, men jag tänkte såhär:
* Skapa vg1 med disk1 och vg2 med disk2.
* Skapa de lv du vill ha på respektive disk.
* Skapa de filsystem du vill ha på dina lv.
* Skapa vg3 med alla dina lv.
* Kryptera vg3.
* ???
* Profit!

Permalänk
Avstängd

Aha. Ska testa ikväll eller i helgen med en virtuell maskin först. Återkommer med hur det gick!

Jag antog helt enkelt att man inte kunde göra såhär rekursivt. Men det kanske man kan? Undrar om det blir några prestandaförluster?

Permalänk
Medlem
Skrivet av MBY:

Aha. Ska testa ikväll eller i helgen med en virtuell maskin först. Återkommer med hur det gick!

Jag antog helt enkelt att man inte kunde göra såhär rekursivt. Men det kanske man kan? Undrar om det blir några prestandaförluster?

Jag har faktiskt ingen aning, men det lär du ju upptäcka.

Jag tror f.ö. att motsatsen till aha-upplevelse är nähä-upplevelse.

Permalänk
Avstängd

[OFF TOPIC]
Jag skulle säga att en "nähä-upplevelse" är en subklass av aha-upplevelser, nämligen av typen "aha, det där gick ju inte!". En antiaha-upplevelse är ett återtagande av en aha-upplevelse, alltså något som diskvalificerar en tidigare aha-upplevelse!

Fast det är min högst personliga uppfattning som jag bara baserar på just detta fall!
[/OFF TOPIC]

Återkommer med experimentet...

Permalänk
Avstängd

Nope, det funkade inte. Åtminstone inte i ubuntu/debian installer!
När jag fyllt allt utrymme med vg1 och vg2 och skapat lvroot, lvswap, lvvar och lvhome och försöker skapa en vg3 så är det enda utrymme jag kan välja för vg3 den "nakna" bootpartitionen!

Finns det någon anledning att tro att det fungerar bättre med CLI-kommandon? Jag vet inte om jag ids försöka. Bättre idéer någon?

Edit: ...och väljer jag mina lvs som fysiskt lager för kryptering så får jag ange ett lösenord för varje partition - precis vad jag ville undvika. Till råga på allt så "försvinner" root-partitionen då, varvid installern inte kan fortsätta. Grr!

Nästa försök:
En vg för alla partitioner på båda diskarna på pur chansning. Sedan inspektera färdig installation för att se var respektive lv hamnar rent fysiskt... Återkommer...

Permalänk
Avstängd

Ok, nu har jag ändrat nyckelorden lite när jag googlar och fått en ny approach.

Låt mig omformulera frågeställningen: Hur skapar jag en krypterad LVM på en disk och utökar vgn till en ny?

Första delfrågan är trivial. Andra, visar det sig, har ingen annan lösning än att det blir två lösenord. Så om jag nu inte missat något har jag frågat förgäves och enda alternativen är att antingen ange två (lika eller olika) lösenord vid boot, eller mounta i skript och då behöva lösenordet på disk.

Men, jag kan tänka mig ett sätt att låta lösenordet på disk vara mindre betydelsefullt. Om jag vid boot anger lösenordet till /home (och /var, swap) och låter ett skript där mounta den inte fullt lika säkerhetskritiska root och har olika lösenord så blir systemet ändå hyggligt säkert.

Men, är detta möjligt? Kan linux en boota då?

Permalänk
Skrivet av MBY:

Ok, nu har jag ändrat nyckelorden lite när jag googlar och fått en ny approach.

Låt mig omformulera frågeställningen: Hur skapar jag en krypterad LVM på en disk och utökar vgn till en ny?

Första delfrågan är trivial. Andra, visar det sig, har ingen annan lösning än att det blir två lösenord. Så om jag nu inte missat något har jag frågat förgäves och enda alternativen är att antingen ange två (lika eller olika) lösenord vid boot, eller mounta i skript och då behöva lösenordet på disk.

Men, jag kan tänka mig ett sätt att låta lösenordet på disk vara mindre betydelsefullt. Om jag vid boot anger lösenordet till /home (och /var, swap) och låter ett skript där mounta den inte fullt lika säkerhetskritiska root och har olika lösenord så blir systemet ändå hyggligt säkert.

Men, är detta möjligt? Kan linux en boota då?

Du kan utan att behöva ha lösenordet på disk montera, du kan helt enkelt skapa en initrd och montera i ett skript där du anger lösenordet en gång.

Permalänk
Avstängd
Skrivet av adisbladis:

Du kan utan att behöva ha lösenordet på disk montera, du kan helt enkelt skapa en initrd och montera i ett skript där du anger lösenordet en gång.

Jovisst, det har jag liksom redan konstaterat i TP. Förlåt om jag varit otydlig. Nackdelen med systemet är att lösenordet då finns på disk. Givetvis finns nyckeln i RAM när datorn är igång, men lösenord på disk ger ytterligare en attackvektor. Jag är inte paranoid, jag krypterar bara för att jag anser att man ska kryptera och det lutar åt den lösningen faktiskt.

Men det vore som sagt trevligt om man kunde ange /home-lösenordet vid start och skriptet mountar root. Undrar om det ens fungerar? Jag behöver något i /boot som startar ett skript i /home före allt annat! Kan bli knepigt!

Eller så blir det två-lösenord-vid-boot-lösningen eller så blir det enbart-SSD-och-skit-i-raptorn-lösningen (som förut). Jag är villrådig.

Permalänk
Medlem
Skrivet av MBY:

Jovisst, det har jag liksom redan konstaterat i TP. Förlåt om jag varit otydlig. Nackdelen med systemet är att lösenordet då finns på disk. Givetvis finns nyckeln i RAM när datorn är igång, men lösenord på disk ger ytterligare en attackvektor. Jag är inte paranoid, jag krypterar bara för att jag anser att man ska kryptera och det lutar åt den lösningen faktiskt.

Men det vore som sagt trevligt om man kunde ange /home-lösenordet vid start och skriptet mountar root. Undrar om det ens fungerar? Jag behöver något i /boot som startar ett skript i /home före allt annat! Kan bli knepigt!

Eller så blir det två-lösenord-vid-boot-lösningen eller så blir det enbart-SSD-och-skit-i-raptorn-lösningen (som förut). Jag är villrådig.

Tror du läser adisbladis fel nu. Han menar att du har 2 diskar med lvm (odelade) och ja dessa skulle fråga om lösenord.

Som det ser ut nu så får du när du bootar systemet:
pass1 <- getpasswd
mount pass1 /dev/disk1
pass2 <- getpasswd
mount pass2 /dev/disk2

istället så vill han att du gör:
pass <- getpasswd
mount pass /dev/disk1
mount pass /dev/disk2

Om det är mer läsbart.
Och med denna lösning så sparas aldrig lösenordet på disken.

Permalänk
Avstängd

Aha! Så ofantligt puckat av mig! Det är ju så självklar när du säger det!

Bara ett litet problem. Frågan är inte aktuell längre då jag återgått till samma system som tidigare och installerade Ubuntu 10.04 i natt. Så det enda jag har nu är en fräsch installation. Vilket ändå är ett uppköp eftersom jag tidigare bara har uppgraderat och patchat och min gamla installation började bli lite rörig.

Men nu vet jag hur jag ska göra nästa gång!

Permalänk
Medlem

Det du söker är /lib/cryptsetup/scripts/decrypt_derived . Så behöver du bara ange lösenordet en gång (t.e. vg1) och när en annan volym ska öppnas (t.e. vg2), tar decrypt_derived hand om att ta samma nyckeln.

(Förlåt min dålig svenska..)

Permalänk
Avstängd
Skrivet av Tivalu:

Det du söker är /lib/cryptsetup/scripts/decrypt_derived . Så behöver du bara ange lösenordet en gång (t.e. vg1) och när en annan volym ska öppnas (t.e. vg2), tar decrypt_derived hand om att ta samma nyckeln.

(Förlåt min dålig svenska..)

Aha! Tyvärr är det för sent nu, jag vill inte börja om från början. Men nästa gång så!

En fråga: Innebär detta att nyckeln finns på disk? Det var nämligen det jag ville undvika.

(Inget fel alls med din svenska! Enda felet jag kan se är "förlåt min dålig svenska", det borde stå "dåliga" [för min dåliga] - men det kan ju lika gärna vara ett helt vanligt stavfel. )