tmpfs
Материал из ALT Linux Wiki
м (→Использование: link pam_mktemp) |
|||
(15 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | + | {{DISPLAYTITLE:tmpfs}} | |
[[Категория:Devel]] | [[Категория:Devel]] | ||
- | |||
- | |||
== Что это и зачем? == | == Что это и зачем? == | ||
- | tmpfs — файловая система, предназначенная для быстрого и ненадёжного хранения временных данных | + | [[enwp:Tmpfs#Linux|<tt>tmpfs</tt>]] — файловая система, предназначенная для быстрого и ненадёжного хранения временных данных. |
- | + | Организовывается в виртуальной памяти (RAM+swap), поэтому: | |
+ | * при отмонтировании, перезагрузке или выключении теряет содержимое полностью; | ||
+ | * не озадачивается долетанием данных до пластин в случае использования свопа на дисках — вследствие чего работает в разы быстрее настоящих ФС даже в случае активного использования свопа; | ||
+ | * размер tmpfs может превышать размер доступной RAM. | ||
+ | |||
+ | Хорошо подходит для {{path|/tmp}} и массовой [[hasher|сборки пакетов]]/[[mkimage|образов]]. | ||
== Создание == | == Создание == | ||
Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске). | Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске). | ||
- | Без опции <tt>size</tt> файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). | + | Без опции <tt>size</tt> файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). С ручным заданием <tt>size</tt> можно не очень стесняться, поскольку в худшем разе получим свопинг и <tt>No space left on device</tt>. |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | В дистрибутивах ALT Linux 4.0 и выше {{path|/tmp}} по умолчанию размещается на tmpfs (с помощью [[pam_mktemp]]), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого<ref>Для личного hasher может быть достаточно одного-двух гигабайт; для создания DVD при помощи mkimage — восемь-десять; для многопользовательского случая соответственно умножаем.</ref> объёма, указать в {{path|/etc/fstab}} желаемый размер (size можно указать в %): | ||
+ | tmpfs /tmp tmpfs size=4g,nr_inodes=1m,nosuid 0 0 | ||
и перемонтировать ФС: | и перемонтировать ФС: | ||
- | |||
mount -o remount /tmp | mount -o remount /tmp | ||
- | + | Существует специально обученный пакет {{pkg|livecd-tmpfs}}, который постарается подобрать «на лету» при загрузке подходящий размер tmpfs, исходя из доступной памяти и некоторых эвристик (либо конфигурационного файла). | |
- | + | ||
- | + | ||
- | + | ||
- | + | При необходимости временно добавить свопа (например, для сборки крупного пакета) можно воспользоваться swap-файлами: | |
+ | dd if=/dev/zero of=/home/swap.img bs=1M count=1024 | ||
+ | chmod 600 /home/swap.img | ||
+ | mkswap /home/swap.img | ||
+ | swapon /home/swap.img | ||
+ | swapon -s | ||
== Проблемы == | == Проблемы == | ||
Известны [http://lists.altlinux.org/pipermail/devel/2006-April/125129.html проблемы со стабильностью] даже той условной сохранности данных, которая декларируется tmpfs; так, при существенной нагрузке на VM во времена 2.6.18 могли наблюдаться невоспроизводимые (случайные) пропадания файлов и сбой сборки по этой причине. К выходу Server 4.0 часть таких проблем была исправлена, но при странностях следует попробовать воспроизвести сборку на реальной ФС (или выполнить несколько прогонов на tmpfs и оценить воспроизводимость места сбоя). | Известны [http://lists.altlinux.org/pipermail/devel/2006-April/125129.html проблемы со стабильностью] даже той условной сохранности данных, которая декларируется tmpfs; так, при существенной нагрузке на VM во времена 2.6.18 могли наблюдаться невоспроизводимые (случайные) пропадания файлов и сбой сборки по этой причине. К выходу Server 4.0 часть таких проблем была исправлена, но при странностях следует попробовать воспроизвести сборку на реальной ФС (или выполнить несколько прогонов на tmpfs и оценить воспроизводимость места сбоя). | ||
+ | == Примечания == | ||
+ | <references/> | ||
+ | {{Category navigation|title=Файловые системы|category=FileSystems|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 11:27, 2 июля 2015
Содержание |
Что это и зачем?
tmpfs — файловая система, предназначенная для быстрого и ненадёжного хранения временных данных.
Организовывается в виртуальной памяти (RAM+swap), поэтому:
- при отмонтировании, перезагрузке или выключении теряет содержимое полностью;
- не озадачивается долетанием данных до пластин в случае использования свопа на дисках — вследствие чего работает в разы быстрее настоящих ФС даже в случае активного использования свопа;
- размер tmpfs может превышать размер доступной RAM.
Хорошо подходит для /tmp и массовой сборки пакетов/образов.
Создание
Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске).
Без опции size файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). С ручным заданием size можно не очень стесняться, поскольку в худшем разе получим свопинг и No space left on device.
В дистрибутивах ALT Linux 4.0 и выше /tmp по умолчанию размещается на tmpfs (с помощью pam_mktemp), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого[1] объёма, указать в /etc/fstab желаемый размер (size можно указать в %):
tmpfs /tmp tmpfs size=4g,nr_inodes=1m,nosuid 0 0
и перемонтировать ФС:
mount -o remount /tmp
Существует специально обученный пакет livecd-tmpfs, который постарается подобрать «на лету» при загрузке подходящий размер tmpfs, исходя из доступной памяти и некоторых эвристик (либо конфигурационного файла).
При необходимости временно добавить свопа (например, для сборки крупного пакета) можно воспользоваться swap-файлами:
dd if=/dev/zero of=/home/swap.img bs=1M count=1024 chmod 600 /home/swap.img mkswap /home/swap.img swapon /home/swap.img swapon -s
Проблемы
Известны проблемы со стабильностью даже той условной сохранности данных, которая декларируется tmpfs; так, при существенной нагрузке на VM во времена 2.6.18 могли наблюдаться невоспроизводимые (случайные) пропадания файлов и сбой сборки по этой причине. К выходу Server 4.0 часть таких проблем была исправлена, но при странностях следует попробовать воспроизвести сборку на реальной ФС (или выполнить несколько прогонов на tmpfs и оценить воспроизводимость места сбоя).
Примечания
- ↑ Для личного hasher может быть достаточно одного-двух гигабайт; для создания DVD при помощи mkimage — восемь-десять; для многопользовательского случая соответственно умножаем.