Главная
» Как сделать
»
Переместите данные Nextcloud на внешний диск, не повреждая хранилище.
Переместите данные Nextcloud на внешний диск, не повреждая хранилище.
Для стандартной установки Linux подключите внешний диск с постоянным доступом, скопируйте весь каталог данных, пока Nextcloud находится в автономном режиме, а затем создайте символическую ссылку с исходного пути на новое местоположение. Не изменяйте путь просто datadirectoryтак config.php: Nextcloud отслеживает локальное хранилище по абсолютному пути, поэтому прямое изменение пути может привести к потере файлов и общих ресурсов.
В этом примере предполагается установка пакета или архива. Docker, Snap и виртуальные машины сопоставляют пути по-разному; вместо того, чтобы слепо копировать эти пути хоста, адаптируйте монтирование под конкретное развертывание.
Что подтверждено, а что зависит от вашего сервера.
Точка
Что делать
Подтверждено: Nextcloud использует абсолютный путь для идентификации локального хранилища. Неосторожное перемещение может привести к появлению «осиротевших» файлов или общих ресурсов.
Сохраняйте заданный путь стабильным с помощью символической ссылки; сохраняйте все содержимое, включая .ncdata.
Зависит от настроек: путь к данным, HTTP-пользователь, файловая система и имена служб могут различаться.
Проверьте действующую конфигурацию и убедитесь, что диск сохраняет необходимые права доступа и разрешения Linux.
Зависимость от диска: нельзя гарантировать надежное монтирование загрузочного устройства и наличие питания.
Смонтируйте диск по UUID, проверьте монтирование после перезагрузки и предотвратите запуск Nextcloud при отсутствии диска с данными.
Функция монтирования внешнего хранилища в приложении «Файлы» добавляет дополнительное местоположение; она не перемещает основной каталог данных. Используйте её для создания дополнительной папки или общего доступа, а каталог данных перенесите, когда собственные файлы и метаданные сервера должны храниться на диске.
1. Создайте резервную копию Nextcloud и определите путь к источнику.
Создайте резервную копию базы данных config/, каталога данных, пользовательских приложений и тем оформления. Убедитесь, что резервная копия базы данных восстанавливаема; копирование только файлов не является полным откатом.
Найдите путь к данным в файле config/config.phpили с помощью команды occ config:system:get datadirectory`http://localhost:90`, затем определите HTTP-пользователя. В примерах используются `http://localhost:90` www-dataи /var/www/nextcloud/data`http://localhost:90`; подставьте свои фактические значения. Не форматируйте диск, содержащий необходимые вам файлы.
Иллюстрация: в окне дисковой утилиты отображаются сведения о внешнем диске и файловой системе, которые необходимо подтвердить перед его монтированием для Nextcloud.
2. Установите накопитель на устойчивой опоре.
Запустите команду lsblk -fи запишите UUID файловой системы раздела. Имена, например, /dev/sdb1могут меняться, поэтому используйте UUID в конфигурации монтирования.
Для сервера Linux, использующего файловую систему ext4, создайте точку монтирования и добавьте в файл .config строку следующего вида /etc/fstab, заменив указанный UUID на фактический:
Используйте тип данных, уже имеющийся на разделе; эта строка не форматирует его. Убедитесь, что файловая система сохраняет права собственности и разрешения, необходимые Nextcloud.
Перед размещением на нем каких-либо данных, смонтируйте и проверьте его:
sudo mkdir -p /srv/nextcloud-disk
sudo mount /srv/nextcloud-disk
findmnt /srv/nextcloud-disk
Убедитесь, что вывод идентифицирует внешний раздел. Если используется nofail, также ограничьте доступ к веб-сервисам/PHP на точке монтирования; в противном случае отсутствие диска может привести к появлению пустого каталога точки монтирования, в который будут записываться данные. В качестве дополнения к systemd можно использовать RequiresMountsFor=/srv/nextcloud-disk. Держите диск подключенным во время работы Nextcloud.
Иллюстрация: запись UUID в таблице файловой системы представляет собой постоянную конфигурацию монтирования, а не ярлык имени устройства.
3. Переведите Nextcloud в режим обслуживания и скопируйте данные.
Режим обслуживания блокирует вход в систему, но не останавливает все запланированные задания. Приостановите cron Nextcloud или его таймер systemd, остановите клиенты синхронизации и веб-сервисы/PHP перед копированием, чтобы никакие запросы не изменяли файлы во время перемещения.
При отключенном планировщике и остановленных веб-/PHP-сервисах скопируйте каталог данных от имени root, чтобы сохранить права собственности, разрешения, списки контроля доступа и скрытые файлы:
Косая черта в конце копирует содержимое каталога. Сохраните старую копию; проверьте rsyncналичие ошибок и убедитесь, что .ncdataона находится на верхнем уровне нового каталога.
Иллюстрация: на изображении копирования в терминале показана передача всего каталога данных при остановленном Nextcloud.
4. Сохраните старый путь с помощью символической ссылки.
В руководстве по устранению неполадок Nextcloud рекомендуется связать исходный путь с новым каталогом. После проверки копии переименуйте старый каталог для отката и создайте ссылку:
Убедитесь, что путь разрешается в /srv/nextcloud-disk/data. Веб-пользователь должен пройтись по родительским каталогам и прочитать .ncdataи записать данные в целевой каталог:
sudo -u www-data test -r /var/www/nextcloud/data/.ncdata
sudo -u www-data test -w /var/www/nextcloud/data
Если проверка не пройдена, исправьте права собственности или родительские права для вашего веб-пользователя; не делайте каталог доступным для записи всем. Некоторые веб-серверы должны разрешать символические ссылки. Если это невозможно, не редактируйте их oc_storagesвручную: Nextcloud называет этот метод неподдерживаемым и предупреждает, что он может привести к сбою базы данных.
Иллюстрация: на экране терминала показан исходный путь к данным, связанный с каталогом на внешнем диске.
5. Перезагрузите устройство и проверьте результат, прежде чем удалять откатную копию.
Запустите web/PHP и снова включите планировщик задач. Подтвердите монтирование и создание символической ссылки, затем отключите режим обслуживания:
Войдите в систему, откройте существующие файлы и общие ресурсы, а также загрузите/скачайте небольшой файл. Проверьте журналы Nextcloud и веб-сервера, затем перезагрузите систему в окне обслуживания, чтобы убедиться в правильности монтирования дисков перед запуском Nextcloud.
Сохраните data.pre-moveрезервную копию базы данных до перезагрузки и успешной синхронизации. Если перемещение не удастся, включите режим обслуживания, остановите приложение и восстановите исходное состояние каталога и службы. files:scanНеправильное монтирование исправить невозможно.
Проверка
Проверьте монтирование дисков при загрузке: исходный путь должен разрешаться в него, веб-пользователь должен иметь возможность читать и записывать данные, а также должны работать существующие файлы и небольшая загрузка. Если Nextcloud сообщает об отсутствии файлов после перезагрузки, остановите приложение и проверьте монтирование перед разрешением записи.