User Tools

Site Tools


wiki:os:linux:writable-snapshot-bez-lvm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
wiki:os:linux:writable-snapshot-bez-lvm [2018/01/22 15:33]
root
wiki:os:linux:writable-snapshot-bez-lvm [2018/01/22 15:37] (current)
root
Line 38: Line 38:
 xtable: xtable:
 0 975773156 linear /dev/loop0 0 0 975773156 linear /dev/loop0 0
 +</code>
 +
 +Tohle vytvoří blokové zařízení /dev/mapper/base s výšeuvedeným xtable mapováním:
 +<code bash>
 +dmsetup create base xtable
 +</code>
 +
 +Tohle vytvoří soubor dané velikosti (bude to odkládací prostor pro writable snapshot), pokud jde jen o dočasnost a vejde se to, dávám to do /dev/shm, velikost by měla být tak dvojnásobek předpokládaných úprav ve snapshotu - velikost těch úprav se odhaduje těžko, i jeden změněný sektor způsobí copy-on-write většího úseku.
 +<code bash>
 +dd if=/dev/zero of=fmodify bs=1M count=64
 +</code>
 +
 +Tohle ze souboru vyrobí blokové zařízení (tady by to nešlo dmsetupem, protože ten umí pracovat jen s blokovými zařízeními):
 +<code bash>
 +losetup /dev/loop1 /root/disk/fmodify
 +</code>
 +
 +FIXME Tohle je největší magie, vytvoří mapování typu copy-on-write snapshot, v podstatě to říká "při přístupu k novému zařízení (to se vytvoří v dalším kroku pomocí dmsetup create) použij daný úsek zařízení /dev/mapper/base, když tam někdo zapíše, tak změny ukládej do zařízení /dev/loop1 a to s granularitou 8 sektorů, tedy jakákoliv změna způsobí snapshot-mapping 4 kB (8*512B) bloku, ve kterém je ta změna. Při čtení to pak používá data z /dev/loop1, nejsou-li tam, pak z originálu, při zápisu jdou data vždy do /dev/loop1, pokud tam příslušné LBA už je, jen se přepíše, pokud není, udělá se nejdřív kopie bloku z originálu.
 +<code bash>
 +mtable:
 +0 975773156 snapshot /dev/mapper/base /dev/loop1 p 8
 +</code>
 +
 +Tohle vytvoří ten snapshot podle definiční tabulky:
 +<code bash>
 +dmsetup create snap mtable
 +</code>
 +
 +Tohle už je jen příklad, co se s tím pak dá dělat - fsck a rw mount fungují, ale nezapíše to ani bajt na původní zařízení /dev/sdb. Pokud dojde ten "snapshot modify space", začne to hlásit "device is read only".
 +<code bash>
 +reiserfsck --check /dev/mapper/snap
 +mount -t reiserfs /dev/mapper/snap /x
 </code> </code>
  
  
wiki/os/linux/writable-snapshot-bez-lvm.1516631604.txt.gz · Last modified: 2018/01/22 15:33 by root