пятница, 23 октября 2015 г.

Windows Server 2016 CTP3 Hyper-V Replica

Сегодня с коллегой провели интересный эксперимент:
связали через Hyper-V реплику узел виртуализации на базе Windows Server 2012 R2 (как основной сервер) и кластер Hyper-V Windows Server 2016 CTP3, как реплику. Такие возможности, если они будут поддерживаемы Microsoft, после выхода релиза Windows Server 2016 RTM, дают большую гибкость.

Исходный сервер и кластер виртуализации находились в разных лесах (использовались Forest trusts).

Немного технических деталей ниже.

Для начала мы настроили реплику со стороны кластера.
 
ПРИМЕЧАНИЕ! обратите внимание на добавление элементов интерфейса Enclosures и отдельный тип Core Resource - Virtual Machine Cluster WMI (см. ниже).
 
 
Вкладка Enclosures предоставляет дополнительную информацию о СХД, подключенной к кластеру.
 
 
На мой взгляд, очень интересное новшество. В этом же разделе можно увидеть узлы виртуализации, выбрав вкладку Servers и физические диски по идее..., выбрав Physical Disks , но диски у меня почему-то не отразились - пока разбираюсь)
 
 
Итак, создадим настройки репликации.
 
 
Создаём VCO и задаём FQDN
 
 
 
 
 
 
Поскольку моя сеть доверенная и это тестовая среда, я не заморачивался с созданием SecurityTag, подробнее читайте тут
 
 
 
ПРИМЕЧАНИЕ! Получаем вот такое предупреждение - это поведение по-умолчанию. Поправим позже.

 
Для развлечения репликой мы выбрали первые попавшиеся VM - два чистых, развёрнутых ранее Template (они не несли никакой нагрузки, не думайте, что мы реплицировали контроллер домена - это НЕПОДДЕРЖИВАЕМЫЙ СЦЕНАРИЙ).
 
 
 
 
 
 
 
 
 
Кажется все идёт неплохо и реплика успешно создалась.


 
 
Собственно реплика в процессе
 
И в итоге процесса мы получили VM, которая успешно реплицировалась в кластер Hyper-V Windows Server 2016 CTP3 с Hyper-V Windows Server 2012 R2 (мы сделали две).
 
 
Теперь дадим команду на Failover в Hyper-v на Windows Server 2012 R2
 
Если машина не выключена, то вы получите предупреждение ниже
 
 
Повторяем операцию
 
 
 
 
Собственно работающая VM на резервном кластере.
 
ВНИМАНИЕ! После репликации на другой сервер с другим Virtual Switch, машина теряет подключение сети - необходимо восстановить его вручную.
 
 
 
 
 
 

Обновление версий виртуальных машин на Hyper-V Windows Server 2016 CTP3

Краткая инструкция по обновлению версии конфигураций виртуальных машин Hyper-V, после миграции на новую платформу Windows Server 2016 (пока мы говорим о CTP версии продукта).
 
Подробности о версиях конфигураций и их возможностях тут
 
 
Заходим в оснастку Hyper-V
 
 
Мы видим, что поле Configuration Version содержит значение 5.0, что говорит о том,
что машина была создана на Hyper-V предыдущего поколения.
 
  • Version 5  может работать на Windows Server 2012 R2 и Windows Server 2016.
  • Version 6 только на  Windows Server 2016.
 
Нажимаем правой кнопкой мыши на виртуальной машине и выбираем пункт Upgrade Configuration Version
 
 
Соглашаемся с предупреждением. Оно говорит о том, что мы не сможем больше запускать данную машину на старых версиях Hyper-V.
 
 
Ну и собственно - всё :)
 
 
 
 

пятница, 16 октября 2015 г.

Ограничение кол-ва событий в фильтре журналов Windows Server 2012 R2

Столкнулся с интересным фактом.
Разбирал события на серверах Заказчика в одном из проектов.

Для быстрого разбора событий в журналах Windows Server 2012 R2 я активно пользуюсь фильтром: отработав все события с определённым EventID, чтобы исключить повторы и уменьшить кол-во отсматриваемых сообщений, я включаю их в виде "-EventID" в фильтр.

Оказалось, что после включения 24-х EventID в фильтр журнал перестаёт работать - события не отображаются (см. скриншот ниже) - ранее я с таким не сталкивался.

Озадачило… )




вторник, 13 октября 2015 г.

Коротко о бытром развёртывании RELS 6.x

В различных платформах существует функционал по развёртыванию образов ОС на физическое оборудование, RELS не является исключением.

Наша задача быстро получить большое количество серверов на базе RELS для нашего ЦОД на этапе его развёртывания.

Функционал мы используем классический DHCP, TFTP, PXE.
 
Настройка до безобразия простая, думаю, что любой с ней справится (мы рассмотрим простой случай для начинающих).
 
ПРИМЕЧАНИЕ! Предварительно необходимо сконфигурировать, либо отключить файрвол. В данной статье, я не ставлю целью отработать Best Practice по безопасности или конфигурации сервисов, а просто даю направление для развития.
 
ПРИМЕЧАНИЕ! Предварительно необходимо выполнить #echo 0 >/selinux/enforce #to disable selinux
 
 
Первым делом установим необходимые серверные компоненты:
 
#yum install system-config-kickstart system-config-netboot tftp-server syslinux httpd -y


Создаём необходимую директорию
 
#mkdir -p /var/lib/tftpboot/linux-install/pxelinux.cfg
 
Копируем файлы
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/linux-install/
#cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/linux-install/

 
Монтируем инсталяционный диск RELS и копируем содержимое в папку ниже
#cp /media/RELS\ 6.6\ x86_64\ DVD/images/pxeboot/* /var/lib/tftpboot/linux-install/
 
Правим /etc/dhcp/dhcpd.conf
 

subnet 10.230.2.0 netmask 255.255.255.0 {

        range 10.230.2.10 10.230.2.254;

        option domain-name-servers 10.230.2.2,10.230.2.3;

        option routers 10.230.2.1;

}

 

allow booting;

allow bootp;

class "pxeclients" {

        match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";

        next-server 10.230.2.4;

        filename "linux-install/pxelinux.0";

}

 
Настраиваем  TFTP /etc/xinetd.d/tftp
 

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

        bind                    = 10.230.2.4

 

}
 
Правим меню для PXE-загрузчика, предварительно создав
файл /var/lib/tftpboot/linux-install/pxelinux.cfg/default


default menu.c32

menu title ------Boot Menu------

label 1
menu label ^ 1) RELS 6.6 SERVER
kernel    vmlinuz        
append initrd=initrd.img ks=http://10.230.2.4/ks/kickstart.cfg ksdevice=eth0

Выделенная жёлтым строка - это веб-сервер, который мы настроим чуть позже.
 
Клиент, получив адрес по PXE будет искать полный образ ОС для инсталляции по NFS, посему, перед конфигурацией веб-сервера, мы делаем папку с правами только чтение и экспортируем её по NFS для нашей доверенной сети (пример: /NTbootShare *(ro)), затем копируем в неё содержимое DVD диска с RELS.
 
ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.

#service dhcpd restart
#service xinetd restart
#service nfs restart
 
Теперь займёмся фалом ответов, для этого мы используем мастер system-config-kickstart. Те, кто работал с аналогичными решениями у Microsoft или других вендоров найдут это очень  удобным. Ниже несколько примеров интерфейса:
 
 
Да, у нас есть, так же, возможности по запуску скриптов, либо до начала установки, либо после нее - что очень удобно.
На выходе я получил такой вот kickstart.cfg файл.
 

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=10.5.103.10 --dir=NTbootShare
# Root password
rootpw --iscrypted $1$aaBI0VU5$IvjY5x0ZGkMMcxiMt8hOh1
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Europe/Moscow
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all 
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=40960
part /var --fstype="ext4" --size=8192
part swap --fstype="swap" --size=4096

%packages
@base
@compat-libraries
@debugging
@desktop-debugging
@graphical-admin-tools
@hardware-monitoring
@internet-browser
@lxde-desktop
@network-file-system-client
@network-tools
@performance
@perl-runtime
@print-client
@rosa-server-setup
@ruby-runtime
@server-platform
@storage-client-multipath
@system-admin-tools
@wine
@x11
NetworkManager-openswan
genisoimage
mc
mtools
oddjob
sgpio
squashfs-tools
-fskbsetting

%end
 
 
Теперь вернёмся к веб-серверу. Мы создаём директорию
mkdir /var/www/html/ks

Копируем в неё наш файл ответов
cp kickstart.cfg /var/www/html/ks/


и даём права
chmod 644 /var/www/html/ks/kickstart.cfg


Затем создадим минимальный файл конфигурации для веб-узла
/etc/httpd/conf.d/pxeboot.conf


Alias /rels6/var /pxe/rels6
Options Indexes FollowSymLinks
#service httpd restart
 
 ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.

ВНИМАНИЕ! Тем, кто привык работать с System Center будет непривычно, что тут нет защиты "от дурака" в виде ввода пароля перед стартом последовательности задач, т.е. если у вас есть скрипт автоматизации с разбиением разделов и т.д., при "поимке" сервером PXE (если у него принудительно выставлена первой загрузка с сети) задания на установку, система затрёт всё имеющееся, выполняя последовательность задач скрипта (в том числе после установки и перезагрузки). Лучше использовать явно нажатие F12 с переключением в сетевую загрузку.

Обратите внимание, что в примере на третьем скриншоте отсутствует диалоговое окно настройки дисковых массивов - разбиение дисков производится исходя из файла ответов автоматически. После окончания установки система автоматически перезагрузится.

 
 




После установки мы получаем классический вариант экрана приветствия.

 
Вводим логин и пароль и входим в систему.


ПРИМЕЧАНИЕ! В данной последовательности задач не сформировано автоматическое наименование серверов - потребуется ручная конфигурация hostname и домена после установки ОС.
 
Перед вводом сервера в домен установите ipa-client с зависимостями.