Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »děláš to vše zbytečně složitě ....
existence libvirt. Spoustu veci by ti ulehcila, dale bych zvazil pouziti dockeru ci systemd-nspawn
řešit síťování přes bridge, když je k dispozici openvswitch, mi přijde poněkud humpolácké a nepružné.Jakou výhodu tedy poskytne openvswitch? Klasický bridge je v linuxu nativní nástroj, který se dá skládat s ledasčím.
Dynamické vytváření portů pro virtuální stroje
Operativní práci s konfigurací vlan, aniž by si tím odstřelil hlavní konektivitu
Vytváření interních sítí
tunelovaných na jiné virtuální switcheMáme tu čtyři různé body. Ani u jednoho nevím, proč by to nešlo se stávající kernelovou infrastrukturou.
Jednou nastavený openvswitch znamená - alespoň pro mne - vyřešené problémy s konektivitou.To chápu. Stejně jako jakýkoli jiný vyhovující nástroj nebo sada nástrojů, která jde nakonfigurovat a dále používat.
Máme tu čtyři různé body. Ani u jednoho nevím, proč by to nešlo se stávající kernelovou infrastrukturou.Však já nikde nepsal, že to nejde řešit i jinak. Dotaz byl: "Jakou výhodu tedy poskytne openvswitch?"
Dotaz byl: "Jakou výhodu tedy poskytne openvswitch?"Obávám se, že to jsem se zatím nedozvěděl. Ale je klidně možné, že mi odpověď může nabídnout jenom člověk zkušený v řešení s openvswitch i bez něj a takoví se asi těžko hledají.
Obávám se, že se svým přístupem se uspokojivé odpovědi nedočkáš.S možností, že se odpovědi nedočkám, celkem počítám, ale nevím, co jsem ti udělal tak zlého, že máš potřebu to svádět na můj přístup.
Na druhou stranu nasazení openvswitche usnadňuje především změny do budoucna. Klasické řešení, s využitím vlan a bridgů, takovou pružnost nenabízí.Jenže to jsou stále jenom prázdné kecy jak z marketingového oddělení. Pokud se nedozvím alespoň jednu konkrétní věc a u ní konkrétní výhody, diskuze brzy ztratí smysl.
nejsi schopen akceptovat, že jiní uživatelé mají jiné potřeby než ty.Obávám se, že jsi si zde jen nastavil zrcadlo. Pokud vím, tak jsi to byl ty, kdo shazoval jedno ze dvou možných řešení, takže asi nedává smysl abys z výše uvedeného obviňoval kohokoli jiného než sebe.
Pokud by tě zajímalo řešení nějaké konkrétní věci, tak bys především musel nejprve nastínit jak ji máš řešenou tyNesmysl. Ty jsi prezentoval jedno řešení jako špatné a druhé jako dobré. Je tedy na tobě, abys to buď obhájil nebo nechal neobhájené. Jestli ti můžu poradit, tak je mnohem čistší přiznat, že ve skutečnosti nevíš, říct, že to asi neumíš vysvětlit, nebo se jednoduše vymluvit, že na to teď nemáš čas. Ale klidně si můžeš vycucat z prstu nějaký výrok shazující tazatele, pokud ti to dělá dobře.
Takže k tomu mohu jen říct že názvy použité v dokumentaci jsou volené tak aby co nejvíc usnadnily pochopení jak to funguje a co nahrazuje.Takže chcete říct, že když na hostiteli, kde se tohle používá, pustíte
brctl show
, tak to nic neukáže?
Já jsem jím nahradil ... jaderné moduly pro vytvoření bridge a separaci vlan.To je právě to, o čem dost pochybuju. Připouštím, že před vámi openvswitch může zkoušet leccos schovat, ale opravdu se mi nezdá, že by vývojářům při začlenění do jádra prošla duplikace kódu jak pro ten bridge, tak pro vlany.
Mimochodem, podobné řešení na bázi Openvswitche, jak jsem s překvapením zjistil, používá pro síťování i Citrix Xen server.No nevím jak Citrix Xen server, ale normální server s Xenem se taky bude tvářit, že síť je hogofogo cosi, načež se ukáže, že síťovka peth0 je přejmenované eth0 a eth0 je bridge, který se nejmenuje br0.
Stroj snoopy je jeden z nejstarších strojů mého clusteru, které ještě mají původní síťovou konfiguraci bez openvswitche. Což je bohužel jediná příčina, proč tyto stroje nemohou současně fungovat i jako virtualizační. Původně se na nich pro tento účel využívaly vde2 switche - viz KVM (networking) v naší wiki
snoopy (DATASERVER) :~# lsmod | grep -E '(bridge|8021q)' 8021q 23895 0 garp 13148 1 8021q mrp 13325 1 8021q bridge 81844 0 stp 12437 2 garp,bridge llc 12783 3 stp,garp,bridge snoopy (DATASERVER) :~# brctl show bridge name bridge id STP enabled interfaces br0 8000.4061868d10df no eth0 br17 8000.4061868d10de no vlan17 br202 8000.4061868d10de no vlan202 br223 8000.4061868d10de no vlan223 br226 8000.4061868d10de no vlan226 br5 8000.4061868d10de no vlan5
Infrastruktura strojů lucy a patty již využívá openvswitch. Každý z nich může fungovat jak datový stroj, tak virtualizační, proto pro rálnou představu v následujícím výpisu uvádím výpis konfigurace openvswitche pro oba stroje
patty (DATASERVER) :~# lsmod | grep -E '(bridge|8021q)' patty (DATASERVER) :~# brctl show bridge name bridge id STP enabled interfaces patty (DATASERVER) :~# ovs-vsctl show 458eb0ea-1825-40de-8e3b-028ea61c0faf Bridge main Port "main5" tag: 5 Interface "main5" type: internal Port "nfs-k328" tag: 54 Interface "nfs-k328" type: internal Port main Interface main type: internal Port "main-aa4cc-5" tag: 5 Interface "main-aa4cc-5" Port "nfs-k23" tag: 223 Interface "nfs-k23" type: internal Port "nfs-k2" tag: 202 Interface "nfs-k2" type: internal Port "nfs-k26" tag: 226 Interface "nfs-k26" type: internal Port "eth2" trunks: [1, 4, 5, 17, 54, 202, 223, 226] Interface "eth2" Port "nfs-k9" tag: 17 Interface "nfs-k9" type: internal Bridge interni Port interni Interface interni type: internal Port "eth3" Interface "eth3" Port "interni-aa4cc" Interface "interni-aa4cc" ovs_version: "2.1.0" patty (DATASERVER) :~# ip tuntap patty (DATASERVER) :~#
Jak je z výpisu zřejmé, bridge se nemusí nutně jmenovat br.. a jak je zřejmé z předchozího výpisu, port nemusí být nutně připojen na tap zařízení.
lucy (DATASERVER) :~# ovs-vsctl show c66d1285-ef67-4c03-9bca-57e387bb0ff1 Bridge main Port "nfs-k328" tag: 54 Interface "nfs-k328" type: internal Port "main-samba-4" tag: 4 Interface "main-samba-4" Port "nfs-k2" tag: 202 Interface "nfs-k2" type: internal Port "main-poste-17" tag: 17 Interface "main-poste-17" Port "main-media-1" tag: 1 Interface "main-media-1" Port "main-k2-223" tag: 223 Interface "main-k2-223" Port "main-redmi-5" tag: 5 Interface "main-redmi-5" Port main Interface main type: internal Port "main-k2-226" tag: 226 Interface "main-k2-226" Port "nfs-k23" tag: 223 Interface "nfs-k23" type: internal Port "main-k2-54" tag: 54 Interface "main-k2-54" Port "nfs-k26" tag: 226 Interface "nfs-k26" type: internal Port "main-suppo-1" tag: 1 Interface "main-suppo-1" Port "nfs-k9" tag: 17 Interface "nfs-k9" type: internal Port "main-k2-1" tag: 1 Interface "main-k2-1" Port "main-boura-54" tag: 54 Interface "main-boura-54" Port "main5" tag: 5 Interface "main5" type: internal Port "main-x32bi-4" tag: 4 Interface "main-x32bi-4" Port "main-moodl-1" tag: 1 Interface "main-moodl-1" Port "main-git-1" tag: 1 Interface "main-git-1" Port "main-k2-202" tag: 202 Interface "main-k2-202" Port "main-mapse-5" tag: 5 Interface "main-mapse-5" Port "main-felk--5" tag: 5 Interface "main-felk--5" Port "main-drupa-1" tag: 1 Interface "main-drupa-1" Port "main-poste-5" tag: 5 Interface "main-poste-5" Port "eth2" trunks: [1, 4, 5, 17, 54, 202, 223, 226] Interface "eth2" Port "main-k2-17" tag: 17 Interface "main-k2-17" Port "main-build-5" tag: 5 Interface "main-build-5" Port "main-aa4cc-5" tag: 5 Interface "main-aa4cc-5" Port "main-k2-5" tag: 5 Interface "main-k2-5" Bridge interni Port "interni-x32bi" Interface "interni-x32bi" Port interni-drupa Interface interni-drupa Port interni-moodl Interface interni-moodl Port interni Interface interni type: internal Port interni-build Interface interni-build Port interni-git Interface interni-git Port interni-suppo Interface interni-suppo Port interni-redmi Interface interni-redmi Port interni-felk- Interface interni-felk- Port "eth3" Interface "eth3" Port interni-mapse Interface interni-mapse Port interni-samba Interface interni-samba Port "interni-aa4cc" Interface "interni-aa4cc" Port "interni-k2" Interface "interni-k2" ovs_version: "2.1.0" lucy (DATASERVER) :~# ip tuntap main-poste-5: tap vnet_hdr main-build-5: tap vnet_hdr main-k2-17: tap vnet_hdr main-k2-54: tap vnet_hdr main-git-1: tap vnet_hdr interni-git: tap vnet_hdr interni-k2: tap vnet_hdr main-moodl-1: tap vnet_hdr main-aa4cc-5: tap vnet_hdr main-suppo-1: tap vnet_hdr main-k2-1: tap vnet_hdr main-k2-5: tap vnet_hdr main-poste-17: tap vnet_hdr main-felk--5: tap vnet_hdr main-mapse-5: tap vnet_hdr main-x32bi-4: tap vnet_hdr main-drupa-1: tap vnet_hdr main-k2-226: tap vnet_hdr main-k2-223: tap vnet_hdr main-k2-202: tap vnet_hdr main-samba-4: tap vnet_hdr interni-suppo: tap vnet_hdr interni-aa4cc: tap vnet_hdr interni-build: tap vnet_hdr interni-drupa: tap vnet_hdr interni-felk-: tap vnet_hdr interni-mapse: tap vnet_hdr interni-moodl: tap vnet_hdr interni-redmi: tap vnet_hdr interni-samba: tap vnet_hdr interni-x32bi: tap vnet_hdr main-redmi-5: tap vnet_hdr
Jak snad jistě i pavlix uzná, spravovat něco podobného klasicky přes /etc/network/interfaces
by bylo poněkud vražedné.
Infrastruktura strojů lucy a patty již využívá openvswitch. Každý z nich může fungovat jak datový stroj, tak virtualizační, proto pro rálnou představu v následujícím výpisu uvádím výpis konfigurace openvswitche pro oba strojeOk, žádné kernelové bridge, které by se tak hlásily. Už jsem to psal, fakt se mi nezdá, že by vývojářům openvswitch prošla tak velká duplikace kódu, jakou by bezesporu byla reimplementace bridge. Bezesporu píšu, protože linuxový bridge se v rámci jednoho hostitele chová jako switch - spravuje si porty, ať už fyzické či virtuální síťovky, drží se seznam MAC adres na jednotlivých portech apod. Furt mám zato, že využívají stejný kód.
Jak snad jistě i pavlix uzná, spravovat něco podobného klasicky přes /etc/network/interfaces by bylo poněkud vražedné.Tak to uzná asi každý, kdo používá zdravý rozum. Pokud člověk potřebuje víc než "síťovce xyz nastav adresu a.b.c.d/e a k tomu bránu a.s.d.f", je práce s tímhle souborem - zejména strojové zpracování - totální katastrofa. Už jsem se několikrát podivoval, že se v Debianu nikdo neobtěžoval tenhle otřes předělat. Rejp, asi neměli čas, protože se věnovali mnohem důležitějšímu a potřebnějšímu systemd. Na druhou stranu když odhlédnu od jednodušší konfigurace, tak mi pořád uniká, v čem má openvswitch výhodu nad použitím bridge. U našich virtualizačních strojů je síť řešená tak, že co virtuál, to tap síťovka, všechny jsou spojené do bridge společně s fyzickým ethernet rozhraním, které je připojené do internetu. VLANy se tam nepoužívají, ale kdyby to bylo potřeba, tak na hostiteli stačí pro každou VLAN vytvořit samostatný bridge, do toho nacpat tap rozhraní jenom těch virtuálů, které do ní mají být zapojené, a do fyzické sítě to zapojit přes fyzické něco jako eth0.10 (
ip link add link eth0 name eth0.10 type vlan id 10
). Live migrace mezi hostiteli není problém - co jsem si všiml, tak se qemu postará o aktualizaci ARP tabulek bez nějakého dalšího snažení a pak už mě nenapadá nic, co by se ještě mohlo hodit.
Zajímavější by to bylo, kdybych chtěl vytvořit něco jako distribuovaný switch, do kterého by byly zapojené virtuály přes několik hostitelů, ale jejich provoz by nebyl vidět na fyzické síti. Nicméně i to by asi nějak šlo buď přes separátní vlan, nebo nějakým (gre?) tunelem, tj. furt nic, co by bez openvswitch nešlo.
---
Jen tak mimochodem, nakoukl jsem na tu wiki stránku networking a trochu mě zaujalo/zmátlo opakované povídání o té KVM vlan. Pak jsem to dohledal v dokumentaci a pokud to dobře chápu, tak když místo net-net použijete netdev-device, nemusíte žádné vlan=x řešit.
fakt to poslední co potřebuji je nějaký network manažer,A proto máš openvswitch :).
Už jsem to tady několikrát zmiňoval - to jsou ty z Pavlixova pohledu nic neříkající kecy - že moje pro moje virtuály se zakládají a ruší porty na virtuálním Openvswitchi podle potřeby.Teď si nejsem jistý, jestli je to odpověď na tu výhodu oproti bridge. Ale jestli jo, tak to přece bridge umí taky:
tunctl -t tapx ip link set tapx up brctl addif brx tapx brctl delif brx tapx ip link set tapx down tunctl -d tapx
Co se týče toho, jak to je uvnitř Openvswitche tak soudím, že bezpochyby využívá kódu zmíněných modulů, ale k tomu je přeci nepotřebuje mít samostaně zavedené.Tak jasně že ne, ale pak je otázka, jak moc přesné je tvrzení "nepoužívám linuxový bridge", když tu použitou funkcionalitu v openvswitch interně zajišťuje stejný kód.
Tak jasně že ne, ale pak je otázka, jak moc přesné je tvrzení "nepoužívám linuxový bridge", když tu použitou funkcionalitu v openvswitch interně zajišťuje stejný kód.Tak tady už se dostáváme k onomu klasickému "já o voze, on o koze". Pokud napíšu, že nepoužívám bridge, tak tím mám na mysli, že nemám zavedený jaderný modul bridge a nevyskytuje se mi ani v konfiguraci
/etc/network/interfaces
. Zda-li s ním má Openvswitch něco společného z hlediska kódu je pro mne naprosto nezajímavá informace. Nevylučuji tím, že pro někoho jiného může "použití" znamenat i využití určité části kódu.
..to přece bridge umí takyJenže tohle vytvoření tap zařízení a jeho zapojení do bridge je pouze jedna, relativně marginální část o kterou se Openvswitch vůbec nestará. Tohle mi řeší skript který si při spouštění volá qemu. Openvswitch je virtuální switch se vším všudy, který umožňuje stejné opičky jako fyzické zařízení. Z jedné strany, přes fyzický interface mi do něj leze trunk a VLAN se nastavují až při zavedení portu, předtím, než se na něj připojí tap interface virtuálního stroje. Můžu tak bez problému v rámci clusteru přesunout virtuály na libovolný stroj, na kterém musí běžet pouze openvswitch. V podstatě by to může být i bezdiskový stroj s výkoným CPU a dostatkem RAM a , bez ohledu na to co dalšího je na něm z hlediska sítě nakonfigurované. Můžu dělat i zcela izolované vnitřní sítě. Škrtit porty dle libosti, aj.
Nevylučuji tím, že pro někoho jiného může "použití" znamenat i využití určité části kódu.Tady je tenhle pohled důležitý proto, že tam, kde se používá stejný kód, je stejná i poskytovaná funkcionalita.
Openvswitch je virtuální switch se vším všudy, který umožňuje stejné opičky jako fyzické zařízení.Jenže to infrastruktra v kernelu (myslím bez openvswitch) taky. Jaderný bridge zastává stejnou funkctionalitu jako switch. Sasmozřejmě různá fyzická zařízení mají různé schopnosti, ale...
Z jedné strany, přes fyzický interface mi do něj leze trunk a VLAN se nastavují až při zavedení portu, předtím, než se na něj připojí tap interface virtuálního stroje....tohle umí jaderná infrastruktura taky. Fyzická síťovka se rozdělí na virtuální podle VLAN ID (
ip link add
výše), ty virtuální se pak vloží jako port do bridge (jeden bridge pro každou VLAN). Když se pak vytvoří tap zařízení, přidá se do bridge podle toho, ve které VLAN ten virtuál má být.
Můžu tak bez problému v rámci clusteru přesunout virtuály na libovolný strojTo také jde bez openvswitch. Před spuštěním virtuálu se vytvoří tap zařízení, osadí se do bridge, pak se ten virtuál (qemu proces) spustí a začne se na něj migrovat. Výpadek konektivity toho virtuálu po dokončení migrace je minimální (v podstatě čím větší provoz, tím menší.)
Můžu dělat i zcela izolované vnitřní sítě.Taktéž jde bez openvswitch - bridge v rámci jednoho hostitele, tap zařízení jako porty pro jednotlivé virtuály, propojení mezi hostiteli třeba pomocí tunelu (tuším GRE), přičemž gre rozhraní také zapojím do toho bridge. Na ostatních hostitelích, jejichž virtuály mají být do té izolované sítě také zapojeny, udělám to samé a o předávání rámců mezi hostiteli - když je to potřeba - se už postarají kernely obou hostitelských strojů
Škrtit porty dle libostiTaky - stačí pro daný port nastavit traffic shaper v jádře. Tohle všechno jde samozřejmě nastavit za běhu, aniž bych to musel mít v
interfaces
.
Jinak nevykládejte si to tak, že bych vás chtěl přesvědčovat, že openvswitch nemáte používat. Spíš by ale bylo dobré mít na paměti, že - podle toho, co jste zatím popsal - vám jako jedinou přidanou hodnotu poskytuje zjednodušení konfigurace (jeden příkaz místo hodně příkazů.) A že to tedy není žádné zázračné řešení, které vám poskytuje něco navíc, co by kernel jinak neměl. A v neposlední řadě že není dobré označovat použití bridge jako "humpolácké řešení", když vlastně používáte totéž (stejný kód), akorát nakonfigurované jiným způsobem.
ares3 ~ # ovs-vsctl show 4de59ac4-58da-4f23-92d8-b7cf17c8eacb Bridge "ovsbr0" Port "ovsbr0" tag: 1 Interface "ovsbr0" type: internal Port "vnet0" tag: 4 Interface "vnet0" Port "bond0" Interface "eno1" Interface "eno2"
Kernelu není potřeba nic, z bridge, vlan, bond atd.Jak jsem psal o něco výš, nevěřím tomu - to by znamenalo veškerou funkcionalitu, která v jádře byla, znovu napsat. A taky by to znamenalo nějak přesvědčit vývojáře mainline, aby si při začleňování nevšimli toho, že openvswitch duplikuje funkcionalitu. Což si všimli - pokud dobře překládám, při zaslání k začlenění to duplikovalo mechanismus pro klasifikaci a řízení paketů - reimplementace bridge, vlan, bond atd. by asi pozornosti neunikla.
Co jsem se bavil s kerneláři co do něj fušují, tak mimo záznam neměli problém říct, že je to z pohledu vývoje linuxu hrozná sračka.To je možné. Já si to rovněž o některých věcech myslím a přesto je používám, protože jiná, lépe udělaná alternativa k dispozici není. Ale není reálné si všechno napsat sám. Krom toho, tohle je open source, takže ještě vcelku dobrý. Třeba se někdo najde, kdo to v budoucnu udělá lépe. Jenže když vidím čuňačiny, za které něž se některé firmy nestydí inkasovat nehorázné peníze, tak to bych teprv blil.
Tiskni
Sdílej: