NDMP – что это, и как использовать?
NDMP – Network Data Management Protocol – это разработанный еще в 90-х годах компаниями NetApp и Legato(ныне EMC Software Group) сетевой IP-протокол, и концепция архитектуры резервного копирования для NAS-устройств. Основной идеей, создавшей концепцию NDMP, являлось желание дать NAS-системам хранения, представляющим из себя обычно довольно мощный сервер сам по себе, возможность самостоятельно, своими силами осуществлять резервное копирование своего содержимого.
(Дальше много текста с картинками)
Само по себе это несложно, например те же файлеры NetApp всегда умели делать резервную копию на подключенный к ним tape device. Однако сложность заключается в том, что при этом такой “автономный бэкап” полностью выпадает из поля зрения и управления централизованной системой управления резервными копиями в организации. Мы не можем с сервера резервного копирования запустить задачу резервного копирования NAS, а даже если мы и смогли бы это сделать отправив на него команду “начать”, мы остаемся в полном неведении что за файлы ушли в резервную копию, и как можно эти файлы с устройства резервного копирования извлечь.
Основная идея, легшая в основу NDMP, это разделение в сети потока данных и “метаданных”, то есть данных о имени файла, его свойствах и атрибутах. При таком разделении мы можем скомандовать файлеру отправлять поток “собственно данных” на устройство записи резервной копии, одновременно отсылая “метаданные” копируемых файлов на сервер резервного копирования, для того, чтобы он их учел в своих базах обычным образом, словно бы он сам эти файлы записал на ленточную библиотеку.
Аналогичным образом работает и восстановление. Сервер отсылает на файлер команду “восстановить файл с таким-то именем, записанный накануне”, а файлер самостоятельно извлекает нужный файл с ленты и копирует на свои диски.
Очевидным плюсом является то, что весь многогигабайтный поток данных не гоняется через сеть общего применения, с NAS на сервер резервного копирования, с него на “медиасервер”, то есть сервер с подключенной ленточной библиотекой, и обратно в случае восстановления, и при этом сам процесс вполне естественно интегрируется в общую стратегию централизованного резервного копирования вашим любимым софтом бэкапа.
Давайте рассмотрим на картинках, для лучшего понимания.
Ленточная библиотека подключена напрямую в контроллер системы хранения NetApp по SCSI или выделенному каналу FC. Также контроллер подключен к общей IP-сети, в которой находится управляющий процессом передачи для протокола NDMP, сервер Backup Exec with NDMP option.
Сервер резервного копирования инициирует сессию NDMP, и начинает получать по IP-сети метаданные файлов, содержимое которых отправляется контроллером на ленту. Таким образом мы получаем вариант, обычно называемый LAN-free backup. Сами данные по сети не передаются. Контроллер системы хранения играет роль своеобразного Dedicated Media Server.
Участвующие в обмене NDMP компьютеры могут выполнять одну из трех ролей: DATA Server – сервер источник данных при бэкапе и получатель при ресторе, TAPE Server – сервер, к которому подключено устройство записи резервной копии, и который рсуществляет управление библиотекой, и Management Client – компьютер, управляющий процессом, в случае резервного копирования он получает поток метаданных.
Разумеется, каждая из этих трех ролей может быть совмещена с другой. Например DATA Server может быть тем же устройством, что и TAPE Server (то есть устройство копирует само себя на локальную ленту). Начиная с версии 2 протокола (текущая – 4) появилась возможность разделить DATA и TAPE сервера, то есть источник данных может копировать данные по протоколу NDMP на другое устройство локальной IP-сети, который уже и пишет данные на ленту. На деле, с NeApp это практично, когда библиотека подключена только к одной из двух голов кластера. Эта голова будет являться и DATA и TAPE, а голова-кластерный партнер – только DATA.
В случае такой трехкомпонентной схемы (два сервера и клиент управления), поток данных можно направить с одного контроллера на другой по выделенному интерфейсу IP, например выделив для этого один из портов гигабитного Ethernet. При этом, как и в варианте выше, можно организовать “псевдо-LAN-free”, при котором, как и выше, данные не будут загружать “общую” сеть, передаваясь только по выделенному интерфейсу.
Любопытно, что в случае NetApp можно использовать протокол NDMP для простого копирования содержимого томов одной системы хранения на другую, причем собственными силами системы хранения. Часто приходится слышать вопрос: “А как бы мне пару терабайт с одного файлера на другой перенести? Неужели придется заряжать на всю ночь копировать по локальной сети свободным сервером?”
Конечно, сделать это можно разными способами, например настроив SnapMirror, но при отсутствии лицензии SnapMirror, вариант с NDMP, используя команду ndmpcopy, пожалуй, самый практичный.
Даже несмотря на то, что, объективно, на сегодня, стандарт “скорее мертв, чем жив”, и используется крайне редко, поддержка NDMP традиционно присутствует в большинстве софта резервного копирования enterprise-class, таких как EMC Networker, Symantec Netbackup, IBM Tivioli, а из сравнительно доступных “массовых” продуктов он появился как опция, начиная с версии 11d, в Symantec Backup Exec.
Давайте используем эту возможность для резервного копирования с NetApp на подключенную непосредственно к нему библиотеку.
Но прежде всего, надо включить лицензию на использование NDMP в Backup Exec.
Запускаем установку/модификацию стандартным образом:
Вводим лицензию на NDMP (можно воспользоваться триалом на 60 дней, для этого ничего в номер лицензии вводить не нужно).
Выбираем и включаем соответствующую опцию:
Далее займемся NetApp.
Войдем на контроллер NetApp, и включим по умолчанию выключенный протокол NDMP командой ndmp on
Для его использования с Backup Exec следует выбрать правильный тип аутентификации – challenge (MD5):
?? убедиться, что версия протокола установлена не ниже четвертой
Если это не так, то выбрать использование версии 4
Если стоит совместимость с версией ранее 4, то вы сможете подключить NetApp, и даже увидите его в списке устройств, но не сможете “открыть” его, чтобы выбрать содержимое.
Текущая версия протокола – v4.
Далее приступим к подключению нашей NDMP-системы к серверу Backup Exec.
Для использования NDMP на NetApp, библиотека должна быть подключена непосредственно к контроллеру. В случае SCSI это делается включением либо в набортный SCSI в случае модели FAS3020, либо в соответствующую плату расширения. В случае FC ваша библиотека должна быть подключена в выделенную зону, где нет никаких других клиентов, кроме выделенного порта FC на NetApp, собственно tape drives и робота библиотеки. Совместно использовать библиотеку, без средств ее “партиционирования”, например использовать один из нескольких tape drive на подключение к NetApp, а остальные – к медиасерверу Backup Exec – нельзя! Первое же подключившееся к библиотеке устройство, в случае совместного подключения нескольких “медиасереров”, будет считаться ее owner-ом, и все остальные будут получать запрет доступа.
??так, подключим:
- В консоли Backup Exec, в Navigation bar выберите Devices
- В Task pane, под NDMP tasks, щелкните Add NDMP Server.
- В диалоге Add NDMP Server введите имя или адрес “NDMP-сервера”, то есть нашего NetApp, порт (по умолчанию 10000), и пользователя, от имени которого будут проводиться операции. По умолчанию предлагается root, но если вы настоящий админ, то вы можете сделать на NetApp специального пользователя, для таких действий, разрешив ему некоторое подмножество операций NDMP (смотрите руководство по RBAC – Role-based Acces Control в NetApp). Пользователя для логона можно не указывать, тогда он спросится позже, при начале операций.
- Нажмите OK
- Перезапустите сервисы Backup Exec
Если все сделано правильно, то вы увидите в списке устройств Backup Exec наш NetApp и подключенную к нему ленточную библиотеку. На скриншоте вы видите библиотеку с одним ленточным приводом (DELL 1) и устройство Robotic library, обеспечивающую смену картриджей с лентой.
Для того, чтобы начать резервное копирование данных NetApp на его ленту под управлением Backup Exec посредством NDMP:
- На Navigation bar нажмите Backup
- Щелкните New Backup Job
- На панели Properties, под Sources, щелкните Selections
- В дереве выбора раскройте NDMP Devices, или User-defined selections, в зависимости от того, как добавились ресурсы NDMP. Если ресурсы NDMP добавились как устройство хранения, то они будут показаны в ветви NDMP Devices, как показано на скриншоте ниже.
Такой узел показывается только если вы установили лицензию на NDMP Agent. Вы не можете назначить целиком узел для резервного копирования. Однако, вы можете развернуть содержимое узла, и выбрать индивидуальные контроллеры и ресурсы NetApp.
- Выберите ресурсы NDMP, которые вы хотите забэкапить.
Если вы ранее не определяли пользователя для logon, появится панель для ввода имени и пароля. - Нажмите New для создания нового аккаунта, или выберите имеющийся.
- Выберите NDMP device целиком, или раскройте его и выберите нужные тома или папки.
Обратите внимание, Backup Exec позволяет видеть отдельные файлы, но выбрать для резервного копирования можно только папку со всем содержимым целиком. Однако при восстановлении можно выбрать из всей папки отдельные файлы. - В окне Properties, под Destination, щелкните Device and Media.
- Выберите устройство хранения, подключенное к NDMP device из выпадающего списка Device.
- Для установок свойств NDMP backup job, в панели Properties, в Settings, щелкните NDMP.
- Запустите backup job с установками по умолчанию, или настройте опции backup в Properties.
См. также:
http://support.veritas.com/docs/285736
http://support.veritas.com/docs/285907
http://support.veritas.com/docs/288122
??сточник: http://seer.entsupport.symantec.com/docs/284987.htm
На счет сжатия картинок в jpg - есть прекрасное:
http://lbrandy.com/blog/wp-content/uploads/2008/10/jpg_vs_png2.png
Статья отличная, спасибо.
Картинки-то, которые про Symantec, напрямую из KB симантека крадены. Так что это не моя плюха с их качеством :(.
Спасибо, хорошая статья.
Хотелось бы узнать, а как обстоят дела с NDMP бэкапом файлов и папок с русскими названиями. Как это работает. Есть ли и какие могут возникнуть проблемы. (например можно ли искать русские названия файлов в баз бэкапов Backup Exec)
1. Сам протокол NDMP поддерживает не-Latin-1 имена.
2. Можно ли искать имена с руcскими буквами - тут это зависит от бэкапного софта, так как, по сути, имя файла, попавшее в базу бэкапа через NDMP ничем не отличается от попавшего туда путем обычного процесса бэкапа, и NDMP сам по себе в этот процесс уже не вовлечен.
Но я бы сперва попробовал. NDMP v4 был принят в 2003 году, и хотя уже знает про UTF-8, но…
Пример про русский NDMP на NetApp и BackupExec
Проблема у клиента была такая:
Копирование и восстановление через NDMP файлов и папок с русскими названиями проходило нормально, но при просмотре через NDMP-браузер ресурсы СХД с русскими названиями отображаюлись некорректно.
Решение
На netApp на свойствах тома включить галочку UTF-8
Для BackupExec внести исправления в реестр в соответствии с KB Symantec http://seer.entsupport.symantec.com/docs/288428.htm
Не совсем понял, что именно я могу со стораджа бэкапить в Tape с исп. NDMP.
-Только файлы?
-А снапшоты? если “да” - как обстоят дела с дедупликацией при этом? то есть могу ли я древние снэпшоты слить на ленту, а потом через время восстановиться с них? ну или например если умер сторадж и восстановиться надо со снэпшота на резервный сторадже.
-А lun/vol целиком (блочный)?
Алексей:
Файлы можно точно, а вот про LUN-ы не могу точно сказать, не знаю.
Дело в том, что хотя на NetApp и можно считать LUN как некий “псевдо-файл”, необходимо сохранить за ним имеющиеся на томе специальные метаданные, которые, собственно, и определеяют его как LUN. Я не помню, сохраняются ли они при NDMP.
??наче такой “LUN”, скопированный как файл, нельзя будет восстановить как LUN, он останется непригодным к испльзованию “файлом”.
Может ли NDMP копировать LUN-ы я не знаю, ни разу этим не пользовался. Может быть и нет. Это все же протокол файлового бэкапа.
Снэпшоты и дедупликация, при любом копировании наружу, на не-WAFL, “разворачиваются” в полные файлы.
Ну представьте себе, что вы копируете файловую систему UNIX с симлинками на файловую систему, симлинки не поддерживающую, например на FAT. Что произойдет с симлинками?
То есть снэпшот можно скопировать на ленту и он будет выглядеть как файл при этом? Здесь проблем с метаданными не должно быть, как я понял.
Алексей:
Каждый снэпшот является “снаружи” полной копией соответствующей ему файловой системы, в то время, как места занимается на диске как “дифференциальная копия”. Если файл, который находится в снэпшоте, скопировать наружу, он займет на внешнем носителе объем, равный объему этого файла в активной файловой системе, тогда как на WAFL в снэпшоте, “внутри”, он займет емкость только в объеме блоков, измененных между состоянием предыдущего снэпшота и текушей, актуальной файловой системы.
nas server. на внешний диск сделали копию (множество документов). сервер отформатировали. обратно некоторые документы не загружаются. например, в одной папке 100 документов 90 загрузились 10 пишет не найдены и когда открываешь ворд не открывается. что делать?
olga:
Я бы на вашем месте тщательно проверял бы состояние файловой системы на этом внешнем диске. Какой-нибудь chkdsk или fsck на нем запускали? Вопрос явно не со стороны стораджей NetApp.
Спасибо за интересную статью, только вот для полноты картины не хватает инструкций как добавит ленточную библиотеку в Netapp