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:
86
homelab/docs/migrate-nextcloud-to-hdd.md
Normal file
86
homelab/docs/migrate-nextcloud-to-hdd.md
Normal 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.
|
||||
Reference in New Issue
Block a user