Хостинг В Украине бесплатно
Початок розділу
Найкращий, з відомих мені, українських сайтів де можна придбати диск з будь-яким Linux
Найкращий, з відомих мені, українських сайтів де можна придбати диск з будь-яким Linux
linux.org.ua -- Linux/UNIX news
Український Linux на базі Slackware
Кращий браузер — Mozilla Firefox
Extensions.org.ua - українізовані розширення Frenzy - LiveCD на основе FreeBSD
Comp(OS)It
Пиши українською Linux.SU - Линукс в пять минут!
Сайт live дистрибутиву SLAX.
7-Zip
META-Ukraine
Портал Укрнет

Як використовувати RAM диск у Linux

     Резюме: Ця стаття показує як використовувати ОЗП як віртуальний жорсткий диск.

Вступ у RAM диск

     Це стисла стаття про те як встановити RamDisk на RedHat 6.0 системі. Це повинно бути дуже схоже для інших дистрибутивів Linux.

     Що таке RamDisk? RamDisk це частина пам'яті, яку ви виділяєте, щоб використовувати як розділ. Чи, іншими словами, ви берете пам'ять, симулюєте роботу жорсткого диску і зберігаєте ваші файли на нього. Чому в вас може з'явитися бажання використовувати RamDisk? Гаразд, як ви знаєте деякі файли, які ви збираєтесь постійно використовувати, якщо їх помістити у пам'ять поліпшують роботу вашого комп'ютеру, так як ваша пам'ять швидше за ваш жорсткий диск. Речі як сервер мережі з великою кількістю даних можуть бути пришвидшені цим шляхом. Чи якщо ви до того шалені і в вас є комп'ютер PII 550 Mhz з 1 gig пам'яті і старим 500 meg жорстким диском, ви можете використовувати його просто для збільшення простору вашого жорсткого диску. Потім, знов, якщо ви бажаєте машину без диску, в решті решт, не могло б бути щось більш шалене.

     Тут трохи більше ресурсів, які допоможуть вам.

  1. http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html
  2. http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html
  3. /usr/src/linux/Documentation/ramdisk.txt
Вгору

Як використовувати RamDisk

     Гаразд, ramdisk це дуже зручно. Поперед усе встановлення за умовчанням RedHat 6.0 йде з підтримкою ramdisk. Все, що ви повинні зробити це відформатувати ramdisk, а потім змонтувати його у директорію. Щоб розпізнати усі ramdisk, які ви маєте в наявності, виконайте "ls -al /dev/ram*". Це покаже доступні попередньо встановлені ramdisk. Фактично ці ramdisk не захоплюють пам'ять, поки ви не використовуєте їх ти чи іншим чином (наприклад форматуванням їх). Ось дуже простий приклад як використовувати ramdisk.

          # створення точки монтування:
          mkdir /tmp/ramdisk0
          # створення файлової системи:
          mke2fs /dev/ram0
          # монтування ramdisk:
          mount /dev/ram0 /tmp/ramdisk0

     Ці три команди створять директорію для ramdisk, відформатують ramdisk (створять файлову систему), та змонтують ramdisk у директорію "/tmp/ramdisk0". Тепер ви можете розглядати цю директорію як симуляцію розділу! Вперед. Використовуйте її як будь-яку іншу директорію чи як будь який інший розділ.

     Якщо не вдається відформатувати ramdisk, це означає що в вас нема відкомпільованої підтримки ramdisk у Ядрі. Опція конфігурації Ядра для ramdisk наступна CONFIG_BLK_DEV_RAM.

     За умовчанням розмір ramdisk складає 4Mb=4096 blocks. Ви бачите якій розмір ramdisk ви отримуєте коли ви запускаєте mke2fs. mke2fs /dev/ram0 повинно створити повідомлення схоже на це:

          mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
          Linux ext2 filesystem format
          Filesystem label=
          1024 inodes, 4096 blocks
          204 blocks (4.98%) reserved for the super user
          First data block=1
          Block size=1024 (log=0)
          Fragment size=1024 (log=0)
          1 block group
          8192 blocks per group, 8192 fragments per group
          1024 inodes per group

     Запуск df -k /dev/ram0 скаже вам скільки з цього ви можете реально використовувати. (Файлова система також забирає частину простору):

          >df -k /dev/ram0
          Filesystem  1k-blocks  Used Available Use% Mounted on
          /dev/ram0        3963    13      3746   0% /tmp/ramdisk0

     У чому вигода? Гаразд, коли комп'ютер перезавантажується вони стираються. Не розміщуйте на ramdisk дані, які не скопійовані кудись ще. Якщо ви виконуєте зміни у цій директорії і ви потребуєте у збереженні цих змін, то ви повинні вигадати спосіб їх зберегти.

Вгору

Зміна розміру ramdisks

     Щоб використовувати ram диск ви потребуєте у підтримці ramdisk, яка скомпільована у Ядро чи ви потребуєте в компіляції її як модуля, що завантажується. Опція конфігурації Ядра наступна CONFIG_BLK_DEV_RAM. Компілювання модуля ramdisk, що завантажується має ту перевагу, що ви можете вирішити яким буде розмір ramdisk у момент завантаження.

     Гаразд, спершу складний шлях. Додайте цю лінію в ваш файл lilo.conf file:

          ramdisk_size=10000 (or ramdisk=10000 for old kernels)

і це зробить ramdisk за умовчанням 10 megs після вводу команди "lilo" та перезавантаження комп'ютеру. Ось приклад мого файлу /etc/lilo.conf:

          boot=/dev/hda
          map=/boot/map
          install=/boot/boot.b
          prompt
          timeout=50
          image=/boot/vmlinuz
               label=linux
               root=/dev/hda2
               read-only
               ramdisk_size=10000

     Фактично, я отримав трохи більше 9 megs простору, який можна використати, так як файлова система також взяла трохи місця.

     Коли ви компілюєте підтримку ramdisk як модулю, що завантажується, то ви можете вирішити який у нього буде розмір під час завантаження. Це виконується опцією у будь-якій лінії в файлі /etc/conf.modules.

          options rd rd_size=10000

чи параметром командного рядку ismod:

          insmod rd rd_size=10000

     Ось приклад, який показує, як використовувати модуль:

  1. Скомпілюйте ramdisk змонтований у попередньому розділі, umount /tmp/ramdisk0;
  2. Вивантажить модуль (його було автоматично завантажено у попередньому розділі), rmmod rd;
  3. Завантажте модуль ramdisk і встановіть розмір у 20Mb, insmod rd rd_size=20000;
  4. Створіть файлову систему, mke2fs /dev/ram0;
  5. Змонтуйте ramdisk, mount /dev/ram0 /tmp/ramdisk0.
Вгору

Приклад як використовувати RamDisk для серверу мережі.

     Гаразд, ось приклад як використати 3 ramdisk для серверу мережі. Дозвольте нам запевнити на 99%, що ваша інсталяція за умовчанням Apache для RedHat 6.0 не буде використовувати більше 9 megs для cgi-сценаріїв, html і іконок. Ось як встановити його.

     Спершу, запустіть цю команду, щоб перемістити реальну копію кореневого каталогу документу вашого серверу мережі в інше місце. Також створить директорію для монтування ramdisk.

          mv /home/httpd/ /home/httpd_real
          mkdir /home/httpd
          mkdir /home/httpd/cgi-bin
          mkdir /home/httpd/html
          mkdir /home/httpd/icons

     Потім, додайте ці команди у процедуру запуску в ваш /etc/rc.d/init.d/httpd.init (чи де в вашій системі стартує httpd):

          ### Створіть розділ ramdisk

          /sbin/mkfs -t ext2 /dev/ram0
          /sbin/mkfs -t ext2 /dev/ram1
          /sbin/mkfs -t ext2 /dev/ram2

          ### Змонтуйте ramdisks в призначені місця

          mount /dev/ram0 /home/httpd/cgi-bin
          mount /dev/ram1 /home/httpd/icons
          mount /dev/ram2 /home/httpd/html

          ### Копіювання реальної директорії на ramdisks
          ### (дані на ramdisks будуть втрачені після перезавантаження)

          tar -C /home/httpd_real -c . | tar -C /home/httpd -x

          ### Після цього ви можете запускати ваш сервер мережи.
Вгору

Коментарі

  1.      Будь-ласка запам'ятайте одну річ, ЗБЕРІГАЙТЕ ВАШІ ДАНІ якщо ви змінюєте їх і потребуєте в них. Коли комп'ютер перезавантажується будь-які зміни будуть втрачені.
         Завдання за розписом виконає це. Зробить так, щоб він перевіряв кожні 10 хвилин чи змінився будь-який файл і зберігав будь-які зміни. Інша річ яку ви можете зробити це виконати ваші зміни у реальній директорії і потім скопіювати зміни на ramdisk. Це набагато небезпечніше.

  2.      Гарне використання цього це мати комп'ютер з 1 gig пам'яті і використовувати 256 megs для "/tmp". Якщо в вас є багато процесів, які використовують "/tmp", це повинно прискорити вашу систему. Також будь-що у /tmp буде втрачено, коли комп'ютер буде перезавантажуватися, що теж може бути гарною річчю.

  3.      Linux використовує усю пам'ять, яка не використовується додатками, як об'єднаний кеш диску, але мій досвід полягає у тому, що ramdisk не дивлячись на це дає трохи збільшення швидкості.

Вгору

by Mark Nielsen
Про автора:

     Автор (домашня сторінка) працює у The Computer Underground, Inc. як файловий клерк і як професійний консультант у 800linux.com. У свій вільний час він пропонує матеріал, як написання цього документу. Цей документ було відредаговано у Nedit та ispell.

Переклад Lucifer (Рукавишников Віталій С.) 04.09.2005 20:10
Вгору
Початок розділу

Linux coutner Український рейтинг TOP.TOPUA.NET