Miten osioisin massamuistin

Linux.fista
Versio hetkellä 29. toukokuuta 2022 kello 17.16 – tehnyt Foliohattu (keskustelu | muokkaukset) (viittauksia muihin artikkeleihin lisätty)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Linuxiin muista Unix-järjestelmistä periytyvä hierarkkinen hakemistorakenne lähti alun perin oletuksesta, että jokaiseen hakemistoon voitiin liittää oma kiintolevy. Mikäli lisätilaa tarvittiin, uuteen hakemistoon voitiin aina liittää uusi levy.

Tällainen ratkaisu oli aika kallis, mutta silloiset Unix-koneet olivatkin miljoonien eurojen hintaisia, ja niitä oli käytössä vain suuryrityksissä ja yliopistoissa. Nykypäivänä useimpien SSD-asemien vähintään satojen mebitavujen kuin myös lukuisten tebitavujen kiintolevyjen aikakaudella tällainen ajattelu saattaa tuntua järjettömältä, mutta ratkaisut olivat erittäin vikasietoisia.

Asemaa osioitaessa kannattaa aluksi miettiä, mihin käyttöön tallennustila on tulossa:

  • Tarvitaanko jatkossa lisätilaa?
  • Halutaanko vikasietoisuutta? (Tätä tulisi miettiä jo ennen tallennusmedian hankintapäätöstä. Mikäli vikasietoisuutta tarvitaan, voi mahdollisesti RAID-pohjaisen levyjärjestelmän rakentaminen kannattaa.)

Esimerkkiosioinnit 256 gibitavun SSD-asemalle[muokkaa]

Työpöytäkäyttö[muokkaa]

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

  • Noin 10% SSD-aseman kokonaistilasta osioidaan varaamattomaksi, ns. "overprovisioning" joka pidentää SSD-aseman elinikää. Useimmat jakelut eivät tee tätä, joten tämä operaatio jää käyttäjän vastuulle tai mahdollisen SSD-aseman valmistajan SSD-hallintasovellukselle. Esim. 256 GiB kokoisen aseman tapauksessa tämä tarkoittaa n. 25,6 GiB osioimista erilleen.
  • 25 Gt varataan juuriosiolle (liitoskohta /)
  • Käytöstä ja keskusmuistin määrästä riippuen noin 0–4 Gt varataan virtuaalimuistille eli swap-osiolle tai -tiedostolle.
Kevyessä käytössä saattaa riittää, jos keskusmuistia ja swapia on yhteensä noin puoli gibitavua. Normaalikäytössä yhteismäärän on usein hyvä olla neljän gibitavun verran. Lisätietoja virtuaalimuistista löytyy artikkelista Swap.
Mikäli kone on kovassa kuormituksessa ja muisti loppuu, järjestelmä alkaa vapauttaa sitä kirjoittamalla sisältöä virtuaalimuistiin. Mikäli virtuaalimuistikin loppuu, järjestelmä muuttuu käyttökelvottoman hitaaksi ja tästä tilasta toipuminen on hankalaa, joskaan ei mahdotonta. Erillisen swap-osion teko nopeuttaa jossain määrin virtuaalimuistin käyttöä, mutta nykyisin onnistuu hyvin myös erillisen swap-tiedoston käyttö, jolloin virtuaalimuistille käytettävä tila otetaan tavalliselta levyosiolta (yleensä juuriosio). Ks. Swap-tiedoston luominen.
  • 50–500 MiB varataan käynnistysosiolle (liitoskohta /boot), jonne tallennetaan käynnistyslatain ja ytimet. Tämä tosin ei ole nykyaikaisissa koneissa välttämätöntä ellei suunnitelmissa ole asentaa esim. Windows toiseksi käyttöjärjestelmäksi tai salata tiedostojärjestelmää.
  • Loput tilasta varataan kotihakemisto-osion käyttöön (liitoskohta /home).
Tällä tavoin jakelun päivittäminen tai vaihto sekä varmuuskopiot onnistuvat helposti; tyhjennetään vain juuriosio, ja henkilökohtaiset tiedot säilyvät toisella osiolla. Asennuksen jälkeen /home-osio voidaan liittää takaisin järjestelmään fstabissa, mikäli asennusohjelma ei tee sitä automaattisesti.

Palvelinkäyttö[muokkaa]

Palvelinkäytössä seuraavanlainen osiointimalli on suositeltavampi:

  • 1 Gt varataan juuriosiolle (liitoskohta /)
  • 1 Gt varataan /tmp-osiolle
  • 4–8 Gt varataan /var-osiolle
  • 10–20 Gt varataan /usr-osiolle
  • 2 × keskusmuistin määrä varataan virtuaalimuistille eli swapille (ei liitoskohtaa)
  • 50 Mt varataan käynnistysosiolle (liitoskohta /boot)
  • loput varataan home-osiolle (liitoskohta /home).

Vinkkejä virittelijöille[muokkaa]

Väliaikaistiedot[muokkaa]

Tietoturvan kannalta voi olla soveliaampaa käyttää tmpfs-tiedostojärjestelmää liitoskohtiin /tmp ja /var/tmp.

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

Tällöin näiden hakemistojen sisällöt tallentuvat vain keskusmuistiin tai swapiin jotka tyhjenevät, kun kone käynnistetään uudelleen. Tällä tavalla varmistetaan, että esimerkiksi ssh-agent -ohjelman väliaikaistiedostot poistuvat levyiltä järjestelmän alasajon myötä. Voit halutessasi liittää nämä nosuid-, noexec-valinnoilla, jolloin niissä käännettyjä ohjelmia ei voi ajaa kukaan eikä niissä voi vaihtaa käyttäjä-id:tä (esim. su).

Älä varastoi tavaraa hakemistoihin /tmp tai /var/tmp. Mikäli niistä loppuu tila, kone voi pahimmassa tapauksessa kaatua.

Pääkäyttäjälle varattu tila[muokkaa]

Jotta järjestelmän käyttö onnistuisi pääkäyttäjälle silloinkin, kun levytila on lopussa, varataan jokaisesta ext2-, ext3- ja ext4-tiedostojärjestelmä oletuksena 5 % vain pääkäyttäjän käyttöön. Tämä on kuitenkin ongelma, mikäli tiedostojärjestelmä ei sisällä mitään ylläpitotoimien kannalta tärkeää, tai jos tiedostojärjestelmä on niin iso, että 5 % tarkoittaa satojen megatavujen tai gigatavujen hävikkiä.

Tällöin on järkevää muuttaa osuus liitoskohdat /, /tmp, /usr ja /var sisältävillä tiedostojärjestelmillä esimerkiksi yhteen prosenttiin ja muilla nollaan. Tämä tehdään antamalla mkfs- tai tune2fs-ohjelmille parametriksi -m prosentti, esimerkiksi tune2fs -m 0

Inode-taulujen viemä tila[muokkaa]

Käytettäessä isoja tiedostojärjestelmiä (esimerkiksi 200 gigatavua) ext2 tai ext3-tiedostojärjestelmällä inode-taulu vie jopa yli kymmenen gigatavua tilaa. Mikäli tiedostojärjestelmään tallennetaan suuria tiedostoja, ei inodeja välttämättä tarvita kymmeniä miljoonia. Inode-taulun kokoa voi säätää tiedostojärjestelmää luotaessa antamalla mkfs.ext3-ohjelmalle parametrina -N inodejen määrä. On kuitenkin huomattava, että mikäli inodet loppuvat, saa niitä lisää vain tekemällä tiedostojärjestelmä kokonaan uudestaan. Käytännössä inodeja tarvitaan saman verran kuin tiedostojärjestelmässä on tiedostoja. Esimerkiksi reiserfs:n kohdalla inodet luodaan tarpeen mukaan.

Virtuaaliset osiot[muokkaa]

Luomalla LVM:n avulla virtuaalisia osioita (loogisia taltioita), voidaan osioita luoda, poistaa ja yhdistää sekä niiden kokoa muuttaa perinteistä osiointia joustavammin.

Home-osio verkkolevyllä[muokkaa]

Jos verkossasi on levypalvelin, älä tee home-osiota työasemalle. Sen voi pitää mainiosti verkkolevyllä ja liittää käynnistettäessä esimerkiksi NFS:n yli.

Katso myös[muokkaa]