Någon med erfarenhet av ZFS? (Hur funkar det egentligen!?)

Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Kategoriregler
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Någon med erfarenhet av ZFS? (Hur funkar det egentligen!?)

Inlägg av Emil.s »

Har läst lite guider och howtos, men får det inte att lira som jag vill...
Har iallafall skapat en "storage pool". Antar att man lär lägga disken i en pool även om det bara är 1 disk?

Hur som hellst så verkar poolen funka:

Kod: Markera allt

root@Sandnabba: /home/emil #> zpool list
NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
zfstest  69.5G   116K  69.5G     0%  1.00x  ONLINE  -
root@Sandnabba: /home/emil #> zpool status
  pool: zfstest
 state: ONLINE
 scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	zfstest     ONLINE       0     0     0
	  sdb2      ONLINE       0     0     0

errors: No known data errors
Testat lite med "zfs set mountpoint", därav sökvägarna nedan:

Kod: Markera allt

root@Sandnabba: /home/emil #> zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
zfstest        116K  68.4G    19K  /zfstest
zfstest/data    19K  68.4G    19K  /mnt/
Men hur kommer jag åt volymen för skrivning?
Home sweet ~/ = http://sandnabba.se
ronnylov
Inlägg: 104
Blev medlem: 29 apr 2008, 10:28
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Någon med erfarenhet av ZFS? (Hur funkar det egentligen!

Inlägg av ronnylov »

Nu kör jag zfs på opensolaris så det kanske inte är exakt samma som i ubuntu.

Först får man väl skapa ett filsystem med zfs create
Det verkar du ha gjort eftersom du har ett som heter zfstest/data som du monterat i mappen /mnt

Så för att skriva till det filsystemet bör du alltså skriva till /mnt
Du kanske även kan komma åt den i /zfstest/data

En pool är som ett gemensamt utrymme som man kan använda för att skapa sina filsystem. Filsystemen använder man sedan att lagra filer på ungefär som vanliga partitioner. Det fina är att man inte dedikerar ett fixt utrymme (man kan det också om man vill) utan allihopa delar på det gemensamma utrymmet. Så skriver man till ett filsystem så blir det mindre ledigt utrymme i alla som är kopplade till samma pool (såvida de inte har ett quota).
joni8135
Inlägg: 142
Blev medlem: 21 jan 2007, 01:51
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Uppsala
Kontakt:

Re: Någon med erfarenhet av ZFS? (Hur funkar det egentligen!

Inlägg av joni8135 »

ronnylov skrev:Nu kör jag zfs på opensolaris så det kanske inte är exakt samma som i ubuntu.

Först får man väl skapa ett filsystem med zfs create
Det verkar du ha gjort eftersom du har ett som heter zfstest/data som du monterat i mappen /mnt

Så för att skriva till det filsystemet bör du alltså skriva till /mnt
Du kanske även kan komma åt den i /zfstest/data
Hej. Kört opensolaris men hade problem med drivrutiner till ett gammalt sata raid kort som inte stöds av openindiana;

Kod: Markera allt

00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
Jag hade en IDE-disk systemdisk, men köpte en SATA-disk, och det var den som inte open-indiana kunde läsa, så därför ändrade jag till Ubuntu igen. Så nu provar jag med zfs-fuse under Ubuntu 10.04 med ppa (0.6.9-7)

Jag skapade en raidz pool med 3 diskar enligt följnde:

sudo zpool create zdiskz raidz /dev/sda /dev/sdb /dev/sdc -m /home/joni/zdiskz

zdiskz är vad jag döpt zpoolen eller 'tanken' till. Alltså skapade inte partitioner med zfs-commando. Min system disk hade tidigare sdd, som namn. zpool create bildade en mapp med rooträttigheter i hemkatalogen och poolen blev så stor den skulle bli. Ville få skrivrättigheter och skapade en mapp i zdiskz som jag kallade musik och ändrade till joni joni från root rooti hem-katalogen. Stötte dock på ett problem som var förödande. poolen var sönder. Rev mitt hår och fattade inte vad som gick fel. Vad jag gjorde, som jag först inte tänkte på var att jag la till ytterligare en SATA-disk i datorn. Det gjorde att /dev/sdx ändrades så mina 3 diskar som var /dev/sda-/dev/sdc blev sdc-sde, men märkte inte det förrän jag förstört zpoolen och skulle skapa en ny zpool och den sa att sda och sdb var upptagna så jag körde block id (blkid):

Kod: Markera allt

:~$ blkid
/dev/sda1: UUID="aa12af7e-def6-4cd6-b84a-005a091f205b" TYPE="swap" 
/dev/sda2: UUID="da4da2ef-85e4-4ae8-929f-e74c56420647" TYPE="ext4" 
/dev/sda3: UUID="7a89f6cb-3af4-424f-ad2f-d715e86d723e" TYPE="ext4" 
/dev/sdb1: LABEL="465GB" UUID="53be19e6-0118-49b5-8a33-62c9b2e69647" TYPE="ext4" 
/dev/sdc: TYPE="zfs" 
/dev/sdd: TYPE="zfs" 
/dev/sde: TYPE="zfs" 
Alltså Ubuntus namngivning av mina zfs-diskar hade ändrats för att jag la till en hårddisk. Nått jag tycker är fantastiskt med openindiana var just att hårddiskarna får namn efter channel, disk och partition t ex (c0d1p1)....dvs fysisk plats i datorn för de de två första (blir kanske ändrat om man t ex lägger till ett pci-kort?).
UUID har ju tillkommit pgr av att diskarnas namn kan ändras om man lägger till eller tar bort diskar, men dessa är unika för partition, inte de fysiska diskarna.men som ni ser så ser inte Ubuntu och blkid ger inget UUID till 'partitionerna' på zfs-diskarna.

Så nu till frågan 1..Du nämnde att man skapar partitioner med zfs först, kan man undvika namn-ändring på något sätt pgr av tillägg av diskar än om man skapar via zpool i zfs-fuse i Ubuntu? Eller finns det andra fördelar? Typ skapa nån label eller något, eller får man köra blkid och kolla om man lägger till tar bort diskar i datorn, eller på något annat sätt kolla så rätt diskar hamnar rätt för zfs-fuse?

Sen är min andra fråga: Är det någon skillnad i ur rättigheter/ägande i Ubuntu/Linux om en disk är monterad i /mnt eller någon annanstans, t ex /home/joni? Ena annan fråga är om 'tanken' i mitt fall zdiskz, är ägd av mig eller root och om man i så fall bättre att ändra ägande på musik. Eller är det bara tradition att montera i /mnt? För linux är väl nästan alltid diskar och partitioner ägda av root, men 'mappar' kan ägas av användarna? När sudo zpool create skapade mappar i /home/joni, så blev dessa ägde/rättigheter till root root, trots att de var i hemkatalogen. Jag ändrade denna mapps rättigheter till mig från root och kunde då spara.

Är kanske lite snurrigt här, men har ju kört Ubuntu, så har glömt mkt av rättigheter och sånt, för allt fungerar ju automagiskt i Ubuntu med det mesta ;)
ronnylov
Inlägg: 104
Blev medlem: 29 apr 2008, 10:28
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Någon med erfarenhet av ZFS? (Hur funkar det egentligen!

Inlägg av ronnylov »

Nu har jag inte kört zfs på ubuntu så jag får reservera mig lite för hur det funkar där. Numera kör jag ZFS på FreeBSD och det funkar väldigt bra. Hårdvarustådet i FreeBSD är aningen bättre än för OpenSolaris men fortfarande sämre än Linux. Men det beror förstås på vilken hårdvara du har.

Rent allmänt så skapar man en pool av lagringsutrymme med zpool create. Man lagrar inte direkt på poolen utan man får skapa zfs filsystem som man lagrar filerna på. Alternativt kan man även skapa zfs volymer som blir ungefär som virtuella hårddiskar som man kan formatera med vilka filsystem man vill, men det är mera överkurs. Man kan se zpool create kommandot som att man skapar en stor hink av outnyttjat lagringsutrymme som man sedan kan pytsa ut som man vill.

1) Du har alltså problem med att lagringspoolen inte hittas eftersom dina diskar får andra beteckningar. Kolla om det går att använda UUID eller liknande istället. Det går att hänvisa till partitioner istället för hela diskar om man vill (och bakom kulisserna så skapar ZFS en solarispartition innehållande en stor slice för datat även om man anger en hel hårddisk som källa). Själv hade jag samma problem i FreeBSD när jag bytte från gamla ata-drivrutinerna till de nya ahci-drivrutinerna eftersom hårddiskarna då fick andra beteckningar. Där kunde man lösa det med att "sätta etiketter" på hårddiskarna genom att namnge dem med glabel. Har för mig man kan sätta labels på partitioner även i Linux på något sätt och refera till. Browsa runt i /dev och kolla vad man kan komma åt. Jag vet egentligen inte hur man bör göra med zfs fuse eftersom jag inte har testat det.

2) Som standard ärvs rättigheterna från mappen du monterar ditt zfs filsystem i. Du kan också ändra rättigheter som du vill. Du kan montera zfs filsystem var du vill (åtminstone funkar det så på FreeBSD och OpenSolaris). Men med fuse kanske det blir mer användaranknutet eftersom det ligger i user space? Du får väl kolla lite i dokumentationen för zfs-fuse.

Jag tror det kanske kan vara lite svårt att greppa "zfs tänket" när man är van med att man formaterar ett filsystem direkt på en hårddisk. ZFS påminner lite om LVM i Linux där man separerar hårddiskarna från lagringen. Säg att du har en lagringspool på 1 TB. Du skapar ett zfs filsystem t.ex. för mappen /home/joni/musik (där filsystemet monteras). Kollar du med zfs list så har du 1 TB lagringsutrymme i det filsystemet. Sedan skapar du kanske ett till för /home/joni/video. Där finns också lika mycket utrymme. Ser ut som man har två stycken 1TB-diskar men egentligen är det gemensamt lagringsutrymme som fylls på allt eftersom man lagrar. Fyller du musikmappen med 100 GB ja då har du 900 GB kvar i din pool och 900 Gb ledigt i alla dina filsystem (såvida du inte satt någon quota). Så det känns mer som man skapar vanliga mappar, men ändå är det separata filsystem, vilket man märker om man flyttar filer mellan dem för då upplevs det som när man kopierar mellan olika hårddiskar (det är då alltså inte bara frågan om någon hårdlänk som pekar om till annan plats).

Lite svårt att förklara men man fattar snart när man testat lite. En bra grej är snapshots. Skapar man en snapshot så blir det en ögonblicksbild av innehållet just nu i det aktuella filsystemet. Denna ögonblicksbild förändras inte när du tar bort och lägger till filer. Ändå tar den knappt något utrymme eftersom det bara är skillnaderna i filsystemen som lagras när man fyller på med data. Man kan skapa hur många snapshots man vill. Men självklart tar dessa snapshots plats, fast det funkar mera som länkar till originaldatat i lagringspoolen. För att frigöra allt trymme i ett zfs filsystem måste man också ta bort alla snapshots man gjort, förutom att ta bort de vanliga filerna. Också lite svårt att greppa innan man testat...

Så man kan alltså inte bara skapa en zpool och tro att man kan lagra direkt i poolen utan att ha skapat några zfs filsystem. Man måste ju ha filsystem att lagra på (annars blir det som en oformaterad hårddisk, den kan man heller inte lagra på). Så se till att skapa åtminstone ett filsystem med zfs create och montera det på lämplig plats där du vill lagra dina filer.
joni8135
Inlägg: 142
Blev medlem: 21 jan 2007, 01:51
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Uppsala
Kontakt:

Re: Någon med erfarenhet av ZFS? (Hur funkar det egentligen!

Inlägg av joni8135 »

Ok. Tack. Känner att jag fick lite förklaring. :)
Skriv svar

Återgå till "Experimentverkstad"