Difference between revisions of "Disklessová pracovní stanice"

From DCEwiki
Jump to: navigation, search
m (Anatomie vrstvy)
m
Line 15: Line 15:
  
 
=== Lokální kešování ===
 
=== Lokální kešování ===
 +
 +
== <code>/etc/fstab</code> ==
 +
'''Soubor <code>/etc/fstab</code> nemá žádný obsah''', protože [[full-diskless]] ke své existenci lokální blokové zařízení nepotřebuje a připojení tmpfs na adresář <code>/tmp</code> je zbytečné, protože stejně všechno překrývá overlay, který už v paměti je.
 +
 +
=== Připojení tmpfs ===
 +
U disklessového stroje který '''nemá''' overlay, se pracuje přímo s obsahem adresáře nasdíleného z NFS serveru – např. disklessové servery. V takovém případě je naopak vysoce žádoucí tmpfs na adresář /tmp připojit – bez toho by se dočasně vytvořené soubory zbytečně honily po síti sem a tam a zatěžovaly NFS server (zamykání, odemykání, rušení, …). V takovém případě se hodí do souboru <code>/etc/fstab</code> přidat následující řádek:
 +
 +
tmpfs          /tmp            tmpfs  nodev,nosuid    0      0
 +
 +
Do adresáře <code>/tmp</code> může zapisovat každý. Parametrem ''nosuid'' zabráníte tomu, aby někdo zneužil tento adresář k tomu, aby spuštěním aplikace, která má nastaven tzv. ''suid bit'' získal práva uživatele root. A ''nodev'' pro mu pro změnu zabrání v …
 +
 +
=== Připojení lokálního diskového oddílu ===
 +
Nicméně se za určitých okolností je připojení lokálního blokového zařízení potřeba. Kupř. u [[half-diskless]]ových serverů, co startují kompletně z NFS, bez komunikace s DHCP je na virtuálním blokovém zařízení umístěn [[GRUB]] s linuxovým jádrem včetně ramdisku a pokud chceme, nebo potřebujeme udělat jeho aktualizaci, potřebujeme, aby byl jeho obsah dostupný.
 +
 +
Jsou to virtuály, do kterých se propaguje virtuální disk jako blokové zařízení <code>/dev/sda</code>. Protože firmware QEMU při zavádění nepočítá s UEFI, je zbytečné aby na něm byla GPT tabulka a víc než jeden diskový oddíl. Navíc jde o velmi malý virtuální disk, bohatě stačí max. velikost kolem 200MB, proto je na něm MS-DOS tabulka, s jedním primárním diskovým oddílem, formátovaným na ext4. GRUB se instaluje do MBR sektoru, a na jeho přečtení diskového oddílu mu stačí relativně malé moduly ''part_msdos'' a ''ext2''.
 +
 +
LABEL=boot      /boot  ext4    noauto  0      0
 +
 +
Parametr ''noauto'' v tomto případě preventivně brání neúmyslnému poškození ramdisku. Pokud chceme hrabat na konfigurační soubor <code>grub.cfg</code>, nebo aktualizovat ramdisk, musíme si tento virtuální disk na adresář <code>/boot</code> připojit.
 +
{{Poznámka|'''Je lepší mountovat zařízení přes návěští souborového systému''' (LABEL) než přes cestu k blokovému zařízení, protože tím pádem nemusíme řešit další bloková zařízení ani jiné diskové oddíly.}}
 +
 +
V laboratořích Katedry kybernetiky se – na rozdíl od laboratoří Katedry řídící techniky – lokálně instalované MS Windows nepoužívají. Ale diskless SSD disky s nimiž byly stroje dodány využívá automaticky, pokud na nich najde swapovací oddíl.
 +
 +
Kromě toho se ale využívají také jako lokální úložiště pro velké soubory virtuálních strojů, s nimiž se pracuje přes VMWare. Proto <code>/etc/fstab</code> u laboratorního disklessu Katedry kybernetiky obsahuje následující záznam:
 +
 +
LABEL=local /local ext4 defaults,noauto,users 0 2
 +
 +
Pokud diskless, na lokálním disku stroje kde byl spuštěn, nalezne diskový oddíl formátovaný na ext4 s názvem 'local', tak ho má přihlášený uživatel možnost připojit. Aby se o to nesnažil automaticky je uvedena volba ''noauto'' – bez ní by totiž zůstal při zavádění systém viset v ramdisku, pokud by takový diskový oddíl na stroji při startu nenašel.
 +
 +
A bez volby ''users'', by to mohl pro změnu udělat pouze uživatel <code>root</code>.
  
 
== Menu ==
 
== Menu ==

Revision as of 17:49, 18 September 2019

Výsledný operační systém disklessové pracovní stanice je výsledkem sloučení několika vrstev do jednoho sendviče.

Anatomie vrstev

Především si musíme si uvědomit že pořadí, v jakém se vrstvy sestaví do sendviče[1], je důležité.

Specifika sendviče překrytého overlayem

Lokální kešování

/etc/fstab

Soubor /etc/fstab nemá žádný obsah, protože full-diskless ke své existenci lokální blokové zařízení nepotřebuje a připojení tmpfs na adresář /tmp je zbytečné, protože stejně všechno překrývá overlay, který už v paměti je.

Připojení tmpfs

U disklessového stroje který nemá overlay, se pracuje přímo s obsahem adresáře nasdíleného z NFS serveru – např. disklessové servery. V takovém případě je naopak vysoce žádoucí tmpfs na adresář /tmp připojit – bez toho by se dočasně vytvořené soubory zbytečně honily po síti sem a tam a zatěžovaly NFS server (zamykání, odemykání, rušení, …). V takovém případě se hodí do souboru /etc/fstab přidat následující řádek:

tmpfs           /tmp            tmpfs   nodev,nosuid    0       0

Do adresáře /tmp může zapisovat každý. Parametrem nosuid zabráníte tomu, aby někdo zneužil tento adresář k tomu, aby spuštěním aplikace, která má nastaven tzv. suid bit získal práva uživatele root. A nodev pro mu pro změnu zabrání v …

Připojení lokálního diskového oddílu

Nicméně se za určitých okolností je připojení lokálního blokového zařízení potřeba. Kupř. u half-disklessových serverů, co startují kompletně z NFS, bez komunikace s DHCP je na virtuálním blokovém zařízení umístěn GRUB s linuxovým jádrem včetně ramdisku a pokud chceme, nebo potřebujeme udělat jeho aktualizaci, potřebujeme, aby byl jeho obsah dostupný.

Jsou to virtuály, do kterých se propaguje virtuální disk jako blokové zařízení /dev/sda. Protože firmware QEMU při zavádění nepočítá s UEFI, je zbytečné aby na něm byla GPT tabulka a víc než jeden diskový oddíl. Navíc jde o velmi malý virtuální disk, bohatě stačí max. velikost kolem 200MB, proto je na něm MS-DOS tabulka, s jedním primárním diskovým oddílem, formátovaným na ext4. GRUB se instaluje do MBR sektoru, a na jeho přečtení diskového oddílu mu stačí relativně malé moduly part_msdos a ext2.

LABEL=boot      /boot   ext4    noauto  0       0

Parametr noauto v tomto případě preventivně brání neúmyslnému poškození ramdisku. Pokud chceme hrabat na konfigurační soubor grub.cfg, nebo aktualizovat ramdisk, musíme si tento virtuální disk na adresář /boot připojit.

Poznámka Je lepší mountovat zařízení přes návěští souborového systému (LABEL) než přes cestu k blokovému zařízení, protože tím pádem nemusíme řešit další bloková zařízení ani jiné diskové oddíly.

V laboratořích Katedry kybernetiky se – na rozdíl od laboratoří Katedry řídící techniky – lokálně instalované MS Windows nepoužívají. Ale diskless SSD disky s nimiž byly stroje dodány využívá automaticky, pokud na nich najde swapovací oddíl.

Kromě toho se ale využívají také jako lokální úložiště pro velké soubory virtuálních strojů, s nimiž se pracuje přes VMWare. Proto /etc/fstab u laboratorního disklessu Katedry kybernetiky obsahuje následující záznam:

LABEL=local /local ext4 defaults,noauto,users 0 2

Pokud diskless, na lokálním disku stroje kde byl spuštěn, nalezne diskový oddíl formátovaný na ext4 s názvem 'local', tak ho má přihlášený uživatel možnost připojit. Aby se o to nesnažil automaticky je uvedena volba noauto – bez ní by totiž zůstal při zavádění systém viset v ramdisku, pokud by takový diskový oddíl na stroji při startu nenašel.

A bez volby users, by to mohl pro změnu udělat pouze uživatel root.

Menu

~/.config/menus/xfce-applications.menu

Odkud se berou položky v menu?

$ env | grep XDG_CONFIG_DIRS

Kontejnerová virtualizace