Движение в тениСергей «grinder» Яремчук (grinder@ua.fm, www.tux.in.ua) Хакер, номер #111, стр. 111-142-1 Теневое копирование в Windows 2003 ServerУ системного администратора довольно много обязанностей, но среди них особо стоит отметить процедуру резервирования данных. Причиной потери информации часто являются не системные сбои, а его величество пользователь, который вечно умудряется случайно удалить важный файл, перезаписать его другой версией, переместить неизвестно куда. А вот поиском и восстановлением приходится заниматься админу, который, если с файлом что-то случится, останется, скорее всего, и виноват. А вдруг утраченных файлов несколько? Служба Volume Shadow CopyВ Win2k3 (а также XP и Vista) появилась служба теневого копирования тома (Volume Shadow Copy Service), которая позволяет решить львиную долю проблем, связанных с восстановлением небольшого числа файлов из резервной копии. Кроме того, служба VSS также предоставляет возможность налету архивировать открытые или блокированные файлы, что особенно полезно в тех программах (MS SQL Server, MS Exchange), которые не имеют самостоятельного механизма резервирования и которые приходится останавливать для создания резервной копии. Но это еще не все. Представим другую типичную ситуацию: удален файл на сетевом ресурсе. В корзину он точно не попадает, поэтому его восстановление потребует титанических усилий и, возможно, остановки той системы, на диске которой находился удаленный файл. Иначе на его место запросто может быть записана другая информация. При работающей VSS восстановить с ее помощью последнюю копию файла будет невозможно. Зато можно вернуться к ее предыдущим копиям, которые могут несильно отличаться от оригинала, соответственно, суммарное время на восстановление последней версии и затраченные при этом усилия будут на порядок меньше. На практике именно эта возможность и является определяющей при выборе Shadow Copy. С VSS пользователям уже нет необходимости привлекать администратора для восстановления потерянной информации. При наличии соответствующих прав доступа они могут самостоятельно разобраться с проблемой, в любое время обратившись к резервной копии тома. Стоит помнить, что служба 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 только на тех томах, где хранятся пользовательские данные или нужна возможность постоянного архивирования открытых файлов. Включение 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%\System32\Clients\Twclient\X86, файл 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}\ Том теневой копии: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1 Размещающий компьютер: 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 на томе будут удалены все существующие теневые копии. |