- Как создать диск Ramdisk в Linux
- Tmpfs и Ramfs
- Как создать Ramdisk в Linux с помощью Tmpfs
- HDD против Tmpfs
- Создание диска Ramdisk в Linux с помощью Ramfs
- Tmpfs против Ramfs
- Заключение
- Похожие записи:
- Создаём RAMdisk на Ubuntu 18.04
- Подключение RAM-диска на UBUNTU 18.04 автоматически, при загрузке системы
- Сохранение данных RAM-диска:
- Рубрики
- How to Create a Ramdisk in Linux
- Tmpfs and Ramfs:
- How to Create a Ramdisk in Linux Using Tmpfs:
- SSD vs. Tmpfs:
- Creating a Ramdisk in Linux Using Ramfs:
- Tmpfs vs. Ramfs:
- Conclusion
- About the author
- David Adams
Как создать диск Ramdisk в Linux
ramdisk — это энергозависимое пространство для хранения данных, определенное в памяти RAM. Использование этой функции повышает производительность обработки файлов в десять раз по сравнению с лучшими жесткими дисками SSD. Внедрение ramdisk очень выгодно для пользователей, чьи задачи требуют значительных аппаратных ресурсов. Кроме того, эта реализация может быть полезна медиаредакторам и геймерам.
Диск ramdisk — это нестабильное пространство, вся информация, хранящаяся на нем, будет потеряна при выключении или перезагрузке устройства.
В Linux ramdisk можно создать с помощью команды mount и файловых систем tmpfs и ramfs. В этом руководстве показано, как создать ramdisk в Linux, используя обе эти системы.
Tmpfs и Ramfs
Tmpfs: Tmpfs — это временная файловая система, хранящаяся в памяти RAM (и/или памяти подкачки). Указав эту файловую систему в аргументе -t команды mount, вы можете выделить ограниченные ресурсы памяти для временной файловой системы. В результате приложения, хранящиеся в этой файловой системе, будут работать в несколько раз быстрее, чем на обычных устройствах хранения данных, включая устройства cssd.
Ramfs: Ramfs похожа на Tmpfs, но пользователь не может обеспечить лимит, а выделенный ресурс растет динамически. Если пользователь не контролирует потребление ramfs, ramfs будет продолжать использовать всю память до зависания или краха системы.
Tmpfs против Ramfs: Нет заметной разницы между производительностью tmpfs и его предшественника ramfs. Причиной замены ramfs на tmpfs является риск неограниченного потребления оперативной памяти ramfs, что может привести к краху системы.
Еще одним преимуществом tmpfs перед ramfs является возможность использования пространства подкачки, в то время как ramfs ограничена аппаратной памятью.
Как создать Ramdisk в Linux с помощью Tmpfs
Во-первых, давайте посмотрим, сколько свободной памяти мы можем использовать перед созданием точки монтирования tmpfs. Чтобы проверить доступную память ram и swap, вы можете использовать команду free. Чтобы вывести результаты в гигабайтах, можно добавить аргумент —giga, как показано в примере ниже:
Как видно из приведенного выше результата, у меня есть три физических гигабайта и один на пространстве подкачки.
Теперь создайте точку монтирования в каталоге /mnt с помощью команды mkdir, как показано в примере ниже. Выбор имени точки монтирования произволен. Если вы собираетесь использовать ramdisk для определенного приложения, вы можете назвать точку монтирования в честь него. В приведенном ниже примере я назвал ее /mnt/tmp:
Теперь вы можете создать ramdisk с помощью команды mount. В следующем примере показано, как создать ramdisk с помощью tmpfs на 2GB Ram/Swap, в точке монтирования /mnt/tmp.
Аргумент -t (тип) позволяет указать файловую систему (в данном случае tmpfs). Аргумент -o (options) используется для определения места для ramdisk.
sudo mount -t tmpfs -o size=2g tmpfs /mnt/tmp
HDD против Tmpfs
Я скопировал образ CentOS из домашнего каталога пользователя, используя команду time для отображения времени, можно увидеть, что процесс копирования занял 0:10.721с
time cp CentOS-7-x86_64-Minimal-2009.iso CentOS-7-x86_64-Minimal-2009.iso-copy
На следующем снимке экрана видно, что копирование того же образа Ubuntu iso на диск ramdisk заняло 0:0.899с:
time cp CentOS-7-x86_64-Minimal-2009.iso /mnt/tmp/
Как видите, разница титаническая, и ramdisk очень выгоден для задач с большим объемом записи файлов.
Чтобы удалить ramdisk, просто отмонтируйте его, выполнив следующую команду и заменив tmp на точку монтирования:
Создание диска Ramdisk в Linux с помощью Ramfs
Процедура создания диска ramdisk с помощью ramfs такая же, как и в случае с tmpfs. Следующая команда создаст динамический ramdisk в точке монтирования /mnt/tmp.
sudo mount -t ramfs -o size=4 ramfs /mnt/tmp
Tmpfs против Ramfs
Теперь давайте протестируем производительность ramfs в сравнении с tmpfs, и посмотрим, что произойдет, когда каждый тип ramdisk достигнет заданного предела.
В первом примере я создам ramdisk размером 2 ГБ с помощью tmpfs и попытаюсь скопировать на него iso большего размера:
sudo mount -t tmpfs -o size=2g tmpfs /mnt/tmp time cp CentOS-7-x86_64-DVD-2009.iso /mnt/tmp
Как вы можете видеть, cp выдал ошибку, потому что места на диске ramdisk недостаточно для образа iso. Я выделил только 2 ГБ для ramdisk.
Теперь посмотрим, что произойдет, если я проделаю ту же процедуру, используя ramdisk:
sudo mount -t ramfs -o size=2g ramfs /mnt/tmp time sudo cp CentOS-7-x86_64-DVD-2009.iso /mnt/tmp
Как вы можете видеть, ramfs продолжает записывать в /mnt/tmp, несмотря на то, что я установил ограничение в 2 ГБ. Это недостаток ramfs, так как он может повесить систему, потребляя всю ее RAM память. Напротив, tmpfs ограничена объемом памяти, который мы определяем.
В выводе также видно, что задача копирования была выполнена за 0:9.624 с, что почти соответствует производительности tmpfs в тесте против SSD.
Заключение
Создание ramdisk — это одноминутный процесс с существенными преимуществами для любого пользователя, которому нужно обрабатывать большие файлы. Скорость чтения и записи экспоненциально возрастает по сравнению с лучшими жесткими дисками на рынке. С ramdisk можно запускать портативное программное обеспечение, хотя изменения не будут постоянными.
Использование ramfs может быть рискованным, если в системе закончатся ресурсы.
Похожие записи:
Создаём RAMdisk на Ubuntu 18.04
После чего проверяем правильность создания рамдиска командой:
И видим следующий результат:
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 620K 394M 1% /run
/dev/vda2 89G 74.5G 580G 6% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 395M 0 395M 0% /run/user/1000
tmpfs 2.0G 0 2.0G 0% /mnt/ramdisk
Теперь вы можете использовать рамдиск как вы используете обычные разделы жесткого диска. Вы даже можете редактировать любые файлы прямо из РАМДИСКА.
Чтобы отключить виртуальный диск (РАМДИСК), выполните следующую команду (все ваши файлы на этом разделе будут моментально удалены):
Подключение RAM-диска на UBUNTU 18.04 автоматически, при загрузке системы
Вы можете использовать файл /etc/fstab для автоматического монтирования виртуального диска при загрузке системы.
Во-первых, сделайте резервную копию файла /etc/fstab. Можно с помощью следующей команды:
sudo cp -v /etc/fstab /etc/fstab.backup
Резервная опия файла /etc/fstab сохранится в /etc/fstab.backup. Теперь если что-то случится в процессе, вы сможете просто восстановить файл /etc/fstab.
Открываем файл /etc/fstab:
После чего в конце файла добавляем следующую строчку:
tmpfs /mnt/ramdisk tmpfs rw,size=2G 0 0
После чего перезагружаем сервер командой:
После загрузки системы РАМдиск должен быть автоматически смонтирован (нужно проверить):
.
tmpfs 2.0G 0 2.0G 0% /mnt/ramdisk
.
Сохранение данных RAM-диска:
Далее я покажу, как сохранить данные рамдиска на десткий диск при завершении работы системы и загрузить данные с жесткого диска в RAM-диск при загрузке системы.
Для этого создадим каталог, где диск будет смонтирован и где резервные копии данных будут сохраняться должны иметь одинаковый набор прав доступа к файлам.
Сначала создайте каталог, где данных RAM-диска будет сохранен при выключении системы с помощью следующей команды:
sudo mkdir /mnt/ramdisk_backup
Теперь создайте файл системной службы с помощью следующей команды:
sudo nano /lib/systemd/system/ramdisk-sync.service
Рубрики
При заказе по этой ссылке бесплатно помогу настроить и подготовить сервер к повседневной эксплуатации.
How to Create a Ramdisk in Linux
A ramdisk is a volatile storage space defined in the RAM memory. Using this feature increases file processing performance ten times over the best SSD hard disks. Implementing a ramdisk is very advantageous for users whose tasks require significant amounts of hardware resources. In addition, media editors and gamers can enjoy this implementation.
A ramdisk is a volatile space, all information stored in it will be lost if the device is turned off or reboots.
In Linux, ramdisks can be created using the command mount and the filesystems tmpfs and ramfs. This tutorial shows how to create a ramdisk in Linux using both of them.
Tmpfs and Ramfs:
Tmpfs: Tmpfs is a temporary file system stored in the RAM memory (and/or swap memory). By specifying this file system with the argument -t of the command mount, you can assign limited memory resources to a temporary file system. As a result, applications stored in this filesystem will perform several times faster than they would on conventional storage devices, including cssd devices.
Ramfs: Ramfs is similar to Tmpfs, but the user can’t ensure a limit, and the allocated resource grows dynamically. If the user doesn’t control the ramfs consumption, ramfs will keep using all the memory until hanging or crashing the system.
Tmpfs vs. Ramfs: There is no notable difference between the performance of tmpfs and its predecessor ramfs. The reason behind ramfs being replaced by tmpfs is the unlimited RAM consumption risk by ramfs which may lead to a system crash.
Another advantage of tmpfs over ramfs is the ability to use the swap space while ramfs are limited to hardware memory.
How to Create a Ramdisk in Linux Using Tmpfs:
First, let’s see the free memory we can use before creating a tmpfs mount point. To check the available ram and swap, you can use the command free. To print the results in gigabytes, you can add the argument –giga, as shown in the example below:
As you can see in the output above, I have two physical GB and two on the swap space.
Now, create a mount point under the directory /mnt using the command mkdir as shown in the example below. The mount point name choice is arbitrary. If you are going to use the ramdisk for a specific application, you can name the mount point after it. In the example below I call it /mnt/tmp:
Now you can create the ramdisk using the mount command. The following example shows how to create a ramdisk using tmpfs on 2GB Ram/Swap, on the mount point /mnt/tmp.
The -t (type) argument allows to specify the file system (in this case, tmpfs). The -o (options) argument is used to define the space for the ramdisk.
The ramdisk was created under /mnt/tmp.
SSD vs. Tmpfs:
I copied an Ubuntu image from a user’s home directory to the root directory in the following screenshot.
Using the command time to display timing, you can see the copying process took 0:55.290s
In the following screenshot, you can see how copying the same Ubuntu iso image to the ramdisk takes 0:9.424s:
As you can see, the difference is titanic, and the ramdisk is very advantageous for tasks with large amounts of file writing.
To remove the ramdisk, just unmount it by running the following command and replacing tmp with your mount point:
Creating a Ramdisk in Linux Using Ramfs:
The procedure to create a ramdisk using ramfs is the same as with tmpfs. The following command will create a dynamic ramdisk on the mount point /mnt/tmp.
Tmpfs vs. Ramfs:
Now let’s test the ramfs performance against tmpfs, and let’s see what happens when each ramdisk type reaches the defined limit.
In the first example, I will create a 2GB ramdisk using tmpfs, and I will try to copy a bigger iso inside:
As you can see, the cp returned an error because the ramdisk space isn’t enough for the iso image. I only assigned 2GB for the ramdisk.
Now, see what happens when I do the same procedure using ramdisk:
As you can see, the ramfs kept writing into /mnt/tmp even though I have defined a 2GB limit. This is ramfs disadvantage because it may hang a system by consuming all its RAM memory. On the contrary, tmpfs is limited to the memory amount we define.
You can also see in the output that the copying task was done within 0:9.624s, almost the same performance shown by tmpfs in the test against SSD.
Note: The same iso image was used.
Conclusion
Creating a ramdisk is a one-minute process with significant benefits for any user who needs to process big files. The reading and writing speed increase exponentially over the best hard disks in the market. Portable software can be executed from a ramdisk, though changes won’t be persistent. This implementation is being highly appreciated by media editors whose tasks require long periods of media conversion.
Using ramfs may be risky if the system runs out of resources. That’s why tmpfs became the first method.
I hope this tutorial to create a ramdisk in Linux was useful. Keep following Linux Hint for more Linux tips and tutorials.
About the author
David Adams
David Adams is a System Admin and writer that is focused on open source technologies, security software, and computer systems.