Apple představil nový MacBook Pro s čipy M4, M4 Pro a M4 Max.
Na GOG.com běží Halloween Sale 2024. Při té příležitosti lze získat zdarma počítačovou hru Return of the Phantom.
Společnost OpenAI spustila internetový vyhledávač ChatGPT search.
Konference OpenAlt 2024 proběhne již tento víkend 2. a 3. listopadu v prostorách FIT VUT v Brně. Začíná ale už v pátek na warm-up party ve Studentském klubu u Kachničky v 17:00. Pokud jste ještě areál FITu nenavštívili, k dispozici jsou pokyny k orientaci. Na programu je 54 přednášek a workshopů. Témata jsou od silně technických témat jako je třeba GCC nebo PostgreSQL po méně technické témata jako eGovernment, nebo třeba detailní analýzu … více »
Byla vydána nová verze 6.9 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 14.0.1. Tor client na verzi 0.4.8.13. Thunderbird na verzi 115.16.0.
Vývojáři free a open source synchronizačního nástroje (a p2p náhrady Dropboxu) Syncthing oznámili, že z důvodu odporu ze strany Google Play ukončují podporu OS Android. Bohužel v rámci toho zmizí i vydání Syncthing na F-Droid, který má slabší uživatelskou základnu. Syncthing je na Androidu implementován formou wrapper aplikace, která spustí Syncthing démon, vyžádá potřebná oprávnění a zpřístupní webové rozhraní démona. Ve srovnání se
… více »V červnu 2022 bylo oznámeno, že z K-9 Mailu se stane Thunderbird pro Android. Trvalo to poněkud déle, než vývojáři předpokládali, ale včera byl první stabilní Thunderbird pro Android 8.0 vydán.
Projekt microDMG Racer na Kickstarteru nevyšel, tak se autor rozhodl uvolnit na ESP32 postavené autíčko i ovladač jako open source.
Byl vydán TrueNAS SCALE 24.10 „Electric Eel“. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Byla vydána nová verze 24.10.29 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nově s podporou AI (whisper.cpp) pro generování titulků. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Zdar odbornici!
Nevyznam se v potrebnych detailech v tom, co vsechno se deje na disku, jak casto se tam co meni a kde, kdyz nemam na mysli jen samotna data.
Mam nasledujici scenar:
KVM virtualky pouzivaji jako disky lvm logicke svazky (raw). Tyto zalohuju na jiny pocitac tak, ze nejprve necham lokalne vytvorit komprimovane kopie. Potom je pomoci rsync k sobe stahuje zalohovac (dirvish - ten je take iniciatorem lokalni pripravy dat) s tim, ze stahuje k sobe jen rozdilna data a po siti netece cely obraz disku.
Zjistil jsem, ze kdyz pouziju lzo komprimaci, tak je to nejen rychle, kdyz ma lzo rychlost v popisu prace, ale zaroven neni prilis velky rozdil ve vysledne velikosti oproti gzipu a hlavne jsou komprimovane vysledky datove velmi podobne predchozim komprimovanym souborum z predeslych zaloh.
Speedup se na ruznych serverech s ruznymi daty virtualnich disku pohybuje klidne az kolem 300 (jinde 9, jinde 46, jinde 110...) zatimco s gzipem to bylo vzdy jen 1,0x.
Takze kdyz kouknu namatkou na nejaky server, tak vidim, ze celkova pripravena data jsou o velikosti 63GB a skutecne prenesenych dat po siti bylo jen 569MB.
Dirvish uklada data tak, ze soubory bez zmeny jen linkuje a tim vyznamne setri misto (deduplikace), ale soubory s jakoukoliv zmenou do nove zalohy nakopiruje cele (sestavi je z predchozich ulozenych dat, proto se po siti prenese jen tech 569MB ale na disku potom pribude celych 63GB, ktere tam ted uz lezi 2x - jednou z predchozi zalohy a podruhe z aktualni zalohy).
Az sem je to jasne a neni co resit. Funguje to tak uz leta.
Jenze spekuluju nad tim, jak ukladat jen rozdily tech zaloh? Mam vsak obavu, ze uloha nema reseni, ale nez to zcela zavrhnu, tak zkousim, zda vas nekoho nenapadne reseni v tomto bode.
Napadlo me neco, co se ukazalo jako slepa ulicka. Zkusil jsem vysledny soubor jednoduse rozdelit na spoustu malych casti. Klidne treba na 1000 kousku rozsekany puvodni disk a mylne jsem doufal, ze z te tisicovky malych kousku bude cela rada tech, ktere nemaji zadnou zmenu. cekal jsem tedy, ze kdyz probehne nekolik takovychto zaloh, tak se ukaze, ze spousta tech malych fajlu budou stejne (na zalohovaci tedy jen linky) a ze tim nakonec usetrim spoustu mista, Jenze ne! Kazdy jeden file byl vzdy zmeneny! Vzdy v nem byla zmena i kdyz jsem udelal zalohy hned po sobe v rozmezi jekolika minut behu systemu! Nenasel se ani jediny kousek, ktery by nemel zmenu! Rikal jsem si, ze zkusim udelat totez bez komprimace, ale taky bez vysledku! Zmena v kazdem kousicku!
Ja vlastne ani nevim odkud se tuhle zmeny berou? Je divne, ze by v kazdem kousku disku (resp. takhle rovnomerne rozlozene) doslo k nejakemu zapisu, ne?
I informace o datu pristupu se (snad?) uklada na zacatek disku, ne?
Pokud by data pri rozdelovani byla nejak posunuta, tak by to muselo (snad?) byt posunute v celem ukladanem fajlu nejak a tak by ani rsync nebyl tak moc uspesny, ne..?
Mam tedy k vyse uvedenmu 2 otazky:
1. odkud se berou ty zmeny v celem objemu dat?
2. kdyz by se rozlustil bod 1, tak ucelem toho vseho je docilit nejak toho rozdiloveho zalohovani. Nejlepe tedy rozdelenim na kousky, ktere se nemeni a ty ktere se meni... ale i zcela jiny pohled na rozdilovou zalohu obrazu disku by mne velmi obohatil. K vyse uvedenemu dodavam, ze se jedna o ruzne FS uvnitr tech zalohovanych disku a deje se to u vsech. Format LVM disku je raw.
Dekuju za pripadnou pozornost.
Řešení dotazu:
Speedup se na ruznych serverech s ruznymi daty virtualnich disku pohybuje klidne az kolem 300 (jinde 9, jinde 46, jinde 110...) zatimco s gzipem to bylo vzdy jen 1,0x.gzip --rsyncable
Pokud by data pri rozdelovani byla nejak posunuta, tak by to muselo (snad?) byt posunute v celem ukladanem fajlu nejak a tak by ani rsync nebyl tak moc uspesny, ne..?rsync posunutí řešit umí. Ale tady nevím, to budou spíš nějaká metadata FS.
Tak bohuzel jsem nepochodil dobre
Vytvoril jsem testovaci btrfs oddil o velikosti 15GB. Vytvoril jsem v nem subvolume a nakopiroval jsem do nej 10GB velky image. Vytvoril jsem snapshot, spustil jsem virtualku, aby se do fajlu udelaly nejake drobne zmeny a zase jsem ji vypnul.
Potom jsem rsyncem s parametrem --inplace kopiroval tento file do toho jiz existujiciho fajlu v btrfs. Po chvili doslo misto a kopirovat uz dal neslo.
Zkusil jsem to cele znovu s malym souborem, ktery zaplnil btrfs mnozstvim dat 3,2GB. Opet jsem vytvoril snapshot, potom jsem udelal drobne zmeny ve zdroji a opet rsync --inplace. Po nejake chvili zaclo obsazeni rust a dosahlo urovne 6,4GB.
Nakonec jsem jeste zkusil cp --reflink. Opet se po vytvoreni dle ocekavani zabrane misto nezvetsilo. Po kopirovani (rsync --inplace) drobne zmeneneho fajlu se opet zabrane misto zvetsilo na 6,4GB.
Zda se, ze i btrfs se chova tak, ze kdyz ve fajlu doslo ke zmene, tak ho potom zkopiruje/sestavi cely a ten zmeneny file tam potom zabira celou svoji velikost tolikkrat, kolikkrat je tam zmeny
Delam jeste nekde chybu? Nebo se to vazne ma chovat takto?
/mnt/nofrag # head -c $(( 500 * 1000 * 1000 )) /dev/urandom > rnd /mnt/nofrag # sha1sum rnd 03c01e21d2e8207969017c1ff43f94c2987b1fc1 rnd /mnt/nofrag # cp rnd btrfs/ /mnt/nofrag # btrfs subvolume snapshot btrfs/ btrfs/snap1 Create a snapshot of 'btrfs/' in 'btrfs/snap1' /mnt/nofrag # df -H btrfs Filesystem Size Used Avail Use% Mounted on /dev/loop0 2,2G 519M 1,5G 27% /mnt/nofrag/btrfs /mnt/nofrag # dd if=/dev/urandom bs=128k seek=500 of=rnd conv=notrunc count=1 1+0 records in 1+0 records out 131072 bytes (131 kB, 128 KiB) copied, 0,0251772 s, 5,2 MB/s /mnt/nofrag # dd if=/dev/urandom bs=128k seek=1000 of=rnd conv=notrunc count=1 1+0 records in 1+0 records out 131072 bytes (131 kB, 128 KiB) copied, 0,0231493 s, 5,7 MB/s /mnt/nofrag # dd if=/dev/urandom bs=128k seek=1287 of=rnd conv=notrunc count=1 1+0 records in 1+0 records out 131072 bytes (131 kB, 128 KiB) copied, 0,0262798 s, 5,0 MB/s /mnt/nofrag # dd if=/dev/urandom bs=128k seek=2287 of=rnd conv=notrunc count=1 1+0 records in 1+0 records out 131072 bytes (131 kB, 128 KiB) copied, 0,0237689 s, 5,5 MB/s /mnt/nofrag # l rnd -rw-r--r-- 1 root root 500M úno 12 18:37 rnd /mnt/nofrag # sha1sum rnd 0e78704dcd8c53fc8e3ab081a4819b2b59a22471 rnd /mnt/nofrag # rsync --inplace --partial --stats --progress rnd btrfs/rnd rnd 500,000,000 100% 226.19MB/s 0:00:02 (xfr#1, to-chk=0/1) Number of files: 1 (reg: 1) Number of created files: 0 Number of deleted files: 0 Number of regular files transferred: 1 Total file size: 500,000,000 bytes Total transferred file size: 500,000,000 bytes Literal data: 500,000,000 bytes Matched data: 0 bytes File list size: 0 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 500,122,142 Total bytes received: 35 sent 500,122,142 bytes received 35 bytes 200,048,870.80 bytes/sec total size is 500,000,000 speedup is 1.00 /mnt/nofrag # df -H btrfs Filesystem Size Used Avail Use% Mounted on /dev/loop0 2,2G 519M 1,5G 27% /mnt/nofrag/btrfs /mnt/nofrag # sha1sum rnd 0e78704dcd8c53fc8e3ab081a4819b2b59a22471 rnd /mnt/nofrag # sha1sum btrfs/rnd 0e78704dcd8c53fc8e3ab081a4819b2b59a22471 btrfs/rnd /mnt/nofrag # sha1sum btrfs/snap1/ sha1sum: btrfs/snap1/: Is a directory /mnt/nofrag # sha1sum btrfs/snap1/rnd 03c01e21d2e8207969017c1ff43f94c2987b1fc1 btrfs/snap1/rndPoužil jsi --partial?
Ano! Mas pravdu!
Kdyz jsem zkusil stejny test, tak to opravdu obsazeni nezvetsilo! Zmenil jsem tedy jen kousek souboru a chovalo se to spravne dle tveho popisu.
Chyba je tedy jinde...
Zkusil jsem pridat k --inplace pro jistotu i --partial, ale vysledek byl zase spatny - zase se zdvojnasobilo obsazeni.
Zkusil jsem to tedy znovu a abych vyloucil problem s nastavenim rsync, tak jsem zkusil nahradit rsync za dd. Takze jsem spustil virtualku, nabehnul system, hned jsem ho zase vypnul a pomoci dd jsem zkopiroval obsah disku do souboru v btrfs.
Vysledek byl zase spatny!! Takze problem je jeste nekde jinde a nebude ani v rsync. Jeste bych mel zkusit si ten file vykopirovat jinam, udelat do nej jen drobnou zmenu a zkusit dd, zda to prepsani celeho obsahu nema zpusobit zdvojeni taky, ale tentokrat z jineho duvodu - se se to opravdu prepisuje i kdyz z casti stejnymi daty (abych se nezatoulal do slepe ulicky).
Jeste bych mel zkusit stejne nastaveni rsync a soubor nekde mimo taky jen drobne zmenit. Pokud by to vse vyslo, tak by to znamenalo, ze tech zmen se v tom virtualnim disku odehraje az prilis mnoho..? Uvidim jeste...
Tak jsem to zkusil jeste takto:
Vytvoril jsem file mimo ten btrfs disk.
Zkopiroval jsem ho do subvolume.
Udelal jsem snapshot.
Pozmenil jsem ten soubor mimo btrfs.
Zkusil jsem jej pomoci rsync --inplace --partial zkopirovat do subvolume.
Obsazene misto se zdvojnasobilo.
Takze predbezny zaver je, ze kdyz ten file zmodifikuju primo na miste, tak se to chova tak jak rikas ty. Tedy ze se ukladaji skutecne jen ty drobne zmeny.
Neumim zatim docilit toho, abych do zalohy promitnul z venku jen ty zmeny, protoze pak se ulozi cely file znovu.
Kazdopadne stopa je spravna a diky moc za nasmerovani.
Zkusil jsem jej pomoci rsync --inplace --partial zkopirovat do subvolume.To je fakt zvláštní, když použiješ přesně ty příkazy tak, jak jsem to udělal já, tak ti to taky nefunguje? Mám rsync 3.1.1 a kernel 4.3.
To mi prave funguje! Potvrzoval jsem, ze mas pravdu a ze se to i u me chova ocekavanym zpusobem.
Zkusil jsem i dalsi testy s modifikacemi fajlu primo na miste - v btrfs, kdyz od nej existuje snmapshot a potvrzuju, ze mas pravdu, ze se ukladaji jen ty bobecky, ktere se zmenily.
Ted jsem dokonce zkusil rozbehnout virtualku nad btrfs zatimco jiz existoval snapshot a chtel jsem vedet, zda tech zmen je tolik, ze se nakonec ten file ulozi cely, nebo zda se taky ulozi jen bobecky. Vysledek je, ze takhle to funguje perfektne a ukladaji se opravdu jen bobecky! Obsazeni disku se nezvetsuje a tedy nedochazi k dvojnasobnemu obsazeni jako kdyby tam byl ten soubor 2x.
Nakonec se ale ukazalo, ze to co nedokazu je ten pripad, kdy ten samy file menim naprosto stejnym zpusobem a jen ho chcio dostat do zalohy (treba i jen v ramci jednoho pocitace lokalne). Tehdy nedokazu toho hezkeho chovani dosilit a vzdy se mi zmeneny soubor uklada tak, ze naroste jeho velikost jako kdyby tam byl opravdu fyzicky 2x...
Takze ted je uz jasne, ze btrfs se chova spravne, ale neni jasne jak toho docilit i pro kopirovane nebo synchronizovane soubory.
To mi prave funguje! Potvrzoval jsem, ze mas pravdu a ze se to i u me chova ocekavanym zpusobem.No právě ne. Já ho měnil v /mnt/nofrag (ext4) a pak jsem změněnou verzi rsyncnul do /mnt/nofrag/btrfs a obsazené místo se nezvětšilo. Tedy přesně to, co chceš.
Pardon. Tak tohle mi prave nefungovalo. Kdyz jsem to zmenil venku mimo btrfs a zkousel jsem to prenest do subvolume od nehoz existuje snapshot, tak doslo vzdy k tomu zdvojeni.
Dulezite ted je, ze tobe to chodi tak jak potrebuju, takze muzu zkoumat jeste na jinych pocitacich postupne...
Ja ted mam jadro 4.2 a rsync taky 3.1.1
Jeste jsem to cele zkusil znovu, protoze ja mel vytvoreni jeste uvnitr subvolume a teprve z nej jsem delal snapshot, tak jsem si rikal, ze zkusim tom udelat tak jak to mas ty - snapshot bez subvolume...
Zkusil jsem to a vysledek je stejny (pro me spatny).
Jeste chci upozornit na to, ze to trva asi pul minuty nez se poromitne to zvetseni.
Takze presne tvuj priklad vypadal u me pred kopirovanim takto:
/dev/mapper/vg-btest 15G 495M 13G 4% /mnt/tst
a asi po pul minute od skonceni kopirovani to poskocilo takto
/dev/mapper/vg-btest 15G 940M 13G 8% /mnt/tst
Zatimco kdyz jsem to menil primo v tom btrfs svazku, tak k tomu nedoslo ani po minute - chovalo se to spravne.
BINGOOOO!!!
Prisel jsem na to! rsync musime pouzit s parametrem --inplace a --no-whole-file
Zkousel jsemten tvuj soubor rnd, ktery mi zbyl ze vcerejska. Zkopiroval jsem ho, pak jsem udelal snapshot, pak jsem do nej nasazel nova data na ruzna mista (tak jak jsme to zkouseli vcera).
Situace vypada latakto:
/dev/mapper/vg-btest 15G 495M 13G 4% /mnt/tst
Potom jsem prenesl zmeny (rsync --inplace --no-whole-file --progress --stats /rnd /mnt/tst/pokus/) a pockal jsem az se obsazeni zmeni (asi to souvisi s commit, protoze to je defaultne 30s) a vysledek je nasledujici:
/dev/mapper/vg-btest 15G 496M 13G 4% /mnt/tst
Takze chyba byla u me!
Jendo, moc dekuju!! Kdyz jsem ten dotaz zacal psat, tak jsem skoro ani nedoufal, ze zaziju takovehle vanoce Diky moc!!
Tiskni Sdílej: