Операционные системы - статьи

Как работает «моментальный снимок» файловой системы


Моментальный снимок файловой системы создается монтированием пустого дискового пространства (slice). Битовая, блоковая карты и супер-блок инициализируются и смонтированная файловая система, которая должна быть snapped, «замораживается». Как только файловая система, которая должна быть snapped «заморожена» (т.е. прошла инициализация) появляется возможность делать «моментальные снимки» и snapped файловая система «размерзается» и готова к использованию.

Когда изменяется inode или записываются данные в блок данных N snapped файловой системы, то старые данные перед изменением snapped файловой системы сначала считываются и копируются в «моментальный снимок». Значение битовой карты изменяется на 1 (означает, что данные для блока N могут быть найдены в snapped файловой системе). Элемент блоковой карты для блока N изменяется на номер блока в «моментальном снимке» содержащему старые данные.

При запросе данных блока N из «моментального снимка» сначала проверяется значение битовой карты и, в случае значения 1 читается информация из указанного в блоковой карте блока «моментального снимка». Если же значение битовой карты равно 0, то считываются данные из блока N snapped файловой системы. Последующие операции записи в блок N snapped файловой системы не требуют создания дополнительных копий «моментального снимка», так как старые данные для него должны быть сохранены только один раз.

История изменений snapped файловой системы (inode, директории, данные в файлах, карты экстентов, и т.п.) храниться в «моментальных снимках», которые содержат последовательные образы всех структур snapped файловой системы соответственно для времени, когда соответствующий «моментальный снимок» был создан.

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

К счастью, данные в основных файловых системах не так экстремально часто меняются.

Практика показывает, что в период низкой активности «моментальный снимок» требует от 2-х до 6-ти процентов размера snapped файловой системы. В период высокой активности (изменения данных) «моментальный снимок» может потребовать до 15% размера snapped файловой системы.

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



Содержание раздела