abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Nová verze

    Byl vydán LineageOS 23.2 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu.

    Ladislav Hagara | Komentářů: 0
    dnes 03:44 | IT novinky

    Od března budou mít uživatelé Discordu bez ověření věku pouze minimální práva vhodná pro teenagery.

    Ladislav Hagara | Komentářů: 1
    včera 23:43 | IT novinky

    Evropská komise (EK) předběžně shledala čínskou sociální síť pro sdílení krátkých videí TikTok návykovým designem v rozporu s unijním nařízením o digitálních službách (DSA). Komise, která je exekutivním orgánem Evropské unie a má rozsáhlé pravomoci, o tom informovala v tiskovém sdělení. TikTok v reakci uvedl, že EK o platformě vykreslila podle něj zcela nepravdivý obraz, a proto se bude bránit.… více »

    Ladislav Hagara | Komentářů: 5
    včera 18:33 | Nová verze

    Offpunk byl vydán ve verzi 3.0. Jedná se o webový prohlížeč běžící v terminálu a podporující také protokoly Gemini, Gopher a RSS. Přibyl nástroj xkcdpunk pro zobrazení XKCD v terminálu.

    Ladislav Hagara | Komentářů: 0
    včera 18:22 | Zajímavý projekt

    Promethee je projekt, který implementuje UEFI (Unified Extensible Firmware Interface) bindingy pro JavaScript. Z bootovacího média načítá a spouští soubor 'script.js', který může používat UEFI služby. Cílem je vytvořit zavaděč, který lze přizpůsobit pomocí HTML/CSS/JS. Repozitář se zdrojovými kódy je na Codebergu.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 12:44 | Bezpečnostní upozornění

    Zpráva Justičního výboru Sněmovny reprezentantů upozorňuje na cenzurní kampaň Evropské komise, mířenou proti svobodě projevu na sociálních sítích. V dokumentu se uvádí, že se Evropská komise během posledních šesti let účastnila více než 100 uzavřených jednání, během nichž po platformách požadovala úpravy pravidel moderování obsahu, přičemž toto úsilí Komise zahrnovalo i cenzuru politických názorů a pravdivých informací. Výbor zdůrazňuje, že tento přístup Bruselu ohrožuje ústavou zaručená práva Američanů na svobodu projevu.

    NUKE GAZA! 🎆 | Komentářů: 11
    včera 04:33 | Nová verze

    Linus Torvalds vydal jádro Linux 6.19. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).

    |🇵🇸 | Komentářů: 0
    8.2. 03:33 | IT novinky

    Do prodeje jde tichá bezdrátová herní myš Logitech PRO X2 SUPERSTRIKE s analogovými spínači s haptickou odezvou (HITS, Haptic Inductive Trigger System). Cena je 4 459 Kč.

    Ladislav Hagara | Komentářů: 8
    7.2. 21:00 | Zajímavý projekt

    Microsoft na GitHubu zveřejnil zdrojový kód projektu LiteBox, jedná se o 'knihovní operační systém' (library OS) zaměřený na bezpečnost, využívající systémovou architekturu LVBS k ochraně jádra před útoky z uživatelského prostoru. LiteBox je napsán v Rustu a uvolněný pod licencí MIT. Projekt je teprve v rané fázi vývoje.

    NUKE GAZA! 🎆 | Komentářů: 3
    7.2. 16:11 | Zajímavý software

    BreezyBox je open-source shell a virtuální terminál pro populární jednočip ESP32. Nabízí základní unixové příkazy, sledování aktuálního pracovního adresáře (CWD), jednoduchý instalátor a spouštěč aplikací v podobě ELF binárních souborů, zabudovaný HTTP server nebo třeba ovládání WiFi - ukázka použití coby 'malého osobního počítače'. Ačkoliv je BreezyBox inspirovaný BusyBoxem, oproti němu má tento projekt několik externích závislostí, zejména na ESP-IDF SDK. BreezyBox je dostupný pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (26%)
     (3%)
     (5%)
     (2%)
     (12%)
     (28%)
    Celkem 820 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Přesunutí BTRFS snapshotu na jiné místo

    3.7.2024 10:05 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Přesunutí BTRFS snapshotu na jiné místo
    Přečteno: 874×
    Zdravím všechny ...

    Při návrhu diskových adresářů jsem asi vycházel z mylných předpokladů, a tak jsem stvořil příšeru. Nyní bych chtěl přejít na (asi) rozumnější uspořádaní, ale hledání v google nevedlo k žádoucím odpovědím ... tedy našly se otázky, jak přesunou snapshot na JINÝ disk.

    Protože mám dojem, že se tady pohybují znalci btrfs, zeptám se česky tady.

    Mám struktutu :
    -baseweb
      -web
      -snap20240513
      -snap20240602
    atd ...
    a moje představa je teď :-D
    -web
    -snapshots
      -web
        -snap20240513
        -snap20240613
    Tedy data budou ve svých adresářích ( subvolumes ) a snapshoty v subvolume snapshots. Tuto změnu bych rád provedl v rámci jednoho disku, se zachováním dat a pokud možno i těch snapů. Možná je řešení triviální, ale btrfs důkladně neznám, tak se raději nejdříve zeptám vás.

    Děkuji za nápomocné odpovědi ..

    Řešení dotazu:


    Odpovědi

    3.7.2024 10:50 Want
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    Btrfs send a receive. S použitím parametru help doufám problém nemáš. Jo, jenom musím upozornit, že od určité doby je možné takhle zkopírovat jen RO snapshoty, ale není problém z nich udělat RW. Já to přesouvám nejprve do chlíva import, do názvu dám čas vytvoření RO snapshotu a do cílové struktury pak udělám RW snapshot a ten naimportovaný RO zruším (pokud ho nechci ponechat jako zálohu).
    3.7.2024 10:57 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    Tedy chápu správně, že pro přesun v rámci jednoho disku je potřeba použít send / receive .. tozn 2 btrfs shelly, jeden sendne a druhý to bude přijímat ?
    3.7.2024 11:57 xxl | skóre: 26
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    V rámci jednoho btrfs filesystému použij btrfs subvolume snapshot ...
    3.7.2024 13:19 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo

    V rámci jednoho btrfs filesystému použij mv.

    3.7.2024 19:35 xxl | skóre: 26
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    Sry, ale mv v jaké verzi?
    4.7.2024 00:06 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    1.7.8.5.3.004
    4.7.2024 00:13 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo

    A co přesně to je, taková verze?

    mv je v balíku zvaném coreutils, většinou. Obvyklá verze coreutils je momentálně 9.5.

    Záleží na tom? (Proč?)

    4.7.2024 07:14 xxl | skóre: 26
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    No protože ono to s tím přesouváním subvolumů pomocí mv není tak jednoznačné.

    Na disku /dev/sda1 vytvořím btrfs (mkfs.btrfs /dev/sda1). Mountnu top-level subvolume filesystému (mount /dev/sda1 /mnt/t -o subvol=/). Vytvořím další subvolumy (btrfs subvolume create /mnt/t/{a,b,c}. Mountnu subvolume toho stejného filesystému (mount /dev/sda1 /mnt/a -o subvol=/a). Když teď přesunu subvolume pomocí mv, tak mv /mnt/t/b /mnt/t/a/ funguje, zatímco mv /mnt/t/c /mnt/a/ nefunguje. Resp. ono funguje oboje (ve smyslu, že to něco udělá a nehlásí to chybu), akorát to c už po přesunu není subvolume, ale je to adresář.
    5.7.2024 18:44 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    Mountnu subvolume toho stejného filesystému (mount /dev/sda1 /mnt/a -o subvol=/a).

    Ano, souhlasím, že tenhle případ nefunguje správně. mv na jedné straně správě rozezná, že se jedná o stejný adresář / subvolume, a to i skrz explicitní mount point. Na druhé straně ale nerozezná možnost přesouvat skrz různé explicitní mount pointy efektivně. To je ošklivé.

    Moje doporučení je nepoužívat explicitní mount pointy pro subvolume, pokud to jenom trochu jde. Znám případy, kdy to nejde: Když mám několik distribucí na jednom Btrfs a mám například subvolume /root_arch a /root_fedora a k nim /var/arch a /var/fedora (mountované dle potřeby jako / a /var). Nebo když nějaký backup systém na automatické snapshotování / verzování celého stromu používá různé dynamické názvy svých snapshotů, které automaticky vybírá a mountuje do známých názvů.

    V takových situacích bohužel bude mv dělat brute-force kopie. (Na druhé straně: třeba mv mezi / a /var je podivný případ a všude možně jinde bych měl mít implicitní mount pointy (například mám-li ve svém /home pár subvolume, „mezi kterými“ (obrazně řečeno; v reálu nemají hierarchii) bych chtěl přesouvat jiné subvolume).)

    Tady je názorně ten problém s brute-force kopií způsobenou explicitním mount pointem na subvolume:

    btrfs subvolume create sub{1{,/{a,b}},2}
    mkdir mnt{1,2}
    
    { IFS='[ ]' read -r device subvolume _; read -r mountpoint; } < <(
        until findmnt -cfnoSOURCE -dbackward .; do cd ..; done
        echo "$PWD")
    
    mount -o subvol="${subvolume}${PWD#"${mountpoint}"}/sub1" "$device" mnt1
    mount -o subvol="${subvolume}${PWD#"${mountpoint}"}/sub2" "$device" mnt2
    
    mv sub1/a mnt1/  # mv: 'sub1/a' a 'mnt1/a' jsou jeden a tentýž soubor
    mv sub1/a mnt2/  # OK <<< POZOR, brute-force kopie!
    mv sub2/a sub1/  # OK <<< POZOR, brute-force kopie! (sub2/a je už jen adresář)
    mv sub1/b sub2/  # OK <<< zachová subvolume
    mv sub2/b sub1/  # OK <<< zachová subvolume
    
    umount mnt{1,2}
    rmdir mnt{1,2}
    
    btrfs subvolume delete sub1/a  # ERROR: Not a Btrfs subvolume: Invalid argument
    btrfs subvolume delete sub{2,1{/b,}}
    
    Řešení 1× (Milan Uhrák (tazatel))
    3.7.2024 13:12 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    …jeden sendne a druhý to bude přijímat ?

    Rozhodně NE. send a receive je potřeba pouze pro kopírování mezi různými FS; v rámci jednoho FS je to naprosto zbytečný overkill.

    Přesun a přejmenování subvolume — dle libosti!

    Subvolume lze v rámci jednoho filesystému přesouvat a přejmenovávat skoro jako běžné adresáře. Pojďme si to předvést!

    btrfs subvolume create sub1{,/a} sub2{,/b}
    ls -R sub{1,2}
    

    Jenom tak, čistě bezdůvodně, prohodíme „vnořené“ subvolume — ve skutečnostni nejsou nikam vnořené, viz níže —, nejjednoduším možným způsobem:

    mv sub2/b sub1/
    mv sub1/a sub2/
    ls -R sub{1,2}
    

    A teď to prohodíme zase zpátky, ale schválně jiným způsobem, jenom tak pro zajímavost a pro ilustraci a pro potěšení a pro zábavu a pro dobrý pocit typu „tak teď fakt používám Btrfs“:

    btrfs subvolume snapshot sub1/b sub2/b
    btrfs subvolume snapshot sub2/a sub1/a
    ls -R sub{1,2}
    btrfs subvolume delete sub1/b sub2/a
    ls -R sub{1,2}
    

    A teď ten zbývající bordel zase po sobě uklidíme:

    btrfs subvolume delete sub1{/a,} sub2{/b,}
    

    Subvolume u Btrfs ve skutečnosti nejsou „zahnízděné“!

    Klíčové pozorování z předchozí kapitoly: Zahnízdění do sub1 a sub2 je v tomto případě v podstatě zbytečné. Stejně jako jakékoliv pokusy o hierarchii subvolume.

    Na rozdíl od ZFS, který má paralelní strom subvolume, který přímo nesouvisí s adresářovým stromem souborového systému ani s mout pointy a je hierarchicý, Btrfs nic takového nemá.

    Subvolume a snapshoty v Btrfs (což je z hlediska použití skoro totéž) jsou ploché, bez hierarchie, identifikované pouze pomocí subvolid. Manuálová stránka o tom malinko mlží, ale v podstatě to tam je.

    A subvolume in BTRFS can be accessed in two ways:
    • like any other directory that is accessible to the user
    • like a separately mounted filesystem (options subvol or subvolid)
    In the latter case the parent directory is not visible and accessible. This is similar to a bind mount, and in fact the subvolume mount does exactly that.

    Tady ještě jednoduchý přehled, jak je to s tou atomicitou:

    Btrfs

    ZFS

    reprezentace subvolume z pohledu uživatele

    plochý prostor subvolid, kořenový subvolume lze nastavit pomocí set-default, ostatní mají implicitní mount pointy, které skoro (viz níže) po všech stránkách fungují jako mount -o bind, ne jako mount -o rbind

    stromovitá hierarchie subvolume, nezávislá na samotném souborovém systému, každý uzel v hierarchii má nastavitelný (implicitní) mount point, případně nemusí být namountovaný vůbec

    co představuje hierarchie subvolume

    nic; u Btrfs žádná viditelná hierarchie subvolume není; copy-on-write vztahy mezi různými subvolume a snapshoty (ať už lokálně vytvořenými nebo odzrcadlenými z receive) se uržují automaticky, bez vědomí uživatele

    vztah předek / zadek / potomek v copy-on-write hierarchii, částečně (v určitém smyslu) taky časovou osu, historii, kterou lze pomocí promote trochu přepisovat, asi jako git rebase

    rozsah atomicity snapshotů

    pouze a výhradně pro daný subvolume; další subvolume “uvnitř” jeho adresáře jsou úplně oddělené, neúčastní se snapshotů (daného subvolume), nejsou atomické v rámci snapshotů jejich “mount pointu”, prostě fungují stylem mount -o bind, ne stylem mount -o rbind.

    přes celý podstrom oddělené hierarchie subvolume, bez ohledu na jejich mount pointy a bez ohledu na to, zda jsou namountované; snapshot podstromu hierarchie subvolume je atomický přes všechny jeho pod-uzly

    subvolume a snapshot je totéž

    skoro jo, víceméně

    ne tak úplně, viz příkaz promote

    Kdo nevěří, ať tam běží!

    Cituji z manuálové stránky:

    What should be mentioned early is that a snapshotting is not recursive, so a subvolume or a snapshot is effectively a barrier and no files in the nested appear in the snapshot. Instead there's a stub subvolume (also sometimes empty subvolume with the same name as original subvolume, with inode number 2). This can be used intentionally but could be confusing in case of nested layouts.

    Tady je jednoduchý příklad (ne)atomicity (ne)hierarchických subvolume:

    btrfs subvolume create sub1{,/a}
    touch sub1/a/blah
    btrfs subvolume snapshot sub1 sub2
    

    Tedy ještě jednou: Subvolume (ani snapshoty) u Btrfs nejsou hierarchické; nefunguje to jako oddělená hierarchie subvolume u ZFS:

    ls -Rl sub{1,2}    # <<< sub2/a NENÍ subvolume a NEOBSAHUJE blah
    stat -c%i sub2/a   # <<< 2, přesně jak říká manuálová stránka!
    touch sub2/a/blah  # <<< zamítnuto! tohle není běžný adresář!
    

    Důvod, proč sub2/a není (ani) skutečný adresář (jakým by byl třeba běžný mount point) je předcházení omylům a nesrovnalostem, kdy někdo v daném adresáři buď něco očekává, nebo do něj něco zapisuje atd. Pojďme to zase uklidit! A povšimněme si, že sub2/a není třeba nijak uklízet, protože to není usbvolume:

    btrfs subvolume delete sub1{/a,} sub2
    

    Počkat! Ale co kdybychom chtěli mít také snapshot sub1/a v sub2/a? Inu, museli bychom ho odzrcadlit manuálně a neatomicky. Například:

    btrfs subvolume create sub1{,/a}
    touch sub1/a/blah
    btrfs subvolume snapshot sub1 sub2      # <<< Začátek race window!!1
    rmdir sub2/a                            # <<< Jo! Tohle jako fakt!
    btrfs subvolume snapshot sub1/a sub2/a  # <<< Konec race window!!!
    
    ls -Rl sub{1,2}       # <<< sub2/a JE subvolume a OBSAHUJE blah
    stat -c%i sub{1,2}/a  # <<< subvolid kořene (!= 2) (nedokumentováno)
    
    btrfs subvolume delete sub{1,2}{/a,}    # <<< Teď jsou obě sub{1,2}/a subvolume.
    

    V případě Btrfs se tedy atomicita snapshotů nepropaguje „přes mount point“.

    Je to důležité?

    V mnoha případech to není příliš podstatné; potřeba atomicity přes několik subvolume může svědčit o špatném návrhu adresářové struktury — například použití subvolume tam, kde by měly být obyčejné adresáře.

    Leč pravda je, že ZFS má v tomhle jednom ohledu jakousi drobnou „výhodu“ — nebo přinejmenším feature navíc.

    3.7.2024 13:52 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    Ty jo, to je vyčerpávající jako celodenní túra..

    Moc děkuji za shrnutí toho, jak to vlastně ve skutečnosti je... no prostě jsem byl předpokakaný, protože jsem nevěděl, co si můžu dovolit. M

    3.7.2024 12:26 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    No, já tedy nevím, jestli jste četl dotaz ... zkusil jsem prostý přesun /na snapshoty/ (mc) a funguje to taky. Top level se přečísluje z původní na novou ... jen teď nevím, jestli zůstalo stejně volného místa na disku, čili jestli se ze snaphotu nestala nějaká volně plovoucí subvoluma ... dá se to zjistit ?

    Toho přesunu jsem se bál, abych něco nedomrvil, ale nakonec to bylo rychlý.

    Teď ještě přesunout data z baseweb na web ale to asi nebude složité. Uvidíme.
    3.7.2024 16:37 Want
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo

    Ten dotaz byl napsán nejednoznačně. Jak uvedl Andrej, v rámci jednoho FS nic zvláštního netřeba. Ovšem v rámci jednoho disku může být těch FS více, a všechny mohou být namountované do jedné adresářové struktury a pak pochopitelně příkaz mv bude mít úplně odlišný efekt.

    10.7.2024 16:40 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Přesunutí BTRFS snapshotu na jiné místo
    aa ... takovou situaci jsem nepromyslel ..

    Ale děkuji, už to je přesunuté a zatím funguje.

    M

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.