NAS med ZFS
NAS med ZFS
Jag har en filserver hemma som jag håller på att uppdatera & uppgradera. När jag började såg den ut så här:
* Virtuell installation av OpenMediaVault (omv-0.5.48, en riktigt gammal version) - systemet på en 4 GiB virtuell disk backad av en SSD och datadisk i form av en 3 TB WD Red.
* Hårdvaran under är ett Supermicro A1SAi-2550F (4 core Atom C2000) med 16 GiB ECC-RAM.
* Virtualisering med libvirt (KVM+Qemu).
Jag behöver egentligen inte mer plats just nu men däremot var det hög tid för uppdatering av mjukvaran, och så kändes det olustigt att inte ha någon form av redundans. Allt viktigt bör i och för sig finnas på offline-backup, men det vore ändå besvärligt att bli av med rippade filmer med mera. Bland annan efter att ha läst xxargs inlägg här så blev jag intresserad av ZFS och Btrfs - både möjligheten till redundans och skydd mot "bitröta" känns som bra grejer!
Efter att ha läst på lite valde jag ZFS. Även om Btrfs funkar bra för många så verkar det också vara en hel del som plötsligt får problem på olika sätt. ZFS verkar mer beprövat. Nackdelen med ZFS är att det inte finns i Linuxkärnan utan man måste installera det separat, vilket gör framtida stöd osäkert (och gör installationen krångligare). Men hellre det än ett filsystem som plötsligt inte funkar. Så jag patchade kärnan för ZFS och har lekt runt lite med "pooler" skapade från lokala filer för att testa hur det funkar.
Häromdan köpte jag också en ny disk, en Seagate ST6000DM003. Det är en disk på 6 TB. Jag valde den på grund av lågt pris per TB och - kanske viktigare - lågt ljud och låg effekt, och på grund av att den var tillgänglig i butik (just hårddiskar vill jag inte att posten ska slänga omkring). Lustigt nog blev det mycket billigare att köpa en extern lagringsenhet - STEL6000200 (1539:-) - och plocka ur disken, än att köpa disken löst (1990:-). Priserna är de billigaste som finns tillgängliga i butik i närheten av mig. Tyvärr gick det inte att plocka ur disken utan att delvis förstöra kabinettet - det var typ kassaskåpssäkert!
Denna disk ger mig redundans genom spegling samt 3 TB i reserv inför framtiden.
Ett problem med C2000-chipsetet är att det inte stödjer VT-d - det går alltså inte att "skicka vidare" SATA-kontrollern till en virtuell maskin. Hittills har jag löst det genom att skicka med den råa diskenheten som en virtuell disk till OpenMediaVault. ZFS trivs dock inte med virtuella enheter - direkt åtkomst till SATA-kontrollern rekommenderas starkt, som jag har förstått det bland annat för att säkerställa att data verkligen skrivs till disk (och inte fastnar i cache), för att hantera diskfel, och för att kolla SMART-data. Så jag kör ZFS på hosten och tanken har varit att skapa en zvol (en "ZFS-diskenhet" ovanpå ZFS-poolen) och skicka med den till OpenMediaVault, som då får skapa sitt egna filsystem (ext4?) ovanpå. Men nu har jag börjat fundera på om det inte vore smidigare att helt enkelt installera samba (cifs-server) direkt på hosten istället. Vi får se hur det blir, måste fundera lite.
* Virtuell installation av OpenMediaVault (omv-0.5.48, en riktigt gammal version) - systemet på en 4 GiB virtuell disk backad av en SSD och datadisk i form av en 3 TB WD Red.
* Hårdvaran under är ett Supermicro A1SAi-2550F (4 core Atom C2000) med 16 GiB ECC-RAM.
* Virtualisering med libvirt (KVM+Qemu).
Jag behöver egentligen inte mer plats just nu men däremot var det hög tid för uppdatering av mjukvaran, och så kändes det olustigt att inte ha någon form av redundans. Allt viktigt bör i och för sig finnas på offline-backup, men det vore ändå besvärligt att bli av med rippade filmer med mera. Bland annan efter att ha läst xxargs inlägg här så blev jag intresserad av ZFS och Btrfs - både möjligheten till redundans och skydd mot "bitröta" känns som bra grejer!
Efter att ha läst på lite valde jag ZFS. Även om Btrfs funkar bra för många så verkar det också vara en hel del som plötsligt får problem på olika sätt. ZFS verkar mer beprövat. Nackdelen med ZFS är att det inte finns i Linuxkärnan utan man måste installera det separat, vilket gör framtida stöd osäkert (och gör installationen krångligare). Men hellre det än ett filsystem som plötsligt inte funkar. Så jag patchade kärnan för ZFS och har lekt runt lite med "pooler" skapade från lokala filer för att testa hur det funkar.
Häromdan köpte jag också en ny disk, en Seagate ST6000DM003. Det är en disk på 6 TB. Jag valde den på grund av lågt pris per TB och - kanske viktigare - lågt ljud och låg effekt, och på grund av att den var tillgänglig i butik (just hårddiskar vill jag inte att posten ska slänga omkring). Lustigt nog blev det mycket billigare att köpa en extern lagringsenhet - STEL6000200 (1539:-) - och plocka ur disken, än att köpa disken löst (1990:-). Priserna är de billigaste som finns tillgängliga i butik i närheten av mig. Tyvärr gick det inte att plocka ur disken utan att delvis förstöra kabinettet - det var typ kassaskåpssäkert!
Denna disk ger mig redundans genom spegling samt 3 TB i reserv inför framtiden.
Ett problem med C2000-chipsetet är att det inte stödjer VT-d - det går alltså inte att "skicka vidare" SATA-kontrollern till en virtuell maskin. Hittills har jag löst det genom att skicka med den råa diskenheten som en virtuell disk till OpenMediaVault. ZFS trivs dock inte med virtuella enheter - direkt åtkomst till SATA-kontrollern rekommenderas starkt, som jag har förstått det bland annat för att säkerställa att data verkligen skrivs till disk (och inte fastnar i cache), för att hantera diskfel, och för att kolla SMART-data. Så jag kör ZFS på hosten och tanken har varit att skapa en zvol (en "ZFS-diskenhet" ovanpå ZFS-poolen) och skicka med den till OpenMediaVault, som då får skapa sitt egna filsystem (ext4?) ovanpå. Men nu har jag börjat fundera på om det inte vore smidigare att helt enkelt installera samba (cifs-server) direkt på hosten istället. Vi får se hur det blir, måste fundera lite.
Re: NAS med ZFS
En kul grej som jag upptäckte är att det går att skicka mail med curl! Jag använder detta för att få statusmeddelanden från ZFS:
Scriptet anropas med ärenderaden som parameter och förväntar sig mailtexten via stdin.
Kod: Markera allt
#!/bin/bash
headers="From: <avsändaren-som-ska-synas-i-mailet>
To: <din-mottagaradress>
Subject: $1
Date: $(date --rfc-email)"
body="$(cat -)"
echo "$headers
$body
" | curl smtp://smtp.din-mailserver.org:587 --ssl-reqd --mail-from "<din-mailkontoadress>" --mail-rcpt "<din-mailkontoadress>" --upload-file - --user <anv-namn>:<lösen> --connect-timeout 60 --max-time 120
Re: NAS med ZFS
Vilken linuxdist kör du?man måste installera det separat, vilket gör framtida stöd osäkert (och gör installationen krångligare). Men hellre det än ett filsystem som plötsligt inte funkar.
Om du använder debian så behöver du bara skriva "apt-get install zfs" för att det ska fungera och det är 100% garanterat att det inte plötsligt kommer sluta fungera.
Debian släpper aldrig en uppdatering som inte är ordentligt testad av tusentals testare.
För enkelhetens skull rekommenderas att man installerar på en liten root-partition med ext4 och använder zfs för lagringen sedan (det går bra att dela upp ifall man inte har separata systemdiskar).
Re: NAS med ZFS
Jag kör Gentoo och en modullös kärna (enligt rekommendationerna från Kernel Self Protection Project). Gentoo har instruktioner för detta även om det behövdes lite handpåläggning för att få det att funka utan kernelmoduler aktiverat.
Precis som du säger så kör jag rooten som ext4 (på en SSD). Endast lagringen blir på ZFS.
Precis som du säger så kör jag rooten som ext4 (på en SSD). Endast lagringen blir på ZFS.
Re: NAS med ZFS
Är det någon som vet hur man monterar en partition skapad på en virtuell disk på hosten?
Så här ser konfigurationen för disken ut i libvirt (/etc/libvirt/qemu/omv.xml):
'blkid' på hosten säger:
/etc/fstab på OpenMediaVault:
'blkid' på OpenMediaVault:
Om jag fattar det rätt så har jag alltså skapat en partition på disken som jag sedan skickar med som en virtuell disk till OpenMediaVault. (Jag hade för mig att jag skickade med själva disken rå, men tydligen inte...?) Det borde alltså vara så att /dev/disk/by-partuuid/b1289fda-19be-4791-86ae-9a91b3c4552e1 innehåller en partitionstabell som i sin tur innehåller en partition med ett ext4-filsystem på. Hur monterar jag detta på hosten?
Så här ser konfigurationen för disken ut i libvirt (/etc/libvirt/qemu/omv.xml):
Kod: Markera allt
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/disk/by-partuuid/b1289fda-19be-4791-86ae-9a91b3c4552e'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
Kod: Markera allt
/dev/sda1: PTUUID="44b45295-b848-4c12-9d6c-4f44e460e62e" PTTYPE="gpt" PARTLABEL="storage1" PARTUUID="b1289fda-19be-4791-86ae-9a91b3c4552e"
Kod: Markera allt
UUID=e8bc6d21-24da-4f82-a83b-a8b95c0dbb25 /media/e8bc6d21-24da-4f82-a83b-a8b95c0dbb25 ext4 defaults,nofail,acl,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 2
Kod: Markera allt
/dev/vdb1: LABEL="storagefs1" UUID="e8bc6d21-24da-4f82-a83b-a8b95c0dbb25" TYPE="ext4"
Re: NAS med ZFS
Ha, jag kom på det!
# mount -o loop,offset=1048576 /dev/disk/by-partuuid/b1289fda-19be-4791-86ae-9a91b3c4552e /media/tmp
Offseten 1048576 = 2048*512 fick jag från:
Alltid bra att skriva ett foruminlägg för att få ordning på saker och ting.
# mount -o loop,offset=1048576 /dev/disk/by-partuuid/b1289fda-19be-4791-86ae-9a91b3c4552e /media/tmp
Offseten 1048576 = 2048*512 fick jag från:
Kod: Markera allt
#fdisk -l /dev/disk/by-partuuid/b1289fda-19be-4791-86ae-9a91b3c4552e
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 44B45295-B848-4C12-9D6C-4F44E460E62E
Device Start End Sectors Size Type
/dev/disk/by-partuuid/b1289fda-19be-4791-86ae-9a91b3c4552e1 2048 5860531053 5860529006 2,7T Linux files
Re: NAS med ZFS
Bra för oss andra också senare
Det jag skulle behöva är en liten crash course på är hur man kopplar och bryggar IP-adresser etc. om man tex. kör en FreeNAS i en VM (i KVM) och ändå har anständig datasäkerhet sedan.
har förvisso ett flertal nätverksportar tillgänglig på servern (med Ubuntu 18.04 headless -administreras via SSH enkom) som skulle kunna upplåtas enkom för tänkta VM-maskiner.
...men, känns lite att jag inte greppat konceptet sas.
i grafiska miljöer som oracel och VMware så är det inte så svårt - men att få till det i CLI-miljö verka vara värre än att sätta upp en headless-server från grunden med utdelade volymer etc.
Det jag skulle behöva är en liten crash course på är hur man kopplar och bryggar IP-adresser etc. om man tex. kör en FreeNAS i en VM (i KVM) och ändå har anständig datasäkerhet sedan.
har förvisso ett flertal nätverksportar tillgänglig på servern (med Ubuntu 18.04 headless -administreras via SSH enkom) som skulle kunna upplåtas enkom för tänkta VM-maskiner.
...men, känns lite att jag inte greppat konceptet sas.
i grafiska miljöer som oracel och VMware så är det inte så svårt - men att få till det i CLI-miljö verka vara värre än att sätta upp en headless-server från grunden med utdelade volymer etc.
Re: NAS med ZFS
På min NAS kör jag freeNAS på en USB-sticka tillsammans med 4st 4TB-diskar i RAID som en stor ZFS-disk.
Enda problemet jag har haft var när USB-stickan blev trött och havererade, efter ett nervöst ögonblick kunde jag mounta ZFS-disken efter nyinstallationen
/// Marcus
Enda problemet jag har haft var när USB-stickan blev trött och havererade, efter ett nervöst ögonblick kunde jag mounta ZFS-disken efter nyinstallationen
/// Marcus
Re: NAS med ZFS
Nu var det rätt många år sedan jag kollade på detta, men jag har för mig att det är en djungel av olika sätt att lösa det hela. Jag löste det till slut genom att skapa en brygga med brctl (fast bridge-utils är visst deprecated nu så använd iproute2 istället) och dela ut denna via virtio. Jag har för mig att qemu sedan skapar ett virtuellt interface för varje maskin som startas och kopplar dem till bryggan:xxargs skrev:Det jag skulle behöva är en liten crash course på är hur man kopplar och bryggar IP-adresser etc...
Kod: Markera allt
<interface type='bridge'>
<mac address='<censored>'/>
<source bridge='br_lan'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Har man Intel VT-d eller AMD-Vi så kan man "koppla bort" det fysiska interfacet helt från hosten och låta gästen få hantera det istället. Edit: Givet att man har ett fysiskt nätverksinterface över på hosten då såklart.
Sen finns det en massa andra mysko lösningar också har jag för mig, mer eller mindre special för respektive virtualiseringsmjukvara.
Re: NAS med ZFS
Mitt moderkort har fyra nätverksinterface (enp0s20f0 - enp0s20f3). Bryggorna ser ut så här:
Det vill säga port0-port2 är bryggade (jag använder dem istället för en switch i serverrummet). Port3/br_wan hade jag för WAN-anslutning förut när jag körde psSense virtualiserat på denna maskin.
Kod: Markera allt
# brctl show
bridge name bridge id STP enabled interfaces
br_lan 8000.002590f2ce5e no enp0s20f0
enp0s20f1
enp0s20f2
br_wan 8000.002590f2ce61 no enp0s20f3
-
- Inlägg: 455
- Blev medlem: 29 april 2016, 21:44:12
Re: NAS med ZFS
Min son kör FreeBSD med ZFS på servernivå och är imponerad Det är nog ett filsystem som kommer att finnas kvar och utvecklas. Körde själv ZFS på OpenSolaris för några år sedan när jag hade mitt OS självskadebeteende och försökte ”gå över” från Windows till Linux, Open Solaris m.fl. OS. Hade gärna fortsatt med OpenSolaris för det var stabilt och kraftfullt. Dock så fanns inte mycket program till det. Sedan kom ju Ipad som jag var skeptisk till först, men nu är det det enda jag använder i stort sett. Mycket pga att det finns så mycket musikappar till den, och det är det jag kör mest nästan. Men det finns ju en gemensam nämnare och det är ju UNIX som ju IOS är baserat på. Vilken version vet jag dock inte. Tillbaks till ämnet ZFS är ett fantastiskt bra filsystem som är här för att stanna skulle jag tro!
Re: NAS med ZFS
Jag har bestämt mig för att skippa OpenMediaVault och köra samba direkt på servern istället. Det verkar funka bra.
Det är ju flera här som kör ZFS (och Btrfs); hur ofta har ni stött på bitröta (alltså checksummefel)? Under hur lång tid och med hur mycket data?
Det är ju flera här som kör ZFS (och Btrfs); hur ofta har ni stött på bitröta (alltså checksummefel)? Under hur lång tid och med hur mycket data?
Re: NAS med ZFS
Jag körde igång min NAS med freeNAS och 4st 4TB diskar 2015-08 och det enda problemet jag har råkat ut för är att USB-minnet med freeNAS på havererat en gång.
Kan även tillägga att den alltid varit kopplad till en UPS. Nu för tiden är det min pfsense-router som övervakar UPS:en och skickar ut meddelande på nätverket när det är dags att stänga ned saker vid strömavbrott. Har inte fixat att den skickar ut WOL-meddelanden när strömmen kommit tillbaka
Det är en HP MicroServer Gen8 som huserar NAS:en.
/// Marcus
Kan även tillägga att den alltid varit kopplad till en UPS. Nu för tiden är det min pfsense-router som övervakar UPS:en och skickar ut meddelande på nätverket när det är dags att stänga ned saker vid strömavbrott. Har inte fixat att den skickar ut WOL-meddelanden när strömmen kommit tillbaka
Det är en HP MicroServer Gen8 som huserar NAS:en.
/// Marcus
Re: NAS med ZFS
Händer väl "ibland", beror ju såklart på hur många diskar man har. Jag inbillar mig att det finns en "badkarseffekt",Det är ju flera här som kör ZFS (och Btrfs); hur ofta har ni stött på bitröta (alltså checksummefel)? Under hur lång tid och med hur mycket data?
dvs en del diskar gallras bort ganska tidigt. (Jag kasserar dessutom diskar som rapporterar SMARTfel omedelbart.)
De som är kvar håller länge.