Aktuální vydání

celé číslo

06

2024

MSV 2024

celé číslo

Virtuální stroje a kontejnerové technologie v operačním systému TC/BSD společnosti Beckhoff

Společnost Beckhoff Automation vždy využívala a využívá nejmodernější technologie z IT světa, snaží se je přenést do světa automatizace a plně zde uplatnit jejich potenciál. Technologie, které budou v tomto článku představeny, se používají již mnoho let, ale poslední roky jejich obliba a využití výrazně rostou. Zejména to platí pro kontejnerové technologie. Proto je dobré podívat se na to, jak k těmto trendům Beckhoff aktuálně přistupuje a využívá je společně s novým operačním systémem TC/BSD, protože právě ten přináší mnoho nových možností.

 

Před představením technologií virtualizace, tedy virtuálního stroje (VM – Virtual Machine), a kontejnerů, pod systémem TC/BSD, se na tento systém podívejme blíže. Systém TC/BSD (i jeho název) vznikl spojením dvou softwarových částí: run-time softwarového řízení TwinCAT 3 (TC) a operačního systému FreeBSD.

Pro přehled: TwinCAT 3 je automatizační modulární software, který je schopen „naučit“ PC řízení v reálném čase. Operační systém FreeBSD ještě nebyl v žádném předchozím článku podrobněji rozebrán, proto bude teď v kostce představen. FreeBSD je operační systém postavený na unixovém jádře. Jde o open-source systém podle licenčních podmínek BSD (typ licence; Berkeley Software Distribution), což kromě jiného umožňuje bezproblémovou implementaci TwinCAT 3 run-time. Systém TC/BSD je velmi robustní, stabilní a vyniká funkčností, proto se často využívá pro serverové a vestavné aplikace. Díky relativně malé náročnosti systému nemá tak velké požadavky na hardware, obzvlášť v porovnání s „velkými“ operačními systémy Windows, a přitom nabízí podobné možnosti a funkce. FreeBSD je v podstatě nástupce systému BSD a je nejrozšířenější ze všech systémů BSD, má tedy za sebou velmi silnou komunitu, která napomáhá stálému vývoji FreeBSD. To vše z uvedeného systému dělá velmi dobrého kandidáta pro použití v automatizaci.

Podívejme se na základní rozdíly mezi virtuálním strojem a kontejnerem. Obě tyto technologie jsou určeny k virtualizaci, ale jejich fungování je odlišné.

 

Virtuální stroj

Virtuální stroj (VM) je softwarově vytvořené emulované prostředí, které simuluje fyzický počítač, díky čemuž je možný běh operačního systému a aplikací v izolovaném prostředí. Hypervizorem může být hardware nebo software, který umožňuje běh několika operačních systémů na jednom hardwaru, tedy „virtuální stroj“ (obr. 1).

Hypervizor má dva typy: typ 1 běží přímo na hardwaru (obr. 2) a typ 2 běží nad hostitelským operačním systémem. Protože každý virtuální stroj má svoji vlastní instanci operačního systému, jsou tyto systémy od sebe kompletně izolovány. Virtuální stroj umožňuje běh nejrůznějších operačních systémů, jako jsou Windows, Linux, BSD a další. V důsledku použití této architektury má virtuální stroj velkou režii právě proto, že každá instance OS potřebuje vlastní zdroje hostitelského hardwaru, jako jsou procesorový čas, paměť RAM nebo úložiště, včetně přístupu k síťovému rozhraní.

 

Kontejnery

Kontejnery jsou izolovaná prostředí pro běh aplikací a jejich závislostí (obr. 3). Toto prostředí kontejnerizuje veškeré potřebné komponenty pro spuštění aplikace, včetně kódu, knihoven, konfigurací a dalších souborů. Kontejnerový systém tak poskytuje pouze základní izolaci od ostatních kontejnerů. Jednotlivé kontejnery sdílejí jádro hostitelského operačního systému, a tudíž mohou nastat interakce mezi jednotlivými kontejnery. Využití stejného jádra OS se projevuje velkou efektivitou kontejnerů, co se rychlosti a režie týče, tedy hardwarové požadavky jsou daleko nižší než u virtuálního stroje. Kontejnery jsou nejčastěji spojovány s názvem Docker, což je asi nejpopulárnější kontejnerový virtualizační nástroj, ale zdaleka ne jediný.

 

Využití virtualizace v TC/BSD

TC/BSD umožňuje využít obě tyto technologie virtualizace, což poskytuje nové možnosti v přístupu k použití. Ve virtuálním stroji využívá TC/BSD hypervizor bhyve, tedy BSD Hypervisor typu 2, který již byl zmíněn v předchozí části (obr. 4). Jde o řešení, kdy přímo na hardwaru běží operační systém FreeBSD spolu s TwinCAT 3 run-time a nad ním bhyve, který dovoluje hostování nejrůznějších operačních systémů, jako jsou Windows, Linux a další varianty BSD. Jako příklad využití této struktury v praxi lze uvést základní situaci: na pozadí na úrovni hostitelského operačního systému TC/BSD běží v reálném čase řídicí aplikace TwinCAT 3 a na popředí uživatelské prostředí virtuálního stroje s vizualizací. V takovémto případě jsou tedy OS zcela oddělené, což je možné využít pro zajištění ještě větší stability a zabezpečení stroje. V tomto případě mohou mít uživatelé přístup jen k prostředí VM na popředí, a tedy i při jakémkoliv nekorektním zacházení či problému, který by systém poškodil, zůstane poškozen jen systém virtuálního stroje a hostitelský systém TC/BSD na pozadí provádějící fyzické řízení stroje zůstává bez jakéhokoliv ovlivnění, tedy nezasažený a plně funkční. Tímto způsobem je možné ještě zvýšit již tak dobrou ochranu řízení stroje (obr. 5).

Při využití kontejnerů TC/BSD je nativně nabízen virtualizační nástroj Jails. Tento kontejnerový nástroj ale není tak populární a rozšířený jako již zmíněný Docker, proto je podporována integrace i právě uvedeného virtualizačního nástroje Docker.

 

Závěrem

Na závěr lze říci, že TwinCAT/BSD představuje moderní a efektivní platformu pro automatizační techniku kombinující výhody osvědčeného automatizačního softwaru s robustním a flexibilním operačním systémem. Je to tedy velmi zajímavá alternativa, která nabízí různé technologické funkce včetně virtualizace. Využitím virtualizace se zase více prolíná svět automatizace se světem IT, což umožňuje využít moderní přístup k aplikacím v uzavřeném prostředí bez ovlivnění ostatních aplikací či systémů. Těmito technologiemi je možné ve výsledku docílit zvýšení stability a funkčnosti stroje.

(Beckhoff Automation s. r. o.)

 

Obr. 1. Základní architektura TC/BSD Hypervisor

Obr. 2. Virtuální stroj typu 1

Obr. 3. Struktura kontejneru

Obr. 4. Virtuální stroj typu 2 bhyve (využívaný v TC/BSD)

Obr. 5. Příklad použití hypervizoru TC/BSD