43 lines
2.8 KiB
Markdown
43 lines
2.8 KiB
Markdown
# Данные приложений на отдельном диске
|
||
|
||
- Дата: 2025-12-07
|
||
|
||
## Контекст
|
||
|
||
Исторически данные приложений лежали прямо в домашних директориях их
|
||
системных пользователей (`/home/<app-user>/…`), то есть на системном
|
||
диске рядом с ОС. В конце 2025 встал вопрос обновления ОС (Ubuntu 22.04
|
||
уже устарела), и стало ясно: пока данные привязаны к системному диску,
|
||
любое обновление или пересборка системы рискует этими данными и тяжело
|
||
откатывается.
|
||
|
||
Возникла мысль развязать данные приложений и жизненный цикл ОС.
|
||
|
||
## Рассмотренные варианты
|
||
|
||
- **Данные на системном диске** (как было). Просто, но данные связаны с
|
||
ОС: обновление/пересборка системы затрагивает и их.
|
||
- **Отдельный диск под данные** (выбран). Данные переживают пересборку
|
||
ОС, диск можно отцепить от одного сервера и прицепить к другому.
|
||
|
||
## Решение
|
||
|
||
Вынесли все данные приложений на отдельный диск, смонтированный в
|
||
`/mnt/applications`; каждое приложение держит там свои `data` / `config`
|
||
/ `backups`, а `base_dir`/`data_dir` указывают на этот путь
|
||
(коммиты `47a6320`, `7e67409`, `ae7c20a`, `8dfd061`).
|
||
|
||
## Последствия
|
||
|
||
- `+` Данные развязаны с жизненным циклом ОС — систему можно обновлять
|
||
и пересобирать, не трогая данные.
|
||
- `+` Диск можно отцепить от старого сервера и прицепить к новому. Это
|
||
легло в основу метода обновления ОС
|
||
([ADR-2025-12-13](ADR-2025-12-13-os-upgrade-via-server-rebuild.md)).
|
||
- `-` Появилась зависимость от монтирования внешнего диска (UUID,
|
||
mount-конфигурация): если диск не смонтирован, приложения не
|
||
поднимутся. Позже, при переезде в Timeweb, монтирование пришлось
|
||
сделать опциональным
|
||
([ADR-2026-05-23](ADR-2026-05-23-migrate-to-timeweb.md), фаза 1 — один
|
||
диск, фаза 2 — отдельный «холодный» диск под крупные данные).
|