отцам винды: Previous Versions в Vista
Мне кажется, было бы логично, если бы автоматически делался снапшот при каждом открытии для редактирования, как в какой-нибудь source management(как это по-русски нормально сказать?) системе, да. Автоматически в какие-то моменты времени - несерьёзно как-то. А вообще, вопрос очень интересный, ждём знатоков.
было бы логично, если бы автоматически делался снапшот при каждом открытии для редактированияа как система узнает, открыт файл для редактирования, или для других целей?
вроде как соответствующий системный вызов не имеет таких флагов
прикинь, если копия какой-нибудь БД или лога будет при каждом изменении сохраняться
а как система узнает, открыт файл для редактирования, или для других целей?HFILE OpenFile(
вроде как соответствующий системный вызов не имеет таких флагов
LPCSTR lpFileName,
LPOFSTRUCT lpReOpenBuff,
UINT uStyle
);
uStyle
[in] Action to take. This parameter can be one or more of the following values.
...
OF_READ Opens the file for reading only.
OF_READWRITE Opens the file for reading and writing.
...
OF_WRITE Opens the file for writing only.
Я уж не говорю о том, что время Last Modified ещё чуть ли не 2000 сохранялось.
Ну и какое значение флага означает, что стопудово файл открывается для редактирования? Вообще-то, разные редакторы по-разному делают.
Да, а ещё вызов WriteFile система тоже вполне в состоянии отследить, если уж совсем хочется избежать лишних бэкапов =)
То есть, твоя позиция - что каждое открытие с модификацией должно приводить к новой версии, примерно как в VMS?
Я говорю о том, что текущие технические возможности оси позволяют авторам придумать схему бэкапленья практически произвольной сложности. Наверное, можно даже diff (то бишь fc) делать.
![](/images/graemlins/smile.gif)
Т.е. изначально делается бекап файлов во всех шарах, в следующее время файлы в шарах сверяются с файлами в бекапе и если они были изменены, добавляются в бекап. Извлекаются предыдущие версии следующим образом: в сетевой шаре жмешь на файл - свойва - Previous version, выбираешь и действуешь. Очень простой и очень полезный интрумент, который позволяет не дергать админов, когда случайно удалишь файл в шаре.
Если такая фича добавлена на весь том, а не только на шары, то это очень гуд.
![](/images/graemlins/smile.gif)
Так никаких 15% не хватит.
В 2003 сервере можно указывать какой объем использовать под теневое копирование тома. Т.к. здесь речь идет о строгом ограничении в 15%, то, значит, действительно данная фича направленна на все файлы.
P.S: При достижении теневым копированием заданного объема, старые версии файлов потираются.
P.P.S: Теневое копироние не является заменой стандартному бекапу, они лишь расширяет возможности работы с файлами
То есть, твоя позиция - что каждое открытие с модификацией должно приводить к новой версии, примерно как в VMS?
Скорее всего, теневые копию будут делать по расписанию, как и в 2003 сервере. Делать по изменению - это просто не удобно. Например, ты набираешь вордовский документ и у тебя работает автосохранение. В итоге ты получаешь полное заполнение своего бекапа и удаление самых первых версий файла. Сохрание по времени дает более ожидаемый результат.
Это хорошо. Тогда единственный косяк - это если в этот момент как раз файл будет в стадии перезаписи приложением.
> Делать по изменению - это просто не удобно.
Не скажи. Случаи бывают разные, одна политика бекапа на всё - не сработает.
Скорее всего, теневые копию будут делать по расписанию, как и в 2003 сервере.
Скриншот, сделанный в первой ссылке, говорит о другом.
Может быть, авторы скриншота не захотели ждать несколько дней, и поторопили немного бекапилку?
Нет, я так не думаю. Бэкап часто изменяемого мелкого файла по расписанию будет тормозить компутер на длительное время, и смысла в этом не наблюдается никакого.
Тут важно не как ты думаешь, а как подумали разработчики.
в таком момент - файл должен быть залочен программой. соответственно, в этот момент - его просто не получится скопировать.
![](/images/graemlins/smile.gif)
Более того, в Висте обещана Transacted NTFS, так что проблема синхронизации одновременных операций даже над несколькими файлами не будет стоять.
из наличия транзакций - совсем не следует, что нет блокировок на файлы.
может быть - не пробовал.
главное - что у системы есть информация о том, какие файлы уже можно копировать, а какие еще не стоит.
Это хорошо. Тогда единственный косяк - это если в этот момент как раз файл будет в стадии перезаписи приложением.
Для этого и существует технология теневого копирования. Изначально она придумывалась для проведения бекапа в рабочей системе, потом немножко откололось в сторону этой штуки. Т.е. ничего страшного, если ты используешь этот файл - он все-равно записывается.
Скриншот, сделанный в первой ссылке, говорит о другом.
Скорее всего теневое копирование в скриншоте делали ручками. Изменяли файл и делали теневое копирование.
Т.е. ничего страшного, если ты используешь этот файл - он все-равно записывается.Если редактор сделал truncate, и только начал записывать заново, как его накрыло бекапилкой - что случится и почему?
из наличия транзакций - совсем не следует, что нет блокировок на файлы.Зато на уровне оси можно как бы временно откатить текущую транзакцию, стырить файл, после чего вернуть всё на место.
Оставить комментарий
Marinavo_0507
В статье http://www.microsoft.com/technet/windowsvista/library/4ac505... заявлена поддержка хранения нескольких предыдущих версий файлов. Исходя из статьи http://arstechnica.com/news.ars/post/20060730-7383.html следует, что используется тот же механизм, что и для System Restore, и что для хранения версий будет выделено до 15% свободного места на разделе.Но вот совершенно непонятно, в какие моменты будут делаться снапшоты. В определённые моменты времени, как в каком-нибудь NetApp, или при каждом изменении, наподобие VMS? Может, кто знает больше?