понедельник, 29 апреля 2013 г.

Самовосстанавливающийся Ramdisk для Ubuntu

RamdiskRamdisk-ом называют разделы, которые постоянно находятся в оперативной памяти. Скорость обмена данными с таким дисками намного быстрее по сравнению с разделами на жестком диске. Переместив на такой раздел часто обновляемые данные, можно существенно увеличить производительность. Однако, создавать такой раздел стоит только, если у вас оперативной памяти много (4-8 Гб и выше). Основным недостатком разделов в оперативной памяти является то, что информация, сохраняется только при включенном питании компьютера. Есть простые способы создания таких дисков, однако я приведу здесь более сложный вариант, который включает сохранение информации перед выключением или перезагрузкой компьютера и автоматическое восстановление при включении.

Приступим

1. Создаем две директории:
mkdir ~/.ramdisk
mkdir ~/.ramdisk-archive

В первую нужно будет переместить (а не копировать) все, что будет хранится на Ramdisk, например, я перенес туда всю директорию ~/.mozilla/firefox. Предварительно обязательно следует создать резервные копии переносимых файлов и директорий.

2. Прописываем раздел в fstab
sudo gedit /etc/fstab

И дописываем в конец строчку
tmpfs /home/user/.ramdisk tmpfs defaults,mode=1777 0 0

3. При перезагрузке все данные из Ramdisk будут исчезать, поэтому при включении нужно заново записывать в память данные из архива ~/.ramdisk-archive. Для этого нужно отредактировать файл /etc/init.d/rc.local (а не before.local как пишут на некоторых сайтах).
sudo gedit /etc/init.d/rc.local
и добавить в начало файла строчку
rsync -a /home/user/.ramdisk-archive/ /home/user/.ramdisk

4. Понятно, что сами собой файлы в архиве не возникнут, поэтому их нужно обязательно записывать при выключении компьютера.

Открываем для редактирования файл:
sudo gedit /etc/init.d/ramdisk-sync-shutdown
записываем в него следующее:
#!/bin/sh
rsync -a /home/user/.ramdisk/ /home/user/.ramdisk-archive
exit 0
Добавляем права на его исполнение:
sudo chmod +x /etc/init.d/ramdisk-sync-shutdown

Теперь в директориях  
  • /etc/rc0.d  
  • /etc/rc1.d 
  • /etc/rc6.d 
размещаем символические ссылки S00ramdisk-sync-shutdown на файл ramdisk-sync-shutdown.

Благодаря этому, при выключении или перезагрузке содержимое Ramdisk будет сохранено на жестком диске.

5. Для страховки можно периодически создавать резервные копии каждые 2 часа (частота зависит от ценности ваших данных и стабильности электропитания):
crontab 1 */2 * * * rsync -a ~/.ramdisk/ ~/.ramdisk-archive

Чтобы Ramdisk начал работать нужно перезагрузиться или выполнить
sudo umount -a
sudo mount -a

Полезные команды для проверки состояния рамдисков


1. Вывод списка всех смонтированны временных файловых систем:
grep -w tmpfs /proc/mounts

2. Проверка того, сколько они занимают места:
df -h | grep tmpfs

3. Проверка свободной памяти:
free -m

Полезные ссылки:
Виртуальный диск в памяти: как создать ramdisk в Linux?
Создание своего скрипта автозапуска при загрузке компьютера

Комментариев нет:

Отправить комментарий

Популярные сообщения