ext4 másolása: 2 TB helyre ~100 TB adat

 ( kumgabor | 2019. május 29., szerda - 19:57 )

Sziasztok!

Egy szerveremen adott egy felcsatolt és használatban lévő ext4 fájlrendszer. Erről szeretném az adatokat átmásolni egy másik winyóra, ugyanúgy ext4-re. Az adatok között nagyon sok hardlink van, a 2TB-os winyón kb. 100 TB-nyi adat van így.
(Ezek rsync-es biztonsági mentések, ahol az utolsó mentés óta nem változott adatok hardlinkelve vannak)

Lecsatolás nélkül kellene átmásolnom az adatokat úgy, hogy közben nagy számítási teljesítményem sincs. Ezt blokkonként lehetne egyszerűen, de ha jól értem, ahhoz le kellene csatolni, amit meg nem tehetek meg, mert kellenek a rajta lévő adatok.

Van ötletetek?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Én így csinálnám, vagy bejön, vagy nem: mount -o ro,dd(rescue), mount -o rw, azán a másolatra egy fsck gondolom nem árt.

Aztán hogy megéri-e a bűvészkedést, azt meg nem mondom.

rsync kezeli a hardlinkeket is. Amúgy ami szoftver ezt a diszket telerakta, az is át tudna vinni mindent valószínűleg.

Valószínűleg ott akar nyerni, hogy ne kelljen mondjuk százmillió fájlt másolni (még ha az hardlink is, annyiszor meg kell csinálni), hanem valami faék egyszerű módon, szekvenciális olvasás-írással áthussantani a cuccost. Nem tuti hogy megéri.

igen, erre gondoltam.

--
Kum Gábor
Linux póló | Ciprus | Matek korrepetálás

rsync tudja vinni a hardlinkeket is

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

lecsatolás nélkül átmásolni az adatokat: rsync.
Nagy számítási teljesítményed sincs: nice rsync

btw az csak nekem tűnt fel hogy 2TB-os winyón van 100TB -nyi adat? Ez így hogy? Hardlink ide-vagy-oda sehogy se jön ki ...

Szerintem arra gondolt, hogy ha mondjuk csak simán átmásolná, akkor 100 TB lenne a hardlinkek miatt.

ah akkor én kérek elnézést ^^ :)

Idézet:
dd if=/dev/zero of=foo.bar bs=1 count=0 seek=100T

Még hardlink se kellett :)

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

:)

Olyat lehet csinálni Linux alatt, hogy mondjuk egy fájlba "mappelsz" valamit?
Mondjuk egy fájl 10.byte-ja mindig egy másik fájl 1.byte-ja legyen.
Vagy még jobb: a fájl 10.byte-ja legyen random.

Erről jutott eszembe (fuzzy bit volt a lemezen):
Dungeon Master - Clever Floppy Disk Anti-Piracy | MVG
https://youtu.be/VheNpiSZxf0

elvileg:
cp --recursive --preserve=links sourcedir targetdir

az mc-vel való másolás is kezeli a hardlinkeket.

a dd-vel való tükrözéshez nem feltétlenül fontos lecsatolni.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.

csinalj egy raid1-et, vard meg mig besyncel majd b*szd ki a masik felet es bontsd le :D

lol :D

ha lvm-en van az fs akkor snapshotold le es a snapshot-ot mar tudod dd-zni minden tovabbi nelkul.

rsync -aH /honnan /hova

Igen, marad ez a megoldás. Azt reméltem, hogy sikerül olyat találnom, amivel nem kell átfésülni az összes fájlt, ami hetekig is eltarthat.

--
Kum Gábor
Linux póló | Ciprus | Matek korrepetálás

Nyilván minimum listázni kell minden mappát, és onnan már látszik, hogy melyik fájl ment már át és melyik nem. A tartalomba meg nyilván nem kell belenézni. Szerintem ez szükséges és elégséges, és valószínűleg az rsync is ezt teszi (de persze nem tudom, hogy nem béna-e a kódja esetleg). Az igaz, hogy egy blokk szintű másolat gyorsabb lenne ettől.

fölösleges rsync-el bajlódni, van jobb módszer:

cp --recursive --preserve=links /sourcedir /targetdir

... ugye, a hardlinkeket a linux kernel szinten ismeri, így a hardlink az hardlink marad, a fájl meg fájl, nincs felesleges tartalom-hasonlítgatás. Az átmásolt link pedig az átmásolt fájlra mutat.
így csak a simbolic linkekkel lehet probléma, ha az nem relatív módon van címezve. (mondjuk, erre is van valami kapcsoló)

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.

Köszönöm mindenkinek a segítséget.

--
Kum Gábor
Linux póló | Ciprus | Matek korrepetálás