MergerFS
MergerFS
S každým novým SSD diskem, která jsem pomohl nainstalovat do počítače nějakému příslušníkovi rodiny, nebo širšího přátelstva mi doma zbyl nějaký ten další vyběhaný plotnový disk. Chvilku jsem s nimi plnil rámečky a dělal z nich externí disky, ale rychle jsem ztratil přehled o tom na kterém disku je vlastně co? Když máte doma pět a více externích disků a polovina z nich je menší než 320GB, uchováváte na nich tucet seriálů, které jste poctivě ukradli na Uložtu, tak vám zaručuji, že netušíte co je kde. Hledal jsem nějaké lepší řešení. Běžný postup když jsem něco sháněl byl najít disky, postupně je připojovat k počítači a zjišťovat co na nich není.
NAS!
Rozhodl jsem se vydat uložiště připojeného k internetu. Válel si mi pod postelí můj starý notebook x220T s ulomeným displejem a vrypy na šasi, v místech kde si o něj Mára otevřel pivo. Ideální kandidát na domácí server! ThinkPady mají úžasnou možnost v BIOSu, která umožnuje nastavit, že se má počítač spustit kdykoliv ho připojíte k napájení. Vypadne sít, připojí se napájení. Vhůůů. Počítač se sám znovu zapne. Něco nejde. Vytáhnu kabel, zapojím ho znovu. Vhůůů. Počítač se sám znovu zapne. Ještě jsem to vyšperkoval zásuvkou s dálkovým ovladačem, takže jsem ani nemusel lest pod televizi. Někde jsem k počítači splašil ještě ultrabay dok, kterému jsem vyměnil mechaniku za slot na disk. x220 má 2.5” SATA III slot a taky mSATA, takže můžete bootovat z mSATA disku a když dáte počítač do dokiny, tak máte dva volné plotnové disky, na kterých mohou být jen data. To není vůbec špatné na deset let starý 12” notebook.
Takže disky budou připojené do sítě a přístupné přes SaMBu. Dva disky dvakrát tolik samb? A nešlo by to jednodušeji? Šlo!
Linux má velmi šikovný prográmek mergerfs, který jak již název napovídá spojuje FS (file systémy). Normálně by jste hledali něco co se jmenuje softwarový RAID 0, ale to má své nevýhody. Třeba tu že takové zapojení disků musíte inicializovat v jeden okamžik na prázdných discích. Disky se nesmí rozpojit a když jeden umře, tak jste o všechno přišli.
Ale s Mergerfs ne! Pojďme se na to blíže podívat do tabulky:
| Technologie | RAID 0 | RAID 1 | Mergerfs |
|---|---|---|---|
| inicializace na prázdných discích | ano | ano | ne |
| kapacita | 2x | 1x | 2x |
| rychlost zápisu | 2x | 1x | 1x |
| rychlost čtení | 2x | 2x | 1x |
| disky se rozpojí | mimo provoz | mám všechny data | mám některá data |
| jeden odejde | jsem hajzlu | mám všechny data | mám některá data |
Každý má něco. Když chci mít hodně filmů na “jednom” disku, nevadí mi že o půlku filmů přijdu, když se rozpojí/jeden odejde, nebo menší rychlost. Nemůžu si dovolit disky vyprázdnit, předtím než je spojím. Tak Mergerfs je jasná volba.
Zajímavé je že při běžném používání máme disky připojené jak samostatně, tak i jako jeden celek. Pokud na jeden disk cokoliv nakopírujeme, tak se to objeví i v jednotném disku. Jsou to prostě furt samostatné disky, které se jen tváří pro systém a aplikace, jako jedno uložiště.
Instalace
Nainstalujte si do svého Linuxu aplikaci mergerfs:
sudo apt-get install mergerfs -y
Základní nastavení
Pokud nevíte, že máte speciální použití, začněte jedním z následujících nastavení.
cache.files=off,dropcacheonclose=true,category.create=mfs
Command Line
Pro jednorázové otestování aplikace lze program spustit z příkazového řádku:
mergerfs -o cache.files=partial,dropcacheonclose=true,category.create=mfs /mnt/hdd0:/mnt/hdd1 /media
/etc/fstab
Aneb tam kde se připojují disky. Více informací se můžete dočíst v mém předchozim článku Připojování disků pod Linuxem.
Pro nastavení pokaždé, když se zapíná počítač, si můžete zavést záznam v /etc/fstab.
/mnt/hdd0:/mnt/hdd1 /media fuse.mergerfs cache.files=partial,dropcacheonclose=true,category.create=mfs 0 0
Moje nastavení v /etc/fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
# Toshiba 1TB
UUID=ECD47EC9D47E9614 /mnt/Toshiba_1TB ntfs-3g defaults,permissions,auto,users,rw,nofail 0 0
# WD 1TB
UUID=2CB29D9CB29D6B5A /mnt/WD_1TB ntfs-3g defaults,permissions,auto,users,rw,nofail 0 0
# Mergerfs
/mnt/Toshiba_1TB:/mnt/WD_1TB /media/NAS fuse.mergerfs allow_other,use_ino,cache.files=partial,dropcacheonclose=true,category.create=mfs,fsname=NAS 0 0
První co vidíte je připojování disků do mount pointů. Disky jsou rozpoznány podle jejich UUID a připojeny do správného adresáře ve stromě.
Dále si povšimněte záznamu pro Mergerfs, blíže si projdeme co se kde nastavuje.
Mount pointy pro jednotlivé dílčí disky:
/mnt/Toshiba_1TB/mnt/WD_1TB
Výsledný mount point:
/media/NAS
Formát disky:
fuse.mergerfs
systemd mount
[Unit]
Description=mergerfs service
[Service]
Type=simple
KillMode=none
ExecStart=/usr/bin/mergerfs \
-f \
-o cache.files=partial \
-o dropcacheonclose=true \
-o category.create=mfs \
/mnt/hdd0:/mnt/hdd1 \
/media
ExecStop=/bin/fusermount -uz /media
Restart=on-failure
[Install]
WantedBy=default.target
Současnost
Můj NAS od té doby co jsem to nastavoval již odešel do křemíkového nebe (přesněji k Machovi do sklepa, kde se na něm něco učili prváci). Ale když jsem ho používal, tak sloužil jako chytrá televize s Kodi, stroj s virtuálkou Ubunta na kterou se dalo vzdáleně připojit a NAS.
Dnes jsem bohužel o NAS chudší, ale za to mně trápí prostory uložišť pod win11.