Miért és hogyan particionáljunk (linux)

Szakmai fórumokon rendszeresen felmerülő kérdés, és sokszor értetlenséget vált ki. Hogyhogy? Hát egybe. Én ilyenkor sírógörcsöt kapok, lekuporodok a sarokba és zokogva várom hogy elmúljon a sokk.

Mivel már sokszor ért ilyen markáns megrázkódtatás, ezért összeszedtem hogy miért és hogy hogyan.

Miért?

A miért kérdésre számos válasz szokott érkezni. Az egyik, hogy miért ne? (argumentum ad ignorantiam). A másik, hogy mert így szokás (argumentum ad verecundiam vagy populum). De azért vannak ennél jobb érvek is.

Sok víz lefolyt már a Dunán, de a biztonság még mindig egy olyan kérdés, amit muszáj figyelembe venni. Az, ha a különböző fájlrendszereket külön eszközre tesszük bizony alapvetően javít a biztonságon. Úgy hallottam hogy sajnos ennek ellenére még (vagy már) tanítják iskolában, fizetett tanfolyamon, hogy manapság már nincs szükség a particionálásra, pedig ezt a hibát újra és újra elkövetik. Tehát az első ok a biztonság.

A második, szintén nehezen támadható indok, hogy az egyes könyvtárak alatt merőben más jellegű adatok vannak. Anno ugyanis – nyilván bölcs megfontolás alapján – a fájlokat típusaik szerint válogatták szét. A /tmp könyvtár alá például csak olyan fájlok kerülnek, amik rövid ideig kellenek és általában intenzív írás-olvasásnak vannak kitéve. Ezzel ellentétben például a /usr alá a programok kerülnek, amiket jellemzően csak olvasni kell. A rendszer sebességét növelheti például hogy ha a megfelelő könyvtárakat más-más paraméterekkel csatoljuk, pl. noatime használatával.

Ha az egyes könyvtárak alatt nagyon eltérő fájlok vannak, akkor azokhoz is hozzá lehet igazítani a fájlrendszer paramétereit. Másféle paraméterezés jobb a sok-sok apró, és a kevés, de nagy fájlokat tartalmazó fájlrendszerek számára. Sőt, az egyes fájlrendszerek másképp viselkednek a különböző jellegű adatok kezelésekor (bár tény, hogy a folyamatos fejlesztéseknek köszönhetően ezek a különbségek folyamatosan csökkennek, de azért léteznek), illetve egyes fájlrendszereket (xfs) lehet – online –  töredezettség mentesíteni, másokat meg nem kell (muhaha). Pedig biztosan előállhat olyan helyzet, amikor kellene. A második ok tehát a rugalmasság.

A harmadik ok általában nem is szokott ok lenni egész addig, amíg tényleg elő nem fordul a baj. Egy-egy gonosz, elszabadult program képes elfogyasztani az adott fájlrendszeren minden üres helyet, akár úgy, hogy első ránézésre nem is látszik hogy ki volt az. Védelmet jelenthet a quota, de az is csak addig, amíg az illető program nem root-ként fut (és azért ez nem garantálható). Egy-egy program munkakönyvtárát (/var/log, /var/cache/squid, /var/lib/mysql, /var/atop, stb. stb.) vagy természetesen a /home (pláne a /tmp) könyvtárat külön fájlrendszerre helyezve biztosítható, hogy nem telíti tele a teljes rendszert egy-egy nekivadult alkalmazás. Pont így lehet védeni a fontos szolgáltatásokat is, azokat külön fájlrendszerre helyezve lehet biztosítani, hogy véletlenül se fogja egy másik program elenni előlük a helyet.

Mivel ami elromolhat az el is romlik, ezért nem árt felkészülni arra hogy mi lesz áramszünetkor, vagy hardverhiba esetén. A megfelelő könyvtárakat (/boot, /usr) csak olvashatóan csatolva jelentősen növelhetjük annak at esélyét hogy a rendszerük túlél egy áramszünetet vagy táphibát. A harmadik ok tehát a megbízhatóság.

Miért ne?

Nézzük milyen érveket szoktak felhozni ellene:

Otthonra minek?

Hát nem tudom, azért mert otthonra kell, miért legyen már alapjaiban szar az egész?

Nincs szükség rá

Ha a fenti érvek nem elegendőek, akkor valóban nem. Nincs olyan, hogy “csak egy kis fájlszerver”, arra nem kell. V.ö.: “Otthonra minek?”

Újabban nem kell, ezt tanították, ezt hallottam, a Józsi ezt mondta.

Haha.

Nem lehet, nincs értelme

Elképzelhetőek olyan esetek amikor egy nagyon-nagyon pici rendszert kell építeni, nagyon-nagyon zárt és kontrollált környezetben. Ilyenkor elképzelhető hogy nincs rá szükség. De a /tmp úgyis jobb ha külön van.

Bonyi megcsinálni

Először lehet hogy az, de mi a jobb, rászánni a tanulásra egy kis időt vagy utána a tákolt rendszert foltozgatni?

Holy-Water-iconHogyan?

Alapvetően manapság már el kellene felejteni a partíciókat. És itt nem az MBR – GPT váltásra gondolok, hanem arra, hogy a rendszer telepítésénél előre megjósoljuk hogy mi lesz később. Nem lehetetlen, de úgyse lesz jó. Különösen kár ezen törpölni, amikor van egy remek eszközünk, az LVM. Sokan úgy rettegnek az LVM-től mint az ördög a szenteltvíztől pedig marhára nem egy bonyolult valami. A lényege, hogy beledobálunk egy darab vagy akár egy rakat tárolóeszközt1 (akár fájlokat is lehet, ha valaki csak tesztelni akar), majd ebből a halomból kiosztjuk kinek-kinek a  jussát. Ha szűkre szabtuk az egyes területeket, akkor semmi gond, azokat bármikor könnyedén lehet növelni, vagy igen macerásan ugyan (ami nem az LVM miatt macerás, hanem a felette lévő fájlrendszer miatt) akár csökkenteni is.

Az LVM kapcsán nagyjából a fenti nevetséges ellenérvek szoktak előjönni, illetve az szokott még lenni a probléma, hogy az LVM-re úgy tekintenek mint egy olyan eszközre, amivel sok partíciót lehet csinálni. Pedig ez csak egy apróság. Igen hasznos funkciója a snapshot készítése, illetve nevetségesen egyszerű az egyik diskről a másikra átköltözni akár az egész rendszerrel, futás közben, kikapcsolás nélkül2. Akár a nagyobbról a kisebbre is, feltéve persze hogy elfér rajta a kiosztott terület. El lehet felejteni hogy “erszinkkel átmásolom” vagy a tar, cpio manuálok lelkes olvasgatását is, és persze a konzisztenciával se kell törődni, hiszen blokkszinten történik a mozgatás.

Láb, jegyzet
1. Sajnos a linuxos LVM halovány árnyéka annak ami pl. az AIX-ban van, ezért kissé másképp kell hozzá állni.
2. Már persze ha a vas ezt támogatja. De ha nem, akkor se mindegy hogy csak addig kell leállni egy-egy nyugis alkalommal míg az új disket beszerelem (majd a régit kiveszem).

You may also like...