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

У меня очень большой сервер (Minecraft), использующий десятки гигабайт файлов. Каждые два дня я делаю резервную копию, но так как сервер очень большой, мне нужно выключить его на 45 минут, пока резервная копия не будет сделана.

Если я выполняю резервное копирование во время работы сервера, папка резервной копии будет повреждена из-за того, что не все файлы были зарезервированы одновременно, и есть дублированные данные, отсутствующие данные и другие проблемы. Рекурсивное изменение папки сервера до значения 440 (только для чтения) делает сервер спамом тысячи ошибок, а иногда приводит к сбою или повреждению данных.

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

Возможно ли это вообще? Если да, какой инструмент я должен использовать для этого? Я думал что-то такое, переключая папку сервера на мягкую ссылку на папку или раздел, который имитирует это.

4
задан 19 June 2014 в 05:54

2 ответа

Используя overlayfs

Используйте overlayfs на корне Вашего сервера (папка сервера).

  1. Сделайте ссылку только для чтения на папку сервера, из которой можно создать резервную копию данных, в то время как реальный каталог покрыт

    mkdir-p/path/to/ReadOnlyServerRoot sudo монтируются - связывают/path/to/serverRoot/path/to/ReadOnlyServerRoot-o, повторно монтируются, ro

  2. Завершите работу сервера так, чтобы файлы и базы данных были правильно закрыты

  3. Защитите фактический корень сервера, /path/to/serverRoot, от записи.

    sudo mount -t overlayfs overlayfs /path/to/serverRoot -o rw,uppderdir=/path/to/changes,lowerdir=/path/to/serverRoot
    

Измененные и недавно добавленные данные хранятся в /path/to/changes. Когда файл изменяется, новая копия сделана на /path/to/changes/path/to/file и этот файл обновляется.

  1. Запустите сервер

  2. Теперь можно скопировать данные из /path/to/ReadOnlyServerRoot

  3. Сервер завершения работы после резервного копирования завершается

  4. Удалите покрытие

    sudo umount /path/to/serverRoot
    
  5. Используйте программное обеспечение синхронизации, такое как rsync, для слияния данных изменения в файл сервера.

    rsync /path/to/changes /path/to/serverRoot
    rm -rf /path/to/changes
    
  6. Запустите сервер

Больше информации о на опции overlayfs может быть найдено на этом ответе.

Шаги 2, 4, 6, и 9 являются дополнительными, но настоятельно рекомендованные: Во время создания и удаления наложения на папке сервера это настоятельно рекомендовано для завершения работу сервера (только секунды времени простоя) для успешного резервного копирования, поскольку сервер может кэшировать частичные данные по их памяти, и только часть данных была бы обновлена. В результате резервное копирование содержит недопустимые/неприменимые данные, которые в свою очередь приводят к потерянным данным.

Используя снимок файловой системы

переключите на файловую систему тот снимок поддержки как btrfs или lvm

Обновление

Если overlayfs не является доступным использованием aufs или unionfs
unionfs

    mount -t unionfs -o dirs=/branch_rw=rw:/branch_ro=rounionfs/union

создает Объединение в каталоге /union с каталогами ответвления /branch_rw(перезаписываемый) и /branch_ro (только для чтения).

aufs

mkdir /tmp/dir1
mkdir /tmp/aufs-root
mount -t aufs -o br=/tmp/dir1:/tmp/dir2 none /tmp/aufs-root/

Первые две команды создали 2 новых каталога. mount.aufs команда должна смонтировать файловую систему, как Объединение монтируется. Команда монтирования, указывает, что она идет в объединение, монтируются /tmp/dir1 и /tmp/dir2 под /tmp/aufs-root. Каталог /tmp/aufs-root будет иметь содержание обоих /tmp/dir1 и /tmp/dir2.

2
ответ дан 19 June 2014 в 05:54

Если бы Вы создали свою файловую систему с включенным Менеджером по логическому тому (LVM), то Вы могли сделать снимок файловой системы и затем скопировать тот снимок, в то время как Ваш сервер никогда не удаляется.

учебное руководство на Три страницы здесь: http://www.howtoforge.com/linux_lvm_snapshots

, Хотя это могло означать, что необходимо будет воссоздать файловую систему.

1
ответ дан 19 June 2014 в 05:54

Другие вопросы по тегам:

Похожие вопросы: