Допустим, у нас есть файл с именем bob
размером 10 ГБ в /home
. Я делаю снимок /home
и удаляю оригинальный файл bob
. Однако я все еще могу получить доступ к файлу bob, потому что у меня есть его снимок. Мой вопрос: почему жесткий диск не будет заполнен, если я продолжу делать это несколько раз? Потому что размер снимка очень маленький.
2 ответа
Если вы говорите о снимках LVM, то это объясняет это довольно хорошо:
Замечательное средство, предоставленное LVM, является "снимками". Это позволяет администратору создать новое блочное устройство, которое представляет точную копию логического тома, замороженного в определенный момент времени.
Если вы понимаете, как работают файловые системы, вы понимаете, что при удалении из вашей системы файла, такого как bob
, сам файл не удаляется. Но вместо этого удаляется запись inode для этого файла. Данные все еще существуют на томе. Снимок снимает замороженное изображение таблицы LVM в этот момент времени и - это является ключевым - он отмечает используемую запись inode.
То есть, когда вы получаете доступ к данным через моментальный снимок, на самом деле это просто перераспределение метаданных LVM в индексы, связанные с этими исходными данными. А поскольку после моментального снимка вам не будет предоставлен доступ к индексам, используемым системой в предыдущих снимках, эти данные по-прежнему сохраняются на уровне глубокой файловой системы.
Таким образом, моментальный снимок LVM - это, по сути, «дельта» вашей файловой системы в одном прошлом состоянии по сравнению с текущим состоянием, которая выполняется таким образом, чтобы обеспечить сохранение любых «откатов» к прошлым данным.
Если вы сохраняете снимки файла или файлов, они не дублируются. Существует только одна копия данных, на которую ссылаются все снимки, пока вы не попытаетесь изменить версию, тогда вы получите новые данные. Следовательно "копировать на запись".