Мгновенные копии файловых систем

12.11. Мгновенные копии файловых систем

Текст предоставилTom Rhodes.

Во FreeBSD 5.0 вместе с технологией Отложенных обновлений представлена новая возможность: генерация мгновенных копий файловых систем.

Мгновенные копии позволяют пользователю создавать образы заданных файловых систем и работать с этими образами как с файлами. Файлы мгновенных копий должны создаваться в той файловой системе, над которой производится действие, и пользователь может создавать не более 20 мгновенных копий для каждой файловой системы. Активные копии записываются в суперблок, так что они остаются в силе между операциями монтирования и размонтирования в процессе системных перезагрузок. Если мгновенная копия больше не нужна, она может быть удалена стандартной командой rm(1) как обычный файл. Мгновенные копии могут удаляться в любом порядке, однако всё использованное пространство не может быть использовано повторно, так как другая мгновенная копия может претендовать на некоторые освобождённые блоки.

В момент первоначального создания устанавливается флаг schg (обратитесь к страницам справочной системы по команде chflags(1)) для обеспечения того, что даже пользователь root не сможет произвести запись в мгновенную копию. Однако команда unlink(1) делает исключение для файлов мгновенных копий, позволяя их удалять даже при наличии установленного флага schg, так что нет необходимости снимать флаг schg перед удаление файла мгновенной копии.

Мгновенные копии создаются при помощи утилиты mount(8). Чтобы создать мгновенную копию /var в файле /var/snapshot/snap, воспользуйтесь такой командой:

    # mount -u -o snapshot /var/snapshot/snap /var

Как только мгновенная копия создана, есть несколько интересных операций, которые может с ними проделать администратор:

  • Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на CD или магнитную ленту.

  • Утилита проверка целостности файловой системы, fsck(8), может быть запущена над файлом мгновенной копии. Полагая, что файловая система была в порядке, когда она была смонтирована, вы всегда должны получать нормальный (и неизменный) результат от запуска fsck(8) с мгновенной копией. Это именно то, что выполняет фоновый процесс fsck(8).

  • Запустить утилиту dump(8) с мгновенной копией. Будет создаваться дамп, соответствующий файловой системе на момент создания мгновенной копии.

    WarningНа момент написания этих строк утилита dump(8) не была ещё модифицирована для корректного изменения файла dumpdates, так что не используйте эту возможность в реальной работе, пока это не будет исправлено.

  • Смонтировать командой mount(8) мгновенную копию как замороженный образ файловой системы. Чтобы смонтировать командой mount(8) мгновенную копию /var/snapshot/snap:

        # mdconfig -a -t vnode -f /var/snapshot/snap -u 4
        # mount -r /dev/md4 /mnt

Теперь вы можете пройтись по иерархии вашей зафиксированной файловой системы /var, смонтированной в каталог /mnt. Всё будет в том же самом состоянии, в каком это было во время создания мгновенной копии. Единственным исключением будет то, что любые ранее сделанные мгновенные копии будут видны как файлы нулевой длины. Когда использование мгновенной копии закончено, она может быть удалена командой:

    # umount /mnt
    # mdconfig -d -u 4

Для получения более полной информации о softupdates и мгновенных копиях файловых систем, включая технической описание, вы можете посетить сайт Маршалла Кёрка МакКузика (Marshall Kirk McKusick) по адресу http://www.mckusick.com