ram disk (delsi)

housj0am na karlov.mff.cuni.cz housj0am na karlov.mff.cuni.cz
Pondělí Říjen 7 22:50:22 CEST 2002


> kdysi jsme videl jeste na dosu ram-disk. sw ovladacem se vykousl kus
> pameti, ktery se tvaril jako fyzicky disk. chtel bych neco podobneho
> zprovoznit na linuxu. nevite jak ? staci ukazat kde se o tom pise ...
> :-) diky -pepa

Linux umi dva typy ramdisku. Jednak ten, ktery najdete pod /dev/ram?. Ten
ma pevnou velikost a v podstate je to prostor v pameti, ktery se tvari
jako blokove zarizeni. Takze si na nem udelate filesystem, primountujete,
jako by to byla treba disketa. V pameti zabira pevnou delku a neda se
odswapovat.

Hodi se na ruzne cary kolem bootovani, instalaci, zachrannych systemu
apod. Napr. bootujete z CD-cka, / se vytvori v ramdisku, kde je nejaky
minimalni system, muzete si pripojovat filesystemy z disku kam chcete,
hrabat se v nich a navic jeste mate CD-cko s ruznymi uzitecnymi vecmi,
idealni na instalaci nebo zachranu systemu. Dalsi vec je tazvany initial
ramdisk, ktery se vyuziva pri bootovani v pripade, ze kus jadra nutny k
pripojeni / filesystemu, je z ruznych duvodu k dispozici jen jako modul,
tudiz se nachazi vetsinou na tom filesystemu :-((, typicky se jedna o
ovladac k filesystemu nebo k ide ci scsi. Resi se to tak, ze po bootu se
vytvori ramdisk, natahne se do nej pripraveny image, z nej si jadro nacte
moduly a pak uz spokojene pripoji / z disku. Dalsi vyuziti, ktere znam, je
vyroba image nejakeho filesystemu. Napr. image ext2 neumim udelat jinak,
nez ze filesystem nekde skutecne vytvorim a pak dam do souboru pomoci
dd. No a delat si kvuli tomu partition na disku neni vzdy mozne ... 

Mnohem uzitecnejsi je podle me ale druhy typ ramdisku skryvajici se pod
/dev/shm. Ten si nekam namountujete a uz na nem mate rovnou filesystem
(tedy se o ukladani souboru stara primo jadro), pamet si to alokuje
dynamicky (takze to zabira jen tolik, kolik skutecne zabiraji ulozene
soubory) a navic lze i odswapovat, takze takhle muzete resit situaci, kdy
mate aplikaci, ktera pracuje s daty na disku a nema nijak implementovanou
vyrovnavaci pamet. Dalsi hezke vyuziti je dat si na tenhle ramdisk /tmp,
takze dokud je misto, budou se data ukladat na ramdisk, coz bude velmi
znat na rychlosti (pro stouraly, lze omezit, jak velky ten disk bude
maximalne, takze kdyz tam nejaky user da neco velkeho, tak se to
odswapuje, ale ostatni programy nejakou volnou pamet jeste k dispozici mit
budou).

Veskerou dokumentaci bych hledal v prvni rade v dokumentaci k jadru.

-- Honza Houstek



Další informace o konferenci Linux