LVM (thin provisioning)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Tzv. Thin Provisioning se u LVM objevil relativně nedávno, kolem r. 2009. Je to technologie, která umožňuje vytvářet a používat logické disky o větší kapacitě, než je dostupná kapacita fyzických blokových zařízení. Tato technologie využívá v principu toho, že jen výjimečně zabírají data na vyhrazeném logickém disku jeho plnou kapacitu.

U klasických "plnotučných" logických LVM oddílů, má každá z nich vyhrazen pro své extenty pevný rozsah, v jehož rámci si pak již souborový systém ukládá data po libosti. Většina datového prostoru ale zůstává nevyužita. Z hlediska ceny za jednotku datové kapacity je tento způsob hospodaření s datovým prostorem zbytečně rozmařilý, byť má svoje přednosti - označuje se jako tzv. fat či thick provisioning.

Thin Provisioning používajá COW mechanismus, co ukládá extenty s daty bezprostředně těsně za sebou, tak jak se postupně plní daty. Ovšem souborový systém, který je nad takovým logickým LVM oddílem, o tom neví. Díky tomu lze dělat logické oddíly s virtuální kapacitou, která je větší než skutečně dostupný fyzický datový prostor, aniž by bylo nutné předem řešit otázku hardwarové kapacity.

Data těchto logických oddílů jsou umístěna v tzv. poolu, což je ve své podstatě klasický logický LVM oddíl s přiděleným rozsahem extentů. Který lze v případě potřeby operativně zvětšit.

Upozornění Ačkoliv s balíčkem lvm2 u Debianu nainstalujete i knihovny protřebné pro práci s těmito tzv. thin disky, narazíte při jejich praktickém použití na problém, pokud nenainstalujete také balíček thin-provisioning-tools. Ten totiž není standardní součástí lvm2, ale je velmi důležitý, neboť obsahuje nástroje pro kontrolu a případnou opravu těchto thin oddílů.

Velikost thin oddílů je (na rozdíl od velikosti poolu) čistě virtuální a tak se pochopitelně může stát, že některý z nich "zbobtná" do té míry, že už není kam data jiných přírůstkových oddílů uložit, a to i přes to, že stále vykazují dostatek volného místa.

V takovém případě lze situaci operativně vyřešit roztažením poolu - je-li to ovšem fyzicky možné. Pokud to možné není, nezbývá než:

  • zmenšit, nebo úplně zrušit některý z plnotučných logických disků a tím uvolnit extenty pro roztažení poolu
  • zrušit nějaký nepotřebný snapshot přírůstkového logického oddílu - pokud existuje, případně rovnou celý přírůstkový oddíl, je-li zbytečný.
  • odstranit data některého z přírůstkových logických oddílů v rámci poolu.

metadata

Kromě extentů s daty přírůstkových logických LVM oddílů se do něj ukládají také extenty metadatového logického oddílu, ve kterých se udržují informace o tom, kam který extent patří a zda-li má být jeho datový prostor na fyzickém disku stále obsazen, či zda se může uvolnit.