понедельник, 5 августа 2013 г.

Установка паравиртуальной CentOS в Xen

Актуально для: CentOS 5.6 + Xen 4 (на примере dom0 Debian)
Итак, у нас есть задача - установить Linux CentOS 5 как гостевую паравиртуальную виртуальную машину в гипервизор Xen (здесь мы будем рассматривать Xen 4.0.1 как последний на момент написания статьи).

Установка показана на примере Xen 4.0.1 с доменом-0 Linux Debian. Путь к виртуальным машинам оставлен по-умолчанию:
/etc/xen

Суть действий остается одинаковой для любого домена-0.


Начнем.

Перво-наперво - запаситесь горой терпения. Сайт CentOS и его зеркала показывают невероятно медленные скорости работы (около 10 Кбит/с - модемы быстрее работают).

Идем в домен-0 сервера виртуальных машин и создаем заготовку для гостевой системы.

1) В первую очередь создаем папку для нее и виртуальный диск.
# cd /etc/xen
# mkdir vm_centos
# cd vm_centos
# dd if=/dev/zero of=hdd0 bs=1M count=1 seek=10240

Здесь мы создаем файл виртуальной машины размером 10Гб без предварительной аллокации секторов (т.е. динамический) по адресу:
/etc/xen/vm_centos

Если Вы хотите сразу занять все место под файл виртуального диска - используйте следующий вариант команды dd:
# dd if=/dev/zero of=hdd0 bs=1M count=10240

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


2) Создаем файл конфигурации.

# nano vm.cfg
следующего вида:

kernel = "/etc/xen/vm_centos/vmlinuz"
ramdisk = "/etc/xen/vm_centos/initrd.img"
extra = "text"
name = "centos"
memory = "256"
disk = [ 'file:/etc/xen/vm_centos/hdd0,xvda,w' ]
vif = [ 'bridge=eth0, mac=fe:16:3e:68:fc:47' ]
vcpus=1
on_reboot = 'destroy'
on_crash = 'destroy'

Поясним некоторые моменты:

а) Мы указываем использовать для загрузки ядро и initrd-образ из папки нашей виртуальной машины. Мы их скачаем в следующем шаге.
б) Указываем использовать LOOP-интерфейс для файла жесткого диска (FILE:) вместо более быстрого, но чаще всего не работающего TAP-интерфейса (последний стабильно работает только для HVM-доменов).
в) Выделяем 256Мб ОЗУ.
г) Сразу прописываем MAC-адрес для сетевого интерфейса. Это крайне рекомендуется, иначе Xen будет выдавать MAC-адрес сам, причем каждый раз разный!
д) Выделяем 1 процессорное ядро.
е) Указываем, что машину нужно будет остановить при перезагрузке. Нам это нужно затем, что после первой же перезагрузки после установки нам нужно будет сразу загасить виртуальную систему - так удобнее. В дальнейшем мы поменяем этот параметр.


3) Скачиваем ядро и initrd для установки:

Для 32-битной системы (x86-32)

# wget http://mirror.centos.org/centos/5/os/i386/images/xen/initrd.img
# wget http://mirror.centos.org/centos/5/os/i386/images/xen/vmlinuz

Для 64-битной системы (x86-64 или, как правильно - amd64)

# wget http://mirror.centos.org/centos/5/os/x86_64/images/xen/initrd.img
# wget http://mirror.centos.org/centos/5/os/x86_64/images/xen/vmlinuz


4) Запускаем установку CentOS:

# xm create -c vm_centos/vm.cfg

Ключ -c указывает, что сразу нужно подцепиться к консоли машины. Если Вы его забыли указать, то подцепиться можно в любой момент командой:

# xm console centos

По ходу установки экран (в отличие от HVM с VNC Viewer) будет черно-белым. Текущее положение селектора можно видеть по блоку курсора (белый блок). Выбор опции - клавиши вверх и вниз. Перейти на кнопки - через Tab.

5) Ставим CentOS в интерактивном режиме.

Нас приветствует установщик. Интуитивно двигаемся по его шагам, указывая нашу локаль. Если это чудо спрашивает нас - Text-mode или VNC, то отвечаем "Text-mode". Когда нас спрашивают - откуда брать файлы для установки - отвечаем "HTTP".


6) Нас просят ввести адрес HTTP - откуда брать файлы для установки. Вводим:

Как я уже говорил - ресурсы самого CentOS демонстрируют нам скорости начала 90х. Если есть желание загрузить и поставить ОС побыстрее - используйте другие зеркала, которые можно посмотреть по адресу:

http://www.centos.org/modules/tinycontent/index.php?id=34

Следите за тем, чтобы в шестой колонке было указано "Yes" (Direct DVD downloads), иначе, по моему опыту, установщик заругается, что не может загрузить образ ОС (например, такая ошибка выскакивает на mirror.yandex.ru).

Одно из неплохих найденных зеркал:

Server: ftp.astral.ro
dir: distros/centos/5/os/x86_64

Если же Вы хотите использовать официальный ресурс - вот его координаты:

Server: mirror.centos.org
dir: centos/5/os/x86_64/

Если нужна 32-битная система - указываем i386 вместо x86_64.

Идем дальше.

Оно довольно долго будет загружать установочный образ, после чего перейдет к следующему окну.


7) Оно пишет "Welcome" и предлагает разметить диск (The partition table on device xvda was unreadable). Отвечаем "Yes". Оно еще раз уточняет - отвечаем "OK" и "Yes".


8) Оно говорит, что готово к разметке и спрашивает - не хотим ли мы заценить - как оно решило нам диск разбить (Review and modify partitioning layout?). Говорим - "Да, конечно!" (Yes).

Здесь оно показывает свой вариант. Если устраивает (редко) - соглашаемся и жмем на "OK". Если не устраивает - меняем и жмем "OK".


9) Если ОЗУ Вы выделили немного (те же 256Мб) - то оно предупреждает, что памяти мало (As you don't have much memory in this machine, we need to turn on swap space immediately) и предлагает сразу включить файл подкачки на целевом диске. Конечно, соглашаемся ("Yes").


10) Загрузчик. Оно спрашивает - какой загрузчик использовать (Which boot loader you like to use). Выбор небольшой - никакого или GRUB. Нас устраивает только GRUB (даже если бы был и другой какой), так что смело выбираем "Use GRUB Boot Loader", через Tab перемещаемся на "OK" и давим на нее.


11) Оно спрашивает - какую консоль использовать. Оставляем строчку "console=xvc0" и жмем на "OK".


12) Спрашивает - поставить ли пароль на GRUB? Оставляем поля ввода пароля пустыми и через Tab перемещаемся на "ОК". Жмем на нее.


13) Оно спрашивает про то - что загружать через GRUB. Просто жмем на "OK".


14) Очередной вопрос - куда поставить загрузчик. Ставим курсор на "/dev/xvda" и через Tab жмем OK.


15) Следующий вопрос - сконфигурировать ли сетевой интерфейс прямо сейчас. Говорим "Да, несомненно" - жмем "Yes".

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


16) Следующий вопрос - часовой пояс (time zone). Стрелками вверх/вниз выбираем нужный нам (например, Asia/Yekaterinburg), через Tab перемещаемся на "OK" и нажимаем на нее.


17) Спрашиваем рутовый пароль (для root). Вводим пароль для суперпользователя (внимательно) и жмем на "OK".


18) Далее пишет "Retrieving installation information..." и некоторое время тормозит. Может подвиснуть на 40% - ничего страшного, оно продолжит установку.


19) Далее установщик спрашивает - какой софт ставить. Убираем разные GNOME, KDE, Desktop и подобные вещи, зато ставим галочку напротив надписи "Customize software selection" и продолжаем.

В следующем окне выбираем нужный софт. ВНИМАНИЕ! Очень аккуратно выбирайте, не ставьте то, что Вам не нужно на этом сервере - одна лишняя галочка - и оно радостно загрузит половину X-Window для какой-нибудь фигни.


20) Следующий шаг - оно проверяет зависимости выбранных пакетов (Checking dependencies in packages selected for installation...). Процедура занимает некоторое время, паниковать не стоит.


21) Теперь оно нам сообщает, что лог установки будет доступен после перезагрузки по пути "/root/install.log". Учитываем это и давим "ОК".


22) Оно форматирует диск... и начинает ставить софт. Процедура долгая, т.ч. не расчитывайте через 5 минут увидеть радостное сообщение, что все готово. Не волнуйтесь, если зависнет на табличке "Starting install process. This may take several minutes..." - ничего страшного. Оно думает. А может, центосу тоже нужно делать перерывы на кофе? Короче, на этой надписи установшик некоторое время тормозит.


23) После установки оно нам сообщает, что щас перезагрузится. Давим "ОК", в тайне потирая ручки - никуда оно не перезагрузися. Помните строчку "on_reboot = 'destroy'"? Воот. Машина сразу загасится и мы вернемся в консоль домена-ноль Xen.


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


25) Меняем файл конфигурации vm.cfg. Приводим его к такому виду:

bootloader = "/usr/bin/pygrub"
extra = "text"
name = "centos"
memory = "256"
disk = [ 'file:/etc/xen/vm_centos/hdd0,xvda,w' ]
vif = [ 'bridge=eth0, mac=fe:16:3e:68:fc:47' ]
vcpus=1
on_reboot = 'restart'
on_crash = 'restart'
on_poweroff = 'destroy'

Что здесь изменилось?
а) Убрали указание на ядро и initrd - они нам больше не нужны.
б) Указали загрузчиком PyGRUB - дабы ядро оно брало прямо изнутри файловой системы виртуальной машины. Плюс такого метода - при обновлении ядра нам не нужно его выгружать отдельно в домен-ноль для того, чтобы апдейты заработали.
в) Поменяли значение параметров "on_reboot" и "on_crash" на "restart". Таким образом теперь при перезагрузке оно действительно перезагрузиться, а не загасится, как сделало сейчас.


26) Стартуем машину снова:

# xm create -c vm_centos/vm.cfg

Сразу после загрузки ядра Вам покажут менюшку с предложением подкорректировать некоторые параметры служб. Аккуратнее - менюшка сама закроется через несколько секунд если не давить никакие кнопки.

Здесь крайне рекомендую обратить внимание на файервол - дабы он соответствовал тому, что Вам нужно. Иначе он сразу включен и не особо приветлив даже для стандартных служб (ssh, например).


Ну все, добро пожаловать в паравиртуальный CentOS!

Выйти из консоли и вернуться в dom0 Xen можно сочетанием клавишь Ctrl+]

Установка оснастки Active Directory в Windows 7/ Windows 2008

В данной статье поговорим о том, как установить оснастки Active Directory в Windows 7. Как вы, наверное, помните, для того, чтобы в Windows XP появилась оснастка Active Directory Users and Computers (сокращенно ADUC), необходимо установить специальный набор утилит от Microsoft – Windows 2003 Admin Pack.  В Windows 7 процесс установки консолей управления Active Directory несколько изменился.
Во-первых, Admin Pak теперь стал называться Remote Server Administration Tools (RSAT). Где найти и скачать RSAT для Windows 7 я уже писал. Обратите внимание, что существует несколько версий RSAT для Windows 7: версии будут отличаться в зависимости от разрядности вашей ОС (32 ил 64 –битная Window 7) и установленного Service Pack (скачать RSAT для Windows 7 SP1). Если вы не знаете, какая версия ОС используется у вас, нажмите кнопку Start, щелкните правой кнопочкой мыши по значку «Computer»  и выберите «Properties». Окно с версией системы будет выглядеть примерно так:
версия Windows 7
В поле «System type:» будет указан тип вашей ОС Windows 7. В том случае, если вы используете 32 битную версию Windows 7, необходимо скачать файл, имя которого начинается с «x86…» (сейчас это «x86fre_GRMRSAT_MSU.msu», но имя может измениться).  Для пользователей 64-битных систем, необходимо скачать файл, имя которого начинается с «amd64…» (сейчас это «amd64fre_GRMRSATX_MSU.msu») – это пакет подойдет даже в том случае,  если вы используете процессор, отличный от AMD 64-bit.
После того, как вы скачаете RSAT для Windows 7, его нужно установить (в принципе это обычное обновление Microsoft KB).
Во-вторых, после установки RSAT в Windows 7, по умолчанию большинство дополнительных функций управления отключены, и оснастку управления Active Directory в Windows 7 нужно активировать вручную.
  1. Перейдите в панель управления Control Panel, выберите раздел Programs.
  2. В разделе Programs and Features, щелкните по ссылке Turn Windows features on or off 
Включить функции Windows 7
  1. Перейдите в раздел Remote Server Administration Tools > Role Administration Tools, и выберите AD DS and AD LDS Tools.Активация оснастки Active Directory в Windows 7
  2.  После этого консоль ADUC и другие оснастки управления AD в Windows 7 появится в панели управления в разделе Administrative Tools. Консоль Active Directory в windows 7
  3. Активировать оснастку «Active Directory User and Computer» в  Windows 7 можно и из командной строки, однако в любом случае придется скачать и установить RSAT.
    В командной строке с правами администратора наберите следующие команды, добавляющие оснастки Active Directory:
    dism /online /enable-feature /featurename:RemoteServerAdministrationTools-Roles-AD-DS
     
    dism /online /enable-feature /featurename:RemoteServerAdministrationTools-Roles-AD-DS-SnapIns
     

четверг, 1 августа 2013 г.

Добавление блочных устройств в виртуальную машину XEN или страшная ошибка Device vbd could not be connected. Failed to find an unused loop device

Доброго времени дня. Понадобилось мне добавить к одному из моих виртуализованных Windows  серверов несколько жёстких дисков, что делается несложной правкой в конфига.
Например добавляем 4 жёстких диска vhd{1,2,3,4}.img :

Установка паравиртуальной CentOS в Xen

Итак, у нас есть задача - установить Linux CentOS 5 как гостевую паравиртуальную виртуальную машину в гипервизор Xen (здесь мы будем рассматривать Xen 4.0.1 как последний на момент написания статьи).

Установка показана на примере Xen 4.0.1 с доменом-0 Linux Debian. Путь к виртуальным машинам оставлен по-умолчанию:
/etc/xen

вторник, 30 июля 2013 г.

Виртуализация Windows Server 2008R2 на Xen

Добрый день. Сегодня поговорим о виртуализации Windows Server 2008R2 на Xen.
Готовим disk image под Windows Server 2008R2 :
dd if=/dev/zero of=xenwin2008.img bs=1024k seek=40000 count=0
Внимание! Размер диска будет 39 с хвостиком Гб. Убедитесь заранее в наличии свободного места.

среда, 24 июля 2013 г.

Задержки при авторизации по ssh

Бывают в жизни такие ситуации :) когда при авторизации по ssh мы имеем большие задержки или завершение соединения по тайм-ауту. Решается чаще всего это очень просто:
UseDNS no в sshd_config

вторник, 23 июля 2013 г.

Установка ftp сервера на Debian

Добрый день. Казалось бы, достаточно тривиальный вопрос: как установить ftp сервер.
Но и здесь нашлись грабли:))). А нашлись они в следующем месте : ftp сервер был необходим исключительно для замера пропускной способности сети между интерфейсом сервера уходящим в up-link и замеряющим. Поэтому варианты с поднятием ftp на виртуалке в DMZ и дальнейший проброс портов на неё исключался. Нужен был исключительно боевой сервер.
И вот тут то и начались грабли . FTP категорически не хотел выполнять комманду LIST в пассивном режиме. Кто-то скажет - для разовой операции замера скорости всё равно, можно использовать и активный режим ftp. Но это, не Debian way:) . Всё должно просто работать.

И так... Устанавливаем vsftpd на Debian 6 squeeze.

$ sudo apt-get install vsftpd
Устанавливаем  vsftpd
 Приводим конфиг к виду :

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
pasv_enable=YES
pasv_min_port=50200
pasv_max_port=50299

Как известно, для работы FTP-сервера в пассивном режиме нужны следующие порты:
1) port #21
2) random port #>1024. 


Мы установили для пассивного режима диапазон портов от 50200-50299. Осталось настроить фаерволл.

Фаервол(если у кого не был настроен) :
$ sudo iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Разрешаем все установленные соединения.

$ sudo iptables -A INPUT -i eth0 -m state --state NEW   -p tcp --dport 22  \
-j ACCEPT 
Разрешаем ssh . Интерфейсы, порты и адреса добавить по вкусу.

$ sudo iptables -A INPUT -p tcp -m state --state NEW -m multiport --dport 21,50200:50299 \
-j ACCEPT
Разрешаем устанавливать соединение по ftp, в т.ч. в пассивном режиме.


$ sudo iptables -P INPUT DROP
Запрещаем всё, что не разрешено.