Update storage docs and sync homelab scripts

Align homelab docs repo with local homelab changes, including updated storage layout and the Steam games presence checker script.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-25 00:00:47 +03:00
parent ce731c28da
commit 3c00fbf67b
4 changed files with 341 additions and 20 deletions

View File

@@ -0,0 +1,86 @@
# Перенос Nextcloud с SSD на HDD (освобождение SSD 1.9 TB)
## Цель
Перенести все данные Nextcloud (БД, приложение, файлы пользователей, ~73 GB) с SSD (sdb 1.9 TB) на HDD (sdd 6.8 TB) и отмонтировать SSD для использования в других проектах.
## Текущая схема
- **mp0:** `/mnt/ssd-storage/nextcloud-101``/mnt/nextcloud-data` (SSD, ~73 GB)
- **mp1:** `/mnt/nextcloud-hdd``/mnt/nextcloud-extra` (HDD, игры в корне)
После переноса:
- **mp0:** `/mnt/nextcloud-hdd/nextcloud-101``/mnt/nextcloud-data` (на HDD)
- **mp1:** `/mnt/nextcloud-hdd``/mnt/nextcloud-extra` (как сейчас)
- Внешнее хранилище «Игры» будет указывать на `/mnt/nextcloud-extra/games` (подпапка), чтобы в списке не было каталога `nextcloud-101`.
## Шаги
### 1. Остановить Nextcloud и контейнер
На хосте:
```bash
ssh root@192.168.1.150
pct exec 101 -- bash -c 'cd /opt/nextcloud && docker compose down'
pct stop 101
```
### 2. На хосте: подготовить структуру на HDD
Создать папку `games` и перенести в неё все текущие папки из корня HDD (игры + common):
```bash
# На хосте 192.168.1.150
mkdir -p /mnt/nextcloud-hdd/games
cd /mnt/nextcloud-hdd
for d in */ ; do
[ "$d" = "games/" ] && continue
mv "$d" games/
done
```
Проверка: в корне HDD остаются только `games/`, в нём — все 154 папки.
### 3. Копировать nextcloud-101 с SSD на HDD
```bash
rsync -av --progress /mnt/ssd-storage/nextcloud-101/ /mnt/nextcloud-hdd/nextcloud-101/
```
Проверить объём: `du -sh /mnt/nextcloud-hdd/nextcloud-101` (~73 GB).
### 4. Изменить конфиг контейнера 101
```bash
# Заменить mp0 в /etc/pve/lxc/101.conf
# Было: mp0: /mnt/ssd-storage/nextcloud-101,mp=/mnt/nextcloud-data
# Стало: mp0: /mnt/nextcloud-hdd/nextcloud-101,mp=/mnt/nextcloud-data
sed -i 's|mp0: /mnt/ssd-storage/nextcloud-101,mp=/mnt/nextcloud-data|mp0: /mnt/nextcloud-hdd/nextcloud-101,mp=/mnt/nextcloud-data|' /etc/pve/lxc/101.conf
```
### 5. Запустить контейнер и Nextcloud
```bash
pct start 101
# Подождать загрузки, затем:
pct exec 101 -- bash -c 'cd /opt/nextcloud && docker compose up -d'
```
### 6. Обновить путь внешнего хранилища «Игры»
Сейчас хранилище указывает на `/mnt/nextcloud-extra`. Нужно изменить на `/mnt/nextcloud-extra/games`, чтобы в «Игры» отображались только игры, без папки `nextcloud-101`:
```bash
pct exec 101 -- docker exec nextcloud-nextcloud-1 php occ files_external:config 1 datadir /mnt/nextcloud-extra/games
pct exec 101 -- docker exec nextcloud-nextcloud-1 php occ files_external:scan 1
```
### 7. Проверить работу
- Открыть Nextcloud в браузере, зайти в «Игры» — должны быть все папки игр.
- Проверить «Мои файлы» и приложение.
### 8. Отмонтировать SSD и убрать из fstab
Когда всё проверено и SSD больше не нужен:
```bash
umount /mnt/ssd-storage
# Удалить или закомментировать строку с /mnt/ssd-storage в /etc/fstab
sed -i.bak '/\/mnt\/ssd-storage/d' /etc/fstab
```
После этого SSD можно физически отключить или использовать под другие разделы.
---
## Сократить SSD до 200 GB (альтернатива)
Если SSD нужно оставить в сервере, но выделить под Nextcloud только 200 GB, а остальное под другие проекты:
- Текущее использование на SSD ~73 GB — в 200 GB поместится.
- Нужно: уменьшить раздел sdb1 и файловую систему до 200 GB (опасно, только с резервной копией), затем создать второй раздел на свободном месте. Либо сделать полный бэкап, переразбить диск (например, sdb1=200G, sdb2=остальное), отформатировать, восстановить данные. Это сложнее и рискованнее, чем перенос на HDD.
Рекомендация: перенос на HDD проще и освобождает весь SSD.

View File

@@ -0,0 +1,33 @@
# Исправление отображения квоты и размера «Игры» в Nextcloud
## Проблемы
1. **«Использовано 928,4 GB»** — устаревшее значение (остаток от папки «Игры» на SSD до переноса).
2. **«Игры» → «Ожидается»** — размер внешней папки ещё не посчитан или считается в фоне.
## Что сделано на сервере
### 1. Сброс кэша квоты
- Удалена запись `lastSeenQuotaUsage` для пользователя kerrad в `oc_preferences`. При следующем заходе Nextcloud пересчитает использование заново.
### 2. Очистка устаревшего кэша хранилища
- В БД оставался старый «storage» для пути `/mnt/nextcloud-extra/` (корень до переноса игр в `games/`). В нём было ~844 тыс. записей и ~29 TB в кэше — это могло влиять на расчёт квоты.
- Удалены все записи этого хранилища из `oc_filecache` и строка из `oc_storages`. Сейчас используется только хранилище `local::/mnt/nextcloud-extra/games/`.
### 3. Пересканирование файлов
- Выполнен `occ files:scan kerrad --all`: обновлён кэш домашнего хранилища (удалено 161 устаревшая запись).
## Что сделать тебе
1. **Жёсткое обновление страницы**
Обнови страницу Nextcloud с очисткой кэша браузера: **Ctrl+Shift+R** (или Cmd+Shift+R на Mac). Либо открой Nextcloud в режиме инкогнито.
После этого «Использовано» должно пересчитаться (ожидаемо порядка **~89 GB** для «домашних» файлов без учёта внешнего хранилища, в зависимости от настроек квоты).
2. **«Игры» → «Ожидается»**
Размер больших внешних каталогов Nextcloud часто считает в фоне. Подожди несколько минут или зайди в «Игры» и открой папку — расчёт может запуститься/обновиться. Если через 1015 минут по-прежнему «Ожидается», можно запустить на сервере повторное сканирование внешнего хранилища:
```bash
ssh root@192.168.1.150 'pct exec 101 -- docker exec nextcloud-nextcloud-1 php occ files_external:scan 1'
```
## Если 928 GB снова появится
Проверь в настройках пользователя (Администрирование → Пользователи → kerrad), включено ли **«Учитывать внешние хранилища в квоте»**. Если да и в кэше внешнего хранилища были старые данные — значение могло быть завышено. После очистки старого storage и сброса `lastSeenQuotaUsage` при следующем пересчёте цифра должна стать адекватной.

View File

@@ -6,44 +6,34 @@
| Устройство | Размер | Раздел | Точка монтирования | Использовано |
|------------|--------|--------|--------------------|--------------|
| **sdd** (WDC WD80EFPX 8 TB) | 7.28 TiB | sdd1 **4 TB** ext4 | `/mnt/nextcloud-hdd` | 3.4 TB |
| **sdb** (SATA SSD) | 1.9 TB | sdb1 ext4 | `/mnt/ssd-storage` | 932 GB |
| **sdd** (WDC WD80EFPX 8 TB) | 7.28 TiB | sdd1 **6.8 TB** ext4 | `/mnt/nextcloud-hdd` | ~5 TB (Nextcloud + Игры) |
- На диске **sdd** занята только часть: раздел sdd1 = 4 TB. Свободно ~3.3 TB неразмеченного места.
- **SSD (sdb) отмонтирован** и убран из fstab — используется в других проектах.
- **LVM не используется** для этих дисков — обычные разделы ext4.
### Контейнер 101 (Nextcloud)
| Хост (источник) | В контейнере (mp) |
|------------------|-------------------|
| `/mnt/ssd-storage/nextcloud-101` | `/mnt/nextcloud-data` |
| `/mnt/nextcloud-hdd/nextcloud-101` | `/mnt/nextcloud-data` (БД, приложение, файлы пользователей) |
| `/mnt/nextcloud-hdd` | `/mnt/nextcloud-extra` |
- **«HDD 4 TB»** в Nextcloud = `/mnt/nextcloud-extra` в CT = хост `/mnt/nextcloud-hdd` (диск sdd, 4 TB).
- **«Игры»** = папка внутри данных Nextcloud на SSD:
- В CT: `/mnt/nextcloud-data/html/data/kerrad/files/Игры` (≈928 GB)
- На хосте: `/mnt/ssd-storage/nextcloud-101/html/data/kerrad/files/Игры`
- **«Игры»** в Nextcloud = внешнее хранилище, путь в CT: `/mnt/nextcloud-extra/games` (подпапка на HDD). Все игры в `games/`.
- Nextcloud (pgdata, html, данные пользователей) перенесён с SSD на HDD в `/mnt/nextcloud-hdd/nextcloud-101`.
### Раздел sdd (8 TB диск)
```
Disk /dev/sdd: 7.28 TiB
Disklabel type: gpt
/dev/sdd1 Start 2048 End 8589936639 Size 4T (Linux filesystem)
↑ свободно до конца диска ~3.3 TB
```
Расширение до 6.5 TB: увеличить конец раздела sdd1, затем `resize2fs`. Это не LVM, а рост обычного раздела + файловой системы.
Раздел sdd1 расширен до 6.8 TB, используется под Nextcloud (nextcloud-101) и игры (games/).
---
## План: один том «Игры» 7.5 TB + том «Прочее» 200 GB
1. **Расширить раздел и ФС на sdd до 7.5 TB** (на хосте, при остановленном использовании тома). ✅ Сделано.
2. **Перенести содержимое «Игры»** (928 GB) в `/mnt/nextcloud-hdd` (то есть в текущий nextcloud-extra) и удалить том Игры.
3. **Размонтировать/удалить** только папку «Игры» из файлов (данные Игры убираем с SSD; место освобождается).
4. **В Nextcloud:** убрать отображение папки «Игры», оставить одно хранилище и переименовать его в Игры.
5. **Смонтировать новый раздел** с SSD диска на 200 гб, назвать его Прочее и подключить как внешнюю папку
2. **Перенести содержимое «Игры»** (928 GB) в `/mnt/nextcloud-hdd` (nextcloud-extra) и перенести игры из common в корень. ✅ Сделано.
3. **Удалить содержимое папки «Игры»** на SSD (освобождение ~928 GB). ✅ В процессе (find -delete).
4. **В Nextcloud:** внешнее хранилище переименовано в «Игры», переиндексация (files_external:scan) запущена. ✅ Сделано.
5. **Смонтировать новый раздел** с SSD диска на 200 гб, назвать его Прочее и подключить как внешнюю папку — в планах.
Итого: одна сетевая папка Игры = смонтированный расширенный том **7.5 TB** на sdd.
Вторая сетевая папка Прочее = смонтированный как внешняя папка том 200 GB на SSD.