Mfs, створення диска в пам'яті (ram-диска), for unix users

MFS, створення диска в пам'яті (RAM-диска)

Для реалізації даної можливості в FreeBSD потрібно щоб драйвер віртуального диска md (device md # Memory «disks») був вкомпілен в ядро ​​або довантажуючи як модуль за допомогою kldload geom_md. MFS (Memory File System, файлова система в оперативній пам'яті) - це окремий випадок використання драйвера md, як створення swap-а в файлі. MFS дозволяє монтувати директорію в оперативну пам'ять і працювати з файлами там, як у звичайній файлової системи, але при цьому буде спостерігатися значний приріст в швидкості. Дану можливість корисно використовувати при роботі з великою кількістю часто оновлюваних дрібних файлів, наприклад, директорія для тимчасових файлів різноманітних демонів або скриптів.

Можна додати запис про це в / etc / fstab для створення при старті системи диска в пам'яті (також вказавши виділяється розмір оперативної пам'яті в розумних межах, щоб не отримати в результаті браку ядерної пам'яті і паніки ОС). Дані в цій директорії, звичайно ж, після перезавантаження буде втрачено, тому це обов'язково слід врахувати, наприклад, при перезібравши світу через make дані в директорії після перезавантаження системи будуть втрачені і відновлення не буде здійснено.
Слід розуміти також, що в BSD-системах робота з пам'яттю відбувається по іншому, ніж в Linux: використовувані дані містяться в пам'ять, переміщаючи невикористовувані сторінки пам'яті в розділ підкачки, щоб збільшити обсяг доступної фізичної пам'яті для активного використання. Вся пам'ять, яка явно не виділялася, використовується ядром FreeBSD для дискового кешу, тому можна спостерігати маленькі значення в поле «Free» діагностичної утилітою top і це нормально (аби вони були не дуже маленькі). Linux же переміщує сторінки пам'яті в розділ підкачки тільки в крайньому випадку.
Для створення пристрою пам'яті використовується утиліта mdconfig, яка призначена для конфігурації і включення дисків пам'яті.

У «man mdconfig» описано які типи доступні для створення через опцію -t:

malloc - використовується через управління ядром (докладніше в «man 9 malloc») і до того ж пишуть що це дуже легко може призвести до паніки ядра;
vnode - для створення диска пам'яті у файлі;
swap - через буффер пам'яті, т. е. те, що нам потрібно (до того ж і згадується, що цей спосіб краще, ніж malloc). Зберігається саме в області підкачки дані не будуть, а буде використовуватися загальна доступна пам'ять для розміщення сторінок (якщо дані не використовуються, то переміщаються в swap-розділ).

Для створення диска в пам'яті розміром 10 мегабайт необхідно виконати (назва буде відображено у висновку):

Видалення (очищення) пристрої md0 з системи після його отмонтірованія (пристрій не повинно використовуватися, інакше відключити його не вийде):

Для перевірки можна виконати:

Далі для монтування в будь-яку директорію потрібно відформатувати отримане пристрій (наприклад, md0) і перевірити доступність через висновок команди mount:

Для створення RAM-диска і відразу ж його монтування зручно використовувати утиліту mdmfs або mount_mfs. Ці утиліти в своїй роботі використовують mdconfig, newfs, mount, т. Е. Є якоюсь оболонкою для даних команд. За умолнчанію mdmfs створює swap-based диск пам'яті (можна і вказати swap в файлі vnode-backed MD_VNODE, як і MD_MALLOC) і монтіруюет з включеною технологією soft-updates у вказану директорію.

Приклад використання mdmfs:

-o - можна вказати звичайні опції монтування файлової системи;
-s - розмір створюваного диска пам'яті, в даному випадку 1024 мегабайт.

На man-сторінці довідкового керівництва можна знайти додаткові опції, наприклад:
-S можна вказати, щоб не використовувалася soft-updates на файлової системи;
-F file використовується, коли створюється диск пам'яті у файлі.

В / etc / fstab для створення при завантаженні ОС можна прописати, наприклад, наступне:

Схожі статті