Zavádění bezdiskových strojů: Porovnání verzí
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 | # 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ěč, | # 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. | ||
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:
- Ethernetové zařízení, které podporuje PXE, vyšle do sítě broadcastový paket
- 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] - 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.
- 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.
- 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
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.
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/
Konfigurace DHCP a zavádění přes PXELINUX
- ↑ 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 PXEPXEClient:Arch:0000b
: ARM 64-bit UEFI PXEPXEClient:Arch:00029
: arm rpiboot
- ↑ 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.