ZFS

Учебное пособие по созданию снимков ZFS

Учебное пособие по созданию снимков ZFS

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

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

Механизм копирования при записи

ZFS имеет как высокоуровневый обзор файлов и каталогов, так и понимает, как данные записываются на диск. При физической записи данных на диск это делается дискретными блоками. Как правило, размер блока может достигать 1 МБ, но по умолчанию обычно 128 КБ. Теперь это означает, что каждая модификация (чтение, запись или удаление) будет происходить в дискретных блоках.

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

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

Снимки также полагаются на эту функциональность, и на самом деле довольно сильно. Когда вы делаете снимок заданного набора данных («набор данных» - это термин ZFS для файловой системы), ZFS просто записывает временную метку, когда был сделан снимок. Вот оно что! Данные не копируются, и дополнительное хранилище не используется.

Только когда файловая система изменяется и данные в ней расходятся с моментальным снимком, моментальный снимок начинает занимать дополнительное пространство. Под капотом происходит следующее: вместо того, чтобы со временем перерабатывать старые блоки, ZFS хранит их. Это также улучшает использование хранилища. Если вы сделаете снимок набора данных 20 ГБ и измените только несколько текстовых файлов здесь и там, снимок может занять всего несколько МБ пространства.


Создание снимков

Чтобы продемонстрировать использование снимков, давайте начнем с набора данных, в котором много текстовых файлов, просто для простоты. Виртуальная машина, которую я буду использовать для демонстрации, работает под управлением FreeBSD 11.1-RELEASE-p3, который является последней стабильной версией, доступной на момент написания этой статьи. Корневая файловая система смонтирована на zroot пул по умолчанию и множество знакомых каталогов, таких как / usr / src, / home и т. д все их собственные наборы данных установлены на zroot. Если вы не знаете, что означает пул (или zpool) на языке ZFS, стоит прочитать об этом, прежде чем продолжить.

Одна из многих файловых систем или наборов данных, которые по умолчанию входят во FreeBSD: zroot / usr / src

Чтобы посмотреть его свойства, выполните следующую команду.

[электронная почта защищена]: ~ $ zfs list zroot / usr / src

Как видите, он использует 633 МБ памяти. Он содержит все исходное дерево для операционной системы.

Сделаем снимок zroot / usr / src

[защита электронной почты]: ~ $ zfs snapshot zroot / usr / [защита электронной почты]

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

Теперь посмотрим на состояние снимка при его создании.

Запустив команду:

zfs list -rt все zroot / usr / src

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

Теперь давайте удалим sbin каталог в / usr / src /

[электронная почта защищена]: $ rm / usr / src / sbin

Посмотрев на снимок, вы увидите, что он увеличился,

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

Обратите внимание на столбец REFER в приведенном выше выводе. Он дает вам количество доступных данных в наборе данных, тогда как столбец USED просто показывает, сколько места занято на физическом диске.

Механизм копирования при записи ZFS часто дает такие нелогичные результаты, когда при удалении файла создается впечатление, что теперь используется больше места, чем раньше. Однако, прочитав до сих пор, вы знаете, что происходит на самом деле!

Прежде чем закончить, давайте восстановим sbin из снимок1. Для этого просто запустите:

[защита электронной почты]: / usr / src $ zfs откат zroot / usr / [защита электронной почты]

Политика создания снимков

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

Для начала вы начнете делать снимки каждые 6 часов или около того, но из-за того, что база данных так сильно меняется, вскоре станет невозможно хранить все многочисленные снимки, которые были созданы. Итак, следующим шагом будет очистка снимков, которые старше, скажем, 48 часов.

Теперь проблема заключается в том, чтобы восстановить то, что было потеряно 49 часов назад. Чтобы обойти эту проблему, вы можете сохранить один или два снимка из этой 48-часовой истории и хранить их в течение недели. Очистите их, когда они станут старше.

И если вы можете продолжать идти по этому пути, вы можете втиснуть снимки до самого генезиса системы, просто в порядке убывания частоты. Наконец, я хотел бы отметить, что эти снимки доступны ТОЛЬКО ДЛЯ ЧТЕНИЯ, что означает, что если вы заразитесь программой-вымогателем и все ваши данные будут зашифрованы (изменены). Эти снимки, скорее всего, останутся нетронутыми.

Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...
Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...