Miten osioisin massamuistin

Linux.fista
Versio hetkellä 29. maaliskuuta 2006 kello 05.14 – tehnyt 220.116.235.113 (keskustelu)
Siirry navigaatioon Siirry hakuun

UNIX järjestelmistä periytyvä hierarkinen hakemistorakenne lähti oletuksesta, että jokaiseen hakemistoon voitiin liittää oma kovalevy. Mikäli lisätilaa tarvittiin, uuteen tehtyyn hakemistoon voitiin aina mountata uusi levy. Tuollainen ratkaisu oli hieman kallis, mutta silloiset UNIX-koneet olivatkin miljoonien eurojen hintaisia toteutuksia ja niitä oli käytössä vain suuryrityksissä sekä yliopistoissa.

Nykyisillä kovalevyjen kokoluokilla tällainen ajattelu tuntuu hieman järjettömältä, mutta em. toteutetut ratkaisut olivat erittäin vikasietoisia.

Kiintolevyn osioinnissa kannattaa käyttää seuraavia periaatteita:

Aluksi mietitään mihin käyttöön levytila on tulossa:

  • Tarvitaanko jatkossa lisätilaa ?
  • Halutaanko vikasietoisuutta ?
Tätä tulisi miettiä jo ennen kovalevyn ostamispäätöstä.
Mikäli vikasietoisuudelle on tarvetta, kannattaa rakentaa RAID-pohjainen levyjärjestelmä.


Esimerkkiosiointeja 80 gigatavun kiintolevylle

Työpöytäkäytössä seuraavalla tavalla osioitaessa voi helposti vaihtaa Linux-jakelua ilman, että /home:n sisältöä tarvitsee kopioida talteen esimerkiksi optiselle medialle tai toiselle levylle.

  • 10 Gt juuri (liitoskohta /)
  • swap (eli virtuaalimuisti) 0,5 Gt..3 Gt riippuen keskusmuistin määrästä (ei liitoskohtaa)

Swapin minimimääränä voidaan pitää 1x muistin määrä + 10%, mutta sen merkitys ei ole niin oleellinen nykyisin kun muisti on halpaa. Mikäli kone on kovassa kuormituksessa, ja muisti loppuu, sitä aletaan vapauttamaan kirjoittamalla sisältö swappiin. Mikäli swap loppuu, järjestelmä muuttuu käyttökelvottoman hitaaksi, ja tästä tilasta toipuminen on hankalaa joskaan ei mahdotonta.

  • 50-100 Mt käynnistysosio (liitoskohta /boot) jonne tallennetaan käynnistyslatain ja ytimet. Tämä ei ole nykyaikaisten koneiden kanssa välttämätön.
  • loput home (liitoskohta /home) Tämä siis kannattaa säilyttää päivittäessä tai uudelleen asennettaessa käyttöjärjestelmää


Palvelinkäytössä seuraavanlainen osiointimalli on suositeltavampi:

  • 1 Gt juuri (liitoskohta /)
  • 1 Gt tmp (liitoskohta /tmp)
  • 4-8 Gt var (liitoskohta /var)
  • 10-20 Gt usr (liitoskohta /usr)
  • keskusmuistin määrä * 2 swap (eli virtuaalimuisti, ei liitoskohtaa)
  • 50 Mt käynnistysosio (liitoskohta /boot)
  • loput home (liitoskohta /home)


Vinkkejä virittelijöille

Tietoturvan kannalta voi olla soveliaampaa käyttää tmpfs tiedostojärjestelmää /tmp /var/tmp liitoskohtaan.

mount tmpfs /tmp -t tmpsf -o size=<koko megoina>m 
mount tmpfs /var/tmp -t tmpsf -o size=<koko megoina>m 

Tällöin hakemistojen sisällöt säilytetään virtuaalimuistissa ja koneen uudelleen käynnistyksen yhteydessä hakemistojen sisältö tyhjennetään. Tällä varmistetaan esim. ssh-agent ohjelman väliaikaistiedostojen poistuminen levyiltä järjestelmän alasajon jälkeen. Voit halutessasi mountata nämä nosuid,noexec valinnoilla, jolloin niissä käännettyjä ohjelmia ei voi ajaa kukaan, eikä niissä voi vaihtaa käyttäjä-idtä (esim. su ).

Älä varastoi tavaraa /tmp tai /var/tmp alla. Mikäli näistä kansioista loppuu tila, kone voi pahimmassa tapauksessa kaatua.

Jos käytät linuxia levypalvelimena ja levyjärjestelmänä ext2 tai ext3, kannattaa tiputtaa tallennustilaosiolta pääkäyttäjälle varattu tila pois. Normaalisti mkfs varaa tehtävästä partitiosta 5% tilasta pääkäyttäjän käyttöön. Sitä tarvitaan järjestelmän toiminnan varmistamiseksi mikäli levytila loppuu. Suuremmista varastopartitioista tuo 5% varaus ei ole tarpeellista eikä järkevääkään, 1Tb partitiosta tuo 5% haukkaisi jo 50 Gigaa talletustilaa pois. Periaatteessa tuon 5% tarvitsee vain /, /tmp, /usr ja /var liitoskohdille. Tilanvaraus voidaan jättää pois antamalla parametrinä mkfs ohjelmalle -m 0.

Jos verkossasi on levypalvelin, älä tee home-osiota työasemalle. Sen voi pitää mainiosti verkkolevyllä, ja mountata käynnistäessä nfssän yli.