Zavádění bezdiskových strojů: Porovnání verzí

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání
mBez shrnutí editace
mBez shrnutí editace
 
(Není zobrazena jedna mezilehlá verze od stejného uživatele.)
Řádek 3: Řádek 3:
}}</noinclude>
}}</noinclude>


; PXE : Pro zavádění bezdiskového systému je klíčové, aby ethernetové zařízení stroje kde se má zavést podporovalo PXE ('''''P'''reboot e'''x'''ecution '''e'''nvironment'') – standard, který umožňuje zavedení operačního systému po síti. Ten funguje tak, že:
; [[PXE]] : Pro zavádění bezdiskového systému je klíčové, aby ethernetové zařízení, stroje kde se má zavést bezdiskový operační systém ([[Diskless]]) podporovalo [[PXE]] ('''''P'''reboot e'''x'''ecution '''e'''nvironment'') – standard, který umožňuje zavedení operačního systému po síti. Ten funguje tak, že:
# Ethernetové zařízení, které podporuje PXE, vyšle do sítě broadcastový paket
# Ethernetové zařízení, které podporuje [[PXE]], vyšle do sítě broadcastový paket
# Ten odchytí DHCP server a pokud nalezne pro MAC adresu, ze které byl paket odeslán, odpovídající konfiguraci, vrátí informace nezbytné k nakonfigurování sítě. Mezi nimi může být i adresa TFTP serveru a cesta k zavaděči, která se vybere na základě identifikátoru PXE klienta, předaného v proměnné <code>vendor-class-identifier</code><ref>Hodnota vychází z [https://datatracker.ietf.org/doc/html/rfc4578 RFC 4578] (2006) a je daná [https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#processor-architecture architekturou] procesoru. Tabulka není kompletní, protože stroje s architekturou x86, které by měly UEFI v rámci disklessu nepoužíváme, ani zavádění přes HTTP:
# Ten odchytí [[DHCP server]]. Vyhledá pro MAC adresu ze které byl paket odeslán odpovídající konfiguraci a vrátí zařízení, které paket vyslalo zpět informace nezbytné pro nastavení sítě. Mezi nimi může být i adresa TFTP (či HTTP) serveru a cesta k [[bootloader|zavaděči]], kterou lze v konfiguraci DHCP měnit na základě identifikátoru [[PXE]] klienta, předaného v proměnné <code>vendor-class-identifier</code><ref>Hodnota vychází z [https://datatracker.ietf.org/doc/html/rfc4578 RFC 4578] (2006) a je daná [https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#processor-architecture architekturou] procesoru. Tabulka není kompletní, protože stroje s architekturou x86, které by měly UEFI v rámci disklessu nepoužíváme, ani zavádění přes HTTP:
: <code>PXEClient:Arch:00000</code> : x86 BIOS (tzv. ''legacy'' PXE)
: <code>PXEClient:Arch:00000</code> : x86 BIOS (tzv. ''legacy'' PXE)
: <code>PXEClient:Arch:00007</code> : x64 UEFI PXE
: <code>PXEClient:Arch:00007</code> : x64 UEFI PXE
: <code>PXEClient:Arch:0000b</code> : ARM 64-bit UEFI PXE
: <code>PXEClient:Arch:0000b</code> : ARM 64-bit UEFI PXE
: <code>PXEClient:Arch:00029</code> : arm rpiboot
: <code>PXEClient:Arch:00029</code> : arm rpiboot
</ref>  
</ref>
# Zavaděč, pokud podporuje PXE, si pak stáhne přes TFTP konfigurační soubor a případně i další moduly, nezbytné pro zavedení operačního systému.
# PXE klient nastaví síť a předá získané informace BIOSu/UEFI, který skrze ni natáhne do RAM [[bootloader|zavaděč]] a dál již pokračuje zavádění v jeho režii.
# [[bootloader|Zavaděč]], má-li podporu PXE<ref>
{{na|bootloader}}
[[Přehled vývoje infrastruktury pro diskless Debian na katedře DCE|V roce 2005, kdy se na DCE s disklessem začínalo]], se linuxové jádro zavádělo buď přes [https://cs.wikipedia.org/wiki/LILO LILO] nebo [[GRUB]]. LILO, vyvíjené v letech 1992–2015, žádnou podporu pro zavádění po síti nemělo. Ale [[GRUB (legacy)]], vyvíjený v letech 1995–2005, používal při zavádění mezistupeň, umístěný v MBR sektoru, do kterého mohl být zakompilován ovladač síťové karty klientské stanice, který zavádění po síti umožnil. Nebylo to však univerzální řešení. Pokud měl stroj jiný typ ethernetové karty, s jiným ovladačem, bylo nutné provést rekompilaci [[bootloader|zavaděče]] a reinstalaci prvního zaváděcího bloku, který se musel vejít do MBR sektoru. Tento blok kódu, vytvořený jako soubor ''pxegrub'', obsahoval oba zaváděcí stupně a tak bylo možné zavádět systém po síti.
</ref>, si natáhne přes TFTP konfigurační soubor a případně i další moduly, nezbytné pro zavedení operačního systému.
{{Poznámka|Pokud má zařízení k dispozici lokální blokové zařízení, na kterém je nainstalován zavaděč, nepotřebuje ethernetové zařízení s podporou PXE, ani DHCP server, protože konfiguraci sítě lze jádru předat prostřednictvím konfiguračního souboru zavaděče ještě před zavedením jádra do RAM.}}
{{Poznámka|Pokud má zařízení k dispozici lokální blokové zařízení, na kterém je nainstalován zavaděč, nepotřebuje ethernetové zařízení s podporou PXE, ani DHCP server, protože konfiguraci sítě lze jádru předat prostřednictvím konfiguračního souboru zavaděče ještě před zavedením jádra do RAM.}}
; DHCP a TFTP server : Z DHCP serveru si klientské stanice natahují informace o nastavení sítě. TFTP server nabízí ke stažení soubory nezbytné pro bezdiskové zavedení systému. Může jít o stejný stroj, ale nemusí.
; DHCP a TFTP server : Z DHCP serveru si klientské stanice natahují informace o nastavení sítě. TFTP server nabízí ke stažení soubory nezbytné pro bezdiskové zavedení systému. Může jít o stejný stroj, ale nemusí.
;Klientská stanice:Stroj na kterém fyzicky zavádíme operační systém.
;Klientská stanice:Stroj na kterém fyzicky zavádíme operační systém.
{{na|bootloader}}
== Zavaděč – bootloader ==
V roce XXX když se na DCE s disklessy začínalo, se pro zavádění linuxu používalo [[LILO]] a [[GRUB]].
LILO nemělo podporu pro zavádění po síti, ale [[GRUB]] první verze, později označené jako ''legacy'', mohl mít zakompilovaný ovladač pro síťovou kartu klientské stanice, který použití PXE umožnil. Mělo to ovšem jednu nevýhodu.
Přidání nového ovladače znamenalo rekompilaci a reinstalaci prvního zaváděcího bloku, který se musel vejít do MBR sektoru. Soubor ''pxegrub'', který se do něj instaloval tvoří zabalené oba stupně zavaděče, rozšířené o možnosti práce se sítí.


připojení NFS funkční síťovou konfiguraci a připojení.
připojení NFS funkční síťovou konfiguraci a připojení.
Řádek 64: Řádek 60:


http://delivery.acm.org/10.1145/1050000/1048013/7111.html?key1=1048013&key2=8155986521&coll=GUIDE&dl=GUIDE&CFID=59050524&CFTOKEN=16368376
http://delivery.acm.org/10.1145/1050000/1048013/7111.html?key1=1048013&key2=8155986521&coll=GUIDE&dl=GUIDE&CFID=59050524&CFTOKEN=16368376


== Konfigurace DHCP a zavádění přes [[PXE|PXELINUX]] ==
== Konfigurace DHCP a zavádění přes [[PXE|PXELINUX]] ==

Aktuální verze z 18. 6. 2024, 13:47

PXE
Pro zavádění bezdiskového systému je klíčové, aby ethernetové zařízení, stroje kde se má zavést bezdiskový operační systém (Diskless) podporovalo PXE (Preboot execution environment) – standard, který umožňuje zavedení operačního systému po síti. Ten funguje tak, že:
  1. Ethernetové zařízení, které podporuje PXE, vyšle do sítě broadcastový paket
  2. Ten odchytí DHCP server. Vyhledá pro MAC adresu ze které byl paket odeslán odpovídající konfiguraci a vrátí zařízení, které paket vyslalo zpět informace nezbytné pro nastavení sítě. Mezi nimi může být i adresa TFTP (či HTTP) serveru a cesta k zavaděči, kterou lze v konfiguraci DHCP měnit na základě identifikátoru PXE klienta, předaného v proměnné vendor-class-identifier[1]
  3. PXE klient nastaví síť a předá získané informace BIOSu/UEFI, který skrze ni natáhne do RAM zavaděč a dál již pokračuje zavádění v jeho režii.
  4. Zavaděč, má-li podporu PXE[2], si natáhne přes TFTP konfigurační soubor a případně i další moduly, nezbytné pro zavedení operačního systému.
Poznámka Pokud má zařízení k dispozici lokální blokové zařízení, na kterém je nainstalován zavaděč, nepotřebuje ethernetové zařízení s podporou PXE, ani DHCP server, protože konfiguraci sítě lze jádru předat prostřednictvím konfiguračního souboru zavaděče ještě před zavedením jádra do RAM.
DHCP a TFTP server
Z DHCP serveru si klientské stanice natahují informace o nastavení sítě. TFTP server nabízí ke stažení soubory nezbytné pro bezdiskové zavedení systému. Může jít o stejný stroj, ale nemusí.
Klientská stanice
Stroj na kterém fyzicky zavádíme operační systém.

připojení NFS funkční síťovou konfiguraci a připojení. Dále je nutné odstavit služby, které by se při startu případně pokoušely o rekonfiguraci síťového připojení. V takovém případě by se totiž mohlo stát, že stroj zůstane viset, protože mu přestane fungovat připojení na NFS server.

syslinux

https://wiki.syslinux.org

Pro bezdiskové zavádění se používá PXELINUX , ale také GRUB lze používat bezdiskově. Jak už bylo zmíněno u prvního stupně zavádění,

Bios klientské stanice si z TFTP serveru přes PXE síťové karty tento soubor stáhne a zavede stejným způsobem, jako by jej našel někde na disku. Pokud je k dispozici ovladač síťové karty, lze pak zavádět i distribuce bezdiskové rovnou ze sítě. Pokud ne, můžeme zavést pouze lokální systémy.

Upozornění GRUB2 rovněž umožňuje tak, jako GRUB legacy bezdiskové zavedení systému. Také si umí přes PXE z TFTP serveru dotahovat další moduly, ale pozor! Přes TFTP nelze provést vylistování vzdáleného adresáře. Starší verze (1.97) měla ještě ke všemu problém se zavedením samotného OS.

Projekt Syslinux ( http://syslinux.zytor.com/wiki/index.php ) vyvíjí balík malých utilit, určených pro zavádění OS z různých médií:

SYSLINUX
Zavádí OS ze souborového systému FAT ( typicky se používá na USB flash discích )
PXELINUX
Zavádí OS po síti
ISOLINUX
Zavádí OS z bootovatelných "El Torito" CD
EXTLINUX
Zavádí linux ze souborových systémů ext2/ext3
MEMDISK
Není zavaděčem jako takovým. Je to nástroj, který umožňuje spouštět konzervativní (legacy) operační systémy ( jako např. DOS ) z netradičních médií. Obvykle se používá v kombinaci s PXELINUX a ISOLINUX

Tyto utility jsou malé binární soubory, které se spouští podle potřeby. Jejich výhodou je, že nejsou nijak závislé na zaváděném OS a tudíž je lze bez problému používat bez ohledu na architekturu procesoru.

Projekt Syslinux má svůj ekvivalent např. v zavaděči Grub , předností jeho utilit však je, že jsou malé a svou práci dělají rychle a spolehlivě.

PXELINUX

Se obvykle používá v kombinaci s TFTP serverem pro bezdiskového zavádění ( diskless boot ) linuxových distribucí. Lze jej však ale využít také pro zavedení jiného zavaděče, v našem případě skrz něj natahujeme GRUB

Instalace

V Debianu je binární soubor pxelinux.0 součástí instalačního balíku syslinux. Stačí jej umístit někam, odkud si jej může klientská stanice stáhnout.

Konfigurace

Svoje konfigurační soubory hledá pxelinux.0 spuštěný na klientské stanici v serverovém adresáři ./pxelinux.cfg na základě MAC či IP adresy. IP adresa však není v obvykle používaném tvaru, ale v hexa.


http://frank.harvard.edu/~coldwell/diskless/

http://delivery.acm.org/10.1145/1050000/1048013/7111.html?key1=1048013&key2=8155986521&coll=GUIDE&dl=GUIDE&CFID=59050524&CFTOKEN=16368376

Konfigurace DHCP a zavádění přes PXELINUX

  1. Hodnota vychází z RFC 4578 (2006) a je daná architekturou procesoru. Tabulka není kompletní, protože stroje s architekturou x86, které by měly UEFI v rámci disklessu nepoužíváme, ani zavádění přes HTTP:
    PXEClient:Arch:00000 : x86 BIOS (tzv. legacy PXE)
    PXEClient:Arch:00007 : x64 UEFI PXE
    PXEClient:Arch:0000b : ARM 64-bit UEFI PXE
    PXEClient:Arch:00029 : arm rpiboot
  2. V roce 2005, kdy se na DCE s disklessem začínalo, se linuxové jádro zavádělo buď přes LILO nebo GRUB. LILO, vyvíjené v letech 1992–2015, žádnou podporu pro zavádění po síti nemělo. Ale GRUB (legacy), vyvíjený v letech 1995–2005, používal při zavádění mezistupeň, umístěný v MBR sektoru, do kterého mohl být zakompilován ovladač síťové karty klientské stanice, který zavádění po síti umožnil. Nebylo to však univerzální řešení. Pokud měl stroj jiný typ ethernetové karty, s jiným ovladačem, bylo nutné provést rekompilaci zavaděče a reinstalaci prvního zaváděcího bloku, který se musel vejít do MBR sektoru. Tento blok kódu, vytvořený jako soubor pxegrub, obsahoval oba zaváděcí stupně a tak bylo možné zavádět systém po síti.