Перенос каталога данных Nextcloud

Перенос каталога данных Nextcloud необходим для увеличения хранилища, улучшения производительности или изменения инфраструктуры. Эта инструкция подробно описывает процесс переноса, включая настройки системы и проверку работоспособности после завершения. Следуйте рекомендациям, чтобы выполнить перенос безопасно, минимизировать простой и сохранить корректную работу вашего Nextcloud.

Перед началом важно убедиться, что у вас есть актуальная резервная копия всех данных вашего облака, включая файлы и базу данных. Это позволит избежать необратимых последствий в случае ошибок.

Определите текущий каталог данных Nextcloud

По умолчанию каталог данных находится в папке установки Nextcloud /var/www/nextcloud/data

Вы можете найти текущий путь в конфигурационном файле Nextcloud:

sudo nano /var/www/nextcloud/config/config.php

Найдите строку ‘datadirectory’ => ‘/var/www/nextcloud/data’,

Запись должна выглядеть примерно как на картинке ниже:

Путь по умолчанию каталога данных Nextcloud

Включаем режим обслуживания Nextcloud

Выполните команду в папке установки (обычно /var/www/nextcloud):

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on

После выполнения этой команды пользователи при входе увидят сообщение о техническом обслуживании.

Остановите веб-сервер и связанные процессы

sudo systemctl stop apache2
sudo systemctl stop nginx
sudo systemctl stop php7.4-fpm  # Замените версию PHP на вашу

Скопируйте данные в новое место

Скопируйте текущий каталог данных в новое место. Например, если новый каталог будет на диске /mnt/newstorage:

sudo rsync -avz /var/www/nextcloud/data /mnt/newstorage/

Пояснение по ключам rsync:

  • -a сохраняет права доступа, временные метки и символические ссылки
  • -v выводит процесс копирования
  • -z использует сжатие при передаче данных

Настройте права доступа

Убедитесь, что новый каталог данных принадлежит пользователю, под которым работает веб-сервер (например, www-data):

sudo chown -R www-data:www-data /mnt/newstorage/data
sudo chmod -R 750 /mnt/newstorage/data

Далее обновим конфигурацию, для этого изменим путь к каталогу данных в файле config.php:

'datadirectory' => '/mnt/newstorage/data',

Должно получиться примерно как на картинке ниже:

Новый путь к каталогу данных

Так же, если вы используете временные директории (temp), убедитесь, что их путь соответствует новому расположению данных. Задать это вы можете в том же файле config.php:

'tempdirectory' => '/mnt/newstorage/data/tmp',

Если у вас включен SELinux, установите правильный контекст безопасности для нового каталога:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/mnt/newstorage/data(/.*)?"
sudo restorecon -R /mnt/newstorage/data

Запустите веб-сервер

Далее запускаем веб-сервер:

sudo systemctl start apache2
sudo systemctl start nginx
sudo systemctl start php7.4-fpm

После запуска веб-сервера, давайте убедимся, что наше облако работает корректно:

sudo -u www-data php /var/www/nextcloud/occ status

Должно выдать примерно как на картинке ниже:

Проверяем статус нашего сервера

Отключаем режим обслуживания Nextcloud

Когда перенос завершён, отключите режим обслуживания:

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Теперь ваше облако снова будет доступно для пользователей.

Далее проведите проверку, для этого:

  • Убедитесь, что Nextcloud работает корректно.
  • Проверьте доступность данных (файлов и папок).
  • Убедитесь, что доступ к данным осуществляется с правильными правами.

Так же не забудьте проверить наличие ошибок в журнале после выполнения всех операций. Для этого используйте команду:

sudo tail -f /var/www/nextcloud/data/nextcloud.log

После завершения переноса не забывайте регулярно проверять доступность данных и следить за журналами Nextcloud для выявления возможных ошибок. Грамотно настроенная система не только удовлетворяет текущие потребности, но и готова к масштабированию в будущем.

Если вы всё сделали правильно, ваши пользователи смогут снова работать с облаком без каких-либо изменений в функциональности.

Помогла статья? Подписывайся на Telegram канал автора.

Анонсы всех статей, много другой полезной и интересной информации, которая не попадает на сайт.

Если у вас имеются вопросы, задавайте их в комментариях.

Оставьте комментарий