102.1 Lecke 1
Tanúsítvány: |
LPIC-1 |
---|---|
Verzió: |
5.0 |
Témakör: |
102 A Linux telepítése és a csomagkezelés |
Fejezet: |
102.1 A merevlemez layout megtervezése |
Lecke: |
1/1 |
Bevezetés
Ahhoz, hogy ezt a fejezetet sikerrel teljesíthessük, meg kell értenünk a lemezek, partíciók, fájlrendszerek és kötetek közötti kapcsolatot.
Gondoljunk úgy a lemezre (vagy tárolóeszközre, mivel a modern eszközök egyáltalán nem tartalmaznak “lemezeket”), mint az adataink "`fizikai tárolójára"`.
Mielőtt egy lemezt a számítógép használhatna, fel kell particionálni. A partíció a fizikai lemez egy logikai részhalmaza, mint egy logikai “kerítés”. A particionálással a lemezen tárolt információkat “felosztjuk”, elkülönítve például az operációs rendszer adatait a felhasználói adatoktól.
Minden lemeznek legalább egy partícióra van szüksége, de szükség esetén több partíciónk is lehet, és a róluk szóló információkat egy partíciós táblázatban tároljuk. Ez a táblázat tartalmazza a partíció első és utolsó szektorára és típusára vonatkozó információkat, valamint az egyes partíciók további részleteit.
Minden partíción belül van egy fájlrendszer. A fájlrendszer azt írja le, hogy az információ ténylegesen hogyan tárolódik a lemezen. Ez az információ magában foglalja, hogyan vannak szervezve a mappák, milyen kapcsolat van közöttük, hol vannak az egyes fájlok adatai, stb.
A partíciók nem terjedhetnek ki több lemezre. A Logical Volume Manager (LVM) segítségével azonban több partíciót is össze lehet vonni, akár lemezek között is, egyetlen logikai kötetet alkotva.
A logikai kötetek elvonatkoztatnak a fizikai eszközök korlátaitól és lehetővé teszik, hogy a hagyományos partíciókhoz képest sokkal rugalmasabban kombinálható vagy szétosztható lemezterület “poolokkal” dolgozzon. Az LVM olyan helyzetekben hasznos, amikor egy partícióhoz több helyet kell hozzáadni anélkül, hogy az adatokat egy nagyobb eszközre kellene áttelepíteni.
Ebben a fejezetben megtanuljuk, hogyan tervezhetünk lemezparticionálási sémát egy Linux rendszerhez, fájlrendszereket és swap helyet rendelve külön partíciókhoz vagy lemezekhez, ha szükség van rá.
A partíciók és fájlrendszerek létrehozását és kezelését más leckékben tárgyaljuk. Ebben a fejezetben az LVM-et tekintjüt át, de a részletes magyarázat nem része a tananyagnak.
Csatolási pontok
Mielőtt egy fájlrendszert elérhetnénk Linuxon, azt csatolni (mountolni) kell. Ez azt jelenti, hogy a fájlrendszert a rendszer könyvtárfájának egy adott pontjához, az úgynevezett csatolási ponthoz (mount point) kell csatolni.
A csatolás után a fájlrendszer tartalma elérhető lesz a csatolási pont alatt. Képzeljük el például, hogy van egy partíció a felhasználók személyes adataival (a home mappáikkal), amely a /john
, /jack
és /carol
mappákat tartalmazza. Ha a /home
alá mountoljuk, akkor ezeknek a mappáknak a tartalma elérhető lesz a /home/john
, /home/jack
és /home/carol
alatt.
A csatolási pontnak léteznie kell a fájlrendszer mountolása előtt. Nem lehet a /mnt/userdata
alatti partíciót csatlakoztatni, ha ez a mappa nem létezik. Ha azonban a mappa létezik, és tartalmaz fájlokat, akkor ezek a fájlok nem lesznek elérhetők, amíg a fájlrendszer csatolását fel nem oldjuk (unmount). Ha kilistázzuk a mappa tartalmát, akkor a csatolt fájlrendszeren tárolt fájlokat fogjuk látni, nem pedig a mappa eredeti tartalmát.
A fájlrendszerek bárhová felcsatolhatók. Van azonban néhány jó gyakorlat, amelyet érdemes betartani a rendszer adminisztrációjának megkönnyítése érdekében.
Hagyományosan a /mnt
volt az a mappa, amely alá minden külső eszközt csatlakoztattak, és számos előre konfigurált horgonypont (anchor point) létezett az általános eszközökhöz, mint például a CD-ROM meghajtók (/mnt/cdrom
) és a floppy lemezek (/mnt/floppy
).
Ezt felváltotta a /media
, amely mára a felhasználó által eltávolítható adathordozók (pl. külső lemezek, USB flash meghajtók, memóriakártya-olvasók, optikai lemezek stb.) alapértelmezett csatolási pontja.
A legtöbb modern Linux disztribúcióban és asztali környezetben a cserélhető eszközök automatikusan a /media/USER/LABEL
alá lesznek csatlakoztatva, amikor a rendszerhez csatlakoznak, ahol a USER
a felhasználónév, a LABEL
pedig az eszköz címkéje. Például a john
felhasználó által csatlakoztatott FlashDrive
feliratú USB flash meghajtó a /media/john/FlashDrive/
alá lesz csatlakoztatva. Ennek kezelése az asztali környezettől függ.
Ennek ellenére, amikor manuálisan kell csatolnunk egy fájlrendszert, jó gyakorlat, hogy a /mnt
alá csatoljuk. A Linux alatt a fájlrendszerek csatolását és leválasztását vezérlő konkrét parancsokat egy másik leckében tárgyaljuk.
A dolgok szeparált elrendezése
Linuxon vannak olyan mappák, amelyeket érdemes külön partíciókon tartani. Ennek több oka is van: például a bootloaderrel kapcsolatos (a /boot
alatt tárolt) fájlok boot partíción tartásával biztosíthatjuk, hogy a rendszer akkor is képes legyen elindulni, ha a root fájlrendszer összeomlik.
Ha a felhasználó személyes mappáját (a /home
alatt) külön partíción tartjuk, könnyebbé válik a rendszer újratelepítése anélkül, hogy a felhasználói adatokhoz véletlenül hozzányúlnánk. A web- vagy adatbázis-kiszolgálóhoz kapcsolódó adatok (általában a /var
alatt) külön partíción (vagy akár külön lemezen) tartása megkönnyíti a rendszeradminisztrációt, ha több lemezterületet kell hozzáadni az ilyen felhasználási esetekhez.
Teljesítménybeli okai is lehetnek annak, hogy bizonyos mappákat külön partíciókon tartsunk. Lehet, hogy a gyökér fájlrendszert (/
) egy gyors SSD-n szeretnénk tartani, a nagyobb mappákat, mint például a /home
és /var
pedig lassabb merevlemezeken, amelyek sokkal több helyet kínálnak a költségek töredékéért.
A boot partíció (/boot
)
A bootpartíció az operációs rendszer betöltéséhez a bootloader által használt fájlokat tartalmazza. Linux rendszereken a bootloader általában a GRUB2 vagy régebbi rendszereken a GRUB Legacy. A partíció általában a /boot
alá van csatolva, a fájlokat pedig a /boot/grub
alatt tárolja.
Gyakorlatilag nincs szükség boot partícióra, mivel a GRUB a legtöbb esetben képes csatlakoztatni a gyökérpartíciót (/
) és betölteni a fájlokat egy külön /boot
mappából.
A biztonság érdekében azonban szükséges lehet egy külön bootpartíció (amely biztosítja, hogy a rendszer akkor is elinduljon, ha a root fájlrendszer összeomlik), vagy ha olyan fájlrendszert szeretnénk használni, amelyet a bootloader nem ért a root partícióban, vagy ha nem támogatott titkosítási vagy tömörítési módszert használ.
A rendszerindító partíció általában az első partíció a lemezen. Ennek az az oka, hogy az eredeti IBM PC BIOS a lemezeket cilinderek, fejek és szektorok (CHS) segítségével címezte, maximum 1024 cilinderrel, 256 fejjel és 63 szektorral, ami 528 MB maximális lemezméretet eredményezett (MS-DOS esetén 504 MB). Ez azt jelenti, hogy minden, ami ezen a határon túl van, nem lenne elérhető a régi rendszereken, hacsak nem használunk más lemezcímzési sémát (például Logical Block Addressing, LBA).
A maximális kompatibilitás érdekében a bootpartíció általában a lemez elején található és az 1024-es cilinder (528 MB) előtt ér véget, így biztosítva, hogy bármi történjen is, a gép mindig be tudja tölteni a kernelt.
Mivel a bootpartíció csak a bootloader, a kezdeti RAM lemez és a kernel imagek számára szükséges fájlokat tárolja, a mai szabványok szerint elég kicsi is lehet. A jó méret 300 MB körül van.
Az EFI rendszerpartíció (ESP)
Az EFI rendszerpartíciót (ESP) az Unified Extensible Firmware Interface (UEFI) rendszeren alapuló gépek használják a telepített operációs rendszerek rendszerbetöltőinek és kernel imageinek tárolására.
Ez a partíció FAT-alapú fájlrendszerűre van formázva. A GUID partíciós táblával particionált lemez globálisan egyedi azonosítója "C12A7328-F81F-11D2-BA4B-00A0C93EC93B". Ha a lemez MBR particionálási séma szerint lett formázva, a partíció azonosítója 0xEF
.
A Microsoft Windows-t futtató gépeken ez a partíció általában az első a lemezen, bár ez nem kötelező. Az ESP-t az operációs rendszer hozza létre (vagy tölti fel) a telepítéskor, és a Linux rendszereken a /boot/efi
alá van csatolva.
A /home
partíció
A rendszerben minden felhasználónak van egy saját mappája a személyes fájlok és beállítások tárolására, és ezek többsége a /home
alatt található. Általában a home mappa megegyezik a felhasználónévvel, így a John felhasználó mappája a /home/john
alatt található.
Vannak azonban kivételek. Például a root felhasználó otthoni mappája a /root
, és néhány rendszerszolgáltatásnak máshol is lehet home mappája.
Nincs szabály a /home
mappa partíciójának (a home partíció) méretének meghatározására. Figyelembe kell venni a rendszerben lévő felhasználók számát és a használat módját. Egy olyan felhasználó, aki csak webböngészéssel és szövegszerkesztéssel foglalkozik, kevesebb helyet igényel, mint például egy olyan, aki videószerkesztéssel foglalkozik.
Változó adatok (/var
)
Ez a mappa tartalmazza a “változó adatokat”, vagyis azokat a fájlokat és mappákat, amelyekbe a rendszernek képesnek kell lennie írni a működés során. Ide tartoznak a rendszernaplók (a /var/log
mappában), az ideiglenes fájlok (/var/tmp
) és a gyorsítótárazott alkalmazási adatok (a /var/cache
mappában).
A /var/www/html
az Apache webkiszolgáló adatfájljainak alapértelmezett mappája, a /var/lib/mysql
pedig a MySQL szerver adatbázisfájljainak alapértelmezett helye. Azonban mindkettő megváltoztatható.
A stabilitás az egyik jó ok arra, hogy a /var
-t külön partícióra helyezzük. Sok alkalmazás és folyamat ír a /var
-ba és alkönyvtáraiba, mint például a /var/log
-ba vagy a /var/tmp
-be. Egy rossz működésű folyamat addig írhat adatokat, amíg nem marad szabad hely a fájlrendszerben.
Ha a /var
a /
alatt van, ez kernelpánikot és a fájlrendszer sérülését okozhatja, ezzel olyan helyzetet idézve elő, amelyből nehéz helyreállni. Ha azonban a /var
egy külön partíció alatt van, akkor a gyökér fájlrendszer nem lesz érintett.
A /home
-hoz hasonlóan a /var
partíció méretének meghatározására sincs általános szabály, mivel az a rendszer használatától függően változik. Egy otthoni rendszeren lehet, hogy csak néhány gigabájtot vesz igénybe. Egy adatbázis- vagy webszerver esetében azonban sokkal több helyre lehet szükség. Ilyen esetekben bölcs dolog lehet a /var
partíciót a gyökérpartíciótól eltérő lemezen elhelyezni, ami további védelmet nyújt a fizikai lemez meghibásodása ellen.
Swap
A swap partíciót arra használják, hogy szükség szerint memóriaoldalakat váltson a RAM-ból a lemezre. Ennek a partíciónak meghatározott típusúnak kell lennie, és a megfelelő mkswap
nevű segédprogrammal kell beállítani, mielőtt használni lehetne.
A swap partíciót nem lehet a többihez hasonlóan csatlakoztatni, ami azt jelenti, hogy nem lehet normál mappaként hozzáférni és megnézni a tartalmát.
Egy rendszernek több swap partíciója is lehet (bár ez nem gyakori) és a Linux támogatja a swap fájlok használatát is a partíciók helyett, ami hasznos lehet a swap hely gyors növeléséhez, ha szükséges.
A swap partíció mérete vitatott kérdés. A Linux korai időszakából származó régi szabály (“a RAM kétszerese”) már nem feltétlenül érvényes - attól függ, hogy a rendszert hogyan használják, és mennyi fizikai RAM van benne.
A Red Hat Enterprise Linux 7 dokumentációjában a Red Hat a következőket ajánlja:
RAM mennyisége | Javasolt Swap-méret | Javasolt Swap-méret hibernálással |
---|---|---|
< 2 GB RAM |
A RAM duplája |
A RAM háromszorosa |
2-8 GB RAM |
A RAM mennyiségével megegyező |
A RAM duplája |
8-64 GB RAM |
Legalább 4 GB |
A RAM másfélszerese |
> 64 GB RAM |
Legalább 4 GB |
Nem javasolt |
Természetesen a swap mennyisége függhet a munkaterheléstől. Ha a gépen kritikus szolgáltatást, például adatbázis-, web- vagy SAP-kiszolgálót futtatunk, célszerű az ilyen szolgáltatások dokumentációjában (vagy a szoftver gyártójánál) ellenőrizni az ajánlást.
Note
|
A swap-partíciók és swap-fájlok létrehozásával és engedélyezésével kapcsolatban lsd. az LPIC-1 104.1. fejezetét. |
LVM
Már volt róla szó, hogy a lemezek egy vagy több partícióba vannak szervezve és minden partíció tartalmaz egy fájlrendszert, amely leírja a fájlok és a hozzájuk tartozó metaadatok tárolásának módját. A particionálás egyik hátránya, hogy a rendszergazdának előre el kell döntenie, hogy az eszközön rendelkezésre álló lemezterületet hogyan osztja el. Ez később kihívást jelenthet, ha egy partíció az eredetileg tervezettnél több helyet igényel. A partíciók természetesen átméretezhetők, de ez nem biztos, hogy lehetséges, ha például nincs szabad hely a lemezen.
A Logical Volume Management (LVM) a tároló-virtualizáció egy formája, amely a rendszergazdáknak a hagyományos particionálásnál rugalmasabb megközelítést kínál a lemezterület kezeléséhez. Az LVM célja, hogy megkönnyítse a végfelhasználók tárolási igényeinek kezelését. Az alapegység a Physical Volume (PV - fizikai kötet), amely egy blokkeszköz a rendszeren, mint például egy lemezpartíció vagy egy RAID-tömb.
A PV-ket Volume Groups-okba (VG - kötetcsoport) csoportosítják, amelyek absztrahálják a mögöttes eszközöket, és egyetlen logikai eszköznek tekinthetők, az egyes PV-k együttes tárolókapacitásával.
A kötetcsoport minden egyes kötete fix méretű darabokra van felosztva, amelyeket extenteknek nevezünk. A PV-n található kiterjedéseket Physical Extents (PE), míg a logikai köteteken találhatóakat Logical Extents (LE) nevezzük. Általában minden logikai kiterjedés egy fizikai kiterjedéshez van hozzárendelve, de ez változhat, ha olyan funkciókat használunk, mint például a lemeztükrözés.
A kötetcsoportok logikai kötetekre (LV) oszthatók, amelyek funkcionálisan a partíciókhoz hasonlítanak, de rugalmasabban működnek.
A logikai kötet méretét létrehozásakor megadott méretét valójában a fizikai kiterjesztések mérete (alapértelmezés szerint 4 MB) és a kötetben lévő kiterjesztések számának szorzata határozza meg. Ebből könnyen érthető, hogy például egy logikai kötet növeléséhez a rendszergazdának csak annyi a dolga, hogy a kötetcsoportban rendelkezésre álló állományból több extentet adjon hozzá. Hasonlóképpen, az LV zsugorításához extenteket lehet eltávolítani.
A logikai kötet létrehozása után az operációs rendszer úgy tekint rá, mint egy normál blokkeszközre. Egy eszköz jön létre a /dev
könyvtárban, amelynek neve /dev/VGNAME/LVNAME
, ahol a VGNAME
a kötetcsoport neve, az LVNAME
pedig a logikai kötet neve.
Ezeket az eszközöket szabványos segédprogramokkal (például mkfs.ext4
) lehet formázni a kívánt fájlrendszerrel, és a szokásos módszerekkel lehet csatlakoztatni, akár manuálisan a mount
paranccsal, akár automatikusan az /etc/fstab
fájlhoz való hozzáadással.
Gyakorló feladatok
-
Linux rendszereken hol vannak a GRUB bootloader fájljai?
-
Hol végződjön a boot partíció, hogy a számítógép mindig be tudja tölteni a kernelt?
-
Általában hová van mountolva az EFI partíció?
-
Ha manuálisan csatlakoztatunk egy fájlrendszert, általában melyik mappa alá kell csatlakoztatni?
Gondolkodtató feladatok
-
Mi a legkisebb egység egy kötetcsoporton (VG) belül?
-
Hogyan határozható meg a logikai kötet (LV) mérete?
-
Egy MBR partícionálási sémával formázott lemezen mi az EFI rendszerpartíció azonosítója?
-
A swap partíciókon kívül hogyan lehet gyorsan növelni a swap helyet egy Linux rendszerben?
Összefoglalás
Ebben a leckében a particionálásról tanultunk és arról, hogy mely mappákat tartják általában külön partíciókban, és hogy mi ennek az oka. Emellett áttekintést kaptunk az LVM-ről (Logical Volume Management), és arról, hogy a hagyományos partícionáláshoz képest hogyan kínál rugalmasabb módot az adatok és a lemezterület kiosztására.
A következő fájlokról, kifejezésekről és segédprogramokról volt szó:
/
-
A Linux gyökér fájlrendszere.
/var
-
A “változó adatok” standard helye, olyan adatoké, amelyek az idő múlásával nőhetnek és csökkenhetnek.
/home
-
Az állandó felhasználók home könyvtárainak a standard szülőmappája.
/boot
-
A rendszerbetöltő fájlok, a Linux kernel és a kezdeti RAM lemez szabványos helye.
- EFI System Partition (ESP)
-
Az UEFI-t megvalósító rendszerek használják a rendszer indítófájljainak tárolására.
- Swap hely
-
A kernelmemória-oldalak cseréjére szolgál, ha a RAM nagymértékben igénybe van véve.
- Csatolási pontok
-
Olyan mappák, ahová egy eszköz (mint például egy merevlemez) csatolható.
- Partíciók
-
A merevlemez felosztásai.
Válaszok a gyakorló feladatokra
-
Linux rendszereken hol vannak a GRUB bootloader fájljai?
A
/boot/grub
alatt. -
Hol végződjön a boot partíció, hogy a számítógép mindig be tudja tölteni a kernelt?
Az 1024-es cilinder előtt.
-
Általában hová van mountolva az EFI partíció?
A
/boot/efi
alá. -
Ha manuálisan csatlakoztatunk egy fájlrendszert, általában melyik mappa alá kell csatlakoztatni?
Az
/mnt
alá, azonban ez nem kötelező. Bármely mappa alá csatolhatunk partíciót.
Válaszok a gondolkodtató feladatokra
-
Mi a legkisebb egység egy kötetcsoporton (VG) belül?
A kötetcsoportok extentekre vannak felosztva.
-
Hogyan határozható meg a logikai kötet (LV) mérete?
A fizikai extentek méretének és a kötetben lévő extentek számának a szorzatával.
-
Egy MBR partícionálási sémával formázott lemezen mi az EFI rendszerpartíció azonosítója?
0xEF
az ID. -
A swap partíciókon kívül hogyan lehet gyorsan növelni a swap helyet egy Linux rendszerben?
Swap fájlok segítségével.