Byla vydána nová verze 0.4.15 (𝕏) svobodného operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows. Přehled novinek i s náhledy v oznámení o vydání.
Byl představen rpi-image-gen, tj. oficiální nástroj pro vytváření vlastních softwarových obrazů pro zařízení Raspberry Pi.
Byla vydána nová major verze 8.0, aktuálně 8.0.1, softwaru pro správu elektronických knih Calibre (Wikipedie). Přehled novinek v poznámkách k vydání. Vypíchnuta je lepší podpora Kobo KEPUB formátu nebo integrovaný lokálně běžící engine Piper pro převod textu na řeč používaný pro čtení nahlas (již od verze 7.18).
Společnost OpenAI rozšířila své API o nové audio modely. Nový model pro převod textu na řeč (text-to-speech model) lze bez přihlašování vyzkoušet na stránce OpenAI.fm.
Příspěvek Bezpečnost paměti pro webové fonty na blogu Chrome pro vývojáře rozebírá, proč se pro zpracování webových fontů v Chrome místo FreeType nově používá v Rustu napsaná Skrifa z Fontations.
V pátek 21. a v sobotu 22. března proběhnou Arduino Days 2025, tj. každoroční „narozeninová oslava“ platformy Arduino. Na programu je řada zajímavých přednášek. Sledovat je bude možné na YouTube. Zúčastnit se lze i lokálních akcí. V sobotu v Praze na Matfyzu.
Komunitná konferencia Bratislava OpenCamp, ktorá sa uskutoční už o tri týždne 5. 4. 2025 na FIIT STU pozná svoj program – návštevníkom ponúkne 3 paralelné behy prednášok a workshopov na rôzne témy týkajúce sa otvoreného softvéru či otvorených technológií.
Časopis MagPi od nakladatelství Raspberry Pi se s číslem 151 přejmenoval na Raspberry Pi Official Magazine. I pod novým názvem zůstává nadále ve formátu pdf zdarma ke čtení.
Japonská SoftBank Group kupuje firmu Ampere Computing za 6,5 miliardy dolarů. Ampere Computing vyrábí 32-128jádrové procesory Ampere Altra a 192jádrové procesory AmpereOne.
Byla vydána (𝕏) nová verze 2025.1a linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek v oficiálním oznámení na blogu.
zfsutils-linux
nfs-kernel-server
ktorý si dotiahne aj klientský balík nfs-common
.
Balík samba
a voliteľne aj balík smbclient
a winbind
.
golisp@web:~$ sudo -i root@web:~# HOST="Ubuntu-1910-NAS" root@web:~# SIZE="10G" root@web:~# for i in sdb sdc sdd sde sdf sdg > do > qemu-img create -f qcow2 /var/lib/libvirt/images/${HOST}-ZFS-${i}.qcow2 ${SIZE} > virsh attach-disk ${HOST} /var/lib/libvirt/images/${HOST}-ZFS-${i}.qcow2 ${i} --driver qemu --subdriver qcow2 --targetbus scsi --persistent > virt-xml ${HOST} --edit path=/var/lib/libvirt/images/${HOST}-ZFS-${i}.qcow2 --disk discard=unmap > done Formatting '/var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdb.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16 Disk attached successfully Domain 'Ubuntu-1910-NAS' defined successfully. Formatting '/var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdc.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16 Disk attached successfully Domain 'Ubuntu-1910-NAS' defined successfully. Formatting '/var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdd.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16 Disk attached successfully Domain 'Ubuntu-1910-NAS' defined successfully. Formatting '/var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sde.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16 Disk attached successfully Domain 'Ubuntu-1910-NAS' defined successfully. Formatting '/var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdf.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16 Disk attached successfully Domain 'Ubuntu-1910-NAS' defined successfully. Formatting '/var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdg.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16 Disk attached successfully Domain 'Ubuntu-1910-NAS' defined successfully. root@web:~# root@web:~# virsh domblklist ${HOST} --details Type Device Target Source ------------------------------------------------ file disk sda /var/lib/libvirt/images/Ubuntu-1910-NAS.qcow2 file cdrom hda - file disk sdb /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdb.qcow2 file disk sdc /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdc.qcow2 file disk sdd /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdd.qcow2 file disk sde /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sde.qcow2 file disk sdf /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdf.qcow2 file disk sdg /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdg.qcow2 root@web:~#Vo výsledku teda máme pripojených 6x10G virtuálnych diskov pre dáta, s aktívnym TRIM. Kto chce, ten si to môže overiť.
golisp@web:~$ ssh Ubuntu-1910-NAS golisp@Ubuntu-1910-NAS's password: golisp@Ubuntu-1910-NAS:~$ ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 Nov 28 19:56 /dev/sda brw-rw---- 1 root disk 8, 16 Nov 28 19:56 /dev/sdb brw-rw---- 1 root disk 8, 32 Nov 28 19:56 /dev/sdc brw-rw---- 1 root disk 8, 48 Nov 28 19:56 /dev/sdd brw-rw---- 1 root disk 8, 64 Nov 28 19:56 /dev/sde brw-rw---- 1 root disk 8, 80 Nov 28 19:56 /dev/sdf brw-rw---- 1 root disk 8, 96 Nov 28 19:56 /dev/sdg brw-rw---- 1 root disk 8, 97 Nov 28 19:56 /dev/sdg1 brw-rw---- 1 root disk 8, 98 Nov 28 19:56 /dev/sdg2 golisp@Ubuntu-1910-NAS:~$ sudo apt install zfsutils-linux Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-zed Suggested packages: nfs-kernel-server samba-common-bin zfs-initramfs | zfs-dracut The following NEW packages will be installed: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-zed zfsutils-linux 0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. ... golisp@Ubuntu-1910-NAS:~$ sudo zpool create EXPORTS raidz sda sdb sdc sdd sde spare sdf golisp@Ubuntu-1910-NAS:~$ zpool status pool: EXPORTS state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM EXPORTS ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 sda ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 sde ONLINE 0 0 0 spares sdf AVAIL errors: No known data errors golisp@Ubuntu-1910-NAS:~$ df -h /EXPORTS Filesystem Size Used Avail Use% Mounted on EXPORTS 39G 128K 39G 1% /EXPORTS golisp@Ubuntu-1910-NAS:~$Vo výsledku tak máme RAIDZ (RAID5) nad piatimi diskami, a jeden rezervný (spare) disk.
golisp@Ubuntu-1910-NAS:~$ sudo dd if=/dev/urandom of=/EXPORTS/fill bs=1M count=39k status=progress 41161850880 bytes (41 GB, 38 GiB) copied, 2742 s, 15.0 MB/s dd: error writing '/EXPORTS/fill': No space left on device 39256+0 records in 39255+0 records out 41162637312 bytes (41 GB, 38 GiB) copied, 2754.88 s, 14.9 MB/s golisp@Ubuntu-1910-NAS:~$ sudo rm -v /EXPORTS/fill [sudo] password for golisp: removed '/EXPORTS/fill' golisp@Ubuntu-1910-NAS:~$ sudo fstrim -av /boot/efi: 503.2 MiB (527683584 bytes) trimmed on /dev/sdg1 /: 7.2 GiB (7714762752 bytes) trimmed on /dev/sdg2 golisp@Ubuntu-1910-NAS:~$A ajhľa, tradičný TRIM nám preskočil /EXPORTS. Skontrolujeme na hypervízore či sa nám náhodou nezmenšili disky:
golisp@web:~$ sudo sh -c 'du -sh /var/lib/libvirt/images/Ubuntu-1910-NAS*' 9.7G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdb.qcow2 9.7G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdc.qcow2 9.7G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdd.qcow2 9.7G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sde.qcow2 9.7G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdf.qcow2 14M /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdg.qcow2 3.0G /var/lib/libvirt/images/Ubuntu-1910-NAS.qcow2Nie. Ono to bude tým, že ZFS pod Linuxom robí TRIM inak. Treba ho pustiť príkazom
zpool trim
:
golisp@Ubuntu-1910-NAS:~$ sudo zpool trim EXPORTSStav si môžeme skontrolovať skôr spomenutým príkazom:
golisp@Ubuntu-1910-NAS:~$ zpool status EXPORTS pool: EXPORTS state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM EXPORTS ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 sda ONLINE 0 0 0 (trimming) sdb ONLINE 0 0 0 (trimming) sdc ONLINE 0 0 0 (trimming) sdd ONLINE 0 0 0 (trimming) sde ONLINE 0 0 0 (trimming) spares sdf AVAIL errors: No known data errorsKeď to v tichosti dobehne, tak si môžeme skontrolovať či sa zmenšilo využitie diskov:
golisp@web:~$ sudo sh -c 'du -sh /var/lib/libvirt/images/Ubuntu-1910-NAS*' 2.0G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdb.qcow2 2.0G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdc.qcow2 2.0G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdd.qcow2 2.0G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sde.qcow2 2.0G /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdf.qcow2 14M /var/lib/libvirt/images/Ubuntu-1910-NAS-ZFS-sdg.qcow2 3.0G /var/lib/libvirt/images/Ubuntu-1910-NAS-.qcow2Uvoľnilo sa približne 80%, tak sa pozrieme prečo:
root@Ubuntu-1910-NAS:~# find /EXPORTS/ -ls 34 1 drwxr-xr-x 2 root root 2 Dec 13 20:34 /EXPORTS/ root@Ubuntu-1910-NAS:~# df -h /EXPORTS/ Filesystem Size Used Avail Use% Mounted on EXPORTS 39G 6.4G 32G 17% /EXPORTS root@Ubuntu-1910-NAS:~#Niečo ostalo uzamknuté. Neskôr alebo po reboote sa to zrazí na nulu, a
trim
by mal kompletne zbehnúť. Alebo nie, a niečo tam predsa ostane.
golisp@web:~$ sudo zfs set dedup=sha512,verify EXPORTS
golisp@Ubuntu-1910-NAS:~$ sudo apt install nfs-kernel-server Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: keyutils libevent-2.1-6 libnfsidmap2 libtirpc-common libtirpc3 nfs-common rpcbind Suggested packages: open-iscsi watchdog The following NEW packages will be installed: keyutils libevent-2.1-6 libnfsidmap2 libtirpc-common libtirpc3 nfs-common nfs-kernel-server rpcbind 0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded. Need to get 648 kB of archives. After this operation, 2,294 kB of additional disk space will be used. Do you want to continue? [Y/n]Služby sa na Ubuntu aktivujú automaticky. Takže si povolíme zdieľanie pomocou úpravy konfiguračného súboru
/etc/exports
do ktorého pridäme riadok:
/EXPORTS 192.168.123.0/24(rw,async,no_subtree_check,no_root_squash)Následne danú konfiguráciu pre NFS Server aj aktivujeme a skontrolujeme či sa aktivovala:
golisp@Ubuntu-1910-NAS:~$ sudo exportfs -ra golisp@Ubuntu-1910-NAS:~$ showmount -e Ubuntu-1910-NAS Export list for Ubuntu-1910-NAS: /EXPORTS 192.168.123.0/24 golisp@Ubuntu-1910-NAS:~$Áno, máme ju.
golisp@Ubuntu-1910-NAS:~$ sudo apt install samba Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: attr ibverbs-providers libboost-iostreams1.67.0 libboost-system1.67.0 libboost-thread1.67.0 libcephfs2 libgpgme11 libibverbs1 libnl-route-3-200 libnspr4 libnss3 librados2 librdmacm1 python3-dnspython samba-dsdb-modules samba-vfs-modules tdb-tools Suggested packages: bind9 bind9utils ctdb ldb-tools ntp | chrony smbldap-tools winbind The following NEW packages will be installed: attr ibverbs-providers libboost-iostreams1.67.0 libboost-system1.67.0 libboost-thread1.67.0 libcephfs2 libgpgme11 libibverbs1 libnl-route-3-200 libnspr4 libnss3 librados2 librdmacm1 python3-dnspython samba samba-dsdb-modules samba-vfs-modules tdb-tools 0 upgraded, 18 newly installed, 0 to remove and 0 not upgraded. Need to get 7,913 kB of archives. After this operation, 49.4 MB of additional disk space will be used. Do you want to continue? [Y/n]Následne si schováme pôvodný konfiguračný súbor, vytvoríme si nový konfiguračný súbor a reštartneme služby keďže sme menili takú akoby doménu:
golisp@Ubuntu-1910-NAS:~$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf-old golisp@Ubuntu-1910-NAS:~$ cat /etc/samba/smb.conf [global] workgroup = MAMBA server string = %h server Version %v netbios name = Ubuntu-1910-NAS security = user passdb backend = tdbsam # interfaces = 127.0.0.0/8 192.168.122.1/24 # bind interfaces only = yes log file = /var/log/samba/log.%m map to guest = bad user server role = standalone server golisp@Ubuntu-1910-NAS:~$ sudo systemctl restart smbd.service nmbd.serviceA nastavíme lokálnemu užívateľovi heslo:
golisp@Ubuntu-1910-NAS:~$ sudo pdbedit -a golisp new password: retype new password: ...Ten konfikurák je takmer identický s tým, čo máme vo FreeBSD (12), až na názov servera a priečinok pre log.
golisp@Ubuntu-1910-NAS:~$ sudo mkdir -p /EXPORTS/users/golisp golisp@Ubuntu-1910-NAS:~$ sudo chgrp -R sambashare /EXPORTS/users golisp@Ubuntu-1910-NAS:~$ sudo chown golisp /EXPORTS/users/golisp golisp@Ubuntu-1910-NAS:~$ net usershare add golisp-data /EXPORTS/users/golisp "User data directory for golisp on EXPORTS" golisp:F guest_ok=nPodobne si vytvoríme aj nadradený zdieľaný priečinok:
root@Ubuntu-1910-NAS:~# net usershare add EXPORTS /EXPORTS "Deduplicated EXPORTS" root:F,golisp:F,users:r guest_ok=nTento príkaz
net usershare
je mimochodom aj príkaz ktorý sa spúšťa ak človek dá zdieľať nejaký priečinok cez správcu súborov, len s jednou drobnosťou. Ak povolí zápis pre ostatných, tak sa mu spustí chmod ugo+rwx
pre daný priečinok na lokánom systéme.
Teraz si ta isto otestujeme letmý zápis z hyervízora na toto NAS pomocou NFS. Najprv si pripojíme daný FS, potom si na ňom vytvoríme priečinok /mnt/nfs/rw
a nastavíme mu pracovnú skupinu users
a práva a zápis pre všetkých. Nakoniec ten prípojný bod odpojíme.
golisp@web:~$ sudo mount Ubuntu-1910-NAS.vm:/EXPORTS/ /mnt/nfs -v -t nfs mount.nfs: timeout set for Thu Dec 12 14:31:49 2019 mount.nfs: trying text-based options 'vers=4.2,addr=192.168.122.181,clientaddr=192.168.122.1' golisp@web:~$ golisp@web:~$ dd if=/dev/urandom of=/mnt/nfs/rw/random bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.233705 s, 44.9 MB/s golisp@web:~$ df -h /mnt/nfs Filesystem Size Used Avail Use% Mounted on Ubuntu-1910-NAS.vm:/EXPORTS 39G 11M 39G 1% /mnt/nfs golisp@web:~$ sudo umount -v /mnt/nfs /mnt/nfs: nfs4 mount point detected /mnt/nfs: umounted golisp@web:~$Ako vidíme, aj teraz nám pripojenie priečinku a test zápisu fungovali bez problémov.
golisp@web:~$ smbclient -L Ubuntu-1910-NAS Enter MAMBA\golisp's password: Anonymous login successful Sharename Type Comment --------- ---- ------- EXPORTS Disk Deduplicated NAS IPC$ IPC IPC Service (Ubuntu-1910-NAS server Version 4.10.7-Ubuntu) golisp-data Disk User data directory for golisp on EXPORTS Reconnecting with SMB1 for workgroup listing. Anonymous login successful Server Comment --------- ------- Workgroup Master --------- ------- MAMBA golisp@web:~$ golisp@web:~$ sudo mount.cifs -v -o user=golisp,uid=golisp,gid=sambashare //Ubuntu-1910-NAS/golisp-data /mnt/smb Password for golisp@//Ubuntu-1910-NAS/golisp-data: ********** mount.cifs kernel mount options: ip=192.168.122.182,unc=\\Ubuntu-1910-NAS\golisp-data,uid=1000,gid=126,user=golisp,pass=******** golisp@web:~$ dd if=/dev/urandom of=/mnt/smb/random bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.191642 s, 54.7 MB/s golisp@web:~$ sudo umount -v /mnt/smb umount: /mnt/smb (//Ubuntu-1910-NAS/golisp-data) unmounted golisp@web:~$ golisp@web:~$ sudo mount.cifs -v -o user=golisp,uid=golisp,gid=sambashare //Ubuntu-1910-NAS/EXPORTS /mnt/smb [sudo] password for golisp: Password for golisp@//Ubuntu-1910-NAS/EXPORTS: ********** mount.cifs kernel mount options: ip=192.168.122.182,unc=\\Ubuntu-1910-NAS\EXPORTS,uid=1000,gid=126,user=golisp,pass=******** golisp@web:~$ cp -pv /mnt/smb/rw/random /mnt/smb/rw/random2 '/mnt/smb/rw/random' -> '/mnt/smb/rw/random2' golisp@web:~$ sudo umount -v /mnt/smb umount: /mnt/smb (//Ubuntu-1910-NAS/EXPORTS) unmounted golisp@web:~$
Tá týchlosť bola zúfalá, veď to bolo na notebookovom rotačnom disku 5400 RPM. Simultárny zápis piatich streamov zabil IOPS, a vykonal peklo fragmentácie. Zatiaľ máme vykonaný upgrade len RAM, výmenu DVD za SSD si predstavíme neskôr, aj s performance testom. A môžeme dať na frak aj konzistencii ZFS.
Tiskni
Sdílej:
Ide mi primárne o rýchle zálohy drobného objemu údajov. Strata týchto dát by ma síce zamrzela, ale svet by sa mi nezrútil. Viac by som bol rozčúlený keby som o tie dáta prišiel nevedomky kvôli Silent Data Corruption. Momentálne mi takto stačí chrániť cca 1/8T. TCO pre toto riešenie je približne 5+1 LUN pre 128G dáta a 10G na OS, teda do 150G diskového priestoru v cene cca 7€ pre rotačný disk, alebo 15€ pre SSD. K tomu potrebujem cca 4G RAM, čo je ďalších 15€.
Dohromady mám teda takéto riešenie za cenu materiálu do 22€ až 30€. V reále je to menej keďže sa jedná o zdieľané prostriedky. Cenu som už naznačoval v prvom (úvod) a siedmom (upgrade ram) zápisku. Náklady na môj čas nerátam, chcel som to urobiť svojpomocne vo voľnom čase.
Ohľadne datasetov, tak tie pri tak malom objeme nepotrebujem. Keby som robil väčšie riešenie, tak ich zakomponujem. A k tomu pochopiteľne použijem stroj s ECC RAM kvôli deduplikácii.
TRIM sa na ZFS on Linux nepoužije automaticky. TRIM v ZoL začal fungovať až v generácii 8, a vo východzom stave je vypnutý. Spomínané FreeBSD ho samé zapne, a fumguje bez problémov. Pod Linuxom mi napríklad ten TRIM na ZFS neuvoľnil polovicu údajov. Teda pokiaľ nemáš komerčnú implementáciu od bývalej Nexenty, a neverím že ju máš.
Ohľadne sharesmb a sharenfs, tak to bol pekný koncept. Ale moc sa v tom nedá nastaviť. Oveľa lepšie je použiť nástroje na to určené.
Ide mi o to, aby som si v klude nasypal svoje fotky, logy z GPS alebo kontakty do priečinku s aktuálnym dátumom, aby sa mi to samé zdeduplikovalo a nezaberalo veľa miesta. A aby som vedel že v tichosti neprichádzam o dáta kvôli utajeným chybám na disku.
Na toto by som kĺudne mohol použiť aj externý disk, ale by s tým menej srandy.
PS: Máš chybu pri tom odhade IOPS. Momentálne je to rotačný disk na ktorom mám 5+1 virtuálnych diskov. Po novom roku preklopím diskový priestor pre virtuálky na SSD, a porovnám výkon.
Kde si to odhadoval?muze se kazdy jeden read nafouknout minimalne na 3 IO operaceKde jsem odhadoval IOPS?
A co je prosim generacie 8 ZFS on Linux?Pardon, verzia nula celá osem.
Nekdy clovek udela lip, kdyz se misto datlovani zarucenych prohlaseni, jde proste projit.Ja som sa dnes bol aj prejsť. A ty ako?
presne