Теневое копирование в Windows 2003 Server
Сергей «grinder» Яремчук (grinder@ua.fm, tux.in.ua)
У системного администратора довольно много обязанностей, но среди них особо стоит выделить процедуру резервирования данных. Причиной потери информации часто являются не системные сбои, а его величество пользователь, который вечно умудряется случайно удалить важный файл, перезаписать его другой версией, переместить неизвестно куда. А вот поиском и восстановлением приходится заниматься, конечно же, админу, который, кстати, останется, скорее всего, и виноват, если с файлом что-то случится. А если файлов несколько?
Содержание:
- Служба Volume Shadow Copy
- Принцип работы VSS
- Включение VSS
- Применение теневого копирования
- Отказ от теневого копирования
- Теневые копии общих папок в кластере
- Теневое копирование в командной строке
- Заключение
- Боковые выносы
В Win2k3 (а также XP и Vista) появилась служба теневого копирования тома (Volume Shadow Copy Service), которая позволяет решить львиную долю проблем, связанных с восстановлением небольшого числа файлов из резервной копии. Кроме этого, служба VSS также предоставляет возможность на лету архивировать открытые или блокированные файлы, что особенно полезно в тех программах (MS SQL Server, MS Exchange), которые не имеют самостоятельного механизма резервирования, и для создания резервной копии их приходится останавливать.
Но это еще не все. Например, представим еще одну типичную ситуацию: удален файл на сетевом ресурсе. В корзину он точно не попадает, поэтому его восстановление действительно потребует титанических усилий, и, возможно, остановки той системы, на диске которой был удаленный файл. Иначе на его место запросто может быть записана другая информация, а значит, пиши, пропало. При работающей VSS восстановить с ее помощью последнюю копию файла будет также не возможно. Зато запросто можно вернуться к ее предыдущим копиям, которые могут не сильно отличаться от оригинала, соответственно, суммарное время на восстановление последней версии и затраченные при этом усилия будут на порядок меньше. На практике именно эта возможность и является определяющей при решении использования Shadow Copy. А пользователям уже нет необходимости привлекать администратора для восстановления потерянной информации. При помощи VSS они могут (при наличии соответствующих прав доступа) самостоятельно разобраться с проблемой, обратившись к резервной копии тома в любое время.
К сожалению, часто о присутствии этой службы некоторые администраторы даже и не подозревают. Обычно просто прибегают к использованию софта сторонних производителей. Но стоит помнить, что служба VSS – это не альтернатива резервному копированию, скорее удобное дополнение, помогающее быстро разобраться с мелкими неприятностями.
С заданным администратором интервалом или по требованию VSS делает снимок общих ресурсов, расположенных на томе NTFS, и сохраняет копию тех данных, которые изменились с момента последнего теневого копирования. Администратор определяет периодичность создания теневых копий и количество дискового пространства, которое разрешено использовать для их хранения. При превышении установленного лимита более старые версии подменяются новыми. Изменения сохраняются не на уровне файлов, а на уровне блоков, в моментальных снимках содержится информация об изменениях по сравнению с предыдущим снимком. Поэтому пространство, необходимое для хранения такой информации, значительно меньше, чем можно было себе представить. Хотя его тоже стоит учитывать при планировании использования дисковых ресурсов, так как при активизации VSS на томе под его нужды требуется выделить не менее 100 Мб.
Сохраняются такие копии в области диска, которая называется кэшем теневых копий, а сам том, на котором находится этот кэш, именуется томом хранения теневой копии. По умолчанию он создается на том же томе, что и источник, но для повышения отказоустойчивости и быстродействия его можно размещать на отдельном физическом диске. Перед активизацией следует заранее определиться с местом хранения кэша, так как в последствии его нельзя будет переместить, не потеряв уже имеющиеся моментальные снимки. В теневых копиях также сохраняются разрешения NTFS и шифрование, что может вызвать проблемы при восстановлении файла.
Функция теневого копирования предназначена для использования с протоколом CIFS (Common Internet File System), поэтому чтобы получить доступ к предыдущим версиям файла или каталога на выбранном ресурсе, нужно подключаться к нему через общую папку. Даже после локальной регистрации на сервере необходимо использовать UNC (Universal Naming Convention) путь.
В версиях Win2k3 Enterprise и Datacenter Edition есть возможность довольно просто копировать или перемещать информацию в сети хранения SAN. В этом случае VSS может легко импортировать большие объемы данных из SAN на сервер, хотя эта реализация зависит от конкретного производителя системы хранения.
Физически кэш находится в скрытой системной папке System Volume Information и невидим для пользователей. Это одна из причин, почему службу VSS можно активизировать только на томах с файловой системой NTFS. Поддерживается весь том целиком, нельзя исключить или указать на конкретные файлы или каталоги. Поэтому если на некотором разделе находится каталог, к которому предоставлен общий доступ, то придется включать теневое копирования для всего раздела. Если в этом же разделе затем создать еще один общий ресурс, то предыдущие версии файлов будут доступны с момента открытия доступа. Также следует знать, что теневое копирование использует те же разрешения, что были установлены при создании теневой копии. То есть если мы создали теневую копию, а затем изменили права доступа, добавили или удалили пользователей и/или группы, то они будут иметь все необходимые права для текущих версий файлов/каталогов. Старые теневые копии будут продолжать использовать ранее назначенные разрешения. То есть, чтобы просмотреть, скопировать или восстановить файл, необходимы права, действующие на момент создания теневой копии.
Также следует помнить, что VSS не будет работать для mount point, данные на смонтированных ресурсах не будут включены в теневую копию. Поэтому на каждом из них также должна быть запущена служба VSS.
Сами копии доступны как обычные файлы в том виде, который они имели некоторое время назад, будь то день, неделя или месяц. Поддерживается до 64 снимков, то есть, фактически особо не напрягаясь, можно одновременно иметь до 64 версий одного и того же файла, которые легко извлекаются и восстанавливаются. Хотя при нехватке дискового пространства версий файлов может быть и меньше.
Размещать теневые копии на системном или загрузочном томе не стоит, так как файлы операционной системы постоянно меняются, и количество копий может быть большим. Да и особого смысла в этом действии нет. Поэтому рекомендуется включать VSS только на тех томах, где хранятся пользовательские данные, или нужна возможность постоянного архивирования открытых файлов.
Включить теневое копирование общего ресурса можно как минимум двумя способами. Первый – открыть «Мой компьютер», выбрать свойства нужного диска и перейти на вкладку «Теневые копии» (Shadow copy). Второй – использование оснастки MMC «Управление компьютеров», в которой следует перейти на вкладку «Запоминающие устройства» – «Управление дисками» и в контекстном меню нужного диска выбрать пункт Свойства. Открывшееся окно в обоих случаях одинаково, поэтому выбранный вариант никак не влияет на дальнейшие действия. Второй способ удобнее при удаленном управлении, при работе с локальными ресурсами лучше использовать «Мой компьютер».
По умолчанию теневое копирование для всех дисков отключено, состояние можно узнать в поле «Время следующего запуска». Нажатие на кнопку Создать позволит вручную создать теневую копию выбранного раздела, даже без активации службы VSS. В окне напротив появится дата и время создания теневой копии, а в поле «Использовано» будет показан размер, занимаемый теневой копией. Но сейчас делать этого не стоит, как только будет создана первая теневая копия раздела, изменить месторасположение кэша будет уже не возможно. Придется сначала все удалить и повторить все действия. Соответствующий пункт в настройках будет заблокирован.
Перед активацией автоматического режима создания теневых копий следует нажать кнопку Параметры.
В появившемся окне всего несколько настроек. Так в поле Том показывается имя ресурса, на котором создается теневая копия, его изменить, естественно, нельзя. В поле «Место хранения» в раскрывающемся списке «Расположено на томе» выбираем ресурс, на котором будет сохраняться кэш. Нажатие на кнопку Сведения позволит получить информацию о наличии места, отведенного под кэш на выбранном томе (если там уже включено теневое копирование). При помощи переключателя «Максимальный размер» указываем ограничение на размер данных в теневой копии. Здесь задаем цифру в мегабайтах, если места на диске много, то можно выбрать и вариант «Не ограничен». Нажав кнопку Расписание, можно указать, как часто должны создаваться теневые копии. В настройках по умолчанию теневое копирование производится два раза в 7:00 и 12:00 каждый будний день. Можно установить любое количество заданий, выполняющихся в разный период времени (однократно, ежедневно, ежемесячно, при простое, включении или выключении компьютера) с точностью до минуты. Создавать теневые копии чаще, чем раз в час, вряд ли целесообразно. Закончив установки, выходим нажатием ОК, нажимаем кнопку Включить для активации автоматического создания теневых копий и при помощи Создать делаем первую копию вручную. При активном автоматическом теневом копировании значок возле этого тома должен измениться, теперь на нем должны быть изображены часы.
Если что-то не будет получаться, обрати внимание во вкладке Службы на состояние службы «Теневое копирование тома» (название процесса vssvc.exe), которая собственно и управляет созданием теневых копий. Если она остановлена, теневые копии томов для восстановления не будут доступны и архивация и восстановление могут не работать. По умолчанию тип запуска установлен вручную, что и является рекомендуемым значением, для нормального функционирования VSS требует работы службы «Удаленный вызов процедур (RPC)».
Применение теневого копирования
Работать с ресурсами, использующими Shadow Copy, возможно в операционных системах, начиная от Win98SE. Но только в WinXP Pro SP2, Win2k3 и Vista есть все необходимое клиентское ПО. Для Win2k SP3, WinXP и Win98SE его придется доустанавливать дополнительно. Для WinXP Pro нужный файл можно взять с Win2k3 (%Windir%System32ClientsTwclientX86, файл twcli32.msi). Универсальный пакет доступен на сайте Microsoft (technet.microsoft.com/ru-ru/windowsserver/bb405951(en-us).aspx). Для Win98 и Win2k для установки MSI файла дополнительно понадобится Windows Installer, который можно взять по ссылкам go.microsoft.com/fwlink/?LinkId=14763 и go.microsoft.com/fwlink/?LinkId=14429 соответственно. Если установлена Active Directory, удобнее развернуть клиента через Group policy.
Теперь, когда клиент готов, заходим на нужный сетевой ресурс (при локальном просмотре данная функция не работает), выбираем файл, предыдущую версию которого ты хочешь получить, и в диалоговом окне свойства переходим на вкладку Предыдущие версии (если такой вкладки нет, значит, теневые копии не включены). Здесь будут показаны все версии файла, доступные в кэше с датой и временем создания. Чтобы просмотреть нужную, отмечаем ее и нажимаем кнопку Показать. Предыдущие версии файла доступны только для чтения, внести изменения в них невозможно. При помощи двух других кнопок файл можно копировать или восстановить. Если список предыдущих версий файла пуст, то это значит, что файл не изменялся с момента создания первой его копии.
А что делать, если файл был удален? Тогда в каталоге в списке файлов он не выводится и соответственно выбрать его свойства нельзя. Ничего страшного. В этом случае выбираем свойства каталога, в котором хранился файл. Так же как и для файла можно выбрать предыдущие копии, копировать информацию или восстановить состояние. Но следует помнить, что при выборе пункта Восстановить будут утеряны все изменения для всех объектов каталога. Лучше всего создать новый файл и копировать в него всю информацию со старой версии.
При необходимости, например для освобождения дискового пространства, ненужные теневые копии можно удалить или вообще отказаться от их использования. Чтобы удалить ненужные теневые копии, следует перейти во вкладку «Теневые копии», отметить их и нажать кнопку Удалить.
Если же не нужна сама функция теневого копирования на выбранном томе, то в этой же вкладке просто отключаем функцию теневого копирования нажатием соответствующей кнопки. В появившемся диалоговом окне подтверждаем свои действия. После этого старые теневые копии будут удалены, а новые создаваться уже не будут.
Теневые копии общих папок в кластере
Функция теневых копий работает и в кластерной среде. Причем реализовать ее поддержку в этом случае также просто. Для этого необходимо выполнить лишь несколько шагов. Сначала создаем на одном из узлов кластера управляемый кластером файловый ресурс общего доступа. Запускаем консоль «Администратор кластеров» и создаем ресурс «Физический диск» для диска, на котором расположена общая папка, а также ресурсы «Сетевое имя» и «IP-адрес», если они еще не существуют, и помещаем их в ту же группу ресурсов. Обязательно настраиваем созданный ресурс общего доступа таким образом, чтобы он был зависим от ресурса «Физический диск», управляющего теневыми копиями, и от ресурса «Сетевое имя» для данного общего ресурса. Переходим в консоль «Управление компьютером» и в узле «Общие папки» выделяем пункт «Все задачи» и выбираем команду «Настроить теневые копии». Далее отмечаем том, на котором требуется включить теневое копирование общих папок, и нажимаем кнопку Включить.
Теневое копирование в командной строке
Управлять теневым копированием можно используя утилиту командной строки Vssadmin. Поэтому пару слов о работе с ней. Например, чтобы создать новую теневую копию для диска D, используем такую команду:
> Vssadmin Create Shadow /For=D:
В качестве параметра для For можно указать как букву диска, так и точку подключения. Если запущен другой процесс создания теневой копии, будет получена ошибка. В этом случае следует дополнительно задать параметр AutoRetry с указанием времени в минутах, в течение которых будет повторяться попытка создания теневой копии.
> Vssadmin Create Shadow /For=D: /AutoRetry=10
Удалить все копии для тома можно применив Delete Shadows. Здесь дополнительных параметров несколько больше. Так том можно указать, использовав букву диска или ID теневой копии, который можно получить, введя «Vssadmin List Shadows», и если планируется удаление всех теневых копий на всех томах, используем All:
> Vssadmin Delete Shadows /All
Чтобы удалить лишь саму старую теневую копию на томе, введем:
> Vssadmin Delete Shadows /For=D: /Oldest
Посмотрим список ресурсов, выводимых командой List Shadows:
>Vssadmin List Shadows
Содержимое для ID набора теневых копий: {c5346555-bcbd-4153-8f14-7a56ee01710f}
Содержит 1 теневых копий на время создания: 31.12.2007 13:12:22
ID теневой копии: {4fd99472-f7f3-41a8-8735-58d8b596aa0a}
Исходный том: (D:)?Volume{4353404a-a4f6-11dc-bac3-806e6f6e6963}
Том теневой копии: ?GLOBALROOTDeviceHarddiskVolumeShadowCopy1
Размещающий компьютер: server.com
Обслуживающий компьютер: server.com
Поставщик: «Microsoft Software Shadow Copy provider 1.0″
Тип: ClientAccessible
Атрибуты: Сохранение, Доступно клиентам, Без автоматического освобождения, Без компонентов записи, Разностная
В третьей строке указан искомый ID, если для удаления теневой копии используется ID, то с его помощью можно удалить те, которые имеют тип ClientAccessible. Место хранения теневых копий для выбранного тома указывается при помощи параметра Add ShadowStorage:
> Vssadmin Add ShadowStorage /For=D: /On=E: /MaxSize=700MB
Введенный лимит дискового пространства после установки можно изменить при помощи Resize ShadowStorage. Запустив утилиту Vssadmin с параметром List Volumes, можно получить список томов, на которых возможна активация теневых копий. Для удаления связи между исходным томом и томом хранения теневых копий следует использовать Delete ShadowsStorage:
> Vssadmin Delete ShadowStorage /For=D: /On=E:
Для получения списка всех связей нужно ввести List ShadowStorage. Список приложений, использующих теневые копии, получаем при помощи List Writers.
Восстановить или получить предыдущую версию файла при использовании VSS очень просто, эту операцию освоит пользователь с любым уровнем подготовки, что сэкономит время и нервы не только ему, но и администратору. Учитывая, что VSS настраивается за пару щелчков мышки, отказываться от этой возможности стоит лишь в исключительных случаях.
WARNING
-
Прежде чем активизировать службу VSS, необходимо определиться с местом для хранения кэша теневых копий, так как впоследствии кэш нельзя переместить, не потеряв содержащиеся в нем моментальные снимки, а при отключении VSS на томе будут удалены все существующие теневые копии.
Статья опубликована в мартовском номере журнала «Xakep» за 2008 год.





