00-tech-book
.pdfhost unixbox {
hardware ethernet 00:0c:29:77:9c:9c; fixed-address 192.168.146.129; filename «pxelinux.0»;
option subnet-mask 255.255.255.0; option routers 192.168.146.2; option domain-name «company.ru»; option host-name «unixbox»; next-server 192.168.146.130;
}
}
Запускаем DHCPD или перезагружаем если он был запущен
# service dhcpd restart
TFTP
Устанавливаем пакет tftp-server из репозитория
# yum -y install tftp-server
Теперь необходимо включить tftp в конфигурации xinetd, для этого в файле /etc/xinetd.d/tftp
Меняем “disable = yes” на “disable = no” и включаем xinetd
# service xinetd start
Проверяем что порт tftp-сервера прослушивается (tftp работает на порту 69)
# netstat -nlp | grep :69
udp |
0 0 0.0.0.0:69 |
0.0.0.0:* |
3105/xinetd |
Syslinux
Пакет содержит набор файлов для загрузки по сети. Нам нужны pxelinux.0 который как загрузочный образ мы будем отдавать через DHCP и menu. c32, с помощью этого файла будет рисоваться более привлекательное меню пользователя.
#cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/
#cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/
NFS
По умолчанию в системе скорее всего есть NFS, если нету то поставьте с
помощью yum.
# chkconfig nfs on
Модуль 5. Install-сервер. |
|
51 |
|
|
|
|
|
В файл /etc/exports добавляем запись
echo “/var/install-server/ *(ro,no_root_squash)” >> /etc/exports
Запускаем nfs-сервер
# service nfs start
Проверяем что каталог экспортирован
# exportfs /var/install-server
<world>
Создаем структуру tftp-сервера добавляем контент на сервер
#mkdir -p /tftpboot/{pxelinux.cfg,centos52_x86}
#mkdir -p /var/install-server/centos52_x86
Монтируем наш DVD с CentOS 5.2 и закачиваем содержимое в /var/installserver/centos52_x86
#mount /dev/cdrom /mnt/
#cp -r /mnt/* /var/install-server/centos52_x86/
#cp /var/install-server/centos52_x86/images/pxeboot/* /tftpboot/centos52_x86/
В каталоге /tftpboot/pxelinux.cfg создаем файл default и заполняем его как ниже:
default menu.c32
menu title Linux Install Server. Please choose OS to install. prompt 0
timeout 100
label CentOS 5.2 x86 Custom install kernel /centos52_x86/vmlinuz
append initrd=/centos52_x86/initrd.img
label Quit localboot 0
Устанавливаем ОС по сети
После всех сделанных манипуляций которые описаны выше, можем приступить к установке ОС. Стартуем нашу машину с MAC-адресом 00:0c:29:77:9c:9c включив в BIOS загрузку по сети. Когда начнется установка все делаем стандартным образом, кроме как в списке откуда будет ставить
52 |
|
Модуль 5. Install-сервер. |
|
|
|
ОС нужно выбрать NFS, далее когда попросят, указать: NFS server name : 192.168.146.130
CentOS directory: /var/install-server/centos52_x86
Дальше устанавливаем ОС и пользуемся на здоровье :)
Автоматизация установки с помощью Kickstart
Для автоматизации нужно создать файл содержащий всю нужную информацию, которая может потребоваться в процесс установки. Такой файл создается программой system-config-kickstart (GUI tool) в любой CentOS с X Window
#yum -y install system-config-kickstart
#system-config-kickstart
После того как мы создали файл с помощью system-config-kickstart его нужно перенести на Install-сервер и сделать доступным по одному из протоколов
– http, nfs или ftp. Поскольку в работе Install-сервера активно используется NFS то и будем использовать ее.
Вмоем случае kickstart-файл лежит в /var/install-server/centos52_x86/ centos52_x86_ks.cfg
Вфайл /tftpboot/pxelinux.cfg/default нужно всего лишь добавить директиву ks с указанием местоположения kickstart-файла. Пример с kickstart-файлом.
default menu.c32
menu title Linux Install Server. Please choose OS to install. prompt 0
timeout 100
label CentOS 5.2 x86 Custom install kernel /centos52_x86/vmlinuz
append initrd=/centos52_x86/initrd.img
label CentOS 5.2 x86 Kickstart Install kernel /centos52_x86/vmlinuz
append initrd=/centos52_x86/initrd.img ks=nfs:192.168.146.135:/var/install-server/ centos52_x86/centos52_x86_ks.cfg
label Quit localboot 0
Теперь выбрав «CentOS 5.2 x86 Kickstart Install» в меню выбора ОС нам
останется только подождать сервера с установленной на нем ОС.
Ниже пример моего Kickstart-файла. Мне захотелось чтобы в установленной
Модуль 5. Install-сервер. |
|
53 |
|
|
|
ОС в настройках sshd была опция «PermitRootLogin yes». Kickstart-файл позволяет не только задавать параметры установки ОС но и выполнять скрипты, до инсталляции (%pre) и после (%post). Таким образом можно написать массу скриптов по тюнингу и за 5-10 минут инсталляции получить полностью готовую ОС.
#platform=x86, AMD64, or Intel EM64T
#System authorization information auth --useshadow --enablemd5
#System bootloader configuration bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information clearpart --all --initlabel
#Use text mode install
text
#Firewall configuration firewall --disabled
#Run the Setup Agent on first boot firstboot --disable
#System keyboard
keyboard us
#System language lang en_US
#Installation logging level logging --level=info
#Use NFS installation media
nfs --server=192.168.146.130 --dir=/var/install-server/centos52_x86
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
#Root password
rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/
#SELinux configuration selinux --disabled
#Do not configure the X Window System skipx
#System timezone
timezone Europe/Moscow
#Install OS instead of upgrade install
#Disk partitioning information
part swap --bytes-per-inode=4096 --fstype=”swap” --size=512 part / --bytes-per-inode=4096 --fstype=”ext3” --grow --size=1 %post --interp /bin/bash
PATH=/somework /bin/mkdir $PATH
/bin/sed -e ‘s/#PermitRootLogin yes/PermitRootLogin yes/g’ /etc/ssh/sshd_config > $PATH/sshd_config_edited
/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config /bin/rm -rf $PATH
54 |
|
Модуль 5. Install-сервер. |
|
|
|
%packages
@base
@mysql @mail-server @web-server @system-tools
После того как процесс установки завершится нужно закомментировать строчку “ filename “pxelinux.0”;” в /etc/dhcpd.conf, чтобы после перезагрузки сервераснованеначалсяпроцессустановки.Япробовалпоставить“labelQuit” первым в списке меню, чтобы по таймауту делался localboot 0 (выход из меню и загрузка ОС на сервере), но счетчик банально не отсчитывается. Очевидно
это один из багов syslinux. Скажу что в Debian все работает нормально.
Как видно секции %packages, были установлены базовые утилиты, MySQL, MTA, Apache и системные утилиты.
Установка ОС у меня заняла 5 минут.
Диагностика
В случае возникновения неисправностей используйте tcpdump. Но его также стоит использовать чтобы понять как все работает “изнутри”.
# tcpdump -n -i eth0 “ether host 00:0c:29:25:04:55”
Ну и на всякий случай структура каталога /tftpboot
Резюме
Мы разобрались с простым и эффективным способом быстрой установки ОС по сети.
Домашнее задание
Сделать свой Install-сервер и используя его, установить ОС на клиент. Можно использовать мой kickstart-файл в качестве примера, только не забудьте изменить IP-адрес NFS-сервера и путь к дистрибутиву Linux, пароль на систему будет 111111 (root/111111).
Модуль 5. Install-сервер. |
|
55 |
|
|
|
Xen
Что это такое ?
Виртуализация — это очень эффективная технология построения виртуальной инфраструктуры. Благодаря различным средствам виртуализации стало возможно в рамках одного «железного» сервера настраивать несколько виртуальных.
Зачем это нужно ?
Большинство преимуществ вытекает из так называемой консолидации серверов. Мы можем переместить несколько не полностью используемых систем на один сервер. Тем самым снизив стоимость конечной инфраструктуры, чеки на электроэнергию, повысив удобство обслуживания.
Типы виртуализации
Эмуляция аппаратуры
Популярный продукт в этой категории: QEMU
На хост-машине создается виртуальная машина которая эмулирует определенную архитектуру. Способ работает медленно но полезен, когда нужно на сервере запустить ОС другой архитектуры.
Полная виртуализация
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
|
|
|
Модуль 6. Виртуализация. Xen. |
|
|
|
|
|
|
|
|
|
|
Популярный продукт в этой категории: VMware
В работе этого способа используется виртуальная машина (hypervisor)
которая выступает посредником между гостевой ОС и реальным оборудованием. Гостевая ОС может быть запущена без всяких модификаций, но должна поддерживать аппаратную платформу.
Паравиртуализация
Популярный продукт в этой категории: Xen
Способ похож на полную виртуализацию – здесь тоже используется гипервизор, но код виртуализации интегрируется в саму операционную систему. Это конечно же минус, но паравиртуализация позволяет добиться производительности близкой к не виртуализированной ОС.
Виртуализация уровня операционной системы
Популярный продукт в этой категории: Linux-VServer
Способ виртуализации, при котором виртуализируются серверы запускаемые в самой операционной системе. В этом случае операционная
система одна и просто изолируются сервера запускаемые под ее управлением. Необходима модификация ядра.
Модуль 6. Виртуализация. Xen. |
|
57 |
|
|
|
Архитектура Xen
Причины по которым стоит использовать виртуализацию.
1. Сильная экономия на аппаратном оборудование при консолидации
серверов;
2.Возможность поддержки старых платформ в целях совместимости;
3.Возможность изолировать потенциально опасные окружения;
4. Возможность создания любой аппаратной конфигурации (в рамках
возможностей сервера);
5.Симуляция различного оборудования в виртуальной машине (зависит от возможностей ПО виртуализации);
6.Возможность создания виртуальных сетей в рамках одного сервера;
7.Мобильность виртуальных машин (простота переноса между двумя физическими серверами);
8. Повышение управляемости сервером (простота создания резервных
копий).
Настраиваем сервер виртуализации
Создадим виртуальную машину и научимся ее использовать. Также
разберемся с Xen.
58 |
|
Модуль 6. Виртуализация. Xen. |
|
|
|
Установка Xen
Мои виртуальные машины будут располагаться в /vm. Я специально выделил этот раздел сервера под виртуальные машины.
Устанавливаем Xen
# yum -y install xen
В процессе установки в /boot/grub/menu.lst будет добавлен блок загрузки ядра с поддержкой Xen
title CentOS (2.6.18-92.1.22.el5xen) root (hd0,0)
kernel /xen.gz-2.6.18-92.1.22.el5
module /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-92.1.22.el5xen.img
Нужно сделать так чтобы именно оно загружалось в процессе загрузки сервера. Для этого опцию ”default=1” меняем на “default=0”. Таким образом будет загружаться ядро перечисленное первым в файле загрузчика Grub (наше ядро с поддержкой Xen).
Перезагружаем сервер
# shutdown -r now
Убедимся что Xen удачно стартовал. В процессе загрузки сервера мы должны увидеть что-то похожее.
Посмотрим какое ядро загрузилось в самой ОС.
# uname -r
2.6.18-92.1.22.el5xen
Отлично, как видим загрузилось ядро с поддержкой Xen.
Модуль 6. Виртуализация. Xen. |
|
59 |
|
|
|
Создание новых виртуальных машин в Xen
Давайте посмотрим список нашим виртуальных машин.
# xm list |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Name |
ID Mem(MiB) VCPUs State Time(s) |
||||||
|
|
|
|
|
|
||
Domain-0 |
0 |
26 |
1 r----- 59.3 |
Поскольку мы только начали, никаких виртуальных машин нет. Но сейчас мы это исправим. Установка новой ВМ можно сделать с помощью команды virt-install.
[root@localhost ~]# virt-install
What is the name of your virtual machine? linuxbox4
How much RAM should be allocated (in megabytes)? 256
What would you like to use as the disk (file path)? /vm/linuxbox4.img
How large would you like the disk (/vm/linuxbox4.img) to be (in gigabytes)? 6
Would you like to enable graphics support? (yes or no) no
What is the install location? /mnt
Распишу по пунктам о чем нас спрашивали:
“What is the name of your virtual machine?” - здесь мы указываем имя виртуальной машины
“How much RAM should be allocated (in megabytes)?” - сколько оперативной памяти выделить для новой виртуальной машины
“What would you like to use as the disk (file path)?” - путь к файлу-образу будущей виртуальной машины
“How large would you like the disk (/vm/linuxbox4.img) to be (in gigabytes)?” - сколько места выделить для новой ВМ в гигабайтах
“Would you like to enable graphics support? (yes or no)” - обращаю внимание, что пункт не имеет отношения к X Window в новой системе. Здесь нас спрашивают, в каком режиме мы хотим провести процесс инсталляции. Ставиться мы будем из консоли без графики. В противном случае нужно было бы использовать VNC чтобы подключиться к этой машине. Лишние хлопоты.
“What is the install location?”- здесь указываем откуда мы будем ставить ОС, я заблаговременно примонтировал dvd-диск в /mnt, но устанавливать можно откуда угодно.
60 |
|
Модуль 6. Виртуализация. Xen. |
|
|
|