Описание задачи
Все знают, что такое записи в службе DNS. Если не все, то повторим один термин. А именно c-name. Запись CNAME (canonical name record) или каноническая запись имени (псевдоним) используется для перенаправления на другое имя (Wiki). Все знают, как “поднимать” свой собственный DNS-сервер из предыдущих наших статей. Но вопрос в другом. Давайте представим задачу. Имеем:
- Допустим, старый сервер IBM с именем OLDSRV (на Windows 2003), имя DNS также совпадает (в DNS-сервере прописано имя сервера как запись А). Сервер физический, занимает много места в серверной, используется ради файловой службы. На нем есть единственная шара под названием \\oldsrv\share. Там нужные файлы.
- Новый сервер NEWSRV (на Windows 2008), имя DNS также совпадает. Сервер виртуальный. Но это сути не имеет.
Задача:
- Полностью перенести информацию с сервера \\oldsrv на сервер \\newsrv.
- Выключить сервер \\oldsrv и забыть о нем.
- Сделать так, чтобы пользователи с настроенными сетевыми папками, сетевыми дисками ничего “не заметили”, чтобы администратору не пришлось вставать с рабочего места.
Насчет 1 и 2 пункта все спокойно – сделаем без проблем, вспомним 1 урок информатики в школе, как копировать файлы и приступим. Но что делать с 3 пунктом? Можно заставить администратора помладше побегать на рабочие места и просто перепрописать все пути, где будет использоваться шара нового сервера. Но что делать, если администратор помладше это вы сами или просто больше некому бегать и настраивать. Про лень и говорить нечего, это самый весомый нюанс. Реально, кстати, при администрировании железа выручает конфигуратор серверов ibm.
Решение задачи и возникновение новой проблемы
Внимательные читатели сразу скажут: а что мешает скопировать данные со старого сервера, перенести их на новый, который будет работать в сети под таким же именем, что и старый? Ответ: мешает многое, разные ситуации ведь бывают, в моем случае так поступить было нельзя, т.к. на новом сервере уже находятся другие шары, с которыми работают другие люди, не относящиеся к старому серверу. Поэтому этим простым решением я пренебрегу.
- Все довольно просто. Надо действительно скопировать все данные со старого на новый, предупредить пользователей, что будут небольшие перебои и выключить сервер \\oldsrv. Затем перейти на новый сервер \\newsrv и дать на ту же папку те же разрешения для пользователей – у кого чтение, у кого запись и пр. Далее идет более профессиональное администрирование. Как сделать, чтобы имя \\oldsrv никуда не делось из сети? Надо создать ему псевдоним и перенаправить его на новый сервер. Теперь если мы зайдем на путь \\oldsrv\share, то очутимся на самом деле по адресу \\newsrv\share. Также просто путь \\newsrv\share, естественно, никуда не денется и будет работать. Давайте проделаем это.
- Заходим в управление службы DNS, удаляем старое имя (запись типа А), если оно еще осталось. Видим там новое имя нового сервера. Если его еще не, то, конечно же, создаем его вручную. Затем самое главное – создаем псевдоним, а именно запись С. Прописываем в свойствах этого имени, что на самом деле это сервер newsrv, но псевдоним у него будет oldsrv.
- Помимо ДНС (которому на всякий случай лучше дать команду reload) в моем случае старый сервер надо удалить еще и с управления всеми компьютерами, т.е. из оснастки Active Directory: user and computers.
- Проверяем эхо-запрос на старое имя, а именно команду ping oldsrv. Работает. Проверяем шару, а именно путь \\oldsrv\share. Работает. Вроде бы все.
Тут всплывает главная проблема. Все мы проделывали с серверной системы Windows Server 2008, проверяли работу тоже со свежей клиентской – Windows 7. Попросил пользователей проверить с машины Windows XP, сказали что нельзя зайти. Оказалось, что эхо-запрос проходит, но зайти на шару нельзя. Ошибки оказались странные и разные. На одной машине ругается, чтобы я проверил имя и пароль пользователя. На другой – что я пытаюсь зайти на ресурс, который уже есть в сети. Именно по последней ошибке я начал копать в интернете.
Уважаемые читатели, я извинияюсь, что не сделал скриншоты, с которыми все выглядело бы намного нагляднее. Прошу прощения, что не описал точные описания и коды ошибок, всплываюие у пользователей Windows XP/2003. В будущем я постараюсь исправить!
Устранение проблемы
Спасибо Гуглу и сайту sysadmins.ru. Также есть много статей на английском языке, но поиск все же потребует время у неопытных пользователей и начинающих сисадминов. Решение оказалось необычным, но в духе Microsoft. Все дело в том, что на новом сервере с помощью редактора реестра regedit надо добавить параметр DWORD… В общем, цитирую ниже:
Start > Run – Regedt
Create the following DWORD Key manually.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
“DisableStrictNameChecking”=dword:00000001
Затем надо перезапустить службу сервера. Я полностью перезагрузил весь сервер NEWSRV. Проверил, все работает.
Comments: