Je to poměrně zvláštní, s nedávným příchodem sekvojové 15.6 nastala sice dlouho očekávaná, ale přesto obávaná změna. Systém najednou ohlásil, že v budoucnu úplně odstraní podporu AFP pro časové kapsy. Bylo docela náročné si speciálně kvůli tomu udělat přechod na totální btrfs a zkusit to co nejvíce optimalizovat, protože jiné způsoby nebyly nikdy žádná sláva. Ale jak už to bývá, věci je potřeba neustále ověřovat.
Po tomto nátlaku tedy došlo na lámání chleba a spolu s ním i na další pokus rozjet časovou kapsu na SMB protokolu pomocí linuxové Samby. Pořád z toho čiší nějaká historická pachuť, proč vlastně Apple opouští a nerozšiřuje vlastní protokol, případně co bude tedy s Netatalkem, nebo jakým způsobem se bude co rozvíjet. Při posledním testování, což vlastně bylo někdy v době Big Suru, se Samba pořád neosvědčila na takové operace, ale dnešní výsledek byl docela překvapením.
V první řadě je nutné říct, že moderní implementace SMB mají se starým Windows přístupem docela málo společného a Samba také roste jako z vody. Už je docela dospělá v tom, že rozšíření jako fruit nebo catia jsou vestavěné, fungují na tom kvóty, paralelní streamy, spoustu dalších funkcí. Co stále není úplně triviální, je integrace uživatelů – s klasickým UNIXovým přístupem to úplně nefrčí, použít LDAP, resp. AD, je v tomhle ohledu taky docela zbytečné, takže jak na to? Možná není od věci vytvořit separátní účet jen pro účely zálohování, když stejně každá kapsa může být izolovaná a šifrovaná. Dává to smysl? Tedy vytvoříme v linuxovém systému účet bez domovského adresáře a hesla, nastavíme mu heslo do Samba backendu, dáme ho do sambové skupiny (ta už možná existuje, pokud je Samba nainstalovaná):
# adduser --no-create-home --disabled-password timemachine
# smbpasswd -a timlmachine
# groupadd sambashare
# usermod -aG sambashare timemachine a pak ještě připravit místečko na nové kapsy
# mkdir -p /srv/timemachine
# chown timemachine:sambashare /srv/timemachine
# chmod 770 /srv/timemachine Zatím dobrý. Protože na současném ARMv9 stroji Sambu ještě nemám, po instalaci se dalo začít s čistým štítem, což by mohlo vypadat zjednodušeně asi následovně.
# /etc/smb.conf [global] workgroup = WORKGROUP server string = Server name netbios name = xyz-server.eida.lan security = user map to guest = never min protocol = SMB2 # Rozšíření "fruit" a "streams_xattr" vfs objects = catia fruit streams_xattr # Doporučené nastavení pro rychlost a kompatibilitu ea support = yes spotlight = yes fruit:metadata = stream fruit:model = Xserve3,1 fruit:posix_rename = yes fruit:veto_appledouble = no fruit:wipe_intentionally_left_blank_rfork = yes fruit:time machine = yes # Omezení na IP rozsah LAN hosts allow = 192.168. 127. hosts deny = 0.0.0.0/0 # Logování log level = 1 log file = /var/log/samba/log.%m max log size = 1000 # Hack propustnosti max connections = 256 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=524288 SO_SNDBUF=524288 [homes] comment = Home Directories browseable = no read only = no [timemachine-example] comment = Time Machine XYZ path = /srv/timemachine/ valid users = timemachine read only = no guest ok = no browseable = yes # Veto files zakáže zálohování .DS_Store veto files = /.DS_Store/ # Další klíčové parametry pro Time Machine fruit:time machine = yes fruit:time machine max size = 1000G fruit:advertise_fullsync = true spotlight = yes
Když se ukáže testparm jako ok, můžeme restarovat systemctl restart smbd a zkusit sdílený adresář z Macu připojit. Zatím žádná záhada, připojení se zdařilo a zálohování začalo chrlit. Co ale bylo překvapení, tak že se propustnost od minulého zkoušení zvýšila víc jak trojnásobně, dokonce bylo spojení i stabilní. Takže udělali v macOS nějaký hack, že se SMB protokol najednou dá používat? Protože mít (první zálohu a pár prvních inkremántílních) rychlost stabilně okolo 80-130 MB/s je docela úlet, to nebývalo, opatrně asi chválím.
Na druhém konci, tedy linuxovém systému, bylo skvěle vidět, že není žádný overhead a že zátěž v maximálním toku je nízká a snesitelná. Hodně samozřejmě dělají paralelní spojení a případně hacky v TCP bufferech, ale z větší části je to trochu inteligentnějším chováním macovského klienta.
Vida tedy, asi po letech tradic nakonec z klasických kapes skočíme do úplně nových batůžků, jako želvičky. Rozhodně se uvidí, jak to bude dále probíhat, jak s tím zamíchá nastavení btrfs, co se časem bude muset vypnout a co ne. Přechod konečně hodnotím jako zdařilý, někdo u toho i přemýšlel. Konečně. Kéž by všechny změny byly takhle plynulé.