Появилась необходимость перевести парк машин в офисе на без дисковую загрузку. Погуглив понял что самый, на мой взгляд, нормальный вариант это использовать iscsi. Немного разобравшись с технологией и получив представление как это можно реализовать, приступил к работе.
Что сейчас сделано:
Собрал сервак на Debian, в качестве хранилища использую raid 10. На сервак поставил isc-dhcp-server, tftpd-hpa-server и iscsitarget.
В общем идея такая:
На серваке массива raid делю на куски, ну скажем по 50 Гб. С помощью iscsitarget привязываю каждый кусок к iscsi интерфейсу. Через tftp сервер отдаю клиентам ipxe.pxe файл, который выступает в роли загрузчика. При загрузке клиентской машины монтирую iscsi диск. Этот смонтированный диск в системе будет использоваться вместо физического HDD.
Сейчас это работает так:
1. Клиентская машина грузиться через PXE;
2. DHCP дает ей IP адрес и IP tftp сервера;
3. Загружает файл ipxe.pxe через tftp;
4. Монтируется iscsi диск;
5. Ставлю установку set keep-san 1, чтобы при неудачной загрузке диск оставался в системе(по дефолту, при неудачной загрузке диск автоматически отмонтируется);
Вот собственно и все. Так все должно работать, НО. Всегда есть какое-то НО Very Happy
В общем клиент нормально получает данные от DHCP, файл ipxe.pxe успешно загружается. Далее монтируется iscsi диск. Пытается загрузиться с него, но так как там не системы загрузка не получается. Диск остается смонтированным. И вот тут у меня появилась проблема. Вместо того чтобы загрузиться со следующего устройства, как установлено в биосе, вылетает сообщение "PRESS A KEY TO REBOOT".
Если кто-то может объяснить в чем проблема, помогите пожалуйста.
Делал все по официальному мануалу: http://etherboot.org/wiki/pxechaining
Далее привожу конфиги:
Конфиг ietd.conf:
[spoiler]
Код: Выделить всё
Target iqn.2013-11.loc.domain.storage:iscsiboot
Lun 0 Type=blockio,Path=/dev/sda5
Конфиг dhcp:
[spoiler]
Код: Выделить всё
ddns-update-style none;
option domain-name "netboot.uilim.ru";
option domain-name-servers 91.219.136.4, 91.219.137.4;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
#iPXE config options
option space ipxe;
option ipxe-encap-opts code 175 = encapsulate ipxe;
option ipxe.priority code 1 = signed integer 8;
option ipxe.keep-san code 8 = unsigned integer 8;
option ipxe.skip-san-boot code 9 = unsigned integer 8;
option ipxe.syslogs code 85 = string;
option ipxe.cert code 91 = string;
option ipxe.privkey code 92 = string;
option ipxe.crosscert code 93 = string;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
option ipxe.bus-id code 177 = string;
option ipxe.bios-drive code 189 = unsigned integer 8;
option ipxe.username code 190 = string;
option ipxe.password code 191 = string;
option ipxe.reverse-username code 192 = string;
option ipxe.reverse-password code 193 = string;
option ipxe.version code 235 = string;
option iscsi-initiator-iqn code 203 = string;
# Feature indicators
option ipxe.pxeext code 16 = unsigned integer 8;
option ipxe.iscsi code 17 = unsigned integer 8;
option ipxe.aoe code 18 = unsigned integer 8;
option ipxe.http code 19 = unsigned integer 8;
option ipxe.https code 20 = unsigned integer 8;
option ipxe.tftp code 21 = unsigned integer 8;
option ipxe.ftp code 22 = unsigned integer 8;
option ipxe.dns code 23 = unsigned integer 8;
option ipxe.bzimage code 24 = unsigned integer 8;
option ipxe.multiboot code 25 = unsigned integer 8;
option ipxe.slam code 26 = unsigned integer 8;
option ipxe.srp code 27 = unsigned integer 8;
option ipxe.nbi code 32 = unsigned integer 8;
option ipxe.pxe code 33 = unsigned integer 8;
option ipxe.elf code 34 = unsigned integer 8;
option ipxe.comboot code 35 = unsigned integer 8;
option ipxe.efi code 36 = unsigned integer 8;
option ipxe.fcoe code 37 = unsigned integer 8;
option ipxe.vlan code 38 = unsigned integer 8;
option ipxe.menu code 39 = unsigned integer 8;
option ipxe.sdi code 40 = unsigned integer 8;
option ipxe.nfs code 41 = unsigned integer 8;
#option no proxy
option ipxe.no-pxedhcp 1;
#option space ipxe;
#option ipxe-encap-opts code 175 = encapsulate ipxe;
allow booting;
allow bootp;
subnet 10.222.0.0 netmask 255.255.0.0
{
range 10.222.0.235 10.222.0.245;
option broadcast-address 10.222.0.255;
option routers 10.222.0.1;
next-server 10.222.0.220;
}
host host1
{
hardware ethernet 1c:16:e6:6b:18:b3;
if exists user-class and option user-class = "iPXE" {
filename "";
option root-path "iscsi:10.222.0.220::::iqn.2013-11.loc.domain.storage:iscsiboot";
option ipxe.keep-san 1;
} else {
filename "ipxe.pxe";
}
}
Конфиг tftpd-hpa:
[spoiler]
Код: Выделить всё
TFTP_USERNAME="nobody"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="10.222.0.220:69"
TFTP_OPTIONS="-m /etc/tftpd.remap --secure"
Порядк загрузки в BIOS:
1. LAN
2. HardDisk
3. Disable
В роли HardDisk использую флешку с установщиком Windows 7.
Не уверен что объяснил все понятно. В любом случае, всем кто попытается помочь, огромное спасибо.