Архив рубрики: Windows

Развертывание Failover Cluster 2008 на оборудовании HP Blades и MSA2000sa

Полезный веб-каст, который помогает в развертывании http://www.techdays.ru/videos/1031.html
Итак: имеем 2 блейд сервера BL460c одинаковой конфигурации с мезонин-картами fiber-channel коннектом к сторэйджу, сторэйдж MSA2000sa. Дистрибутив Winsows 2008 Datacenter Edition. Домен 2008.

Предподготовка:
Я собирал отказоустойчивый кластер вида node and disk majority. Это значит что работоспособной у нас система будет до тех пор, пока будет жив один из узлов кластера и кворумные данные на общем сторэйдже.
Нам понадобится лишний ip-адрес и FQDN для итоговой опосредованной кластеризованной машины, на которую мы будем пускать разработчиков, которые будут думать что работают на обычной машине. А так же возможно еще адреса для поднятия кластеризованных машин под конкретную задачу. Например для SQL2008 кластера будет создана еще одна опосредованная кластерная машина со своим адресом и FQDN
1. Делегируем обоим блейдам два волюма из этого сторэйджа один 500 мегабайт на кворумный диск, и второй столько, сколько нам надо. У меня это 450 гигагабайт для хранения кластеризованных данных. Здесь следует иметь ввиду что эти два волюма должны быть презентованы ТОЛЬКО нодам будущего кластера. Никакому другому серверу, подключенному к сторэйджу нельзя делегировать эти волюмы
2. Устанавливаем Windows2008 на оба сервера (я ставил подмонтировав из дому диск в виндой к стойке c7000 к конкретным блейдам, весьма удобно), активируем, вводим их в домен. Пусть это будут машины clustering1.domain.ru и clustering2.domain.ru
3. Рекомендую проставить все обновления на оба сервера перед инициализацией кластера. Я делал кластеры и с обновлениями и без. С обновлениями может произойти рассинхронизация кластера из за недоустановки какого нибудь из обновлений на одну из нод, но это не смертельно и даже в таком случае кластер будет функционировать
4. На каждом блейде у меня по 2 сетевые карты, то что нужно. Одна сетевая у меня смотрит в адресное пространство domain.ru, а другая назначена heartbeat с адресацией допустим 172.1.1.1/24 на одном сервере и 172.1.1.2/24 на другом (Адресация не важна, главное чтобы она была вне пределов используемых в сети пулов). Шлюз и ДНС-ы прописывать на heartbeat сетевых не надо. Они и так будут видеть друг друга, а этого достаточно
5. Для того чтобы собрать кластер на моем оборудовании, мне пришлось повозиться. Validation Wizard не хотел принимать презентованные диски с MSA2000 как подходящие для создания кластера. Косяк Windows 2008. Исправляется это так: В редакторе реестра в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hpcisss2\Parameters\BusType меняем значение с 8 на A. На обоих нодах кластера. Тип шины RAID, презентуемый сторэйджем почему то не нравится Validation Wizard
Следует обратить внимание на то, что презентованные диски должны быть привязаны через диск менеджмент только к одной ноде. На второй ноде они должны находиться в состоянии offline. При отказе первой ноды служба кластеризации автоматически привяжет их ко второй ноде

Развертывание:
1. На каждом сервере cluster1.domain.ru и cluster2.domain.ru идем в Server Management, выбираем features, добавляем опцию Failover Clustering
2. Идем в Failover Cluster Management, запускаем Validation Wizard, выбираем две целевые ноды, проходим полное тестирование. Ожидаем зеленых отчетов по всем тестам. Если мы все настроили до этого момента правильно - они у нас будут
3. Запускаем Wizard создания кластера, добавляем обе ноды, прописываем имя опосредованной кластерной машины (НЕ FQDN а только NETBIOS имя) и выделяем ей IP адрес, который мы зарезерервировали ранее. Допустим это будет cluster.domain.ru, ждем завершения создания кластера
4. В Failover Cluster Management жмем правой кнопкой п осозданному кластеру cluster.domain.ru в выпадающем меню выбираем More Actions -> Configure Cluster Quorum Settings, выбираем режим кластера Node and Disk Majority, выбираем кворумный диск (наш маленький 500 мегабайтный волюм) и дожидаемся завершения операции

Все. Кластер на базе HP C7000, серверов HP BL460c и дисковой полки MSA2000sa создан.

FreeBSD в домене Windows с FFL и DFL 2008

Решил протестировать способность Active Directory в среде 2008 принять на борт машину с FreeBSD 7.2

Исходные данные:
1. AD версии 44 с режимами домена и леса 2008
2. FreeBSD 7.2 с обновленной коллекцией портов
3. Время на контроллерах домена и на машине с FreeBSD синхронизировано с общим источником времени (необходимо для правильной реакции Kerberos)

Пусть хост с FreeBSD называется smb и имеет доменный суффикс testdom.ru.
Пусть контроллер домена 2008 testdom.ru называется pdc, и на нем запущена служба DNS.
Перед началом всех манипуляций, в DNS нужно прописать хост smb. Добавил запись типа A, для того чтобы контроллер домена мог свободно резолвить наш хост.
Так же настроил на smb резолвить запросы на сервер имен - сервер pdc с ролью DNS.

Для работы в домене, нам как обычно понадобится Samba
Установил из портов
/usr/ports/net/samba3/
Протестировал с версией 3.0.35, нужно проверить на 3.3.6

make config
В опциях включил следующее:

With LDAP support
With Active Directory support
With CUPS printing support
With WinBIND support
With ACL support
With UTMP accounting support
With system-wide POPT library

make
make install
rehash

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

В файле /etc/nsswitch.conf
group: compat
заменил на
group: files winbind
и добавил строку
password: files winbind

Создал конфиг для krb5
touch /etc/krb5.conf
с содержимым (в конфиге очень важен регистр и пунктуация):
[logging]
default=FILE:/var/log/krb5libs.log
kdc=FILE:/var/log/krb5kdc.log
admin_server=FILE:/var/log/ksadmind.log
[libdefaults]
default_realm=TESTDOM.RU
dns_lookup_kdc=false
dns_lookup_realm=false
ticket_lifetime=24h
default_tgs_enctypes=DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
default_tkt_enctypes=DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
preferred_enctypes=DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
[realms]
TESTDOM.RU={
kdc=pdc.testdom.ru.:88
admin_server=pdc.testdom.ru.:749
default_domain=testdom.
}
[domain_realms]
.testdom.=TESTDOM.RU
testdom=TESTDOM.RU

После этого перегрузил машину.

Далее в командной строке нужно обратиться к керберосу pdc и получить временный тикет на работу в домене. Для этого надо обратиться к домену под учетной записью с правами администратора домена. У меня это стандартный Administrator.
Выполнил:
kinit administrator
ввел пароль этой учетки:
Сперва не получилось,, не захотело работать по UDP
kinit administrator
admin@TESTDOM.RU`s Password:
kinit: krb5_get_init_creds: Response too big for UDP, retry with TCP

пришлось исправить конфиг в строке
kdc=pdc.testdom.ru.:88
на
kdc=tcp/pdc.testdom.ru.:88

и повторить процедуру. Со второй попытки все прошло удачно:

kinit administrator
administrator@TESTDOM.RU's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week

Далее настроил конфиг самбы в
/usr/local/etc/smb.conf

Если коротко, то должно получиться вот так (при этом машина будет после присоединения видна в сетевом окружении, но походить по директориям не получится, безопасности ради):
netbios name=SMB
log level=3
idmap uid=10000-20000
idmap gid=10000-20000
encrypt passwords=yes
dns proxy=NO
ldap ssl=NO
winbind use default domain=yes
workgroup = TESTDOM
server string = Samba Server
security = ADS
load printers =no
log file = /var/log/samba/log.%m
max log size = 50000
realm = TESTDOM.RU
socket options = SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
domain master = no
preferred master =no
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866

В etc/rc.conf разрешил запуск стартстопного скрипта самбы
samba_enable="YES"

стартовал самбу
/usr/local/etc/rc.d/samba start

и присоеденил машину в домен:

net ads join -U administrator
administrator's password:
Using short domain name -- TESTDOM
Joined 'SMB' to realm 'TESTDOM.RU'

Все. Машина успешно подключилась к домену.

Установка XP с флешки

В связи с моддингом моего нетбука, понадобилось заново поставить на нем винду. Подключать по USB CD-привод мне стало лень, и я решил сделать флешку с дистрибутивом WinXP, чтобы с нее же и поставиться. Благо нетбук поддерживает загрузку с USB.
Ранее создавал это дело вручную, форматируя флешку, заливая на нее лоадер, закидывал туда дистриб... В этот раз захотелось автоматизации процесса.

Итак, имеем:
Диск с дистрибутивом Win XP SP3
Скрипт для создания флешки USB_Multiboot_10, который можно скачать в инете. Например отсюда: http://topdownloads.ru/archives/file/USB_MultiBoot_10/3253705.htm
Пустую двухгиговую флешку Transcend. (Можно 1 гиг и любого производителя)

1. Копируем все содержимое диска куда-нибудь себе на винчестер в одну директорию
2. Распаковываем архив usb_multiboot_10.zip куда-нибудь
3. Запускаем скрипт usb_multiboot_10.cmd
4. На запрос о форматировании флешки выбираем вариант P - PeToUSB - FAT Format. Здесь вызывается утилитка, форматирующая флешку. Оставляем в ней все по умолчанию, там уже все настроено за нас
5. Далее вернувшись в окно скрипта выбираем
0 Drive Type на USB-stick
1 XP Setup Source Path даем путь к каталогу куда мы скопировали дистриб винды
2 USB-Drive Target указываем нашу флешку
3 Make Multiboot and copy sources to usb-drive инициируем процесс создания инсталляционной флешки
6. Далее скрипт предложет забить параметры для файла ответов, из которых windows возьмет типовые значения, требующие от пользователя интерактива (имя пользователья, имя компьютера, имя группы, часовой пояс и т.д.)
7. Ждем окончания создания флешки, на вопросы о добавлении различного рода дополнений дистрибутива на флешку отвечаем утвердительно

Все. Эту флешку вставил в свой Aspire One, и удачно заинсталлировал на новенький винчестер свежий дистриб winxp.

Настройка синхронизации времени в среде виртуализации

Закопавшись в виртуализации я как то упустил момент корректной настройки времени на виртуальных машинах, но вот руки дошли и до этого вопроса.
Вообще говоря, у нас есть три варианта развития событий:
А. Если виртуалньые машины не в домене, то можно настроить сам сервер Hyper-V на наш внешний источник времени, а гостевые операционные системы Windows будут автоматически синхронизироваться с сервером Hyper-V через Time synchronisation по умолчанию. Тоесть сервер Hyper-V будет являться сервером времени для гостевых ОС. При его опросе можно увидеть что он является stratum 0. Что, кстати, довольно забавно
Б. Если у нас развернута доменная структура, то лучшим вариантом будет настроить контроллеры домена на раздачу по домену точного времени
В. Так же в доменной структуре можно, настроив Hyper-V на внешний источник времени, оставить Time synchronisation только для контроллеров домена, а для остальных машин убрать

Я рассматриваю вариант Б, мне он просто ближе для доменной структуры. Приступим:
1. На Hyper-V сервере для каждой виртуальной машины которую мы хотим настроить на работу с нашими источниками времени надо убрать в Integration Services предоставление услуги синхронизации времени (убираем галочку с Time synchronisation), это предотвратит распространение времени сервера с Hyper-V на гостевые ОС
2. Ввиду того что сервер time.windows.com все таки не является стабильным сервером и периодически пропадает, я бы порекомендовал поднять свой собственный сервер времени. На подопечных мне сетях, я поднимаю ntdp на FreeBSD и раздаю его по всем моим сетям
3. Настраиваем контроллеры домена использовать внешний источник времени. По этому поводу есть статья http://support.microsoft.com/kb/816042/ru в которой в общем то описано как настроить, но опишу то что делаю я:

Запускаю regedit

Изменяю тип сервера на NTP:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
Выставляю параметр NTP

Указываю источники времени:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
Выставляю значение host.domain.ru,0x1 (имя моего сервера времени,тип сервера)

Описание типов:
0x00 Not a time server
0x01 Always time server
0x02 Automatic time server
0x04 Always reliable time server
0x08 Automatic reliable time server
Значения битовые, по этому для комбинации функций их можно суммировать.
например значение 0x9 - Automatic reliable time server 0x08 + Always time server 0x01

Изменяю AnnounceFlags:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
Выставляю значение 5

Включаю сервер NTP:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
Выбираю параметр Enabled и выставляю значение 1 (по умолчанию на КД 2003 и 2008 уже включен)

Задаю интервал опроса:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
Рекомендуется установить его равным 900. В этом случае опрос будет выполняться каждые 15 минут.

Задаю параметры, определяющие максимальную и минимальную величину коррекции времени:
Максимальный плюсовой отступ от точного времени:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
Значение можно задавать в разумных пределах (например, 1 час (3600) или 30 минут (1800))
Данное значение выбирается исходя из величины интервала опроса, состояния сети и типа внешнего источника времени.
Этот параметр задает максимальную величину положительной коррекции времени, которую может выполнить служба времени.
Если окажется, что величина коррекции превышает допустимое значение, то будет зарегистрировано соответствующее событие.
Значение 0xFFFFFFFF указывает на то, что коррекция времени будет выполняться всегда.
По умолчанию для компьютеров-членов домена используется значение 0xFFFFFFFF, а для автономных компьютеров и серверов - значение 54 000 (15 часов).

Максимальный минусовой отступ от точного времени:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
Значение можно задавать в разумных пределах (например, 1 час (3600) или 30 минут (1800)).
Данное значение выбирается исходя из величины интервала опроса, состояния сети и типа внешнего источника времени.
Этот параметр задает максимальную величину положительной коррекции времени, которую может выполнить служба времени.
Если окажется, что величина коррекции превышает допустимое значение, то будет зарегистрировано соответствующее событие.
Значение 0xFFFFFFFF указывает на то, что коррекция времени будет выполняться всегда.
По умолчанию для компьютеров-членов домена используется значение 0xFFFFFFFF, а для автономных компьютеров и серверов - значение 54 000 (15 часов).

Перезапускаю службу временииз cmd:
net stop w32time && net start w32time
(В Win2008 нужно cmd запустить от Administrator-а)

4. Далее политиками настраиваю клиентов домена работать с нашим контроллером домена:
Из Group policy management открываем Default domain policy (хотя можно конечно создать отдельную политику, но я иду по пути наименьшего числа дополнительных GPO)
Computer Configuration -> Administrative Templates -> System -> Windows Tome Settings ->
Global Configuration Settings - Enabled (выставляет все временные интервалы обновлений и коррекции для клиентов)
-> Time Providers
Configure Windows NTP Client - Enabled
-> NtpServer - dc.domain.ru,0x1 (здесь для клиентов выставляем синхронизироваться с контроллером домена как источником времени)
-> Type - NT5DS (здесь выставляем тип сервера - сервер времени в домене)
Enable Windows NTP Client - Enabled

5. Распространить политику на компьютеры пользователей и серверы домена. И все, они будут синхронизироваться.
6. Отдельно нужно упомянуть вторичные контроллеры домена - на них необходимо произвести действия по перерегистрированию службы времени:
из запущеной под администратором командной строки выполняю:
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /resync

Вот собственно и всё...