CoLinux – avagy két dudás
        egy csárdában


             Szalai Ferenc
Nemzeti Informatikai Infrastuktúra Iroda
              (NIIF Iroda)
             szferi@niif.hu
Bevezető
●
    Motiváció: ClusterGrid: Nemzeti
    tudományos műszaki számítási és
    adatárolási infrastruktúra
●
    Feladat: 1000 windows-on szeretnénk
    Linux-ot futtatni.
●
    Technológiai megoldás: virtualizáció
●
    Konkrét választás: Cooperative Linux
    (CoLinux)
Virtualizációs technikák
●
    Alkalmazás szintű: cygwin, posix
    emulációs program könyvtárak
●
    Chroot alapú: BSD jail, linux-vserver,
    virtouzzo (SW-Soft, ebben a hónapban
    let szabad softwer egy része)
●
    Emuláció: WMWare, QEmu, MS Virtual
    PC
●
    Paravirtualizáció: User-Mode-Linux,
    XEN, CoLinux
Mi az a CoLinux?
●
    Kernel patch (alapvetően 2.6-os
    kernelhez):
    –   interfész host OS kernel meghajtóval
        (driver)
    –   virtualis eszközök: blokk meghajtók, konzol,
        hálózat
●
    Felhaszálói programok:
    –    colinux-daemon, colinux-console-nt,
        colinux-console-fltk, colinux-network-bridge
●
    NT alapú windows kernel kell hozzá
●
    Fő fejlesztő: Dan Aloni (Japán)
Hogyan működik-részletek
                                                                                          (ring3)
              Host Userspace

 colinux-serial-daemon                         Host Kernel                 Guest Kernel
        process                                   (ring0)                       (ring0)



 IPC using                colinux-daemon          coLinux
named pipes                    process            Kernel                                   Normal
                                                   driver
                                                                                            Linux
                                        Main        Run                                   Userspace
                                                   ioctl()
                                        Loop                         Passage
                                                                      page
                                                             entry             entry
colinux-console-nt                                                                        (unmodified
      process                                                                               binaries)


   colinux-net-daemon
         process


           colinux-bridged-net-daemon
                     process
CoLinux hálózat
●
    natív bridge:
    –   Win32TAP az OpenVPN projektből: virtuális
        hálózati meghajtó a windowsban
    –   natív windows bridge
●
    emulált bridge: winpcap meghajtó kell
    hozzá a windows-on konfigurációt nem
    igényel
●
    egzotikus módszetek: ppp, slip stb.
Telepítés
●
    stabil változat: 0.6.2
    –   letölthető windows installer (NSIS
        setup.exe) ami a kernel és felhaszálói
        programok
    –   root állományrendszert nekünk kell
        csinálni: gentoo, debian van előre gyártott
    –   XML konfigurációs állomány: memória,
        root állomány rendszer, hálózat, initrd,
        kernel
●
    unstable változat: monoton-ban a
    forrás elérhető, linux-on mingw gcc
    kereszetfordító figuráció
Haszálat
●
    colinux-daemon.exe:
    –   kernel.sys betöltése (--install-driver)
    –   windows szolgáltatásként is regisztálható
        (--install-service)
    –   a többi colinux-* program futatása a
        konfigráció alapján
Teljesítmény
●
    Window folyamat ütemezője nem rossz!
    –   alacsony prioritás colinux-* folyamatoknak
    –   a host rendszeren nem érezni napi interaktív
        haszálat mellett
●
    Teszt: povray CPU-ra, iozone I/O-ra:
    –   CPU 98%
    –   IO 83%
Mire haszálhatjuk
●
    Bármire amire egy Linux-ot
    –   linux kernel tesztelés és hibakeresés
    –   windows linux átálás
    –   hogyan haszáljuk iptables-t windows-on :)
    –   virtuális szuperszámítógép építésére:
        ClusterGrid: Linux szerver (klaszter front-
        end), CoLinux kliensek.
Problémák
●
    Stabilitás: 90%-os
●
    Hálózat:
    –   10 Mb/s a maximum :(
    –   IEEE 802.1q VLAN trunk technika
        támogatása hiányzik
●
    Memória kezelés: közös memória
    haszálat a host rendszerrel hiányzik
●
    I/O: COW
●
    Több CoLinux felügyelete
Köszönöm a figyelmet!
(http://colinux.sf.net)

CoLinux - avagy két dudás egy csárdában

  • 1.
    CoLinux – avagykét dudás egy csárdában Szalai Ferenc Nemzeti Informatikai Infrastuktúra Iroda (NIIF Iroda) szferi@niif.hu
  • 2.
    Bevezető ● Motiváció: ClusterGrid: Nemzeti tudományos műszaki számítási és adatárolási infrastruktúra ● Feladat: 1000 windows-on szeretnénk Linux-ot futtatni. ● Technológiai megoldás: virtualizáció ● Konkrét választás: Cooperative Linux (CoLinux)
  • 3.
    Virtualizációs technikák ● Alkalmazás szintű: cygwin, posix emulációs program könyvtárak ● Chroot alapú: BSD jail, linux-vserver, virtouzzo (SW-Soft, ebben a hónapban let szabad softwer egy része) ● Emuláció: WMWare, QEmu, MS Virtual PC ● Paravirtualizáció: User-Mode-Linux, XEN, CoLinux
  • 4.
    Mi az aCoLinux? ● Kernel patch (alapvetően 2.6-os kernelhez): – interfész host OS kernel meghajtóval (driver) – virtualis eszközök: blokk meghajtók, konzol, hálózat ● Felhaszálói programok: – colinux-daemon, colinux-console-nt, colinux-console-fltk, colinux-network-bridge ● NT alapú windows kernel kell hozzá ● Fő fejlesztő: Dan Aloni (Japán)
  • 5.
    Hogyan működik-részletek (ring3) Host Userspace colinux-serial-daemon Host Kernel Guest Kernel process (ring0) (ring0) IPC using colinux-daemon coLinux named pipes process Kernel Normal driver Linux Main Run Userspace ioctl() Loop Passage page entry entry colinux-console-nt (unmodified process binaries) colinux-net-daemon process colinux-bridged-net-daemon process
  • 6.
    CoLinux hálózat ● natív bridge: – Win32TAP az OpenVPN projektből: virtuális hálózati meghajtó a windowsban – natív windows bridge ● emulált bridge: winpcap meghajtó kell hozzá a windows-on konfigurációt nem igényel ● egzotikus módszetek: ppp, slip stb.
  • 7.
    Telepítés ● stabil változat: 0.6.2 – letölthető windows installer (NSIS setup.exe) ami a kernel és felhaszálói programok – root állományrendszert nekünk kell csinálni: gentoo, debian van előre gyártott – XML konfigurációs állomány: memória, root állomány rendszer, hálózat, initrd, kernel ● unstable változat: monoton-ban a forrás elérhető, linux-on mingw gcc kereszetfordító figuráció
  • 8.
    Haszálat ● colinux-daemon.exe: – kernel.sys betöltése (--install-driver) – windows szolgáltatásként is regisztálható (--install-service) – a többi colinux-* program futatása a konfigráció alapján
  • 9.
    Teljesítmény ● Window folyamat ütemezője nem rossz! – alacsony prioritás colinux-* folyamatoknak – a host rendszeren nem érezni napi interaktív haszálat mellett ● Teszt: povray CPU-ra, iozone I/O-ra: – CPU 98% – IO 83%
  • 10.
    Mire haszálhatjuk ● Bármire amire egy Linux-ot – linux kernel tesztelés és hibakeresés – windows linux átálás – hogyan haszáljuk iptables-t windows-on :) – virtuális szuperszámítógép építésére: ClusterGrid: Linux szerver (klaszter front- end), CoLinux kliensek.
  • 11.
    Problémák ● Stabilitás: 90%-os ● Hálózat: – 10 Mb/s a maximum :( – IEEE 802.1q VLAN trunk technika támogatása hiányzik ● Memória kezelés: közös memória haszálat a host rendszerrel hiányzik ● I/O: COW ● Több CoLinux felügyelete
  • 12.