ext4 snapshot támogatás - véleményezésre beküldve

Körülbelül egy évvel ezelőtt volt szó arról itt a HUP-on, hogy a CTERA snapshotting képességekkel ruházza fel a jó öreg ext3 fájlrendszert. A vállalat a kibővített fájlrendszert - a Next3-at - a CTERA C200 termékében vetette be. Most e munkára alapozva az eredeti szerző és társai arra vállalkoztak, hogy portolják a patcheket ext4-re.

Ted Ts'o, miután látta a szerző ext4 snapshot előadását az LPC 2010-en, azt ígérte, hogy beolvasztja a patcheket az ext4-be abban az esetben, ha azok nem okoznak semmilyen problémát kikapcsolt snapshot támogatás esetén.

A linux-ext4 listára véleményezésre most beküldött patchset - amely tartalmaz mindent, ami az core ext4 fájljaihoz szükséges a snapshot támogatáshoz - körülbelül 2 ezer sornyi kódot ad hozzá az ext4 kódbázisához. Ez a kód csak akkor kerülhet végrehajtásra, ha az alábbi feltételek teljesülnek:

  • az ext4 CONFIG_EXT4_FS_SNAPSHOT opcióval került lefordításra
  • a HAS_SNAPSHOT és EXCLUDE_BITMAP szolgáltatások beállításra kerültek a mke2fs/tune2fs segítségével

A maradék ~ 5000 sornyi kódot - amelyekre nincs szükség ha az ext4-et CONFIG_EXT4_FS_SNAPSHOT opció nélkül fordítják - a fejlesztők akkor küldik be, ha már érkeztek vélemények a most beküldött patchkészletre.

A bejelentés elolvasható itt.

Hozzászólások

Nem mondom, hogy nem lenne hasznos, de remélem tényleg csak akkor kerül be, ha stabil lesz... Így is elég sokáig tartott, amíg az ext4 stabilnak mondható lett, nem kéne megint megborítani.
--
Discover It - Have a lot of fun!

A filerendszer szintu snapshot miert jobb mint az LVM szintu? Ezt mar a ZFS-nel se ertettem... LVM szinten meg van oldva regota, es igy minden filerendszerrel mukodik. Vagy nem? Vagy a filrendszer szintu snapshot az mas logikai szinten mukodik es ennek van valami elonye? (Pl teljesitmenyben?)

Pl. ha file rendszer szinten kezeled a snapshotokat, akkor egyszerű megoldani az online snapshotot (és akár rollback-et is korábbi állapotra, lásd zfs), míg volume szintű snapshot esetén ez álltalában nem megoldható.
Továbbá egy copy on write file rendszer (lásd zfs) esetén nem kell külön dedikált (és gyakran előre fixált méretű) dirty-region sem, illetve gyakorlatilag korlátlan számú snapshotod lehet.

Két dologban jobb (pl. a ZFS):
- a megváltozó blokkok eredetijét nem kell lemásolni (azaz mindig csak az új blokkot írja ki), míg az LVM snapshot az emlékeim szerint átmásolja a blokkot, ha az eredeti helyén változtatsz; ebből az is következik, hogy ha több snapshot készül egymás után ugyanarról a helyről, akkor az eredeti megváltozása esetén mindegyik snapshothoz be kell másolni a változást, ez mind performancia, mind diszkterület szempontjából lehet problémás
- az LVM esetén a snapshot változások területét dedikálni kell a snapshotnak; ha kisebbre veszed, mint az eredeti terület, akkor kifuthatsz belőle, ha meg nincsenek változások, akkor meg elpocsékolt terület; ZFS esetén akár másodpercenként tudsz újabb és újabb snapshotot csinálni, ez alig fog több területet elfoglalni, mint ha csak egy snapshotot (az elsőt) csinálnál.