Archiv pro měsíc: Listopad 2011

Diskless boot Windows 7 via iSCSI

Potřebujeme:
(1) server s dostatečnou diskovou kapacitou a operačním systémem Linux (v našem případě Atom + 3x 1.5TB disk v RAID5 pomocí mdraid a Linux Debian Squeeze)
(2) klient s DVD mechanikou a síťovkou podporující PXE boot a se síťovou konektivitou na (1) (v našem případě běžný desktop s Pentiem E5200, 4GB RAM a onboard síťovkou Atheros na desce ASUS P5QL-E)

Step-by-step:
a. zvolit na serveru místo, kam budou ukládána (já jsem zvolil soubor na disku; dd if=/dev/zero of=/mnt/data/volumes/iscsi_hdd_01.img bs=1M count=16384)
b. na serveru nainstalovat iSCSI target, v našem případě zvolen IET (apt-get install iscsitarget iscsitarget-dkms)
c. nakonfigurovat IET. V defaultu je všechno povoleno a není třeba konfigurovat autentifikaci, stačí přidat konfiguraci konkrétního targetu

Target iqn.2003-08.net.myslenka.grisu:vFile1
        Lun 0 Path=/mnt/data/volumes/iscsi_hdd_01.img,Type=fileio,IOMode=wt

d. nainstalovat a nakonfigurovat tftp server (apt-get install tftpd)
d1. vytvořit /tftpboot s plnými právy pro všechny
e. stáhnout si iPXE image pro Intel UNDI – undionly.kpxe – a uložit ho do /tftpboot (tudíž není nutné updatovat Boot ROM na síťovce)
f. na serveru nainstalovat ISC DHCP server, pozor na stávající DHCP v síti (apt-get install isc-dhcp-server)
g. nakonfigurovat ISC DHCP server pro pevný lease pro našeho klienta (2) dle MAC adresy.
g0. nastavit adresu serveru našemu pevnému leasu (next-server …)
g1. předhodit PXE image s iPXE našemu pevnému leasu (filename …)
g2. zabránit „boot loopu“ z důvodu opakovaného načítání iPXE image (if exists user-class…)
g3. při načteném iPXE sdělit adresu iSCSI targetu (option root-path… – toto už je option pro iPXE) – POZOR! Pro začátek necháme zakomentovaný, protože z něj ještě nechceme přímo bootovat.

host blackwhite {
  hardware ethernet 00:23:54:5e:7a:89;
  fixed-address 192.168.0.10;
  next-server 192.168.0.250;
  if exists user-class and option user-class = "iPXE" {
      filename "";
#      option root-path "iscsi:192.168.0.250::::iqn.2003-08.net.myslenka.grisu:vFile1";
  } else {
      filename "undionly.kpxe";
  }
}

…takže teď máme funkční a nakonfený iSCSI target i ISC DHCP server včetně TFTP. Můžeme začít instalovat Windows 

h. na (2) použijeme DVD s Windows 7 (v mém příkladu Win7 HP x64), v BIOSu nastavíme bootování z DVD jako primární (měl jsem i odpojený HDD)
i. zapneme (2) a v bootmenu vybereme boot ze sítě. Komp by měl dostat adresu od DHCP a spustit iPXE. Pomocí Ctrl-B se dostaneme do příkazové řádky iPXE.
j. nakonfíme iPXE, tedy přidělíme adresu z DHCP a „namountujeme“ iSCSI disk
j1. dhcp net0
j2. sanhook iscsi:192.168.0.250::::iqn.2003-08.net.myslenka.grisu:vFile1
j3. exit
k. mělo by se pustit bootování z DVD a s tím instalace Windows.
l. až bude po instalaci Windows, odkomentujeme řádek v konfigu DHCP a další bootování už pojede samo od sebe 

A teď moje zkušenost s rychlostí – je to na 100Mb síti, takže nic moc reprezentativního  až trochu poladím ten target, tak to zkusím po gigu.

Čerstvá instalace Windows 7 HP x64, jak dlouho trvaly části bootování:
10s inicializace PXE
5s inicializace iPXE a spuštění bootování z iSCSI
45s logo windows
10s od zobrazení kurzoru až po loginscreen
10s od odklepnutí hesla po zobrazení plochy