отцам винды: Previous Versions в Vista

Marinavo_0507

В статье http://www.microsoft.com/technet/windowsvista/library/4ac505... заявлена поддержка хранения нескольких предыдущих версий файлов. Исходя из статьи http://arstechnica.com/news.ars/post/20060730-7383.html следует, что используется тот же механизм, что и для System Restore, и что для хранения версий будет выделено до 15% свободного места на разделе.
Но вот совершенно непонятно, в какие моменты будут делаться снапшоты. В определённые моменты времени, как в каком-нибудь NetApp, или при каждом изменении, наподобие VMS? Может, кто знает больше?

davidko

Мне кажется, было бы логично, если бы автоматически делался снапшот при каждом открытии для редактирования, как в какой-нибудь source management(как это по-русски нормально сказать?) системе, да. Автоматически в какие-то моменты времени - несерьёзно как-то. А вообще, вопрос очень интересный, ждём знатоков.

Marinavo_0507

было бы логично, если бы автоматически делался снапшот при каждом открытии для редактирования
а как система узнает, открыт файл для редактирования, или для других целей?
вроде как соответствующий системный вызов не имеет таких флагов
прикинь, если копия какой-нибудь БД или лога будет при каждом изменении сохраняться

bleyman

а как система узнает, открыт файл для редактирования, или для других целей?
вроде как соответствующий системный вызов не имеет таких флагов
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.

bleyman

Я уж не говорю о том, что время Last Modified ещё чуть ли не 2000 сохранялось.

Marinavo_0507

Ну и какое значение флага означает, что стопудово файл открывается для редактирования? Вообще-то, разные редакторы по-разному делают.

bleyman

Нормальные редакторы открывают файлы для чтения как файлы для чтения.
Да, а ещё вызов WriteFile система тоже вполне в состоянии отследить, если уж совсем хочется избежать лишних бэкапов =)

Marinavo_0507

То есть, твоя позиция - что каждое открытие с модификацией должно приводить к новой версии, примерно как в VMS?

bleyman

Не обязательно каждое, конечно. Так никаких 15% не хватит.
Я говорю о том, что текущие технические возможности оси позволяют авторам придумать схему бэкапленья практически произвольной сложности. Наверное, можно даже diff (то бишь fc) делать.

evgen5555

Если размер файла больше резервированного места, естественно, никто не будет его бэкапить

olga-grabskaja

Там написано, что работает так же как в 2003 сервере. В 2003 сервере это работает так: теневое копирование включается на томе и для всех шар, расположенных на этом томе оно работает, создавая копий файлов во времени.
Т.е. изначально делается бекап файлов во всех шарах, в следующее время файлы в шарах сверяются с файлами в бекапе и если они были изменены, добавляются в бекап. Извлекаются предыдущие версии следующим образом: в сетевой шаре жмешь на файл - свойва - Previous version, выбираешь и действуешь. Очень простой и очень полезный интрумент, который позволяет не дергать админов, когда случайно удалишь файл в шаре.
Если такая фича добавлена на весь том, а не только на шары, то это очень гуд.

olga-grabskaja

Так никаких 15% не хватит.

В 2003 сервере можно указывать какой объем использовать под теневое копирование тома. Т.к. здесь речь идет о строгом ограничении в 15%, то, значит, действительно данная фича направленна на все файлы.
P.S: При достижении теневым копированием заданного объема, старые версии файлов потираются.
P.P.S: Теневое копироние не является заменой стандартному бекапу, они лишь расширяет возможности работы с файлами

olga-grabskaja

То есть, твоя позиция - что каждое открытие с модификацией должно приводить к новой версии, примерно как в VMS?

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

Marinavo_0507

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

evgen5555



Скорее всего, теневые копию будут делать по расписанию, как и в 2003 сервере.

Скриншот, сделанный в первой ссылке, говорит о другом.

Marinavo_0507

Может быть, авторы скриншота не захотели ждать несколько дней, и поторопили немного бекапилку?

evgen5555

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

Marinavo_0507

> Нет, я так не думаю.
Тут важно не как ты думаешь, а как подумали разработчики.

Dasar

> Тогда единственный косяк - это если в этот момент как раз файл будет в стадии перезаписи приложением
в таком момент - файл должен быть залочен программой. соответственно, в этот момент - его просто не получится скопировать.

evgen5555

Ты не прав, файлы с привилегией backup открываются все

Helga87

Более того, в Висте обещана Transacted NTFS, так что проблема синхронизации одновременных операций даже над несколькими файлами не будет стоять.

Dasar

> Более того, в Висте обещана Transacted NTFS, так что проблема синхронизации одновременных операций даже над несколькими файлами не будет стоять.
из наличия транзакций - совсем не следует, что нет блокировок на файлы.

Dasar

> Ты не прав, файлы с привилегией backup открываются все
может быть - не пробовал.
главное - что у системы есть информация о том, какие файлы уже можно копировать, а какие еще не стоит.

olga-grabskaja

Это хорошо. Тогда единственный косяк - это если в этот момент как раз файл будет в стадии перезаписи приложением.

Для этого и существует технология теневого копирования. Изначально она придумывалась для проведения бекапа в рабочей системе, потом немножко откололось в сторону этой штуки. Т.е. ничего страшного, если ты используешь этот файл - он все-равно записывается.

olga-grabskaja

Скриншот, сделанный в первой ссылке, говорит о другом.

Скорее всего теневое копирование в скриншоте делали ручками. Изменяли файл и делали теневое копирование.

Marinavo_0507

Т.е. ничего страшного, если ты используешь этот файл - он все-равно записывается.
Если редактор сделал truncate, и только начал записывать заново, как его накрыло бекапилкой - что случится и почему?

bleyman

из наличия транзакций - совсем не следует, что нет блокировок на файлы.
Зато на уровне оси можно как бы временно откатить текущую транзакцию, стырить файл, после чего вернуть всё на место.
Оставить комментарий
Имя или ник:
Комментарий: