MultiSeat na Linuxu

Jeden počítač osazený a nastavený pro více autonomních tzv. „sezení“.  Jde o efektivní řešení přinášející výrazné úspory. Například praktické je připojení i k televizi přes HDMI, co by monitoru pro možnost dalšího „sezení“ .

 

Přednosti:

  • Úspory – „jedním pokrýt více“
    • pořizovací (jeden počítač pro více sezení)
    • Linux (zadarmo)
    • energetické (cca 50W samotný počítač v klidu)
  • Provozní – „sdílení či přesměrovávání“
    • zařízení sdílená všemi „sezeními“ (tiskárna, skener)
    • zařízení i jen určitému „sezení“ (repro, mikrofon, webkamera)
    • sdílená jedna konektivita do sítě (jeden port switche, jedna IP)
  • Technické – „efektivita“
    • přenos dat mezi „sezeními“ je na přímo (bez mezičlánku sítě)
    • uživatel z kteréhokoli sezení přistupuje přímo k sobě na disk
    • Linux – systém výkonný, úsporný, tvárný – rozvíjející tvořivost

 

Slabiny:

  • komplikovanější implementace
  • limitace maximálního zatížení zdroje hlavně grafickými kartami
  • při větší zátěži všech „sezení“ zohlednit, že jde o zatížení sdílených komponent (mít je posílené)
  • ne všichni výrobci zařízení a aplikací podporují Linux
  • ne všechny Windows aplikace (licencováno) fungují přes rozhraní „wine“ (možno virtualizovat Windows –licencováno)
  • podpora Linux aplikací a OS je jen komunitní – bez záruky (až na některé již komerční placené distribuce)

 

PC kritéria:

  • základní deska především pro více grafických karet a s více USB porty
  • posílení operační paměti (dle počtu sezení a používaných aplikací)
  • pro případné větší vytížení posílit
    • procesor
    • diskový prostor

 

 

Zálohování

Už od počtu dvou sezení na jednom počítači se vyplatí mít jeden i jako záložní.

 

V běžném provozu použít záložní:

  • pro zálohování dat a operačního systému
  • k testování změn SW a HW před zásahem do provozního

 

Při problému provozního počítače použít záložní:

  • náhradní jako celek
  • pro náhradu jednotlivých komponent
  • pro obnovu dat a operačního systému

 

Konfigurace záložního:

  • ideálně mít HW identický k provoznímu, ale není podmínkou
  • pro zálohování je vhodné mít navýšenou diskovou kapacitu např. externím diskem

 

 

 

 

Příklad Instalace dvou „sezení“ v Xubuntu s osazením dvou grafických karet:

„card0“ v pozici „PCI:1:0:0“ pro „seat0“, „card1“ v pozici „PCI:4:0:0“ pro „seat1“.

Konfigurace velice závisí na HW osazení, tak alespoň pro základní představu zmiňuji z definic to nejpodstatnější.

 

Zadefinování do „Desktop Manageru“

/etc/lightdm/lightdm.conf

[LightDM]

[SeatDefaults]
greeter-setup-script=/usr/bin/numlockx on

[Seat:*]
allow-guest=false
user-session=xubuntu
autologin-guest=false

[Seat:seat0]
xserver-command=/usr/lib/xorg/Xorg :0
xserver-config=/etc/X11/xorg-seat0.conf
xserver-layout=seat0
 
[Seat:seat1]
xserver-command=/usr/lib/xorg/Xorg :1 -sharevts
xserver-config=/etc/X11/xorg-seat1.conf
xserver-layout=seat1

[XDMCPServer]

[VNCServer]

Zadefinování do „X-serveru“

Pro „seat0“ upravit sekce v „/etc/X11/xorg-seat0.conf“

Section "ServerLayout"
    Identifier     "SEAT0"
    ...

EndSection

Section "Device"
    Identifier       "Card0"
    ...
    BusId            "PCI:1:0:0"
    MatchSeat        "seat0"
    ...

EndSection

Pro „seat1“ upravit sekce v „/etc/X11/xorg-seat1.conf“

Section "ServerLayout"
    Identifier     "SEAT1"
    ...
EndSection
Section "Device"
    Identifier       "Card1"
    ...
    BusId            "PCI:4:0:0"
    MatchSeat        "seat1"
    ...
EndSection

Vytvoření druhého sezení „seat1“

Inicializace do jednoho „seat0“ pro případ pozůstalé předešlé MultiSeat konfigurace

sudo loginctl flush-devices
sudo loginctl list-seats

Založení sezení „seat1“ vyčleněním grafické karty ze „seat0“
sudo loginctl seat-status seat0 |grep -e /drm -e /fb
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1c.0/0000:04:00.0/drm/card1
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1c.0/0000:04:00.0/drm/renderD129
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1c.0/0000:04:00.0/graphics/fb1
sudo loginctl list-seats
sudo loginctl seat-status seat1

Vyčlenění USB větve pro sezení „seat1“ ze „seat0“ například usb5
sudo lsusb
sudo loginctl seat-status seat0
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.1/usb5
sudo loginctl seat-status seat1

 

Zjištění u přihlášeného uživatele jeho seat

Separováno do tvaru „seat0“, „seat1“, …

loginctl session-status |sed '/Seat:/!d;s/\t.*Seat: //;s/; [^ ]*//;q'

Separováno do tvaru indexu „0“, „1“, …
loginctl session-status |sed '/Seat:/!d;s/\t.*Seat: seat//;s/; [^ ]*//;q'