Ero sivun ”Miten osioisin massamuistin” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Vähän kielenhuoltoa.)
p (puukuitulevyt kiintolevyiksi)
(17 välissä olevaa versiota 9 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Unix-järjestelmistä periytyvä [[Linuxin_hakemistorakenne | hierarkkinen hakemistorakenne]] lähti oletuksesta, että jokaiseen hakemistoon voitiin liittää oma kovalevy. Mikäli lisätilaa tarvittiin, uuteen hakemistoon voitiin aina liittää eli mountata (engl. ''mount'') uusi levy.
Linuxiin muista Unix-järjestelmistä periytyvä [[Linuxin_hakemistorakenne | hierarkkinen hakemistorakenne]] lähti alun perin oletuksesta, että jokaiseen [[hakemisto]]on voitiin [[mount|liittää]] oma kiintolevy. Mikäli lisätilaa tarvittiin, uuteen hakemistoon voitiin aina liittää uusi levy.
Tuollainen ratkaisu oli aika kallis, mutta silloiset Unix-koneet olivatkin miljoonien eurojen hintaisia, ja niitä oli käytössä vain suuryrityksissä ja yliopistoissa. Nykyisen kokoisten kovalevyjen yhteydessä tuollainen ajattelu tuntuu aika järjettömältä, mutta ratkaisut olivat erittäin vikasietoisia.
 
Tällainen ratkaisu oli aika kallis, mutta silloiset Unix-koneet olivatkin miljoonien eurojen hintaisia, ja niitä oli käytössä vain suuryrityksissä ja yliopistoissa. Nykyisen kokoisten kiintolevyjen yhteydessä tällainen ajattelu saattaa tuntua järjettömältä, mutta ratkaisut olivat erittäin vikasietoisia.


Kiintolevyä osioitaessa kannattaa aluksi miettiä, mihin käyttöön levytila on tulossa:
Kiintolevyä osioitaessa kannattaa aluksi miettiä, mihin käyttöön levytila on tulossa:
Rivi 6: Rivi 7:
* Tarvitaanko jatkossa lisätilaa?
* Tarvitaanko jatkossa lisätilaa?


* Halutaanko vikasietoisuutta? (Tätä tulisi miettiä jo ennen kovalevyn ostamispäätöstä. Mikäli vikasietoisuutta tarvitaan, kannattaa rakentaa [[RAID]]-pohjainen levyjärjestelmä.)
* Halutaanko vikasietoisuutta? (Tätä tulisi miettiä jo ennen kiintolevyn ostamispäätöstä. Mikäli vikasietoisuutta tarvitaan, kannattaa rakentaa [[RAID]]-pohjainen levyjärjestelmä.)


== Esimerkkiosioinnit 80 gigatavun kiintolevylle ==
== Esimerkkiosioinnit 80 gigatavun kiintolevylle ==
===Työpöytäkäyttö===
Työpöytäkäytössä seuraavalla tavalla osioitaessa voi helposti vaihtaa Linux-[[jakelu]]a, ilman että ''/home''-osion sisältöä tarvitsee kopioida talteen esimerkiksi optiselle medialle tai toiselle levylle.


'''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 levylle.
* 10 Gt varataan [[juuriosio]]lle (liitoskohta ''/'')
* Käytöstä ja keskusmuistin määrästä riippuen noin 0–3 Gt varataan virtuaalimuistille eli swapille (ei liitoskohtaa).
:Kevyessä käytössä saattaa riittää, jos keskusmuistia ja swapia on yhteensä noin puoli gigatavua. Normaalikäytössä yhteismäärän on usein hyvä olla reilun gigatavun verran. Lisätietoja virtuaalimuistista löytyy artikkelista [[Swap]].  


* 10 Gt varataan juuriosiolle (liitoskohta ''/'')
: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]].
* 0,5–3 Gt varataan virtuaalimuistille eli swapille (ei liitoskohtaa). Virtuaalimuistin minimimääräksi voidaan laskea ''1 × keskusmuistin määrä + 10 %'', mutta sen merkitys ei ole niin oleellinen nykyisin, kun muisti on halpaa. 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.
* 50–100 Mt varataan käynnistysosiolle (liitoskohta ''/boot''), jonne tallennetaan [[käynnistyslatain]] ja [[ydin|ytimet]]. Tämä tosin ei ole nykyaikaisissa koneissa välttämätöntä.
* 50–100 Mt varataan käynnistysosiolle (liitoskohta ''/boot''), jonne tallennetaan käynnistyslatain ja ytimet. Tämä tosin ei ole nykyaikaisissa koneissa välttämätön.
* Loput tilasta varataan ''home''-osion käyttöön (liitoskohta ''/home'').  
* Loput tilasta varataan ''home''-osion käyttöön (liitoskohta ''/home''). Tämän sisältö siis kannattaa säilyttää päivitettäessä tai uudelleen asennettaessa käyttöjärjestelmää.
:Tällä tavoin jakelun päivittäminen tai vaihto 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 [[fstab]]issa, mikäli asennusohjelma ei tee sitä automaattisesti.


 
===Palvelinkäyttö===
'''Palvelinkäytössä''' seuraavanlainen osiointimalli on suositeltavampi:
Palvelinkäytössä seuraavanlainen osiointimalli on suositeltavampi:


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


==Vinkkejä virittelijöille==
==Vinkkejä virittelijöille==
Tietoturvan kannalta voi olla soveliaampaa käyttää ''tmpfs''-tiedostojärjestelmää liitoskohtiin ''/tmp'' ja ''/var/tmp''.
===Väliaikaistiedot===
[[Tietoturva]]n kannalta voi olla soveliaampaa käyttää [[tmpfs]]-tiedostojärjestelmää liitoskohtiin ''/tmp'' ja ''/var/tmp''.


  mount tmpfs /tmp -t tmpsf -o size=<koko megoina>m  
  mount tmpfs /tmp -t tmpfs -o size=<koko megoina>m  
  mount tmpfs /var/tmp -t tmpsf -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 virtuaalimuistiin joka tyhjenee, kun kone käynnistetään uudelleen.  
Tällöin näiden [[hakemisto]]jen sisällöt tallentuvat vain keskusmuistiin tai swapiin jotka tyhjenevät, kun kone käynnistetään uudelleen.  
Näin varmistetaan, että esimerkiksi ''ssh-agent'' -ohjelman väliaikaistiedostot poistuvat levyiltä järjestelmän alasajon myötä.  
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'').
Voit halutessasi liittää nämä ''nosuid''-, ''noexec''-valinnoilla, jolloin niissä käännettyjä ohjelmia ei voi ajaa kukaan eikä niissä voi vaihtaa [[UID|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.
Älä varastoi tavaraa hakemistoihin ''/tmp'' tai ''/var/tmp''. Mikäli niistä loppuu tila, kone voi pahimmassa tapauksessa kaatua.


Jos käytät Linuxia levypalvelimena ja levyjärjestelmänä on ''ext2'' tai ''ext3'', kannattaa tiputtaa tallennustilaosiosta pääkäyttäjälle varattu tila pois. Normaalisti ''mkfs''-ohjelma varaa 5&nbsp;% osion tilasta pääkäyttäjälle.  
===Pääkäyttäjälle varattu tila===
Sitä tarvitaan järjestelmän toiminnan varmistamiseksi, mikäli levytila loppuu. Suuremmista varasto-osioista tuo 5&nbsp;%:n varaus ei ole tarpeellista eikä järkevääkään, 1&nbsp;Tb:n osiosta 5&nbsp;% haukkaisi jo 50 gigatavua talletustilaa. Periaatteessa tuon 5&nbsp;% tarvitsevat vain liitoskohdat ''/'', ''/tmp'', ''/usr'' ja ''/var''.          
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ä.  
Tilanvaraus voidaan jättää pois antamalla ''mkfs''-ohjelmalle parametriksi ''-m 0''.
 
Tällöin on järkevää muuttaa osuus liitoskohdat <tt>/</tt>, <tt>/tmp</tt>, <tt>/usr</tt> ja <tt>/var</tt> sisältävillä tiedostojärjestelmillä esimerkiksi yhteen prosenttiin ja muilla nollaan.
Tämä tehdään antamalla [[mkfs]]- tai [[tune2fs]]-ohjelmille parametriksi <tt>-m ''prosentti''</tt>, esimerkiksi <tt>tune2fs -m 0</tt>
 
===Inode-taulujen viemä tila===
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 <tt>[[mkfs]].ext3</tt>-ohjelmalle parametrina <tt>-N ''inodejen määrä''</tt>. 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===
Luomalla [[LVM]]:n avulla virtuaalisia osioita (loogisia taltioita), voidaan osioita luoda, poistaa ja yhdistää sekä niiden kokoa muuttaa perinteistä osiointia joustavammin.


Jos verkossasi on levypalvelin, älä tee ''home''-osiota työasemalle. Sen voi pitää mainiosti verkkolevyllä ja liittää käynnistettäessä ''nfssän'' yli.
===Home-osio verkkolevyllä===
Jos verkossasi on levypalvelin, älä tee ''home''-osiota työasemalle. Sen voi pitää mainiosti [[verkkolevy]]llä ja liittää käynnistettäessä esimerkiksi [[NFS]]:n yli.


==Katso myös==
*[[Osiointityökalut]]
*[[Linuxin hakemistorakenne]]
*[[Swap]]


[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
[[Luokka:Osiot]]

Versio 19. huhtikuuta 2019 kello 18.06

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. Nykyisen kokoisten kiintolevyjen yhteydessä tällainen ajattelu saattaa tuntua järjettömältä, mutta ratkaisut olivat erittäin vikasietoisia.

Kiintolevyä osioitaessa kannattaa aluksi miettiä, mihin käyttöön levytila on tulossa:

  • Tarvitaanko jatkossa lisätilaa?
  • Halutaanko vikasietoisuutta? (Tätä tulisi miettiä jo ennen kiintolevyn ostamispäätöstä. Mikäli vikasietoisuutta tarvitaan, kannattaa rakentaa RAID-pohjainen levyjärjestelmä.)

Esimerkkiosioinnit 80 gigatavun kiintolevylle

Työpöytäkäyttö

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 levylle.

  • 10 Gt varataan juuriosiolle (liitoskohta /)
  • Käytöstä ja keskusmuistin määrästä riippuen noin 0–3 Gt varataan virtuaalimuistille eli swapille (ei liitoskohtaa).
Kevyessä käytössä saattaa riittää, jos keskusmuistia ja swapia on yhteensä noin puoli gigatavua. Normaalikäytössä yhteismäärän on usein hyvä olla reilun gigatavun 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–100 Mt varataan käynnistysosiolle (liitoskohta /boot), jonne tallennetaan käynnistyslatain ja ytimet. Tämä tosin ei ole nykyaikaisissa koneissa välttämätöntä.
  • Loput tilasta varataan home-osion käyttöön (liitoskohta /home).
Tällä tavoin jakelun päivittäminen tai vaihto 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ö

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

Väliaikaistiedot

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

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

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

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

Home-osio verkkolevyllä

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