Ответ
tmpfs — это виртуальная файловая система в Linux, которая хранит все данные исключительно в оперативной памяти (RAM) и, возможно, в свопе. Её основное назначение — предоставление сверхбыстрого доступа к временным файлам, но с важным ограничением: все данные стираются при размонтировании тома или перезагрузке системы.
Ключевые характеристики и применение в DevOps:
- Производительность: Скорость чтения/записи на порядки выше, чем у даже самых быстрых SSD/NVMe, так как операции идут напрямую с RAM.
- Эфемерность: Идеально для данных, которые не нужно сохранять после перезагрузки: сессионные данные приложений, кеши, временные файлы компиляции, сокеты.
- Динамический размер: По умолчанию использует только столько памяти, сколько нужно для хранимых файлов, но имеет лимит (обычно 50% от RAM). Лимит можно задать при монтировании.
Практические примеры использования:
- Монтирование /tmp как tmpfs: Современные дистрибутивы часто делают это по умолчанию для повышения производительности и безопасности (файлы автоматически удаляются).
# В /etc/fstab можно добавить строку: tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,size=2G 0 0 - Хранение секретов в памяти: В контейнеризированных средах (Kubernetes) секреты (Secrets) часто монтируются в поды как тома типа
tmpfs, чтобы избежать записи чувствительных данных на постоянное дисковое хранилище. - Кеширование в CI/CD: Временные артефакты сборки (объектные файлы, зависимости) можно размещать в tmpfs для ускорения пайплайнов, если их не требуется сохранять между запусками джоб.
Монтирование вручную:
# Создать директорию и смонтировать tmpfs с лимитом 1GB
sudo mkdir -p /mnt/ramcache
sudo mount -t tmpfs -o size=1G tmpfs /mnt/ramcache
# Проверить
df -h /mnt/ramcache