Blog of Khlebalin Dmitriy

(Записки из мира IT…)

Переносим файл-сервер. Интересный баг.


Миграция виртуальной инфраструктуры плавно подходит к своему завершающему этапу. Последним из виртуалок должен был мигрировать файл-сервер, так как он имеет некую засаду в плане миграции. Диск С: это vmdk раздел, а диски D: и E: это примапенный  RDM диск  (старая корзина Netgear презентованная по iscsi). В общем корректно мигрировать файл-сервер в целом не удалось, по сему приняли решение развернуть виртуальный сервер сразу на Windows 2016, нарезать ему vmdk разделов и перенести файл-сервер «руками», банально скопировав папки с с действующими NTFS разрешениями со старого сервера на новый. Так собственно и поступили. Ранее эту процедуру делали с помощью моего любимого Total Commander, в этот раз решили пойти по проверенному пути. Переименовали старый файл-сервер, закрыли доступ к шаре, дабы никто не вносил никаких изменений  и можно копировать.

В процессе копирования появлялись некие ошибки, мол длинное название файлов или каталогов, но все это обычное дело, не страшно, продолжили копирование.

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

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

А произошло буквально следующее:

Все каталоги и файлы нормально перенеслись с действующими NTFS разрешениями, как пользовательскими, так и админскими. И все пользователи благополучно имеют доступ согласно указанных прав. Но «косяк» заключается в том, что обладая правами, как локального, так и доменного администратора и имея полные права над папкой и подпапками, буквально ничего не можешь с ней сделать (ни добавить прав кому либо, ни отнять их), выскакивает сообщение «Отказано в доступе«. При том самое интересное, что можно сменить владельца папки и легко самому стать владельцем (это как не странно без проблем удается), но далее при попытке перераздать права или просто удалить каталог выскакивает надпись: «Обратитесь к владельцу папки Хлебалину Дмитрию». Очень интересно, сам под собой я вообще никак не управляю файл-сервером, аналогично и другие админы, в итоге перенесенный файл-сервер превратился в кирпич.

Это стало непредвиденной проблемой. Ситуация осложнялась тем, что те 2ТБ, которые перенесли невозможно было удалить. А времени уже не оставалось вовсе.

Приняли решение, что переименовываем текущий диск D: в G: создаем новый vmdk раздел и делаем его диском D: и начинаем все сначала.

Далее начали пробовать штатными рекомендованными утилитами типа Robocopy:

https://technet.microsoft.com/ru-ru/library/cc733145(v=ws.10).aspx

https://habrahabr.ru/post/261359/

или Xcopy:

http://xn—-ttbkadddjj.xn--p1ai/cmd/kopirovanie-papok-xcopy.html

но с ними что-то не сложилось, копирование никак не работало (вероятно есть проблемы с правами на старом сервере, а может и еще что-то, причина не ясна), коллега Роман из компании интегратора посоветовал утилиту от EMC Emcopy (за что ему огромное спасибо).

Скачать утилиту можно здесь: http://my-files.ru/eip9ot

Пример ключей для инкрементального копирования: emcopy.exe e:\upk \\csco-vnx-fs01\data\robocopy /xjd /sdd  /o /s /purge /secforce /de /u /th 4 /log:C:\log.txt

Пользователь, от которого запускается утилита, должен иметь привилегии Power User и Backup Operator, local Administrator.

Но есть нюанс. Это всего лишь наш пример, но может быть по другому, например Вам необходимо полное наследование.

  • Перед копированием в папку назначения создаем ее на новом сервере с таким же названием, как она называлась на старом сервере в ручную.
  • Наследование с верхней папки включено по умолчанию, если необходимо добавляем необходимые разрешения, далее заходим в раздел «Дополнительно» жмем «Отключить наследование» 

Преобразовать унаследованные разрешения в явные

Далее ставим галку «Заменить все записи разрешений….»

Эти манипуляции дают нам готовую папку для копирования с необходимыми разрешениями.

Далее запускаем саму утилиту в командной строке с правами Администратора и запускаем копирование, например так:

C:\emcopy_4_17\emcopy64.exe «\\GOFS-OLD\d$\user_public» «G:\user_public» /xjd /sdd  /o /s /purge /secforce /de /u /th 4 /log:C:\log.txt

полный список ключей можно посмотреть здесь: http://knowledgeascent.com/2015/02/emcopy-tool/

Сама утилита сильно не информативна, не пишет даже проценты копирования (узнать о том, сколько скопировалось можно посмотрев размер папки или сравнивать каталоги в тоже Total Commander), но дело все знает четко (пишет ошибки но все равно продолжает копировать), копирование  с помощью нее в нашем тяжелом случае как раз выполнилось без проблем с необходимыми правами NTFS без предыдущего бага.

Благодарю Данилу Кузнецова за помощь в написании поста, поиск и отладку багов.

Всем хорошей работы!!!

Реклама

25.05.2017 - Posted by | ms windows 2016

Sorry, the comment form is closed at this time.

%d такие блоггеры, как: