Home
        Automatisierung von Installationsroutinen in Netzwerken
         Contents
1.                        System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   Logout    pent lone     Hostlist Image ID Image Name Image Size  MiB      Grouplist D 13 HP WinXP Ubuntu 1815  ee O 15 HP Win7 3007     Imagelist     Status     Settings    I Change Name   Warning  Can only be used when one image is selected           Delete Images   Warning  All associated tasks and their operations will be deleted        Fertig         Abbildung B 15  Imageliste       OpenClone Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht        C OS    ik Lesezeichen Extras Hilfe                 lt              Je   http    localhost openclone webinterface src index php menu advanced amp site settings Ge   fe v  Google                               System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   Logout    pent lone     Hostlist Change User Details     Grouplist Username      Tasklist       Imagelist Old password      Status New password              Settings  Change Details       Fertig         Abbildung B 16  Seite zum Andern der Benutzerinformationen    Passwortes muss aus Sicherheitsgriinden das alte Passwort ebenfalls eingegeben werden  Das   ndern    der Benutzerinformationen ist in Abbildung B 16 dargestellt     97     gt  0 N m    ANHANG B  BENUTZERHANDBUCH    B 3 Erweiterte Konfiguration    In diesem Abschnitt werden fortgeschrittene Konfigurationsm  glichkeiten erkl  rt  welche aber eine    manuelle Einrichtung erfordern     B 3 
2.                       Kompr    Dekompr    Ubertr    Sicher    Wiederh    Gesamt  Format CPU Zeit   CPU Zeit Zeit      Dauer  Dauer      Dauer    lzop L1 0 54 9 0 12 7 1 53 9 1 53 9 1 53 9 3 47 8  lzop L3  Std   0 51 6 0 12 2 1 54 2 1 54 2 1 54 2 3 48 3  gzip L1 2 11 7 0 36 3 1 42 8 2 11 7 1 42 8 3 54 5  gzip L6  Std   3 06 2 0 37 4 1 39 2 3 06 2 1 39 2 4 45 4  gzip L9 5 32 7 0 37 3 1 39 0 5 32 7 1 39 0 7 11 8  unkomprimiert     4 24 4 4 24 4 4 24 4 8 48 7  lzop L7 7 15 2 0 14 2 1 46 2 7 15 2 1 46 2 9 01 5  Izma L1 9 20 9 2 42 1 1 32 8 9 20 9 2 42 1 12 03 0  bzip2 L1 12 36 2 3 32 6 1 39 9 12 36 2 3 32 6 16 08 8  bzip2 L6 15 21 6 4 48 7 1 38 4 15 21 6 4 48 7 20 10 3  bzip2 L9  Std   16 34 9 5 09 5 1 38 2 16 34 9 5 09 5 21 44 4  lzop L9 24 05 6 0 14 4 1 46 0 24 05 6 1 46 0 25 51 6  lzma L7  Std   49 14 8 2 30 2 1 23 4 49 14 8 2 30 2 51 45 0  Izma L9 1 12 14 7 2 26 0 1 21 4   1 12 14 7 2 26 0   1 14 40 7                                    bertragungszeit  F  r die Berechnung wurde eine   bertragungsgeschwindigkeit von 95 MBit angenommen  Dieser  Wert beruht auf dem gemessenen Wert einer UDPcast   bertragung   ber ein 100Base TX Netzwerk von 94 5 MBit und    der durch Overhead limitierten Obergrenze bei UDPcast   bertragungen von 95 8 MBit    Sicherungsdauer  Entspricht der k  rzeren Zeit aus Kompression und   bertragung  da die Daten gleichzeitig    komprimiert und   bertragen werden      Wiederherstellungsdauer  Entspricht der k  rzeren Zeit aus Dekompression und   bertragung   
3.               Tabelle 4 5  Unterst  tze Dateisysteme der verschiedenen Implementierungen      DirectSwap ist eine eigene Implementierung f  r Linux Swap Partitionen  Sie verwendet zur Sicherung  das Tool vol_id  um die UUID und das Label der Swap Partition auszulesen und speichert es wie im  Listing 4 1 angegebenem Format  Zur Wiederherstellung der Swap Partition wird das Tool mkswap mit    der UUID und dem Label als Parameter aufgerufen     HOpenClone directswap file  UUID  lt UUID gt   LABEL  lt Label gt     Listing 4 1  DirectSwap Abbild Format    Partclone ist bei den vorgegangenen Tests mit der Version 0 0 9 noch etwas instabil gewesen  daher    wurde vorerst nur eine Schnittstelle f  r Partimage implementiert     ntfsclone soll in Zukunft eine weitere Alternative f  r NTFS Dateisysteme darstellen und den Cloning     vorgang schneller machen        12 Vgl  Partimage  Par09b   Partclone  Par09a   ntfsclone  LNP09   Noch nicht erfolgte Implementierungen  Imagingu     tilities sind grau hinterlegt     28    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Komprimierung  Compression     Die Komprimierung erm  glicht eine weitere Verringerung des ben  tigten Speicherplatzes fiir die Ab   bilder  Wichtig ist dabei nicht unbedingt der Speicherplatzverbrauch am zentralen Server  sondern die  geringere Bandbreite  die zur Ubertragung notwendig ist  So ist eine schnellere Partitionssicherung und   wiederherstellung m  glich  da sich der Engpass von der Netzwerkverbindung zum Prozessor oder zur
4.          Gruppe loeschen    Doctrine_Query   create      gt delete    gt from  Group      gt where  id 1      gt execute       Listing 4 15  L  schen eines Tupels mit einer Beziehung    Soll nun solch ein Tupel einer Relation gel  scht werden  die mit einer anderen Relation in Beziehung  steht und dabei die Attribute der Beziehung auch gleichzeitig Prim  rschl  ssel f  r die jeweilige Relation  sind  f  hrt diese Vorgehensweise bei Doctrine zu einem internen JOIN Fehler  Abhilfe schafft hier  die  Tupel der Relation  die den Fremdschl  ssel definiert hat  nicht direkt zu l  schen  sondern zuerst aus   zulesen und dann erst mit einem eigenen Statement zu l  schen  Danach kann das Tupel der Relation  gel  scht werden  auf die der Fremdschl  ssel definiert war  Diese Vorgehensweise erfordert leider mehr  Statements  In der Datenbank besteht zwischen den Tabellen    partition    und  image _ partition    eine 1 1    Beziehung  wobei bei jeder Tabelle das Attribut    id    f  r die Beziehung verwendet wird  welches auch    53    N    ND On yu    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Prim  rschl  ssel ist  siehe Abbildung 4 1   Um nun das Tupel der Tabelle    partition    mit dem Attribut   wert    1    f  r das Attribut    id    zu l  schen  ist es erforderlich  auch aus der Tabelle image partition    das  Tupel mit dem Wert    1    f  r    id    zu l  schen  Da die beiden Attribute der Beziehung auch Prim  rschl  ssel  sind  muss das beschriebene Verfahren angewendet werden  Es wir
5.        Command Line Interface    16    KAPITEL 3  LOSUNGSANSATZ    laufen die Komponenten OpenClone Webinterface und OpenClone Webservice  wobei am Client die    Clientsoftware OpenClone Engine l  uft  Weiters wird in der Abbildung die Zusammenarbeit der Soft     warekomponenten und deren Abh  ngigkeiten von anderer Software dargestellt     Server              OpenClone Webinterface    Webinterface Wrapper    Dateisystem    UDPcast    A    OpenClone Webservice    SQLAIchemy           lt _ gt         Verwaltungsclient        Verwaltung  HTTP S              Client    Partimage  DirectSwap    gzip  Go  UDPcast    OpenClone Engine                         Abbild  bertragung  UDP  Multicast         Webservice Zugriff  SOAP  HTTP        Abbildung 3 1  Blockschaltbild von OpenClone           Lokale  Festplatte    Partitionierung             div  Tools f  r  Sysinfos     ifconfig   hdparm  fdisk  vol_id       17    Kapitel 4  Anwendungsentwicklung    In diesem Kapitel wird beschrieben  wie und mit welchen Hilfsmitteln die einzelnen Softwareteile entwi   ckelt wurden und welche Herausforderungen dabei zu l  sen waren  Weiters wird auf die Funktionsweise    einiger Teile genauer eingegangen     4 1 Entwicklungsumgebung    In diesem Abschnitt werden die zur Softwareentwicklung eingesetzten Entwicklungsumgebungen kurz    beschrieben     4 1 1 MySQL Datenbank    F  r den EER Entwurf der Datenkbank wurde das Tool MySQL Workbench in der Version 5 1 Beta  in der Community Edition verwendet   
6.        Prim  re Partition 2  149998 Megabyte Gesamtgr    e  53562 Megabyte belegt   Dateisystem   NTFS v3 1  Inhalt  Daten        Logische Partition 1  2055 Megabyte Gesamtgr    e  Dateisystem  Linux SWAP        Logische Partition 2  46422 Megabyte Gesamtgr    e  6927 Megabyte belegt   Dateisystem   ext3  Inhalt  SuSE Linux    2 3 3 Vergleichstabelle    In der Tabelle 2 1 ist die Gegen  berstellung der getesten Produkte veranschaulicht  Sie umfasst sowohl    den Funktionsumfang als auch Details zum praktischen Cloningtest     2 3 4 Acronis SnapDeploy 3 f  r Workstation    Bei diesem Produkt gestaltete sich bereits das Booten des Clients   ber PXE schwierig  Es war zwar  ein PXE Server im Produkt enthalten  jedoch kein DHCP Server  der dem Client eine IP Adresse  zuweisen konnte  Das Benutzerhandbuch schl  gt einen Windows DHCP Server vor  welcher aber nur in  Windows Server Versionen enthalten ist   IncO9b  Es wurde also ein DHCP Server mit konfigurierbarem     nextserver    Attribut ben  tigt  Zum Einsatz kam der frei erh  ltliche dhcpsrv in der Version 1 6 4   Mit  diesem Server war es m  glich  auf den in Acronis enthaltenen TFTP Server weiter zu verweisen  um die  erforderlichen Daten zum Client   bertragen zu k  nnen  Da der TFTP Server unter Windows jedoch als  Service registriert war und auch die Ports f  r DHCP  67 und 68  belegte  musste der DHCP Server vor  dem Acronis TFTP Server gestartet werden  Erst danach konnte der Client ordnungsgem     booten und  das Acroni
7.      directswap implementiert die Sicherung von Linux Swap Partitionen    e openclone engine compression beinhaltet alle implementierten Kompressionsverfahren  siehe  4 3 5         gzip stellt eine Schnittstelle zum Kompressionsprogramm gzip zur Verf  gung        120 stellt eine Schnittstelle zum Kompressionsprogramm lzop zur Verf  gung    e openclone common transfer beinhaltet alle implementierten   bertragungsmethoden  siehe  4 3 5         udpcast stellt eine Schnittstelle und Verwaltungstools f  r das Ubertragungsprogramm    UDPcast zur Verf  gung  e openclone engine misc      hash stellt Hashfunktionen  z B  shal  zum Debuggen der   bertragung zur Verf  gung  e openclone engine webservice        engineclient vereint alle ben  tigten Klassen  Methoden f  r das Webservice        OpenCloneEngineService services types stellt die vom Webservice eingesetzten kom     plexen Datentypen als Klassen zur Verf  gung        OpenCloneEngineService services stellt die Methoden zum Aufruf des Werbservices    zur Verf  gung    4 3 2 Abh  ngigkeiten    Um alle Funktionalit  ten der Engine nutzen zu k  nnen  m  ssen folgende Abh  ngigkeiten zur Verf  gung    stehen     e Python 2 5  python     e Zolera SOAP Infrastructure 2 0  python zsi     23    KAPITEL 4  ANWENDUNGSENTWICKLUNG    e UDPcast   e Partimage  gt   0 6 6   e gzip   e Loop   e dmidecode   e hdparm  gt   9 2  siehe 4 3 3   e vol_id  udev    e ifconfig  net tools    e fdisk  mkswap  util linux     e shutdown    4 3 3 Systeminform
8.      gt  1     default      gt             notnull      gt  true      this  gt hasColumn    sequence        integer     4  array    type      gt     integer        length      gt  4     unsigned      gt  1     default      gt             notnull      gt  true      this  gt hasColumn    type        enum     9  array    type      gt     enum        length      gt   9     values      gt  array 0   gt     partition     1   gt     image     2   gt     shutdown      Ss default    gt  22  2 notnulil    gt  true       this   gt setSubClasses  array     0perationImage      gt  array    type      gt     image  DP    50    12    13    KAPITEL 4  ANWENDUNGSENTWICKLUNG       OperationPartition      gt  array    type      gt     pantalon e      OperationShutdown      gt  array    type      gt     shutdown           public function setUp           this  gt hasOne    Task     array    local      gt     task_id        E O   gt  Pall       2    Listing 4 10  Doctrine Operation    Klasse    class OperationShutdown extends Operation       public function setTableDefinition        this   gt setTableName     operation_shutdown            this  gt hasColumn    id        integer     A  array    type      gt     integer        length       gt  4     unsigned      gt  1     primary      gt  true      this  gt hasColumn    mode        enum     8  array    type      gt     enum        length      gt   8  values    gt  array 0   gt     poweroff     1   gt     reboot     2   gt     exit             defaul
9.     32    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Die notwendigen Schritte zur IGMP Konfiguration auf diversen HP Switches werden im B 3 3 beschrie     ben     Eine Ubertragung mit UDPcast kann immer nur innerhalb eines Subnetzes erfolgen  Daher muss sobald  mehrere Subnetze auf einer Netzwerkschnittstelle oder mehrere Netzwerkschnittstellen verwendet wer   den  die Entscheidung getroffen werden  welche Schnittstelle mit welcher IP Adresse verwendet wird   Dazu wird die Routing Tabelle des Linux Betriebssystems   proc net route  und das Programm ip    aus dem iproute2 Paket zur Hilfe genommen     Vorgehensweise bei der Schnittstellen  und IP Auswahl     1  Ermitteln der Client IP Adresse   ber den Webserver des Webservices  2  Finden von Routen  deren Ziel die Client IP enthalt   3  Finden jener Routen  welche die gr    te Netmask besitzen   4  Auswahl der Route  welche die kleinste Metrik besitzt    5  Ermitteln der IP Adresse der Schnittstelle im Zielnetz    4 3 6 Abschalten des Rechners    Diese Funktion wird mit der ShutdownOperation implementiert  Dabei gibt es drei unterschiedliche    Varianten der Operation   e shutdown   Der Rechner wird heruntergefahren und wenn m  glich ausgeschaltet    e reboot   Der Rechner wird neu gestartet    e exit   Die Software wird beendet    F  r die shutdown und reboot Variante wird das Programm shutdown mit unterschiedlichen Parmetern    verwendet     4 4 Webservice    Das Webservice stellt die Schnittstelle zwischen der Engine und der Daten
10.     Festplatte verlagert     F  r die Komprimierung bietet die OpenClone Engine aktuell folgende Implementierungen     e Gzip  welches eine Schnittstelle zur gzip Kompressionssoftware darstellt    e Lzo  welches eine Schnittstelle zur lzop Kompressionssoftware darstellt    Vergleich der Kompressionssoftware    Die folgenden Kompressionsutilities wurden getestet     e szip    welches den Lempel Ziv  LZ77  Kompressionsalgorithmus verwendet   Fre09     914    bzip2    welches den Burrows Wheeler Kompressionsalgorithmus und die Huffman Kodierung    verwendet   Sew09     e lzma    welches den Lempel Ziv Markov Kompressionsalgorithmus  eine Weiterentwicklung des  Lempel Ziv  LZ77  Algorithmus  verwendet   Wik09a     lzop     welches den Lempel Ziv Oberhumer Kompressionsalgorithmus verwendet   Obe09     Als Testsystem wurde ein Notebook mit AMD Turion 64 X2 TL 60 2 GHz und 2 GiB Arbeitsspeicher  im Netzbetrieb eingesetzt  Als Betriebsysstem diente Ubuntu Linux 8 10 Intrepid Ibex mit dem Linux  Kernel 2 6 27 11 generic  Als Eingabedatei wurde ein mit der Software Partimage erstelltes Abbild einer  frisch installierten Windows XP Partition verwendet  Die Eingabedatei hat eine Gr    e von 2993 9 MiB   3139314716 Byte      Die Tabelle 4 6 listet die mit verschiedenen Parametern getesteten Komprimierungsutilites nach dem  Kompressionsgrad auf  Am besten hat dabei lzma abgeschnitten  welches einen Kompressionsgrad von  69 22  erreichte  Der minimale Speicherplatzverbrauch wird jedoch durc
11.     Status Update senden                    Abbildung 4 2  Ablaufdiagramm der OpenClone Engine    4 3 1 Modul  bersicht    Im Folgenden werden die einzelnen Module beschrieben     e openclone engine        main benutzt das Modul client fiir die Kommunikation mit dem Webservice  beinhaltet die    Hauptschleife und bearbeitet die geforderten Operationen        client stellt die Schnittstelle zum Webservice dar und setzt dazu das engineservice Modul    ein  holt die ben  tigten Systeminformationen tiber das Modul sysinfo ein        exception beinhaltet die eigenen Exceptionklassen  e openclone common        nettools stellt einige Netzwerktools zur Verfiigung  z B  Routing Table Lookup       utils stellt einige Hilfsmittel bei der Kommunikation mit Prozessen zur Verfiigung        version beinhaltet die Programmversion    e openclone engine sysinfo    22    KAPITEL 4  ANWENDUNGSENTWICKLUNG        sysinfo sammelt die ben  tigten Systeminformationen von verschiedenen Quellen  siehe    4 3 3       ioctl beinhaltet Hilfsfunktionen fiir ioctl        blockdev beinhaltet die ioctl Kommandos f  r Block Ger  te    e openclone engine partition beinhaltet alle implementierten Partitionierungsprogramme  siehe  4 3 4         directpart kiimmert sich um das Auslesen und Schreiben der Festplattenpartitionierung  e openclone engine imaging beinhaltet alle implementierten Sicherungsprogramme  siehe 4 3 5         partimage stellt eine Schnittstelle zum Sicherungsprogramm Partimage zur Verfiigung   
12.     e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes  Der R  cksicherungsvorgang   ber Multicast sowie die Statusanzeige im Webinterface wurde vorgef  hrt     Eine Testinstallation des Systems soll in einer virtuellen Maschine erfolgen     Zu Erledigendes   Im Webinterface soll eine Meldung angezeigt werden  sobald ein Vorgang beendet wurde  Weiters soll  es m  glich sein  die Clients nach Fertigstellung ihrer Aufgaben herunterzufahren oder neuzustarten   Eventuell soll das Multicasting mit den in der Schule eingesetzten HP Switches getestet werden  Bei  bisherigen Cloningvorg  ngen wurde ein Multicast immer als Broadcast ausgesendet  weil Multicast   gruppen am Switch h  ndisch konfiguriert werden miissen  Die n  chste Besprechung findet am 11 3 2009  statt     81    ANHANG A  PROJEKT  Sitzungsprotokoll vom 11 3 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes   Es wurde das Webinterfacedesign sowie das Clonen einer erweiterten Partition und die Statusanzeige  im Webinterface vorgezeigt  Es wurde ein praktischer Imagingtest mit einem Lenovo Netbook durch   gef  hrt  Der Rechner konnte sich erfolgreich registrieren und der Imagingprozess startete  jedoch war    am Server zu wenig Festplattenplatz vorhanden     Zu Erledigendes  Beim Clonen von erweiterten Partitionen muss im Webinterface noch ein Fehler behoben werden  Wei   ters soll das System getestet werden 
13.     www nongnu org openclone  erreichbar sein     Der Registrierungsprozess l  uft folgenderma  en ab     Registrierung als Benutzer  e Einreichen des Projektes mit Kurzbeschreibung und Quellcode    e Entscheidung der Freischaltung abwarten und gegebenfalls noch kleine   nderungen vornehmen     damit das Projekt allen Anforderungen gen  gt    e Einrichten der vom Projekt ben  tigten Dienste    5 3 3 Roadmap    Im folgenden Abschnitt wird auf die f  r bestimmte Versionen gesteckten Meilensteine eingegangen     e Version 0 1 5        L  schen von Hosts        Unterst  tzung von Rechnern mit Phonix Card von EduSystem  ehem  RebornCard von    Signal Computer GmbH          Erreichbar unter http    savannah nongnu  org   6Die Phonix bzw  Reborn Card ist eine in Hardware implementierte L  sung  um den Festplatteninhalt eines Com     puters nach einem Neustart auf einen definierten Zustand zur  ckzusetzen     62    KAPITEL 5  ERGEBNISSE    e Version 0 2 0        Berechnung des Gesamtfortschritts und Aktualisierung der Statusinformationen mit AJAX      Unterstiitzung der Imagingsoftware partclone  bietet ext4 Unterstiitzung         Unterst  tzung von unbekannten Dateisystemen durch 1 1 Kopien mit dd    Version 0 3 0        Unterst  tzung von Post Cloning Operationen  Hostname   ndern  Windows Domain beitre     ten          Version 0 5 0        Erweiterter Installer        Wake On LAN Unterst  tzung    Version 1 0 0        Unterst  tzung von Clonen mehrerer Festplatten und einzelnen Pa
14.    Disk Signatur 4 Byte   444   Unbenutzt  0x00  2 Byte       446   1  prim  rer Partitionseintrag   16 Byte       462   2  prim  rer Partitionseintrag   16 Byte       478   3  prim  rer Partitionseintrag   16 Byte       494   4  prim  rer Partitionseintrag   16 Byte  510   MBR Signatur  0xAA55  2 Byte                      Tabelle 4 2  MBR Aufbau  Gesamtgr    e 512 Byte     GS09     Dabei werden absichtlich auch die unbenutzte Teile des MBR und EBR gesichert  um die Kompatibilit  t  zu erh  hen  Die Linux Distribution SuSE installierte beispielsweise auf einem Testrechner mit Windows  Vista den Bootloader GRUB automatisch in die erweiterte Partition und markierte diese als aktiv   Mehrere Quellen beschreiben die ersten 446 Byte des EBR als normalerweise unbenutzt  Es wird dabei    aber nur auf einen alten IBM Bootloader hingewiesen  welcher einige Bytes f  r den Men  eintr  ge der        Master Boot Record   SExtended Boot Record      Extensible Firmware Interface   Die grau hinterlegten Bereiche werden nicht in die Sicherung miteinbezogen    Die grau hinterlegten Bereiche werden nicht in die Sicherung miteinbezogen     25    KAPITEL 4  ANWENDUNGSENTWICKLUNG                         Anfang   Bezeichnung Gr    e  0   Unbenutzt  0x00  446 Byte   446   Logischer Partitionseintrag   16 Byte   462   N  chster EBR 16 Byte   478   Unbenutzt  0x00  32 Byte   510   MBR Signatur  0xAA55  2 Byte                Tabelle 4 3  EBR  Aufbau  Gesamtgr    e 512 Byte    GS09     Partition benutzt
15.    Gesamt Dauer  Entspricht der Summe der Sicherungs  und Wiederherstellungsdauer     Tabelle 4 7  Komprimierungssoftware sortiert nach Dauer einer Sicherung und Wiederherstellung    Die Kompressionssoftware lzop im Level 1 ist vor allem f  r schnellere Netzwerkverbindungen geeignet   daher wurde sie inzwischen ebenfalls implementiert  gzip im Level 1 ist gut f  r ein 100 MBit Netzwerk  geeignet und wurde daher auch als erstes Verfahren implementiert  Mit h  heren Leveln kann bei gzip  durch h  here Sicherungszeiten eine minimal besserer Kompressionsgrad erkauft werden  wobei die Wie   derherstellungszeiten sogar minimal niedriger werden  Bei lzma kann durch Akzeptanz einer Erh  hung  der Sicherungs  und Wiederherstellungszeit  je nach Level eine weitere Verbesserung des Kompressi   onsgrad um nahezu 10 Prozentpunkte herausgeholt werden  Die Kompressionssoftware bzip2 ist f  r die  Komprimierung von Abbildern bei gleichzeitiger   bertragung eher ungeeignet und f  llt daher sogar    komplett aus der Liste       bertragung  Transfer     Zur   bertragung wird die Software UDPcast     eingesetzt  Diese bietet die M  glichkeit mittels Multicast    bertragungen gleichzeitig an mehrere  aber nicht zwingend an alle Rechner im Netzwerk zu senden   Dadurch wird die Performance verbessert  da keine separate   bertragung der Daten zu jedem Rechner     wie bei Unicast notwendig ist und gleichzeitig die   bertragung nicht an alle Rechner im Netzwerk gehen       Frei verf  gbar unter http  
16.    HTL Ybbs  bildung mit zukunft    Informationstechnologie    Ausbildungsschwerpunkt Netzwerktechnik    Diplomarbeit    Automatisierung von  Installationsroutinen in Netzwerken    von    David Gnedt    geboren am 18  Oktober 1989 in Amstetten  und  Manuel Steiner    geboren am 6  Mai 1990 in Scheibbs    15  MAT 2009    Betreuer   DI Andreas Brachinger  DI Christian Hammer    Praambel    Eidesstattliche Erkl  rung  Ich erkl  re an Eides statt  dass ich die vorliegende Diplomarbeit selbst  ndig und ohne fremde Hilfe    verfasst  andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die den benutzten    Quellen w  rtlich und inhaltlich entnommenen Stellen als solche erkenntlich gemacht habe     Unterschriften der Projektmitglieder    Ybbs  am 15 05 2009          David Gnedt Manuel Steiner    Kurzfassung    Automatisierung von Installationsroutinen in Netzwerken    Diese Diplomarbeit beschaftigt sich mit automatischen Installationssystemen  Cloningsystemen   wel   che die M  glichkeit bieten  eine exakte Kopie des Inhaltes einer Festplatte eines Computers auf die  eines anderen zu tibertragen  Mit solchen Systemen kann der administrative Aufwand fiir die Einrich   tung des Betriebssystems und der ben  tigten Software deutlich reduziert werden  Dies fiihrt wiederum    zu Kosteneinsparungen     Es werden bereits bestehende Cloningsysteme verglichen und aufbauend darauf ein eigenes System  entwickelt  Aufgrund der Tatsache  dass im Schulzentrum Ybbs a d  Donau bis zu
17.    de  http   sourceforge net project downloading  php group_id 26590 amp filename   zsi 2 0 pdf amp a 6917220  April 2009     Daniel B  Sedory  MBR EBR Partition Tables  http   www  geocities com thestarman3   asm mbr PartTables2 htm  April 2009     Julian Seward  bzip2 Documentation  http    www bzip org docs html  April 2009     SQLAlchemy  SQLAlchemy 0 4 Documentation  http    www sqlalchemy org docs 04    April 2009     UDPcast  Udpcast commandline options  http   udpcast linux lu cmd html  April  2009     Wikipedia  Lempel Ziv Markow Algorithmus  http    de wikipedia org wiki   Lempel Ziv Markow Algorithmus  April 2009     Wikipedia  Web Services Description Language  http   de wikipedia org wiki Web_    Services_Description_Language  April 2009     Brendon J  Wilson  Ruby   SOAP4R   WSDL Hell  http   www  brendonwilson com   b10g 2006 04 02 ruby soap4r wsdl hell   April 2009     66    Abbildungsverzeichnis    3 1 Blockschaltbild von OpenClone e  17  4 1 EER Diagramm der Datenbank  20  4 2 Ablaufdiagramm der OpenClone Engine        2 2 2  Emm m nn 22  4 3  Webservice   bersicht  WSDL  A A ca 35  4 4 Webservice Elemente      36  4 5 Webservice Datentypen    37  4 6 Men  struktur des OpenClone Webinterface       ooa a nn 000 ee 45  A 1 Zeitplan des Projektverlaufes                 e    74  Bil   Login Bildschirm  Vea Vs eee oe A a oe ee ee ed ee 86  B 2 System Overview    bersichtsseite  eos u a 20 ne Fan See 87  B 3 Auswahl des Rechners im Image Creation Wizard    e  88 
18.    e DHCP Server  ISC dhepd      dhcp3 server   e TFTP Server  HPAs tftp Server    tftpd hpa   e NFS Server  NFS kernel server      nfs kernel server     e debootstrap     e Bootloader  SYSLINUX    syslinux        30 Frei verf  gbar unter http    www isc org software dhcp   31 Frei verf  gbar unter http    www kernel org pub software network tftp   32Prei verf  gbar unter http   nfs sourceforge net    33Fyei verf  gbar unter http    packages debian org stable admin debootstrap  34Frei verf  gbar unter http    syslinux zytor com     59    KAPITEL 4  ANWENDUNGSENTWICKLUNG    e Versionsverwaltung  Subversion      subversion     e OpenClone Abhangigkeiten     Python  python        Zolera SOAP Infrastructure  python zsi       MySQL fiir Python  python mysqldb        SQLAIchemy  python sqlalchemy        UDPcast  udpcast        Apache 2  apache2        PHP 5  php5        MySQL Modul f  r PHP 5  php5 mysal         MySQL Server  mysql server     DHCP Server konfigurieren    Der DHCP Server wird nach den zuvor abgefragten Einstellungen des Benutzers konfiguriert     Bootloader  pxelinux  einrichten    Es wird eine Standardkonfiguration erstellt  welche sp  ter das auf den Clients installierte Ubuntu    System starten soll     TFTP Server konfigurieren    Es wird der Daten Pfad des TFTP Servers eingerichtet  Zur Zeit ist dieser Schritt noch nicht automa   tisiert und es muss die Konfigurationsdatei  etc inetd conf noch h  ndisch angepasst werden   Root Dateisystem fiir Clients einrichte
19.    gt  Additional info 21 WS 10 010 192 168 10 10 0011d80adf83 2009 04 12 20 49 24  DISK  Address Size  MiB  Model number Serial number   dev sda 38158 Net multiboot   01 03 579 8608 05 19 04  Partitions   Number Record type File system Operating System  1 primary vfat  2 primary ext3  3 extended  5 logical swap  image name  Image compression  gzip  v  Operation after creation   None    Finish  Fertig      This figure shows the OpenClone webinterface  which is used for  controlling the cloning system  Shown is the last step of the Image  Creation Wizard  which is used for creating a hard disk image of a  computer        Participation in competitions  Awards       Accessibility of    diploma thesis College of Engineering for Information technology Ybbs a  d  Donau       Examiner Head of Department   College  Approval   Date   Sign           Seite 2 von 2    
20.    notwendig keine m  glich m  glich  am Ser   ver ausw  hlbar   Abbildumfang  gesamte Festplatte  alle Partitionen MBR         hi         einzelne Partition       Komprimierung    Normal  Hoch  Maximum    gzip  bzip2  lzo       unterst  tzte Dateisysteme       FAT32  intelligent  Sektor     ys         Partimage dd        NTFS  intelligent  Sektor     ea         ntfsclone dd        ext3  intelligent  Sektor     GC         Partimage dd                       Linux SWAP  intelligent        Image  bertragung   Unicast  Erstellen R  cksichern   SMB      j    FTP     ze  NFS     as       eigenes Protokoll       Riicksicherung mit Multicast       Nachbearbeitungsmethoden       Hostname setzen  Windows Linux          DRBL winroll          statische IP setzen  Windows Linux               neue SID generieren  Windows        DRBL winroll        Domainintegration  Windows Linux               Hostmanagement  Hosts Gruppen            oe       Tests       Imageerstellung  Dauer  Imagegr  fe     57 Min 9 Sek  46113 MiB    48 Min 11 Sek  43989 MiB       Imager  cksicherung  Dauer     nicht m  glich    29 Min 15 Sek          Lizenzkosten       22 55 Euro pro Rechner   Inc09a           Open Source           Windows 2000  XP  Vista  Server nur mit Server Lizenz   Debian  Ubuntu  SuSE  RedHat  RHEL  Fedora  Mandriva  CentOS  Scientific Linux  BSD       Master Boot Record  dfehlende Serverlizenz       KAPITEL 2  ANALYSE                               FOG 0 23 Norton Ghost 2005  Betriebssystemunters
21.   255     running   Column    running     Boolean  nullable False     last_boot_time   Column    last_boot_time     DateTime     class Device Base    __tablename__      device     id   Column    id     Integer  primary_key True   host_id   Column    host_id     Integer  ForeignKey    host id      nullable   False   host   relation    Host     backref    devices      type   Column    type     String 8   nullable False   _Mapper_args       polymorphic_on     type     class RAMDevice  Device    __tablename__      device_ram       __mapper_args__       polymorphic_identity        ram        id   Column    id     Integer  ForeignKey    device id      primary_key True     size   Column    size        Listing 4 6  Ausschnitt aus dem OpenClone Tablemapping  tablemapping py     Die Tabelle group wird dabei auf die Klasse Group abgebildet  Sie beinhaltet den Prim  rschl  ssel id  von Typ Integer und die Spalte name vom Typ String  In der Klasse Host verweist der Fremdschliissel  group_id auf die Spalte id in der Tabelle group  Weiters wird mit der relation Funktion das Objekt der  Gruppe unter dem Attribut group verfiigbar gemacht und in der Klasse Group eine Liste namens hosts  eingef  gt  welche alle Hosts einer Gruppe beinhaltet  Die Klasse Device dient als Basisklasse f  r die  RAMDevice Klasse und dabei wird in der Basisklasse in der Spalte type der speziellere Typ festgelegt  Um  beim Auslesen eines Devices automatisch die spezialisierte Klasse  wie z B  RAMDevice  zu erhalten  i
22.   ANWENDUNGSENTWICKLUNG    4 5 3 Objektrelationaler Mapper   Doctrine    Doctrine ist ein objektrelationaler Mapper f  r die Programmiersprache PHP     Solche Mapper dienen    dem Datenbankzugriff und erleichtern dabei dem Softwareentwickler die Arbeit   siehe 3 8     Doctrine ist zum Zeitpunkt der Anwendungswentwicklung in Version 1 1 0 verf  gbar  Es bietet un   ter anderem folgende M  glichkeiten  welche auch bei der Entwicklung des OpenClone Webinterfaces  genutzt wurden   Doc09     e Automatische Generierung der PHP Klassen f  r Tabellen aus einer bereits vorhandenen Daten     bank    e Eine Abfragesprache f  r SQL namens DQL  Doctrine Query Language   welche an die HQL   Hibernate Query Language  des objektrelationalen Mappers Hibernate f  r Java angelehnt ist    e Beziehungsaufl  sung zwischen Tabellen einer Datenbank    e Generalisierung von Tabellen    Klassenaufbau    Doctrine arbeitet f  r jede verwendete Tabelle der Datenbank mit einer eigenen PHP Klasse  welche  die ben  tigten Attribute und Methoden enth  lt  Jede Klasse  die eine Relation darstellt  muss von  der Basisklasse  Doctrine Record    abgeleitet werden  In der Basisklasse werden Methoden definiert   die zur Beschreibung der Relation und zur Durchf  hrung unterschiedlichster Operationen auf diese  dienen  Im Listing 4 9 wird die Klasse der Relation    user    dargestellt  Die Funktion    setTableDefinition     dient zur Beschreibung der Relation und der Attribute  Mit  this  gt setTableName    user    
23.   SQLAIchemy         SQLAlchemy ist ein objektrelationaler Mapper f  r Python  Das bedeutet er stellt die in der Datenbank  verf  gbaren Tabellen in Python als Objekte zur Verf  gung und erm  glicht somit einen einfachen Zugriff  auf die Daten   siehe 3 8     Tablemapping    Um SQLAlchemy mit allen F  higkeiten einsetzen zu k  nnen  muss ein Tablemapping erstellt werden   welches alle ben  tigten Tabellen auf Klassen abbildet  Um das Tablemapping m  glichst einfach zu  gestalten  wird die Erweiterung declarative verwendet  Das Listing 4 6 zeigt einen Teil des OpenClone    Tablemappings     from sqlalchemy import    from sqlalchemy ext declarative import declarative_base    from sqlalchemy orm import relation  backref  Base   declarative_base      class Group Base    o bHelolememe   group       id   Column    id     Integer  primary_key True     name   Column    name     String  255       class Host Base    __bablemame   Most   id   Column    id     Integer  primary_key True   group_id   Column    group_id     Integer  ForeignKey    group id       group   relation    Group     backref    hosts      mac   Column    mac     String 12   nullable False     ip   Column    ip     String 15          Frei verf  gbar unter http    www wireshark org   28 SQLO9     41    19  20  21  22  23  24  25  26  27    28  29  30  31    33  34  35  36    NO oO KR WN HH    KAPITEL 4  ANWENDUNGSENTWICKLUNG    hostname   Column    hostname     String  255     serial_no   Column    serial_no     String
24.   jedoch nicht dass der Bereich auch manchmal fiir Bootloader Code genutzt wird      AA09  GS09  Sed09     Sichern von Bootloadern    Eine spezielle Herausforderung gab es beim Sichern von manchen Bootloadern  die im MBR installiert  werden  Um dieses Problem besser erkl  ren zu k  nnen  ist in der Tabelle 4 4 anhand eines Beispiels  die   blichen Belegung einer Festplatte dargestellt  Im Beispiel sind auf der Festplatte zwei prim  re    Partitionen mit je ungef  hr 3 1 MiB angelegt                    Anfang   Bezeichnung   Gr    e  0   MBR 1   1   Unbenutzt 62   63   1  Partition 6300   6363   2  Partition 6300                   Tabelle 4 4  Beispiel fiir eine Festplattenbelegung  in 512 Byte Bl  cken     Diese Aufteilung ergibt sich dadurch  dass   ltere Betriebssysteme nur Partitionen untersttitzten  die    an Zylindergrenzen beginnen und enden   Bra09     Normalerweise wiirde man annehmen  dass die Sicherung des MBR  sowie aller Partitionen reicht     damit der Bootloader bei sp  ter Wiederherstellung wieder voll funktionsf  hig ist     Leider haben Bootloader  welche in den MBR installiert werden  dort oft zu wenig Speicherplatz  440  Byte   um den gesamten Code unterzubringen  Dieses Problem umgehen sie dadurch  dass sie den  eigentlich unbenutzten Speicherplatz  31 KiB  zwischen MBR und erster Partition nutzen  Der Boot   loader GRUB ist ein Vertreter dieser Gattung  denn bei GRUB wird der sogenannte Stage 1 5 im  unbenutzten Bereich installiert   Bra09  Wenn nun eine 
25.   operation_     shutdown    aus der Datenbank verwendet  siehe Abbildung 4 1   Die Relation    operation    ist die all     gemeine Relation und beinhaltet Attribute  welche jede der speziellen Relationen enthalten soll  F  r    die Generalisierung wichtig ist das Attribut    type    vom Datentyp ENUM  Der Wert dieses Attributes    gibt an  welche spezielle Relation zu einem Tupel in der generellen Relation geh  rt  Angenommen    ein Tupel in der Relation    operation    hat f  r  type  den Wert    shutdown    eingetragen  dann wird die     operation shutdown    Relation ben  tigt  um die speziellen Attribute zu verwenden  Um das Tupel    der generellen Relation eindeutig mit dem richtigen Tupel der speziellen Relation zu verkn  pfen  wird    eine 1 1 Beziehung der beiden    id    Attribute verwendet  welche f  r die jeweilige Relation den Schl  ssel    oo oF WwW Nee    darstellen     Die beiden Klassen    operation    und    operation_ shutdown    werden  wie in Listing 4 10 und Listing 4 11    veranschaulicht  in PHP Klassen dargestellt     class Operation extends Doctrine_Record       public function setTableDefinition        this  gt setTableName  operation      this  gt hasColumn    id        integer     A  array    type      gt  integer     length       gt  4     unsigned      gt  1     primary      gt  true     autoincrement      gt  true      this  gt hasColumn    task_id        integer     4  array    type      gt     integer          length      gt  4     unsigned 
26.   sein       Die ben  tigte Zeit fiir eine Sicherung und Wiederherstellung soll im Vergleich zur aktuellen  L  sung mit Norton Ghost nicht erheblich l  nger sein   maximal doppelt so lange        Auf den Ziel Rechnern soll keine zus  tzliche Software installiert werden m  ssen        Die Ziel Rechner sollen alle ben  tigten Daten   ber das Netzwerk beziehen    71    ANHANG A  PROJEKT        Die Kommunikation soll   ber die bestehende Netzwerkhardware erfolgen        Die Integration in das bestehende Netzwerk soll m  glich sein  zentraler DHCP Server  Sub     netz fiir jeden Computerraum         Die Steuerung  Sicherung  Wiederherstellung starten  des Cloning Systems soll iiber eine    zentrale Software m  glich sein        Der Status des Sicherungs  Wiederherstellungsprozesses jedes Ziel Rechners soll mittels der    zentralen Software abgerufen werden k  nnen      Die zentrale Software soll einfach zu bedienen sein   z B  durch Wizards         Der Zugriffe auf die Steuerungssoftware sollen durch Passwort  Authentifizierung und Ver     schl  sselung gesichert sein        Die Ziel Rechner sollen am zentralen Server mit dem Hostnamen  IP Adresse  MAC Adresse     Seriennummer gespeichert werden      Die Ziel Rechner sollen einer Gruppe zugewiesen werden k  nnen        Das Hinzuf  gen neuer Ziel Rechner soll bis auf Hostname  IP Adresse  Seriennummer  Grup     pe automatisch erfolgen        Der Hostname  IP Adresse  Seriennummer sollen   ber die zentrale Software eingetragen    we
27.   udpcast   linux  1u     31    KAPITEL 4  ANWENDUNGSENTWICKLUNG                                                 Kompr    Dekompr    Gr    e   Kompres    Gesamt  Format CPU Zeit   CPU Zeit    MiB    sionsgrad   Dauer  lzop L1 0 54 9 0 12 7   1290 1 56 91  3 47 8  lzop L3  Std   0 51 6 0 12 2   1292 8 56 82  3 48 3  gzip L1 2 11 7 0 36 3   1164 1 61 12    3 54 5  gzip L6  Std   3 06 2 0 37 4   1123 7 62 47  4 45 4  gzip L9 DOLA 0 37 3   1121 5 62 54  7 11 8  unkomprimiert a     2993 9 0 00  8 48 7  lzop L7 7 15 2 0 14 2   1203 1 59 82  9 01 5  Izma L1 9 20 9 2 42 1   1051 2 64 89  12 03 0  bzip2 L1 12 36 2 3 32 6   1130 8 62 23  16 08 8  bzip2 L6 15 21 6 4 48 7   1114 1 62 79  20 10 3  bzip2 L9  Std   16 34 9 5 09 5   1112 2 62 85  21 44 4  lzop L9 24 05 6 0 14 4   1200 7 59 90  25 51 6  lzma L7  Std   49 14 8 230 2 944 1 68 46  51 45 0  Izma L9   DA 2 26 0 921 6 69 22    1 14 40 7                            Tabelle 4 8  Uberblick Komprimierungssoftware nach Dauer einer Sicherung und Wiederherstellung    muss  wie bei Broadcast  Somit wird nur die minimal ben  tigte Bandbreite des Netzwerks belegt   Da TCP    nur f  r Punkt zu Punkt Verbindungen geeignet ist  setzt UDPcast das Transportprotokoll  UDP     ein  Um die   bertragung sicherzustellen  implementiert UDPcast eine eigene Sicherungsschicht   wobei die Best  tigungen der Empf  nger an den Sender   ber Unicast gesendet werden  Au  erdem  implementiert UDPcast so genannte Slices  damit nicht jedes Paket einzeln best  tigt 
28.  B 4 Auswahl der Festplatte im Image Creation Wizard                 2 04  88  B 5 Zus  tzliche Einstellungen im Image Creation Wizard                     89  B 6 Auswahl des Images im Deployment Wizard e  91  B 7 Auswahl der Rechner im Deployment Wizard e  91  B 8 Auswahl der Festplatte im Deployment Wizard  e  92  DO Hostliste im Men   Advanced e  93  B 10 Details zu einem Host e  94  B 11 Gruppenliste im Men   Advanced   2 2 2    En nn nn 94  B 12 Seite zum Editieren einer Gruppe    2    2    a 95  B 13 Taskliste im Men   Advanced  95  B 14 Seite zum Editieren eines Task e  96  E E lee EE 97    67    ABBILDUNGSVERZEICHNIS    B 16 Seite zum Andern der Benutzerinformationen    68       Tabellenverzeichnis    2 1    3 1    4 1  4 2  4 3  4 4  4 5  4 6  4 7  4 8    5 1  5 2  5 3    Vergleich der Cloningsysteme       a a 0 nn 10  Vergleich der Programmiersprachen      2 2    mn nn nn 16  Verwendete Systeminformationen und deren Quellen    2    22 2 22m nenn 24  MBR Aufbau  Gesamtgr    e 512 Byte                o    a 25  EBR Aufbau  Gesamtgr    e 512 Byte             o        e            26  Beispiel f  r eine Festplattenbelegung  in 512 Byte Bl  cken                  26  Unterst  tze Dateisysteme der verschiedenen Implementierungen               28  Komprimierungssoftware sortiert nach Kompressionsgrad       o ooa a a 30  Komprimierungssoftware sortiert nach Dauer einer Sicherung und Wiederherstellung   31      berblick Komprimierungssoftware nach Dauer einer Sicherung und Wi
29.  Datenbank    20    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Beim Entwurf der Datenbank wurde sehr auf eine sp  tere Erweiterbarkeit Wert gelegt und versucht   datenbankseitig bereits jetzt zuktinftige Features  wie z B  Images einzelner Partition oder mehrerer    Festplatten  vorzusehen     Aufbau    In der Datenbank werden mehrere Operationen  operation  zu Tasks  task  zusammengefasst und  diese Tasks k  nnen auf mehreren Hosts  host_ task  gleichzeitig ausgef  hrt werden  Die Tabelle Ope   ration dient als Basis fiir alle speziellen Operationen  operation partition  operation_image  ope   ration_ shutdown   Somit ist es sp  ter m  glich  weitere Operationen zu implementieren  Die Hosts   host  k  nnen einer Gruppe  group  zugeordnet werden und jeder Host kann mehrere Devices  de   vice  haben  Ein Device  device  kann eine CPU  device_cpu   RAM  device_ram  oder Festplatte   device_ harddisk  sein  Auch hier k  nnen sp  ter auf einfache Weise weitere Devicetypen hinzugef  gt  werden  Jedes Image  image  kann aus mehreren Festplatten  image_ disk  bestehen und jede Festplat   te aus mehreren Partitionen  image_ partition   Dabei hat jede Festplatte in einem Image  image disk   und in einem Host  device_harddisk  eine Partitionstabelle  partitiontable  mit Partitionen  partiti   on   Jede Partitionstablle und Partition kann zur Zeit nur vom Typ MBR sein  in Zukunft ist aber noch  eine Implementierung der EFI Partitionstabelle vorgesehen  Eine Image Operation  operation_ image   
30.  Dazu k  nnten virtuelle Machinen als Clients verwendet werden     Die Performance ware jedoch mit richtiger Hardware um einiges besser     82    ANHANG A  PROJEKT    Sitzungsprotokoll vom 15 4 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes  Es wurde ein Image von einem Rechner im Softwarelabor des Schulzentrums erstellt und dieses auf alle  Rechner im Raum zur  ckgespielt  Anfangs gab es Schwierigkeiten mit der Cloningengine  weil diese    die Netzwerkkarten der Computer nicht erkannte  Der Fehler konnte jedoch behoben werden     Zu Erledigendes    F  r das Webinterface wurden folgende   nderungen gew  nscht     e Bei der Auflistung der Hosts sollen alle Hosts auf einmal markiert werden k  nnen  e Es soll die Gesamtanzahl der angezeigten Hosts ersichtlich sein    e Bei der Auswahl einer anzuzeigenden Gruppe  soll ersichtlich sein  welche Gruppe gerade ange     zeigt wird    e Bei den durchf  hrbaren Aktionen k  nnen Checkboxen statt Radio Buttons verwendet werden     um mehrere Aktionen gleichzeitig auszuf  hren  e Bei der Vergabe der Hostnamen soll die Postfixnummer dreistellig sein  z B  010     e Bei den Details eines Hosts soll ebenfalls die   nderung der IP Adresse und des Hostnamen    m  glich sein   e Die Gr    e eines Images soll ersichtlich sein    e Der Name eines Images soll ver  nderbar sein  Folgende eigene Ziele sind noch zu implementieren     e Nach dem ein 
31.  Jede Nachricht kann mehrere benannte Teile enthalten  die ein bestimmtes Element    enthalten     Element  Elemente haben einen Namen sind von einem bestimmten einfachen oder komplexen    Datentyp   Attribut  Attribute haben einen Namen und sind von einem bestimmten einfachen Datentyp     Datentyp  Es gibt einfache und komplexe Datentypen  Einfache Datentypen sind z B  Strings  und Integer Zahlen  Komplexe Datentypen k  nnen aus Attributen und wiederum Elementen    aufgebaut sein  Weiters k  nnen Datentypen von anderen Datentypen abgeleitet werden     Eingehaltene Regeln fiir einen ZSI kompatiblen Webserviceaufbau     Jedes Binding ist vom Style document  Jede Operation besitzt eine Ein  und Ausgabenachricht und keine Fehlernachricht    Jede Nachricht setzt sich aus einem einzigen Teil zusammen  daher entspricht sie einem Parameter    der Operation bei Eingabenachrichten oder einem Riickgabewert bei Ausgabenachrichten    Ein einer Nachricht zugeordnetes Element beinhaltet selbst nur andere Elemente und keine At     tribute    Den Datentyp Base64String vermeiden       23 Web Service Description Language  24  Wik09b     34    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Diese Regeln waren leider nicht im Vorhinein klar und mussten erst m  hsam durch viele Tests und  Debuggen von ZSI erarbeitet werden  da die Dokumentation von ZSI in manchen Bereichen nicht sehr    umfangreich ist  Weiteres dazu im Kapitel 4 4 4     Obwohl ZSI nur einteilige Nachrichten unterstiitzt  k  nnen trotzdem ti
32.  System eingeschalteten Hosts angezeigt  Man kann  jedoch durch das Drop Down Men   ganz oben auf der Seite ausw  hlen  welche Hosts zur Auswahl  angezeigt werden sollen  Nach der Auswahl der Computer gelangt man mit Next zum letzten Schritt    des Wizards  Die Auswahl der Hosts ist in Abbildung B 7 veranschaulicht     Nach der Auswahl der Computer erfolgt nun der letzte Schritt des Wizards  Es muss die Festplatte  gew  hlt werden  auf welche das Image gespeichert werden soll  Zur Auswahl stehen nur Festplatten   die in jedem gew  hlten Computer vorhanden sind und zus  tzlich die selbe Ger  teadresse haben  Die  Gr    e der Festplatte in den einzelnen Hosts kann jedoch unterschiedlich sein  Ist in jedem Computer  zum Beispiel unter der Adresse  dev sda eine Festplatte vorhanden  wird sie zur Auswahl angezeigt     Ist in jedem Computer bis auf einem auch unter  dev sdb eine Festplatte vorhanden  wird sie nicht        Universally Unique Identifier    90    ANHANG B  BENUTZERHANDBUCH       OpenClone Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe             a Pe    Y    amp  NV e http   localhost openclone webinterface src  menu deploySssite deploy1 x      coogle e                                     System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   Logout U pent lone   gt  Select image disk Name Address     Select hosts    HP WinXP Ubuntu  dev sda   gt  Select disk Partitions   Number Record type File system O
33.  int  O context_id int          O id int  O context_id int             AB   programType     roua N    E  Partitiontable                          E  parts  0    Partition                O sleeptime    O program  O address     programType   string    O restore_bootloader boolean    restore_unused boolean                   D          Operation        id       O context_id int    int                     partitiontable  1  1  Partitiontable       A E  modeType     f AE  programtype   AB  compressionType             mode     address   O url     program        compression     modeType   string   string   programType                 D          Operation        id       int        context_id int        O mode  modeType         compressionType     status              operation_id    context_id    percentage   O speed    int  int  float    string        E  hostid        status     1  1  Hostidentifier   0  1  Status       Abbildung 4 5  Webservice Datentypen    a   4  El Hostidentifier    O mac string                                amp   Status                   O value int             E  modeType     37    KAPITEL 4  ANWENDUNGSENTWICKLUNG      OpenCloneEngineService services stellt die Methoden zum Aufruf des Werbservices  zur Verfiigung  Automatisch generiert  siehe 4 4 4   e openclone common        nettools stellt eine Netzwerktools zur Verfiigung  z B  Routing Table lookup       utils stellt einige Hilfsmittel bei der Kommunikation mit Prozessen zur Verfiigung        version beinhal
34.  tigkeiten bei der Entwicklung fest   gehalten  Au  erdem wird die Installation und der Einsatz der entwickelten L  sung im Schulzentrum  Ybbs a d  Donau beschrieben     Kapitel 2  Analyse    Dieses Kapitel beschreibt den aktuellen Vorgang  um die Computer im Schulzentrum fiir den produkti   ven Einsatz zu pr  parieren und widmet sich dem Vergleich bereits bestehender Cloningsysteme  Dieser  Vergleich beinhaltet die unterschiedlichen Funktionen der getesteten Produkte sowie die Analyse ei   nes kompletten Sicherungs  und Wiederherstellungsvorganges einer Festplatte in Bezug auf gemessene    Zeiten  Weiters werden die Griinde fiir ein eigenes System erl  utert     In weiterer Folge wird von Server  und Client Computer ausgegangen  Der Server stellt das System  dar  auf dem die Festplattenabbilder gespeichert werden und die Steuerung der Cloningsoftware durch  den Benutzer vorgenommen wird  Der Client hingegen ist ein PC  von dem ein Image der Festplatte    angefertigt oder ein bereits existierendes auf dessen Platte tibertragen wird     2 1 Aktuelle Situation im Schulzentrum    Die Computerr  ume im Schulzentrum sind grunds  tzlich so ausgestattet  dass in jedem Raum die  selbe Hardware f  r jeden Computer vorhanden ist  Als Betriebssystem wird zum Gro  teil Windows  XP eingesetzt  Es gibt jedoch auch R  ume mit Windows XP und SuSE Linux als Dualbootsystem   wobei GRUB als Bootmanager dient     Aktuell wird zur Imageerzeugung und zur   bertragung eines solchen auf einen oder m
35.  und  in ein geeignetes Format bringt sowie umgekehrt  und die Ubertragung  Transfer   welche die Daten    der Abbildung vom bzw  zum zentralen Server   bertr  gt     Die OpenClone Engine wurde so konzipiert  dass verschiedene Implementierungen  die unterschiedliche  Features haben k  nnen  zur Abbildung und zur Ubertragung verwendet werden k  nnen  Beim Erstellen  einer Sicherung dient die Abbildung als Quelle und die Ubertragung als Ziel  Beim Wiederherstellen  einer Sicherung analog die Ubertragung als Quelle und die Abbildung als Ziel  Zwischen Quelle und  Ziel k  nnen noch beliebig weitere Zwischenstellen eingef  gt werden  wie z B  eine Komprimierung  oder eventuell eine Verschl  sselung  Zur Zeit ist jedoch nur die Komprimierung und das Hashmodul  als Zwischenstelle implementiert  Die bei der Erstellung verwendete Abbildungs     bertragungs  und  Kompressionsimplementierung wird am zentralen Server gespeichert  um sp  ter eine Wiederherstellung    zu erm  glichen     Abbildung  Imaging   Es gibt grunds  tzlich zwei verschiedene M  glichkeiten ein Abbild einer Partition zu erstellen     e Byte f  r Byte und ohne Kenntnis des Dateisystems    e Intelligent und mit Hilfe des Dateisystems  Um Speicherplatz zu sparen  wird   blicherweise nicht die gesamte Partition Byte f  r Byte gesichert   sondern die intelligente Variante gew  hlt  Dabei wird   ber das Dateisystem der Partition die benutz     ten Teile festgestellt und genau diese gesichert  Dadurch ist es jedoch notwendi
36.  wird der  Tabellenname auf    user    festgelegt  Mit  this  gt hasColumn werden die Attribute definiert  Die Tabelle     user    hat folgende Attribute     e id  Integer  autoincrement   e name  varchar  not null   e password  varchar  fixe L  nge  not null     e last login  timestamp     In der Funktion    setUp    werden Beziehungen dargestellt  Da die Tabelle    user    keine Beziehung hat  ist    diese Funktion in dieser Klasse auch nicht vorhanden     class User extends Doctrine_Record     public function setTableDefinition            this  gt setTableName    user              Frei verf  gbar unter http    www doctrine project org     49    10  11    KAPITEL 4  ANWENDUNGSENTWICKLUNG     this  gt hasColumn    id        integer     A  array    type      gt     integer        length       gt  4     unsigned      gt  1     primary      gt  true     autoincrement      gt  true      this  gt hasColumn    name        string     255  array    type      gt     string          length    gt  255  default    gt  99  Pisa    gt  true      this  gt hasColumn    password        string     40  array    type      gt     string          length      gt  40     fixed      gt  true     default      gt             notnull      gt  true      this  gt hasColumn    last_login        timestamp     null  array    type      gt     timestamp         fe  Listing 4 9  Doctrine  user  Klasse  Generalisierung    Zur Veranschaulichung der Generalisierung werden die beiden Tabellen    operation    und  
37.  zuvor vorbereitete Programm sysprep ausge   f  hrt und   bernimmt nach Eingabe des Rechnernamen  des lokalen Administratorpasswortes und der    Administrator Zugangsdaten zur Dom  ne auf jedem Client die Integration in die Schuldom  ne     Falls ein Dualbootsystem mit Windows XP und SuSE Linux auf die Festplatten der Clients   bertragen  wird  muss danach der Master Boot Record manuell neu geschrieben werden  weil dieser unmittelbar    nach dem Cloningvorgang nicht richtig funktioniert     2 2 Anforderungen an ein Cloning System    Aus dem bereits bestehenden Prozess ergeben sich folgende essentielle Anforderungen an ein Cloning     system  welches im Schulzentrum eingesetzt werden soll     e Einfache Bedienung des Systems  Das System soll ohne gr    ere Einarbeitungszeit bedient werden k  nnen und weitestgehend auto   matisch agieren  Durch den Einsatz eines Webinterface als Steuerungssoftware f  r den Benutzer  und Verwendung von Wizards zum Anlegen und R  cksichern der Images kann der Bedienkomfort    erh  ht werden     e Verwaltung von Hosts  Clients sollen in Gruppen unterteilt werden k  nnen  um ein Image ohne gr    eren Aufwand auf  eine ganze Gruppe von Computer gleichzeitig   bertragen zu k  nnen  Au  erdem wird dadurch  die   bersichtlichkeit in der Benutzersoftware erh  ht  Weiters w  re die M  glichkeit  Detailinfor     mationen  wie die Seriennummer eines Hosts  speichern zu k  nnen  von Vorteil     e Image  bertragung auf mehrere Computer gleichzeitig  Ein vorh
38. 0 14 4   1200 7 59 90   lzop L7 7 15 2 0 14 2   1203 1 59 82   lzop L1 0 54 9 0 12 7   1290 1 56 91   lzop L3  Std   0 51 6 0 12 2   1292 8 56 82   unkomprimiert       2993 9 0 00                             Die L Werte geben den verwendeten Level der Kompression an  L1 entspricht dem niedrigsten Level und L9 dem  h  chsten Level  Mit Std  wird der Standardlevel gekennzeichnet     Tabelle 4 6  Komprimierungssoftware sortiert nach Kompressionsgrad    Bei der Wiederherstellung ist gzip am schnellsten  da sowohl gzip als auch lzop schneller dekomprimie   ren  als die   bertragung erfolgen kann aber der ungef  hr 5 Prozentpunkte h  here Kompressionsgrad  von gzip zum Tragen kommt  Die Tabelle 4 8 stellt schlie  lich den Kompressionsgrad der Gesamtdau   er gegen  ber  Damit k  nnen schnell die in Frage kommenden Algorithmen herausgefunden werden   Denn man wird nur jene Kompressionsalgorithmen einsetzen  die im Gegenzug zu einer schlechteren    Gesamtzeit zumindest einen besseren Kompressionsgrad bieten     Dadurch ergibt sich folgende Reihung     e lzop Level 1 bietet die k  rzeste Gesamtdauer    e gzip Level 1 scheint die sinnvollste Wahl zu sein  da ein um 5  Prozentpunkte besserer Kom   primierungsgrad durch eine minimal l  ngere Sicherungsdauer von unter 20 Sekunden erreicht    wird   e gzip Level 6  e gzip Level 9 bietet die schnellste Wiederherstellungszeit  e lzma Level 1  e lzma Level 7    e lzma Level 9    30    KAPITEL 4  ANWENDUNGSENTWICKLUNG                           
39. 1 Subnetze hinzuf  gen    OpenClone bietet bei manueller Konfiguration die M  glichkeit  mit Clients in mehreren Subnetzen zu    arbeiten     Dazu ist es notwendig einerseits auf dem Server eine IP Adresse in jedem gew  nschten Subnetz einzu     richten und andererseits die pxelinux Konfiguration f  r dieses Subnetz anzupassen     Netzwerkkonfiguration unter Ubuntu    Die Netzwerkkonfiguration von Ubuntu ist in der Datei  etc network interfaces enthalten  Zum Hin   zuf  gen einer weiteren IP Adresse muss mit den Zeilen aus Listing B 1 ein neues Subinterface in der  Konfiguration hinzugef  gt werden  Die Netzwerkschnittstelle eth0 muss eventuell angepasst werden und  die Subinterface Nummer  welche mit Doppelpunkt vom Interface getrennt ist  f  r jedes Subinterface  immer weiter erh  ht werden  Mit der IP Adresse und Netmask muss eine IP Adresse im gew  nschten  Subnetz konfiguriert werden    auto eth0 1   iface eth0 1 inet static    address 192 168 13 206  netmask 255 255 255 0    Listing B 1  Ubuntu Netzwerkkonfiguration  etc network interfaces    Anschlie  end ist zum Anwenden der Konfiguration der Befehl sudo  etc init d networking restart    oder ein Neustart notwendig     PXELINUX Konfiguration    Damit die Clientcomputer beim Booten   ber PXE die richtigen Parameter f  r das Root Dateisys   tem und die OpenClone Engine erhalten  muss f  r jedes Subnetz eine eigene pxelinux Konfiguration  vorhanden sein  Die Konfigurationen sind im TFTP Verzeichnis  also normalerweise un
40. 7 00  18 02 09 17 00  17  12 08 17 00  18 02 09 17 00  18 02 09 17 00  25 03 09 17 00  06 05 09 17 00  15 05 09 17 00    19 11 08 17 00  29 10 08 17 00  05 11 08 17 00    08 09 08 17 00    Start    1 tag 08 09 08 08 00   30 tage 09 10 08 08 00  5 tage 30 10 08 08 00  10 tage 06 11 08 08 00   65 tage 20 11 08 08 00  20 tage 20 11 08 08 00  45 tage 18 12 08 08 00  45 tage 18 12 08 08 00  25 tage 19 02 09 08 00  30 tage 26 03 09 08 00  1 tag 15 05 09 08 00    15 tage 09  10 08 08 00    Dauer  1 tag 08 09 08 08 00    Software  und Datenbankd    7    EJimplementierung    Diplomarbeitsbestatigung  EJPlanung und Analyse  Softwarevergleich  Anforderungen festlegen  Schnittstellen  Webinterface  Cloningengine  Testphase  12 Dokumentation  13 Abgabe    Ellnitialisierung    1  2  3  4  5  6  8  9  10  11       Abbildung A 1  Zeitplan des Projektverlaufes    Entwicklung des Webservices und der Engine zust  ndig  Manuel Steiner implementierte parallel dazu  das Webinterface f  r die Steuerung des Cloningsystems  Das Testen und die Installation der L  sung    im Schulzentrum erfolgte wieder in gemeinsamer Arbeit     A A Sitzungsprotokolle    Dieser Abschnitt beinhaltet  alle Protokolle der abgehaltenen Sitzungen  in denen der besprochene    Inhalt und die zu erledigenden Aufgaben festgehalten wurden     74    ANHANG A  PROJEKT    Sitzungsprotokoll vom 3 12 2008    Teilnehmer    e DI Andreas Brachinger  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes    Es w
41. 8 1 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes    Es wurde der Imagingvorgang einer einzelnen Partition vorgefiihrt  Weiters waren kleine Ausbesserun     gen an der Datenbank n  tig     Zu Erledigendes    Bei der n  chsten Besprechung  am 11 2 2009 soll ein gesamter Imaging  und Restorevorgang eines in    einer virtuellen Maschine installierten Windows XP Systems funktionieren     79    ANHANG A  PROJEKT  Sitzungsprotokoll vom 11 2 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes   Es wurde der Imaging  und Restoreprozess einer gesamten Festplatte vorgefiihrt  Dabei wurde ein  Windows XP System in einer virtuellen Maschine verwendet  Der Festplatteninhalt wurde gesichert   Danach wurde eine leere virtuelle Festplatte vom Cloningsystem formatiert  der Bootloader und der    Festplatteninhalt zurtickgesichert     Zu Erledigendes  Der Status eines Imaging  oder Restoreprozesses soll im Webinterface angezeigt werden  Weiters soll es  m  glich sein  bereits eingetragene Aufgaben f  r einen Client wieder zu l  schen  Der Name eines Images    soll ebenfalls im Webinterface ersichtlich sein  Die n  chste Besprechung findet am 25 2 2009 statt     80    ANHANG A  PROJEKT  Sitzungsprotokoll vom 25 2 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt
42. 8 MiB       Imageriicksicherung  Dauer     49 Min 4 Sek          Lizenzkosten          Open Source           Tabelle 2 1  Vergleich der Cloningsysteme    10    Kapitel 3  Losungsansatz    In diesem Kapitel wird beschrieben  welche Uberlegungen zur Realisierung eines eigenen Cloningsys     tems gemacht und welche Entscheidungen zum Aufbau getroffen wurden     3 1 Systemarchitektur    Durch die Anforderungen wird bereits festgelegt  dass es sich um ein Client Server System handeln  muss  welches die Images auf einem zentralen Server speichert  von dem aus diese auf alle Clients  verteilt werden k  nnen  Weiters ist es fiir eine einfache Handhabung notwendig alle Informationen an    einer zentralen Stelle zur Verfiigung zu haben  Somit ergibt sich ein System mit drei Komponenten     e Server  der alle Images speichert  den Cloningprozess koordiniert und die Benutzeraktionen ver     arbeitet  e Client  der die Aufgaben vom Server erh  lt und den Cloningvorgang ausf  hrt    e Benutzeroberfl  che mit welcher der Server gesteuert werden kann    3 2 Clientsoftware    Da das Cloningsystem vom eingesetzten Betriebssystem am Client unabh  ngig sein soll  muss auf dem  Client ein eigenes Betriebssystem fiir die Clientsoftware gestartet werden  Eine betriebssystemunab   h  ngige Clientsoftware  welche beispielsweise in Java geschrieben sein k  nnte  kommt nicht in Frage   da fir einen erfolgreichen Cloningvorgang die Festplatte im Client in einem konsistenten Zustand sein  muss  was tiber
43. CentOS   Windows 2000  XP  2003  Vista          Nur mit zus  tzlicher Software wie der Universal TCP IP Network Bootdisk  http    www netbootdisk com   und    geeignetem DHCP  und TFTP Server m  glich     mit FOG Client Service    KAPITEL 2  ANALYSE       OpenClone 0 1 0       Betriebssystemuntersttitzung                         Server Linux  Ubuntu   Client unabhangig  Benutzeroberfl  che   Server Web   Client Text   Client Bootmethoden   CD ROM         Netzwerk  PXE Wake on LAN               geforderte Benutzerinteraktionen                      am Server  Abbilderstellung  r  cksicherung    notwendig notwendig  am Client  Abbilderstellung  r  cksicherung    keine keine  Abbildumfang   gesamte Festplatte  alle Partitionen  MBR        einzelne Partition     Komprimierung gzip  lzo       unterst  tzte Dateisysteme       FAT32  intelligent  Sektor          Partimage          NTFS  intelligent  Sektor          Partimage          ext3  intelligent  Sektor          Partimage          Linux SWAP  intelligent     x                   Image  bertragung   Unicast  Erstellen R  cksichern   SMB      FTP      NFS H       eigenes Protokoll       KE          Riicksicherung mit Multicast       Nachbearbeitungsmethoden       Hostname setzen  Windows Linux        statische IP setzen  Windows Linux        neue SID generieren  Windows        Domainintegration  Windows Linux        Hostmanagement  Hosts Gruppen                Tests       Imageerstellung  Dauer  Imagegr  fe     34 Min 23 Sek  4735
44. Festplatte mit so einem Bootloader gesichert    wird  ist der Bootloader nach dem Wiederherstellen nicht mehr funktionsfahig     Es gibt nun zwei M  glichkeiten dieses Problem zu l  sen     1  Den Bootloader nach der Wiederherstellung von MBR und Partitionen neu installieren    2  Den unbenutzten Bereich ebenfalls sichern und wiederherstellen    26    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Die erste M  glichkeit wird vom Cloningsystem Clonezilla eingesetzt  Dadurch ist aber nur die Wie   derherstellung von bestimmten Bootloadern m  glich  Bereits beim Testen mit Clonezilla wurde ein  Problem mit der Neuinstallation von GRUB erkennbar  da dieser Bootloader nach der Wiederherstel     lung nicht mehr grafisch  sondern nur mehr textuell angezeigt wird     Die zweite M  glichkeit wird vom Cloningsystem FOG eingesetzt  welches immer den kompletten ersten  Zylinder  also den MBR inklusive dem unbenutzten Bereich sichert  Dadurch ist die Art des verwen     deten Bootloaders unwichtig und f  hrt zu keinen weiteren Problemen     Beim OpenClone wurde ebenfalls die zweite M  glichkeit implementiert  jedoch noch etwas flexibler  als bei FOG  Es wird nicht immer der gesamte erste Zylinder gesichert  sondern genau der Bereich    zwischen MBR und erster Partition     4 3 5 Partitionssicherung    Bei der Partitionssicherung wird eine gesamte Partition des Clients in eine Datei am zentralen Server  gesichert  Dazu geh  rt in jedem Fall die Abbildung  Imaging   welche die Daten der Partition liest
45. Mit diesem Werkzeug ist es m  glich  eine Datenbank grafisch  zu entwerfen und daraus die erforderlichen DDL Statements f  r die Tabellen und deren Attribute der    Datenbank automatisch zu erzeugen     Die Software bietet unter anderem folgende n  tzliche Funktionen     e Importieren von Dateien  welche DDL Statements enthalten und aus welchen ein Diagramm    erstellt wird    e Entwurf einer gesamten Datenbank in grafischer Darstellung mit Unterst  tzung f  r Schl  sselver     gabe  Beziehungen und andere Funktionen  wie etwa Constraints    e Beziehungsdarstellung in der Crown   s Foot Form und seit der Version 5 1 Beta auch in der  klassischen EER Form    e Automatische Erzeugung einer Datei  welche die erforderlichen DDL Statements enth  lt  um die    entworfene Datenbank in einen MySQL Server zu importieren        Frei verf  gbar unter http    www mysql de products workbench     18    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Weiters wurde auf dem Server  auf dem der MySQL Serverdienst mit der Datenbank vorhanden war   das webbasierte Werkzeug phpMyAdmin  verwendet  um schnell und unkompliziert Anderungen an der  laufenden Datenbank vornehmen zu k  nnen  Dieses Tool ben  tigt jedoch einen installierten Webserver    auf dem System     4 1 2 Python    F  r die Entwicklung der OpenClone Engine und des Webservices in Python wurde die IDE Eclipse   in der Version 3 4 2 mit der Pydev4 Erweiterung in der Version 1 4 5 f  r Python Unterst  tzung und    der Subclipse   Erweiterung in de
46. NG B  BENUTZERHANDBUCH    OpenClone Webinterface   Mozilla Firefox                                                                                                          eolica   Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe CH  EI v    Ka   O Y e http j localhost openclone webinterface src  menu advanced amp site hostdetails amp hostid 21 e  RAMS F  Size  MiB   1010        DISKS       Address Size  MiB  Model number Serial number     dev sda 38158 Net multiboot   01 03 579 8608 05 19 04    Partitions     Number Record type File system Operating System    1 primary vfat    2 primary ext3  3 extended  5 logical swap  M TASKS  Description Percentage Speed Status  Change Details  Hostname   ws 10 010     IP Address  192 168 10 10  MAC Address   0011d80adf8ez      Serial Number   abcld4e9df342b1  l Change  Fertig E   Abbildung B 10  Details zu einem Host  OpenClone Webinterface   Mozilla Firefox me fox  Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe 3  e  Ge    Y a   amp  v e http j localhost openclone webintertace src  menu advanced amp site grouplist x   Gly  soogle e                                      f     System Overview   Image Creation Wizard   Depolyment Wizard   Advanced   Logout U pent lone     Hostlist Group name        Add Group       Grouplist     Tasklist Group ID Group Name     Imagelist O 1 Testgroup1     Status e     Settings ad 2 Group2    Delete  v    ok  Fertig         Abbildung B 11  Gruppenliste im Meni Advanced    Durch Auswahl vo
47. Operation und der Statusaktualisierung eingesetzt werden k  nnen     Um den Zeitaufwand fiir die Implementierung der Kommunikation zwischen Client und Server m  g   lichst gering zu halten  ist eine Technik wie RPC  zur Abstraktion von Vorteil  da der f  r eine Socket  Kommunikation notwendige Protokollentwicklungs  und Programmieraufwand entf  llt  Somit m  ssen  nur die Funktionen am Server und die Funktionsaufrufe am Client programmiert werden und die  Kommunikation   ber das Netzwerk erfolgt quasi automatisch  F  r eine weitere Vereinfachung soll   ten als Parameter f  r Funktionsaufrufe auch komplexe Datentypen bzw  Objekte eingesetzt werden  k  nnen  Eine relativ neue Technik  welche diese M  glichkeit bietet  sind Webservices  SOAP ist eine  programmiersprachen  und plattformunabh  ngige Webserviceimplementierung  welche mittels XML  Nachrichten   blicherweise   ber das HTTP Protokoll  jedoch auch   ber andere Protokolle kommuni   zieren kann  Bei SOAP werden die Methoden  sowie die Datentypen des Webservices mit Hilfe von  WSDL  definiert  somit ist eine genaue Beschreibung des Webservices m  glich  In nahezu jeder Pro   grammiersprache gibt es eine SOAP Implementierung  welche eine sehr einfache Kommunikation   ber  Proxyobjekte erm  glicht  Dabei wird am Client ein Objekt angelegt  welches alle Methoden des Webser     vices zur Verf  gung stellt     3 5 Benutzeroberfl  che    Eine zentrale Anforderung ist die einfache Bedienbarkeit des Cloningsystems  dabei spielt d
48. Programmiersprachenauswahl       3 11 Blockschaltbild          4 Anwendungsentwicklung    4 1 Entwicklungsumgebung    4 1 1 MySQL Datenbank     AND Python  fee Stet ts Meh oot  Sees eS ee ee neg Bd  41 3  PHP     ie Saw My  ab Narr a aka ath Ee hoe ti ea aes  4724 Datenbanken 2 e tis ae te BR call  A aly eebe ch hie ah E ct  oe e  4 3  teuer  Sc Seca ae heroes et  BS ae es Pact A EE E E    4 3 1 Modul  bersicht  4 3 2 Abh  ngigkeiten    4 3 3 Systeminformationen         4 3 4 Partitionierung    4 3 5 Bartitionssicher  ns  ceos x 2 2    28 Dam a Bd Dear Br ir  4 3 6 Abschalten des Rechners                a  Ad  Webservice  rin wen en te AE ee a ee bed rare  4 4 1 Webserviceentwurf       4 4 2 Modul  bersicht  4 4 3 Abh  ngigkeiten    4 4 4 SOAP Implementierung   Zolera SOAP Infrastructure  ZSI               4 4 5 Objektrelationaler Mapper   SQLAlchemy     4 5     Webinterface  4 3 6 2 265006  aka a BG In AR we A he SEA  ASA  _Men  struktur 2 n ar ae en am Dr ann    4 5 2 Seitenaufteilung    4 5 3 Objektrelationaler Mapper   Doctrine    2 22    Emm nn  4 5 4 Webinterface Wrapper       4 6    Installer    2   rido rca ea ne ee rl  4 6 1 T  tigkeiten des Installers            Eon nn    4 6 2 PXE Umgebung    5 Ergebnisse  5 1 Analyse des Quellcodes    18  18  18  19  19  19  21  22  23  24  25  27  33  33  34  35  38  38  41  44  44  45  49  54  Di  59  58    60  60    vi    INHALTSVERZEICHNIS    5 2 Einsatz und Installation im Schulzentrum Ybbs                        4 61  5 3 Ve
49. Wizard fertig durchgegangen wurde  soll ein Link auf die Statusseite angezeigt    werden  e Auf der Statusseite soll in regelm    gen Abst  nden ein automatischer Seitenrefresh erfolgen    e Verwendung von Transaktionen bei Datenbankaktionen    83    ANHANG A  PROJEKT    Sitzungsprotokoll vom 24 4 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes   Das Blockschaltbild tiber den generellen Aufbau des Systems und das EER Diagramm der Datenbank  wurde abgegeben  Weiters wurden alle   nderungsw  nsche  welche in der letzten Besprechung ge  u  ert  wurden  implementiert  Diese wurden vorgezeigt  Weiters ist es m  glich zwischen den Kompressions   verfahren gzip und lzo auszuw  hlen  Falls in einem Raum neue Rechner installiert werden  die dort  zuvor eingesetzten Computer in einen anderen Raum transportiert werden und die dort eingesetzten    Rechner nicht mehr verwendet werden  ist folgende Vorgehensweise zu empfehlen     1  Die Rechner  welche nicht mehr verwendet werden  im Webinterface aus der jeweiligen Gruppe  l  schen oder in eine andere Gruppe verschieben  Die Hostnamen und IP Adressen m  ssen auf    nicht benutzte Werte ge  ndert werden     2  Den Computern  welche von einem Raum in einen anderen   bersiedeln  die in dem neuen Raum  verwendeten IP Adressen und Hostnamen zuweisen und diese Computer in die entsprechende    Gruppe verschieben     3  Die neuen Rechner in die G
50. Zum Erzeugen der vom Server ben  tigten Module wird zus  tzlich der Befehl wsd12dispatch verwendet     wsdl2py   file OpenCloneEngineService wsdl   complexType   extended  wsdl2dispatch   file OpenCloneEngineService wsdl   extended    Listing 4 4  Erstellen der ben  tigten Client Module    Das Listing 4 4 zeigt ein Beispiel zum Erzeugen der Server Module f  r das OpenClone Webservice   Die Parameter von wsdl2py wurden bereits beim Webservice Client besprochen  die Parameter des  wsdl2dispatch Befehls sind sehr   hnlich  Der Parameter   extended bedeutet  wie bei wsd12py  dass  einfache Methoden verwendet werden k  nnen  welche nicht die komplette Nachricht  sondern nur die    Unterelemente des Nachrichtenelements erwartet     Das Listing 4 5 zeigt eine Implementierung einer Methode des OpenClone Webservices und den Start    des Webservices     39    ho  k   O O DO oo pr Ga DN    N N NR k   Fi k   k   ki Fi Fi  DH O O DAN DT FW N    KAPITEL 4  ANWENDUNGSENTWICKLUNG    from OpenCloneEngineService_services import    from OpenCloneEngineService_services_server import OpenCloneEngineService    from ZSI ServiceContainer import ServiceContainer    class OpenCloneEngineServicelmpl  OpenCloneEngineService    def A Es CHEO     OpenCloneEngineService __init__ self  impl self       Implementierung der logon Methode   def logon self  host      Status Element anlegen  status   logonResponse   new_status       value Attribut setzen  status set_attribute_value  0     return status      Serve
51. abelle in der Datenbank  Im Listing 4 12 wird das Einf  gen eines Tupels in die Tabelle    operati     on_ shutdown    gezeigt     OperationShutdown  shutdown   new OperationShutdown          shutdown  gt id       wird automatisch gesetzt   shutdown  gt task_id   2     shutdown  gt sequence   1     shutdown  gt type      shutdown        shutdown  gt mode      poweroff         shutdown   gt save        Listing 4 12  Einf  gen eines Tupels in    operation_ shutdown       Um ein Tupel aus der Relation operation    auszulesen und dabei auch gleich die Attribute der speziellen  Relation zu erhalten  wiirde in anderen objektrelationalen Mappern mit dem Statement Operation    operation   Doctrine_Query  create    gt from Operation   Diese Abfrage w  rde ein Array von Ob   jekten der Klasse    Operation    liefern  tiber welche man auch auf die Attribute der speziellen Klasse   zugreifen kann  Die spezielle Klasse und das Objekt davon werden normalerweise vom Mapper selbst  nach dem Wert    type    Feld des Objektes von der Klasse    Operation    ausgew  hlt  Unter Doctrine funk   tioniert diese Vorgehensweise jedoch leider nicht so einfach  Um an die Information eines Tupels einer  speziellen Klasse zu gelangen  muss zuerst das Tupel der generellen Relation verarbeitet werden  Je  nach Wert des Attributes  type    muss dann ein Tupel aus der speziellen Relation ausgelesen werden   Bezogen auf die Relationen    operation    und    operation_ shutdown    muss im Tupel der Relation    
52. ach dem Verteilen des Images gleich bleibt  Die  Zeile sieht nach der   nderung folgenderma  en aus  UUID  lt UUID des Dateisystems gt    Weiters  sollte diese   nderung in jeder Zeile gemacht werden  in der eine Partition mit der Festplatten ID    angegeben ist     e In der Datei  boot grub menu lst muss jene Zeile angepasst werden  die mit kernel beginnt  In  dieser Zeile wird das Root Dateisystem ebenfalls mit root  dev disk by id  lt Festplatten ID gt   angegeben  Dies ist in root UUID  lt UUID der Festplatte gt  zu   ndern  damit nach der Imagever   teilung auf jedem Computer der Kernel auf der richtigen Festplatte gefunden und das System    gestartet werden kann     Es wurde ein Test mit SuSE 11 1 durchgef  hrt  Bei diesem Betriebssystem waren die genannten   n     derungen n  tig  um erfolgreich ein Image anlegen und wieder verteilen zu k  nnen     Ein Image verteilen    Um ein bereits angelegtes Image auf einen oder mehrere Rechner zu verteilen  steht ebenfalls ein Wizard    zur Verf  gung  Er ist unter dem Men  punkt Deployment Wizard erreichbar     Im ersten Schritt muss das Image ausgew  hlt werden  welches verteilt werden soll  Auf der Auswahlseite  werden alle verf  gbaren Images inklusive Partitionen angezeigt  Diese Seite ist in Abbildung B 6 zu    sehen  Durch einen Klick auf Next gelangt man zum n  chsten Schritt     Auf der nun erscheinenden Seite werden die Rechner gew  hlt  auf welche das Image verteilt werden  soll  Dabei werden alle zur Zeit im OpenClone
53. andenes Image soll auf mehrere Clients synchron   bertragen werden  Dies wird mit dem  Einsatz von Multicast   bertragung realisiert  Das Image wird dabei nur einmal in das Netzwerk  gesendet  Im Gegensatz zu einem Broadcast  wo alle Computer des selben Subnetzes das Image    empfangen w  rden  erhalten es bei Multicast nur jene Computer  welche es ben  tigen     2 3 Vergleich bereits existierender Systeme    Dieser Vergleich dient dem Aufzeigen von St  rken und Schw  chen von bestehenden Cloningsystemen   Weiters beinhaltet er eine individuelle Stellungnahme zu jedem Produkt mit Informationen zum prak     tischen Imagingvorgang und eventuell dabei aufgetretene Schwierigkeiten     KAPITEL 2  ANALYSE    2 3 1 Produkt  bersicht    Folgende Produkte wurden verglichen     e Acronis SnapDeploy 3 f  r Workstation  e DRBL 1 9 1 26  Clonezilla Server Edition   e FOG 0 23    Norton Ghost 2005    OpenClone  die im Rahmen der Diplomarbeit angefertigte Cloningl  sung    Bei den beiden kostenpflichtigen Produkten von Acronis und Norton wurden Testlizenzen verwendet     um den praktischen Test durchf  hren zu k  nnen     2 3 2 Testsystem    Zum Messen der   bertragungsdauer eines Abbildes wurden zwei Rechner direkt mittels einem Crossover   Netzwerkkabel verbunden  sodass eine Gigabit Verbindung hergestellt war  Bei einer Verwendung eines  Switches zwischen den beiden Testcomputern muss darauf geachtet werden  dass entweder das Span   ning Tree Protocol zur G  nze deaktiviert oder die Init
54. anderen Schulen und  Institutionen zur Verf  gung gestellt     Ergebnisse             Seite 1 von 2       HOHERE TECHNISCHE LEHRANSTALT fiir Informationstechnologie    ht     YBBS AN DER DONAU  Ce a    bildung mit zukunft   Ausbildungsschwerpunkt  Netzwerktechnik           OpenClone Client Verwaltungsclient  OpenClone Server    OpenClone Client    Die Grafik zeigt den grundsatzlichen Aufbau von OpenClone  Der  Verwaltungsclient greift auf das Webinterfaces des OpenClone Servers  zu  welcher die OpenClone Clients steuert    Typische Grafik  Foto etc      mit Erlauterung     Opencione Wel       g      E    tei Bearbeiten    e ET  a       6                                gt  System Overview   Image Creation Wizard    gt   Depolyment Wizard     Advanced     Logout OpenClone   gt  Select host m HOST   Select disk Boot 1D Hostname IP Address MAC Address Boottime     Additional info 21 WS 10 010 192 168 10 10 0011d80adf83 2009 04 12 20 49 24  DISK  Address Size  MiB Model number Serial number   dev sda 38158 Net multiboot   01 03 579 8608 05 19 04  Partitions   Number Record type File system Operating System  1 primary vfat  2 primary ext3  3 extended  5 logical swap  image name  Image compression  gzip Y  Operation after creation   None ly  Finish  Fertig      Die Grafik zeigt das OpenClone Webinterface  welches zur Steuerung  des Cloningsystems dient  Dargestellt ist der letzte Schritt des  Asisstenten zur Erstellung eines Festplattenabbildes eines Rechners        Teilnahme an Wet
55. ation  e openclone webservice database        database bietet eine vereinfachte  f  r das Webservice optimierte Schnittstelle zu SQLAI     chemy    35    KAPITEL 4  ANWENDUNGSENTWICKLUNG     E   RegisterRequestType             host  1  1  Host     RegisterResponseType     s     e  status  1  1  Status     E   LogonRequestType   s   e  host  1  1  Host   E   LogonResponseType   ses  e  status  1  1  Status                      HI     E   NextOperationRequestType          e  hostid  1  1  Hostldentifier                E   NextOperationResponseType         status  1  1  Status   e  operation  0  1  Operation                   E   StatusUpdateRequestType           sl  e  statusupdate  1  1  StatusUpdate            E   StatusUpdateResponseType         status  1  1  Status   e  nextupdate int                     E   LogoffRequestType     s   e  hostid  1  1  Hostidentifier   E   LogoffResponseType     ses  e  status  1  1  Status       Abbildung 4 4  Webservice Elemente        tablemapping beinhaltet die Klassendefinitionen der Tabellen  e openclone webservice webservice        webservice beinhaltet die Klasse zum Steuern des Webservers        engineservice beinhaltet die Implementierung der Webservice Methoden  von OpenClo     neEngineService_ services server abgeleitet         OpenCloneEngineService services server stellt die Schnittstelle zur Implementie     rung der Webservice Methoden dar  Automatisch generiert  siehe 4 4 4         OpenCloneEngineService services types stellt 
56. ationen    Beim Registrieren und Einloggen werden die aktuellen Systeminformationen zum OpenClone Webser   vice tibertragen  Diese Systeminformationen sind teilweise zur Funktion des Cloningsystems notwendig   z B  Netzwerkschnittstelle  Festplatten  Partitionen  und teilweise nur zur Information des Benutzers  im Webinterface  z B  Prozessor  Arbeitsspeicher  notwendig  Aus welchen Quellen diese Informationen    gewonnen werden  zeigt die Tabelle 4 1                             Information Quelle  Prozessoren Datei  proc cpuinfo  Arbeitsspeicher Datei  proc meminfo  Netzwerkschnittstelle Externes Programm  sbin ifconfig  Partitionen Datei  proc partitions  Festplattendetails Direkt tiber ioctl    Externes Programm  sbin hdparm  Partitionsdetails Externes Programm  sbin fdisk  Dateisystem Externes Programm  lib udev vol_id       Master Boot Record  Direkter Zugriff  siehe 4 3 4   Extended Boot Record    Seriennummer Externes Programm  usr sbin dmidecode                   Tabelle 4 1  Verwendete Systeminformationen und deren Quellen    Zum Auslesen des WWN  World Wide Name  der Festplatten  der weltweit eindeutigen Kennung  wird  das Programm hdparm verwendet  Dieses gibt den WWN jedoch vor der Version 9 2 in einem falschen  Format aus  sodass er nicht mehr eindeutig ist  In der am Client eingesetzten Ubuntu Liunx Version    8 10 Hardy Heron wird die hdparm Version 8 9 mitgeliefert  somit ist mit dem aktuellen System das    24    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Auslesen de
57. bank sowie dem Dateisystem  des Servers dar  Die Kommunikation erfolgt mit dem SOAP Protokoll  welches auf der Webservice  Architektur beruht  Das Webservice wurde in Python implementiert und verwendet die Zolera SOAP  Infrastructure  ZSI    eine Implementierung des SOAP Protokolls  und den objektrelationalen Mapper  SQLAlchemy   zum Zugriff auf die Datenbank  Der Einsatz der Zolera SOAP Infrastucture wird im  Kapitel 4 4 4 noch n  her erkl  rt und der Einsatz von SQLAlchemy im Kapitel 4 4 5        21 Frei verf  gbar unter http    pywebsvcs sourceforge net      Frei verf  gbar unter http    www sqlalchemy org     33    KAPITEL 4  ANWENDUNGSENTWICKLUNG    4 4 1 Webserviceentwurf    Das Webservice wird durch eine WSDL   Datei beschrieben  Diese beinhaltet alle Methoden des    Webservices und kann auch die dazugeh  rigen Datentypen beinhalten     Das Webservice wurde haupts  chlich mit Hilfe des grafischen Designers der Entwicklungsumgebung    Eclipse entworfen  welcher die Arbeit erleichtert  jedoch trotzdem Kenntnisse tiber WSDL fordert     Aufbau einer WSDL Datei      Service  Jedes Webservice hat einen Namen und kann eine oder mehrere Endpunkte mit einer    Adresse beinhalten  wobei jeder Endpunkt ein bestimmtes Binding hat     Binding  Jedes Binding hat einen Schnittstellentyp mit Anforderungen an ein bestimmtes Da     tenformat     Schnittstellentyp  Jeder Schnittstellentyp beinhaltet bestimmte Operationen mit den ben  tig     ten Ein  und Ausgabenachrichten     Nachricht 
58. beiten Ansicht Chronik Lesezeichen Extras Hilfe                   vi v    Y    amp  Y  9   http j localhost openclone webinterface src  menu create amp site create2 y    gt   Google e                          System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   Logout U pen ke lone     Select host Address Size  MiB  Model number Serial number     Select disk CH  dev sda 38158 Net multiboot   01 03 579 8608 05 19 04     Additional info Partitions   Number Record type File system Operating System  1 primary vfat  2 primary ext3  3 extended  5 logical swap    Next  Fertig         Abbildung B 4  Auswahl der Festplatte im Image Creation Wizard    Nach der Selektion eines Rechners muss im zweiten Schritt eine seiner Festplatten gew  hlt werden  von  der das Abbild erstellt werden soll  Es werden alle Festplatten des Computers inklusive zugeh  riger    Partitionen angezeigt  Hat man eine Festplatte  gew  hlt  Abbildung B 4   gelangt man wieder mit    88    ANHANG B  BENUTZERHANDBUCH    einem Klick auf Next zum letzten Schritt des Wizards     OpenClone Webinterface   Mozilla Firefox ella ER    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe          EI Se     fe    Ka Je   http   localhost openclone webinterface src  menu create amp site create3 W     fay  c  e                                                      gt  System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   zs Logout U penClone     Select host M HOST     Select disk   Bo
59. ber die Untersttitzung von kom   plexen Datentypen mehrparametrige Methoden  wie auch im OpenClone Webservices verwendet  er     reicht werden     Die Abbildung 4 3 bietet eine   bersicht   ber das Webservice mit Service  Binding  Schnittstellentyp     Operationen  Nachrichten und den zugeh  rigen Elementen                                               i amp  OpenCloneEngineService  DO     OpencloneEngineService     OpenCloneEngineServiceSOAP      register  http   openclone lan Open      Diinput P param  E  RegisterRequest    output   F ret  E  RegisterResponse     logon  D input ir param  e  LogonRequest   lt  output P ret  e  LogonResponse      logoff  D1imput P param  E  LogoffRequest   loutput   P ret  e  LogoffResponse      nextOperation  Diinput P param  El NextOperationRequest   loutput   FP ret  e  NextOperationResponse   ZS statusUpdate  input P param    el StatusUpdateRequest   loutput   P ret  e  StatusUpdateResponse                Abbildung 4 3  Webservice Ubersicht  WSDL     In der Abbildung 4 4 werden die Elemente der Nachrichten mit ihren Unterelementen dargestellt     Die Abbildung 4 5 stellt die in der WSDL Datei definierten und bei den Elementen verwendeten  Datentypen dar     4 4 2 Moduliibersicht    In diesem Abschnitt werden die einzelnen Module beschrieben     e openclone webservice        main beinhaltet den Servercode  Hintergrunddienst  Signalbehandlung  und startet den    standalone Webserver des Webservices        config enthalt die Standardkonfigur
60. binterface w  rde gen  gen  Es w  re auch  akzeptabel  die Konfiguration nicht automatisch zu erzeugen  weil eine   nderung dieser nicht    sehr h  ufig erfolgt     e Einige Befehle m  ssen im System als Benutzer root ausgef  hrt werden  Dazu w  re es m  glich   einen Public Key Exchange f  r SSH durchzuf  hren und danach auf localhost zu verbinden  oder  man verwendet das sudo Kommando und schr  nkt die Berechtigungen so ein  dass bestimmte    Benutzer mit Rootrechten bestimmte Skripte ausf  hren d  rfen  Dies w  re die bessere L  sung    Zu Erledigendes  Es soll mit Herrn Professor Ungerb  ck   ber Webservices gesprochen werden  weil er in diesem Gebiet    viel Erfahrung hat     75    ANHANG A  PROJEKT    Sitzungsprotokoll vom 5 12 2008    Teilnehmer    e DI  FH  Georg Ungerb  ck  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes   Es wurden verschiedene Programmiersprachen zu Webservices verglichen  F  r den Einsatz als SOAP  Server ist PHP eher ungeeignet  weil es zu wenige Funktionen bietet  Ein Webservice zwischen Daten   bank und Webinterface ist eventuell zu aufw  ndig und zu zeitintensiv  SOAP sollte mit Python gut  funktionieren  Mit Ruby hat Herr Professor Ungerb  ck selbst noch keine Erfahrung  Der Einsatz von  WSDL ist nicht unbedingt empfehlenswert  Man sollte die Funktionen am Client und Server festlegen   Bei einer   nderung des Protokolls wird meistens ein komplett neues Web Service generiert und das    alte aus Kompatibilit  ts
61. che nachfragt  welche  Sprache ftir die Ausgaben benutzt werden soll  haben gezeigt  dass eine weit verbreitete Sprache als  Standardsprache sinnvoll ist  Somit fiel die Entscheidung  Englisch als Standardsprache fiir das We   binterface zu verwenden  sehr einfach  da das Projekt zudem als OpenSource Projekt ver  ffentlicht    werden soll und fiir einen m  glichst grofen Personenkreis einsetzbar sein soll     3 6 Hostmanagement    Wie bereits erw  hnt ist das Hostmanagement beim Cloningsystem FOG sehr gut gel  st  daher soll  das eigene Cloningsystem einen   hnlichen Ansatz verfolgen  Dabei sollen von jedem Rechner Infor   mationen gespeichert werden  Diese Informationen unterteilen sich in jene  die fiir die Funktion des  Cloningsystems notwendig sind  wie beispielsweise die verf  gbaren Festplatten des Rechners  sowie den  Partitionen darauf und jenen Informationen  die nur den Benutzer unterst  tzen sollen  wie der ein   gebaute Prozessor  Arbeitsspeicher und die Seriennummer des Rechners  Die Hosts sollen dabei nicht  h  ndisch vom Benutzer erfasst werden m  ssen  sondern m  glichst automatisch in das System integriert  werden  Dazu ist es notwendig alle ben  tigten Informationen automatisch am Client zu erheben und    bei der Registrierung  sowie beim Login zum Server zu   bertragen     Um eine einfache Handhabung des Systems zu gew  hrleisten  sollen die einzelnen Hosts zu Gruppen zu   sammengefasst werden k  nnen und Aktionen im Webinterface  wie das Wiederherstellen e
62. clone engine    python 1610  sh 4       825    openclone webservice    python 751  sh 74       647    openclone installer    sh 647       0          openclone database        none           Tabelle 5 1  SLOC pro Verzeichnis                      Sprache   SLOC   Prozent  php 2566 45 30   python 2361 41 68   sh 737 13 01              Tabelle 5 2  SLOC Summe pro Sprache       Frei verf  gbar unter http    www dwheeler com sloccount     2Source Lines Of Code    60    KAPITEL 5  ERGEBNISSE             Summe effektiver Quellcodezeilen  SLOC  5 664  Entwicklungsaufwand gesch  tzt  Personenjahre  Personenmonate  1 24  14 82    COCOMO Basismodell  Personenmonate   2 4    KSLOC        Projektdauer geschatzt  Jahre  Monate  0 58  6 96      COCOMO Basismodell  Monate   2  5    Personenmonate        Geschatzte durchschnittliche Anzahl an Entwickler  Aufwand Dauer    2 13   Geschatzte Gesamt Entwicklungskosten US  166 886   Durchschnittliches Gehalt   US  56 286 Jahr  Overhead   2 40                       Tabelle 5 3  SLOCCount Statistik    5 2 Einsatz und Installation im Schulzentrum Ybbs    F  r den Einsatz im Schulzentrum Ybbs wurde eine virtuelle Maschine mit Ubuntu Linux 8 04 Hardy    Heron und der OpenClone Software eingerichtet  Die virtuelle Maschine l  uft unter VMware Server 2       Im Schulnetzwerk sind die Computer nach den R  umen in Subnetze eingeteilt  Um von jedem ge   w  nschten Raum mit der virtuellen Maschine kommunizieren zu k  nnen  muss f  r diese im jeweiligen  Subne
63. d das Tupel der    image_ partition     mit dem    id    Wert    1    ausgelesen und mit einem eigenen Statement gel  scht  Danach kann das Tupel    der Tabelle    image    gel  scht werden  Dieser Vorgang wird im Listing 4 16 gezeigt       Tupel aus Tabelle    image_partition    mit id 1 auslesen    imagePartition   Doctrine_Query  create    gt from    ImagePartition      gt where      id 1       gt execute        Tupel loeschen    imagePartition 0   gt delete         Tupel aus Tabelle    partition    loeschen   Doctrine_Query  create    gt delete     gt from     Partition       gt where    id 1      gt   execute      Listing 4 16  L  schen eines Tupels mit einer Beziehung  bei der die Attribute der Beziehung gleichzeitig    Prim  rschl  ssel sind    4 5 4 Webinterface Wrapper    Die einzige Operation  bei der das Webinterface Zugriff auf das lokale Dateisystem der Serverfestplatte  ben  tigt  ist jene zum L  schen bereits angelegter Festplattenabbilder  Diese Abbilder befinden sich in  einem Verzeichnis  auf das jener Benutzer  unter dem der Apache Webserver Prozess l  uft  im Fall  von Ubuntu Linux   www data      keine Schreibrechte besitzt  Diese Ma  nahme wurde aus Sicherheits   gr  nden getroffen  Es darf nur der Benutzer    openclone websrv    auf das Verzeichnis zugreifen  welcher  das Image anlegen und wieder f  r   bertragungen zu Computern lesen darf  Weiters geh  rt das Ver   zeichnis der Gruppe  openclone     welche ebenfalls Schreibrechte auf das Verzeichnis be
64. die vom Webservice eingesetzten kom     plexen Datentypen als Klassen zur Verf  gung  Automatisch generiert  siehe 4 4 4     36    KAPITEL 4  ANWENDUNGSENTWICKLUNG       TT Host                     string                                                    E  Hostidentifier            mac string                                                                                                                                             hostname string     serial_no string Device    E hostid Hostidentifier    E  devices Device   Device  E  Device  E  Device  E  Partitiontable     E  parts  0    Partition   O processor_no int O size int   address string     O vendor_id string O size int      model name string O sector_size int      mhz float    model no string     O bogomips float O serial_no string      cache int   firmware_rev string    O core_id int O wn int    O cpu_cores int O cylinder int f    heads int    O sectors int d       e  partitiontable  0  1  Partitiontable  Partition  record_typeType   E  Partitiontable  Sr string Epa 10m Paion 1   os string A             O no    record_type  O bootable    O partition_type    0 start_lba   O sectors   O start_head    start_sector     start_cylinder    end_head        end_sector   O end_cylinder     record_typeType     boolean    int  int  int                SJ Operation                  disk_signature string  O bootloader string    O partitions string    extended string    unused string                    e  Operation          O id
65. duelle Einsatzbedingungen abstimmen zu k  nnen  Eine zuk  nftige  Weiterentwicklung wird auch von Seiten des Projektteams selbst erfolgen  F  r die Implementierung    von Funktionen in naher Zukunft wurde eine Roadmap erstellt  Diese ist im Kapitel 5 3 3 einzusehen     64    Literaturverzeichnis     AA09      BMO9      Bov09      Bra09      Com09a      Com09b      Doc09      Fre09      Gmb09      GS09      Inc09a      Inc09b     ATA ATAPI COM  How It Works  Partition Tables  http    ata atapi com hiwtab html   April 2009     Joshua Boverhof and Charles Moad  ZSI  The Zolera Soap Infrastructure   User   s Gui   de  http   sourceforge net project downloading php group_id 26590 amp filename   guide zsi 2 0 pdf amp a 54532226  April 2009     Joshua Boverhof  ZSI   RPC Style binding  extended generation  http   osdir com ml   python  pywebsvcs  general 2005 10 msg00005  htm1  April 2009     Padraig Brady  Details of GRUB on the PC  http   www pixelbeat org docs disk    April 2009     Hewlett Packard Company  Management and Configuration Guide for the HP ProCur   ve Switches 1600m  2424m  4000m  and 8000m  ftp   ftp hp com pub networking   software 59692320 pdf  April 2009     Hewlett Packard Company  ProCurve Series 2500 Switches Management  and Configuration Guide  ftp   ftp hp com pub networking software   2500 MgmtConf ig Oct2005 59692354  pdf  April 2009     Doctrine  Doctrine 1 1 Documentation  http    www doctrine project org     documentation  April 2009     Free Software F
66. e Imagingdauer von mehr als 10 Stunden waren  mit Abstand die schlechtesten Werte im Vergleich  Auch die R  cksicherung dauerte mit   ber 8 Stunden  inakzeptabel lange  Trotz des Webinterface und der geringsten Imagegr    e von 42676 MiB disqualifi   zierte sich FOG mit diesen langen Durchf  hrungszeiten f  r den sinnvollen Einsatz als Cloningsoftware   Erstaunlich dabei war  dass die mit ext3 formatierte logische Partition noch langsamer als die beiden  NTFS Partitionen gesichert wurden  obwohl Partimage eigentlich wesentlich besser mit ext3 als NTFS    zurechtkommen sollte  weil NTFS von Partimage nur experimentiell unterst  tzt wird     KAPITEL 2  ANALYSE    2 3 7 Norton Ghost 2005    Damit Norton Ghost auf den Clients mittels PXE verwendet werden konnte  mussten zuerst ein DHCP   und TFTP Server fiir Windows am Server installiert werden  denn Norton Ghost enthalt keinen der  beiden Dienste  Es wurde wie bereits bei SnapDeploy dhcpsrv in der Version 1 6 4 als DHCP Server  verwendet  F  r den TFTP Server kam tftpd32 in Version 3 28 zum Einsatz     Nach erfolgreicher Konfi   guration der Dienste konnte der Client aufgrund eines zu grofen PXE Images  welches am Client nicht  gespeichert werden konnte  nicht booten  Der Fehlercode lautete  PXE E79  NBP is too big to fit in  free base memory  Dieses PXE Image wurde mit Norton Ghost erstellt  Damit der Client mittels PXE  booten konnte  wurde ein PXE Image mithilfe der Universal TCP IP Network Bootdisk erstellt   Der  Client sta
67. e dem Client zugeordnet sind  Weiters kann der Benutzer folgende Informationen des Computers   ndern         Hostname  IP Adresse      MAC Adresse        Seriennummer    e grouplist php  Diese Seite listet alle verf  gbaren Hostgruppen auf und bietet die M  glichkeit  neue Gruppen zu    erstellen sowie bereits vorhandene Gruppen wieder zu l  schen     e groupedit php  Auf dieser Seite werden alle Hosts  die einer gew  hlten Gruppe angeh  ren  aufgelistet und k  nnen    vom Benutzer aus dieser Gruppe entfernt werden     e tasklist php  Alle angelegten Tasks werden auf dieser Seite angezeigt  Hier besteht die M  glichkeit  einen neuen    Task anzulegen     e taskedit php  Diese Seite zeigt alle Operationen an  die dem gew  hlten Task zugeordnet sind  Diese Operationen  k  nnen vom Task entfernt werden  Weiters k  nnen neue Operationen zum Herunterfahren oder    Neustarten eines Clients zum gew  hlten Task hinzugef  gt werden     e imagelist php  Hier werden alle verf  gbaren Festplattenabbilder dargestellt  Diese Abbilder k  nnen vom Benut     zer gel  scht werden  Weiters kann der Name der Images ge  ndert werden     e status php  Auf dieser Seite werden alle laufenden und bereits beendeten Tasks inklusive deren Fortschritt    angezeigt  Damit hat der Benutzer eine   bersicht   ber den Status seiner angelegten Aufgaben     e settings php  Diese Seite bietet die M  glichkeit  Benutzername und Passwort f  r die Authentifizierung zu      ndern     48    1  2  3  4  5    KAPITEL 4
68. ed     Logout             Hostlist Description    Add Task       Grouplist   gt  Tasklist Task ID Task Description     Imagelist O 1 shutdown      Status       Settings  Delete v  ra             Fertig         Abbildung B 13  Taskliste im Men   Advanced    Taskliste    Die Seite  welche bei Klick auf Tasklist erscheint  listet alle im System eingetragenen Tasks auf  Man    kann auf dieser Seite nach Eingabe eines Tasknamen und Klick auf Add Task einen neuen Task anlegen     95    ANHANG B  BENUTZERHANDBUCH    Weiters kann ein Task ausgew  hlt werden und durch Auswahl von delete im Drop Down Men   gel  scht  werden  Die Tasklistseite ist in Abbildung B 13 zu sehen     OpenClone Webinterface   Mozilla Firefox EI    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe          EI v    fe    s  Je   http   localhost openclone webinterface src index php menu advanced amp site taskedit amp taskid 1 LY   fay  5 e                 OpenClone        gt  System Overview   Image Creation Wizard   Depolyment Wizard   Advanced   Logout       Hostlist Operation ID Operation Type Operation Options     Grouplist O 1 shutdown Mode  poweroff     Tasklist      Imagelist   Delete Operation s         Status Se     Settings         Shutdown Y   Add Operation         Fertig         Abbildung B 14  Seite zum Editieren eines Task    Wenn man im Drop Down Men   edit w  hlt  gelangt man auf eine Editierseite  auf der man dem  Task zugewiesene Operationen l  schen oder dem Task eine neue Operation hi
69. ederherstellung 32    SLOG pr    Verzeichnis e ea a EL ee aan oe a ee a 60  SLOC Summe pro Sprache    2    aaa 60  SsLOC Count  Statistik   2 24 4 408 Fa a eR ee a 61    69    Listings    4 1  4 2  4 3  4 4  4 5  4 6  4 7  4 8  4 9  4 10  4 11  4 12    4 13    4 14  4 15  4 16    B 1  B 2  B 3  B 4  B 5  B 6    DirectSwap Abbild Format            nn nn 28  Erstellen der ben  tigten Client Module  38  Aufruf einer Webservice Methode mit ZSI in Python                     39  Erstellen der ben  tigten Client Module  39  Implementierung eines Webservice Servers mit ZSI in Python                40  Ausschnitt aus dem OpenClone Tablemapping  tablemapping py              41  Einsatz von SQL  lchemy    42  Erweiterter Ausschnitt aus dem OpenClone Tablemapping  tablemapping py         43  Doctrine    user    Klasse    2    ho 2m aan na ah ne e e Sa 49  Doctrine    Operation    Klasse       22  2    on nn nn 50  Doctrine    OperationShutdown    Klasse e  51  Einf  gen eines Tupels in  operation shutdown    e  52    Auslesen eines Tupels aus der Relation    operation    und der zugeh  rigen speziellen Rela     tion    operation_shutdown      nme 52  L  schen eines Tupels mit der Doctrine Query Language                   53  L  schen eines Tupels mit einer Beziehung e  53    L  schen eines Tupels mit einer Beziehung  bei der die Attribute der Beziehung gleich     zeitig Prim  rschl  ssel and  54  Ubuntu Netzwerkkonfiguration  ete network interfaces     2    22 222    98  Umwandlung der N
70. ehrere Computer  ein kommerzielle Produkt verwendet  Dabei wird die Steuerung   ber einen zentralen Multicast Server  vorgenommen  der   blicherweise auf dem Rechner im Raum ausgef  hrt wird  auf dem der Lehrer  arbeitet  Es ist also erforderlich  in jedem Raum diesen Server zu betreiben  Die Images f  r die Clients    werden auf einer portablen Festplatte gespeichert  um sie in jedem Raum einsetzen zu k  nnen     2 1 1 Cloningvorgang    Um die Clients f  r den Cloningvorgang vorzubereiten  wird auf ihnen das Programm sysprep ausge   f  hrt  Dieses dient nach dem Vorgang zur Integration des Clients in die Schuldom  ne  Die Computer  werden aus der Windows Dom  ne herausgenommen  Weiters wird von AVG ein Tool zur Vorbereitung    des Clonens der Antivirus Programmlizenz ausgef  hrt  Nach dieser Vorbereitung werden die Compu     KAPITEL 2  ANALYSE    ter  von denen ein Festplattenimage erstellt  oder ein Abbild auf die Festplatte tibertragen werden  soll    ber PXE gebootet  Dabei wird ein eigens angepasstes PXE Image vom zentralen DHCP TFTP  Server tibertragen  Auf dem Computer mit installiertem Multicast Server wird dann der Vorgang zur  Imageerstellung beziehungsweise R  cksicherung gestartet  sobald sich alle Clients   ber PXE gemel   det und das Ghost Programm gestartet haben  Die R  cksicherung auf mehrere Computer wird als  Multicast   ber das Netzwerk   bertragen  Nach erfolgreich ausgef  hrtem Cloningvorgang werden die  Computer neu gestartet  Dabei wird automatisch das
71. eilt werden k  nnen  Softwareteile einfach durch eine  gew  nschte andere Software ersetzt werden k  nnen und es einfach m  glich ist  neue Komponenten zum    System hinzuf  gen zu k  nnen           Abstract    Automation of installation routines in networks    This diploma thesis deals with automatic installation systems  cloning systems  which offer the po   sibility to transfer an exact copy of the content of a computer   s harddisk to other ones  With such  systems  the administrative effort for the installation of an operating system and used programs can    considerably be reduced  this aaves costs     Already existing cloning systems are compared to each other  Based on this comparison  a new system  is developed  A commercial product has been used in Schulzentrum Ybbs a d  Donau until now  school  year 2008 2009   but both this programme and the compared systems  which are freely available  can   t  provide the desired range of functions  for this reason an own system is implemented  This system should  focus on easy usage and extensive automation  Due to the planned publication of the programme as    open source  the usage is not restricted to the Schulzentrum     The project is divided into 3 phases corresponding to the organization of the diploma thesis     e In analysis phase the comparison of already existing cloning system is made   e The application layout phase is used for finding suitable methods for the software implementation     e In the application develo
72. en  Dabei muss die Adresse des Servers  auf dem das  Webinterface installiert ist  in die Adressleiste eingegeben werden  um auf die Startseite zu gelangen   Auf der Startseite angelangt  muss man sich mit Benutzernamen und Passwort authentifizieren  um    weitere Aktionen durchfiihren zu k  nnen  Diese Eingabemaske wird in Abbildung B 1 veranschaulicht     OpenClone Webinterface   Mozilla Firefox my Fon  x    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe    vi we    If O Y Je   http   localhost openclone webinterface src  E   E v  3 e                         OpenClone       System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   Logout       r System  Hostname  ms msi  Kernel  Linux 2 6 28 11 generic    AMD Turion tm  64 X2 Mobile Technology TL 60 AMD Turion tm  64 X2 Mobile    Processor  Technology TL 60                   Load Average  0 89 0 46 0 18  Memory  1420332 kB   1932312 kB free  Swap  4008208 kB   4008208 kB free  Disk  free  r Software  Version  0 1  Fertig         Abbildung B 2  System Overview  Ubersichtsseite     Nach erfolgreicher Authentifizierung ist eine Seite ersichtlich  welche Informationen tiber den Server   auf dem das Webinterface installiert ist  und die Versionsnummer der Software anzeigt  Diese Seite ist    auch unter dem Men  punkt Overview zu erreichen  Diese Seite wird in Abbildung B 2 dargestellt     Nach allen get  tigten Anderungen kann man sich im Menii unter dem Punkt Logout wieder abmelden   Dabei ist zu beac
73. en Linux Kernel 2 6 27 einsetzt  wurde das Problem somit    behoben     NFS Server konfigurieren    Konfiguration des NFS Servers nach den zuvor abgefragten Einstellungen des Benutzers     Pfad f  r Images einrichten    Der Image Speicherort wird  falls notwendig  angelegt und die entsprechenden Rechte gesetzt     OpenClone Webservice installieren und einrichten    Das OpenClone Webservice wird installiert und die Konfigurationsdatei mit den Benutzereinstellungen  gef  llt  Au  erdem wird ein Datenbankbenutzer f  r den Zugriff vom Webservice auf die OpenClone    Datenbank angelegt     OpenClone Datenbank installieren    Anlegen der OpenClone Datenbank am MySQL Server     57    KAPITEL 4  ANWENDUNGSENTWICKLUNG    OpenClone Webinterface inkl  Wrapper installieren und einrichten    Das OpenClone Webinterface wird installiert  ein Datenbankbenutzer am MySQL Server fiir den Zu   griff des Webservices auf die OpenClone Datenbank angelegt und die Konfigurationsdatei erstellt  Die  Konfiguration von sudo fiir den Webinterface Wrapper muss zur Zeit noch h  ndisch mit dem Programm    visudo erfolgen   siehe Kapitel 4 5 4     Benutzer im OpenClone Webinterface anlegen    Es wird in der OpenClone Datenbank ein Benutzer mit dem Usernamen    admin    und dem Passwort       openclone    angelegt     4 6 2 PXE Umgebung    Preboot eXecution Environment ist ein Verfahren zum Booten von Rechnern   ber ein Netzwerk  Dazu  werden verschiedene Standards eingesetzt und auch teilweise erweitert  F  
74. ervice    Listing D   PXELINUX Konfiguration COA80D f  r das Subnetz 192 168 13 0    B 3 2 SSL Unterst  tzung f  r das Webinterface    Um eine verschl  sselte   bertragung zwischen dem Webbrowser eines Verwaltungsclients und dem  Apache Webserverdienst auf dem Server  auf welchem das Webinterface vorhanden ist  zu erm  glichen   muss die SSL Unterst  tzung f  r Apache eingerichtet sein  Unter Ubuntu Linux 8 04 Hardy Heron sind  folgende Schritte notwendig  um nicht nur   ber den HTTP Port 80  sondern auch   ber den HTTPS    Port 443 mit dem Webserver kommunizieren zu k  nnen     1  Im ersten Schritt muss ein Zertifikat mit dem Befehl sudo openssl req  new  x509  days 365   nodes  out  etc apache2 ssl apache pem  keyout  etc apache2 ssl apache pem erstellt wer   den  Dabei gibt der Wert hinter dem Argument  days die G  ltigkeitsdauer des Zertifikates an     2  Der Apache Webserver muss so konfiguriert werden  dass er auch auf Port 443 f  r Anfragen zur  Verf  gung steht  Um dies zu erm  glichen wird die Datei  etc apache2 ports conf um folgende  Zeilen erg  nzt  Listing B 4      1  lt IfModule mod_ssl c gt   2 Listen 443  3  lt  IfModule gt     Listing B 4  Apache Portkonfiguration    3  Der Apache Webserver muss mit dem Befehl  etc init d apache2 reload die Konfiguration neu    laden     4  Das SSL Modul wird mittels sudo a2enmod ssl aktiviert     99    ANHANG B  BENUTZERHANDBUCH    oF W Ne    aD      Fur die Seite mit aktiviertem SSL wird ein virtueller Host angelegt  Dazu m
75. es Abbildes  f  r den Einsatz  ungeeignet  Die einfache Verwaltung von Hosts und Gruppen ist ebenfalls nur in FOG m  glich  Acro   nis SnapDeploy  Clonezilla Server Edition sowie Norton Ghost bieten hier keine M  glichkeiten  Ein  weiterer Nachteil von SnapDeploy und Ghost sind die anfallenden Lizenzkosten    Der Vergleich und die daraus gewonnenen Informationen waren Motivation zur Entwicklung einer eige   nen Cloningsoftware  Sie soll so entwickelt werden  dass sie besser im Schulzentrum eingesetzt werden  kann  als das aktuell verwendete Produkt  Dabei ist auf einfache Bedienbarkeit und weitestgehende  Automatisierung der Imaging  und R  cksicherungsprozesse Wert zu legen  Das System befindet sich  ebenfalls in der Vergleichstabelle  OpenClone 0 1 0  siehe Tabelle 2 1        3Frei verf  gbar unter http   tftpd32 jounin net      Frei verf  gbar unter http    netbootdisk com    KAPITEL 2  ANALYSE       Acronis SnapDeploy 3    fiir Workstation    DRBL 1 9 1 26  Clone     zilla Server Edition        Betriebssystemuntersttitzung       b                      Server Windows   Linux  Client unabh  ngig unabh  ngig  Benutzeroberfl  che  Server  Text Grafisch Web  Grafisch Text  Client  Text Grafisch Web  Grafisch Text  Client Bootmethoden          CD ROM       Netzwerk  PXE Wake on LAN     dl    Ke       geforderte Benutzerinteraktionen                   am Server  Abbilderstellung  riicksicherung    keine notwendig notwendig  notwendig  am Client  Abbilderstellung  r  cksicherung 
76. etzadresse in Hex e  99  PXELINUX Konfiguration COA80D f  r das Subnetz 192 168 13 0               99  Apache Portkonfiguration    99  Apache Konfiguration des virtuellen Hosts mit Spil  100  IGMP Unterst  tzung f  r VLAN 10 aktivieren e  101    70    Anhang A    Projekt    Dieser Abschnitt enthalt die Anforderungsspezifikation  den Projektplan  Verantwortlichkeiten und    Sitzungsprotokolle aus dem Bereich Projektmanagement     A 1 Anforderungsspezifikation    In diesem Abschnitt sind Pflicht  sowie Wunschanforderungen und Ausgrenzungskriterien aufgelistet     Weiters werden Kriterien angef  hrt  die von den Diplomanden selbst definiert wurden     Pflichtanforderungen    Die Pflichtanforderungen umfassen folgende Punkte     e Vergleich von bestehenden Cloning Systemen mit Beriicksichtigung der Anforderungen des Schul     zentrums Ybbs a d  Donau  e Entwickeln eines Cloning Systems  welches den Anforderungen des Schulzentrums geniigt        Es muss m  glich sein  von Ziel Rechnern mit den Betriebssystemen Windows  XP  Vista    Linux  SuSE 11  eine komplette Sicherung einer Festplatte zu erstellen und diese auf einem    anderen Ziel Rechner wiederherzustellen        Es muss auch eine Kombination von einem Windows und Linux Betriebssystem  Dual Boot    Systeme  gesichert und wiederhergestellt werden k  nnen       Die Sicherungen sollen auf einem zentralen Server gespeichert werden       Es soll eine parallele Wiederherstellung auf mehrere Ziel Rechner mittels Multicast m  glich
77. face Wrapper muss noch h  ndisch erledigt werden  Mit dem  Programm visudo muss die Datei  etc sudoers so angepasst werden  dass der Benutzer  un   ter dem der Apache Prozess l  uft  ohne Passwortabfrage das Webinterface Wrapper Skript mit    Rootrechten ausf  hren darf    Das Installationsskript kann auch f  r ein Update der OpenClone Software genutzt werden  Dazu wird  das Skript erneut mit Rootrechten aufgerufen  Die Frage  ob die Software auf den aktuellsten Stand  gebracht werden soll  ist mit y zu beantworten  Nach dieser Abfrage wird ein OpenClone Update durch   gef  hrt  Bei Erfolg wird die Zeile     Update finished     ausgegeben     Weitere Informationen zum Installationsskript sind im Kapitel 4 6 zu finden     B 2 Handhabung des Webinterface    Dieser Abschnitt beschreibt die richtige Verwendung des Webinterface  Grunds  tzlich werden alle Text   ausgaben auf dem Bildschirm in englischer Sprache dargestellt  Diese Anleitung ist jedoch in deutscher    Sprache verfasst  lediglich auf den Bildern  die zur Veranschaulichung dienen  ist der englische Text          vorhanden   Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe 5    dea v    or    v      httpy localhost openclone webinterface sre  y    gt   soogle e                   OpenClone       Login       Username   admin  Password  oo         Login            Fertig         Abbildung B 1  Login Bildschirm    86    ANHANG B  BENUTZERHANDBUCH    Allgemeines    Das Webinterface ist   ber einen Browser zu bedien
78. fach   ten Webservice Methoden  welche nicht die gesamte Nachricht  sondern nur die Unterelemente des  Nachrichtenelements als Parameter erwarten und die Nachricht selbst anlegen  Dadurch wird trotz der  Limitierung auf eine einteilige Nachricht  wie bereits im Kapitel 4 4 1 erw  hnt  ein direkter Aufruf einer    Webservice Methode mit mehreren Parametern erm  glicht     Unter den erzeugten Modulen befindet sich eines mit dem Namen OpenCloneEngineService_services   welches die Proxy Klasse OpenCloneEngineServiceSOAPSOAP zum Aufrufen des Webservices enth  lt  Da   bei wird der Aufruf so vereinfacht  dass er sich kaum von einem lokalen Funktionsaufruf unterscheidet   Im Listing 4 3 wird ein einfaches Beispiel zum Aufruf einer Webservice Methode gegeben  Dabei wird  die Methode logon des Webservices http    localhost 18080 OpenCloneEngineService  mit dem    Host Element als Parameter aufgerufen     from OpenCloneEngineService_services import        Anlegen des Proxy Objekts fuer den Webserviceaufruf   service   OpenCloneEngineServiceSOAPSOAP  url    http   localhost  18080   OpenCloneEngineService          Anlegen eines neuen host Elements   host   logonRequest    new_host        Anlegen eines neuen hostid Elements   host Hostid   host new_hostid       Setzen des mac Attributs   host  Hostid set_attribute_mac    000000000000       ae Muatiewaem cer Me waecls    status   service logon host     Listing 4 3  Aufruf einer Webservice Methode mit ZSI in Python    Webservice Server    
79. g  den Aufbau des    Dateisystems zu kennen  Deshalb nur die bekannten Dateisysteme unterst  tzt werden     Die OpenClone Engine bietet aktuell zwei Implementierungen     e Partlmage  welche eine Schnittstelle zur Imagingsoftware Partimage darstellt    27    KAPITEL 4  ANWENDUNGSENTWICKLUNG    e DirectSwap  welche die Tools vol_id und mkswap verwendet  um Linux Swap Partitionen m  g   lichst effizient zu sichern und dazu ein eigenes Image Format implementiert  welches im Listing 4 1    dargestellt wird    Beide Implementierungen gehen nach der intelligenten Methode vor und unterstiitzen unterschiedliche  Dateisysteme  welche in der Tabelle 4 5 genauer aufgelistet sind  Weitere interessante Implementierun   gen waren Schnittstellen zu den Imagingutilities Partclone und ntfsclone  welche auch in die Liste der    unterstiitzten Dateisysteme aufgenommen wurden     Die Auswahl der Implementierung  welche zur Sicherung einer Partition eingesetzt wird  kann vom  Webinterface aus getroffen werden  Dafiir wird das Dateisystem der Partition  das in den Systeminfor     mationen  die beim Registrieren und Einloggen gewonnen wurden  enthalten ist  verwendet        Implementierung   Imagingutility   Unterstiitzte Dateisysteme       DirectSwap   Linux Swap   PartImage Partimage 0 6 7   stable  Ext2 Ext3  ReiserFS  FAT16 32   HPFS  JFS  XFS   beta  UFS  HFS   experimental  NTFS     Partclone 0 1 0   Ext2 Ext3 Ext4  ReiserFS  Reiser4  XFS   FAT  HFS Plus  NTFS     ntfsclone NTFS              
80. gr  nden parallel weiter betrieben     76    ANHANG A  PROJEKT    Sitzungsprotokoll vom 17 12 2008    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer    e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes  Es wurde je ein Webservice Beispiel in Python und Ruby vorgezeigt  Danach wurde die Funktionsweise    des Cloningsystems besprochen     e Systemstart        In der Datenbank eingetragene Rechner werden nur tiber PXE gestartet  wenn Aufgaben    f  r ihn verf  gbar sind         Neue Rechner werden nur   ber PXE gestartet  wenn die automatische Registrierung im    Webinterface aktiviert ist         Wenn ein Rechner   ber PXE gestartet wird  und das Cloning System nicht gestartet ist  soll  das lokale Betriebssystem am Client geladen werden  Alternativ k  nnte man vom DHCP  Server keine Antwort schicken oder dem Client kein Bootimage schicken  Dies wiirde jedoch    zu einer gr  feren Verz  gerung des Bootvorganges fiihren     e Zwischen Cloningserver und  client wird ein Webservice eingesetzt  dessen Funktion in einer  WSDL Datei beschrieben wird  Mittels Hilfswerkzeugen k  nnen aus dieser Datei sowohl bei Py   thon als auch bei Ruby Funktionsgrundgeriiste erstellt werden  mit denen sehr einfach ein Client    oder Server programmiert werden kann     e Der DHCP Server kann auf verschiedenen Systemen laufen  Entweder er wird nur am Cloning  Server verwendet oder es k  nnen zwei DHCP Server eingesetzt werden  Einer ist fiir normale  DHCP A
81. h eine sehr lange Kompressi   onszeit erkauft  Wie in der Tabelle 4 7 erkannt werden kann  schneidet lzma in der auf die Netzwerk     bertragung ausgelegte Wertung durch die lange Kompressionszeit eher schlecht ab  Auf den vorderen  Pl  tzen liegen lzop und gzip  welche deutlich schneller komprimieren als lzma  Bei der Sicherung ist  lzop durch seine kurze Kompressionsdauer unschlagbar  Denn lzop ist die einzige Kompressionssoftwa   re  die sogar weniger Zeit zur Kompression ben  tigt  als die   bertragung dauert  Das bedeutet  dass  lzop auch f  r h  here   bertragungsgeschwindigkeiten als 100 MBit geeignet ist und der Engpass trotz    Kompression nicht am CPU  sondern weiterhin am Netzwerk liegt        13Frei verf  gbar unter http   www gnu org software gzip      Frei verf  gbar unter http   www bzip org    Frei verf  gbar unter http    www 7 zip org sdk html  ISFrei verf  gbar unter http    www 1zop org     29    KAPITEL 4  ANWENDUNGSENTWICKLUNG                                                 Kompression   Dekompression   Gr    e   Kompres   Format  CPU Zeit CPU Zeit    MiB    sionsgrad  lzma L9 1 12 14 7 2 26 0 921 6 69 22   lzma L7  Std   49 14 8 2 30 2 944 1 68 46   lzma L1 9 20 9 2 42 1   1051 2 64 89   bzip2 L9  Std   16 34 9 5 09 5   1112 2 62 85   bzip2 L6 15 21 6 4 48 7   1114 1 62 79   gzip L9 5 32 7 0 37 3   1121 5 62 54   gzip L6  Std   3 06 2 0 37 4   1123 7 62 47   bzip2 L1 12 36 2 3 32 6   1130 8 62 23   gzip L1 2 11 7 0 36 3   1164 1 61 12   lzop L9 24 05 6 
82. hat nur eine Beziehung zur Partition eines Images  d h  es muss beim Backup und Restore fiir jede    Partition eine eigene Image Operation angelegt werden     4 3 Engine    Die Engine ist jener Softwareteil  der am Client gestartet wird und sich um die Ausfiihrung der Clo   ningoperationen kiimmert  Die Engine wurde in der Programmiersprache Python implementiert und  ist nur fiir den Betrieb auf einem Linux System geeignet  Im Regelfall wird die Engine in einem tiber    PXE auf dem Client gebootetem Ubuntu Linux System ausgefiihrt   siehe 4 6 2     Die Engine verbindet sich beim Starten mit dem OpenClone Webservice und   bertr  gt daher die ak   tuellen Systeminformationen  logon   Wenn der Login fehlschl  gt  weil der Client noch nicht registriert  ist  startet die Engine die automatische Registrierung  register   Nachdem die Engine erfolgreich beim  Webservice eingeloggt ist  fragt sie nach einer neuen Operationen  nextOperation  und f  hrt diese im  Anschluss aus  Sobald die Operation fertig ausgef  hrt wurde  wird der neue Status zum Webservice  iibertragen  statusUpdate  und eine neue Operation angefordert  nextOperation   Dieser Ablauf wird  in der Abbildung 4 2 grafisch verdeutlicht     Folgende Operationen werden unterst  tzt     e Paritionierung  PartitionOperation   e Partitionssicherung  ImageOperation     e Abschalten des Rechners  ShutdownOperation     21    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Erfolgreich   ja    Nachste Operation abrufen  Operation ausf  hren DI
83. hes  f  r DHCP die Client Kennung Linux ipconfig verwendet  Wenn der DHCP Server so konfiguriert wird   dass er nur Anfragen von diesen beiden Client Kennungen beantwortet  werden anderen DHCP Clients  im Netz  wie etwa der Windows DHCP Client nicht beeinflusst  Weiters wird das Programm ipconfig  unter Linux   blicherweise nur dann eingesetzt  wenn das Root Dateisystem auf einem NFS Server  liegt  also werden auch die normalerweise unter Linux verwendeten DHCP Clients  wie der ISC DHCP  Client  nicht beeinflusst  So k  nnte ein anderer DHCP Server die Beantwortung von Anfragen anderer  DHCP Clients   bernehmen     59    Kapitel 5    Ergebnisse    5 1 Analyse des Quellcodes    Zur Analyse des im Rahmen der Diplomarbeit entwickelten Source Codes wurde das Programm SLOC     Count  von David A  Wheeler eingesetzt  es ermittelt die Anzahl der Zeilen und stellt einige Berech     nungen zum ungef  hren Zeitaufwand  der Projektdauer und den m  glichen Kosten an  Dabei ignoriert    SLOCCount von selbst automatisch generierte Dateien  wie etwa die Webservice Client und Server    Module  Leerzeilen und Kommentare werden ebenfalls ignoriert  somit beinhaltet die Statistik wirklich  nur effektiv geschriebene Quellcode Zeilen  SLOC    Die in Tabelle 5 1  Tabelle 5 2 und Tabelle 5 3    pr  sentierten Ergebnisse sind mit den Standardoptionen von SLOCCount erstellt worden        SLOC    Verzeichnis    SLOC pro Sprache       2578    openclone webinterface    php 2566  sh 12       1614    open
84. hten  dass alle fertigen Tasks und deren zugeh  rigen Operationen aus der Datenbank    gel  scht werden  um die Status  und Taskliste tibersichtlich zu halten     Anlegen eines Images    Um unkompliziert ein Festplattenabbild eines Clients erzeugen zu k  nnen  steht ein entsprechender    Wizard unter dem Men  punkt Image Creation Wizard zur Verf  gung     Als ersten Schritt muss der Computer ausgew  hlt werden  von dem ein Image angelegt werden soll   Der gew  nschte Computer muss zu diesem Zeitpunkt die OpenClone Engine ausf  hren  damit er in der  Liste der Rechner ersichtlich und ausw  hlbar ist  Mit einem Klick auf Next gelangt man zum n  chsten  Schritt  Die Auswahl des Computers wird in Abbildung B 3 gezeigt     87    ANHANG B  BENUTZERHANDBUCH       OpenClone Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe                      e vs    Orn G y    6    http  localhost openclone webinterface src  menu create amp site createl y   Gl  sooale al                      System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   zs Logout U pen ke lone     Select host Boot ID Hostname IP Address MAC Address Boottime     Select disk E  21 WS 10 010 192 168 10 10 0011d80adf83 2009 04 12 20 49 24     Additional info A  33   O 22 WS 10 020 192 168 10 20 0011d80ae593 2009 04 12 21 33 06       Fertig         Abbildung B 3  Auswahl des Rechners im Image Creation Wizard       OpenClone Webinterface   Mozilla Firefox    Datei Bear
85. i    hostlist php    verwendet werden  Es wurde versucht  m  glichst wenig von  der Programmlogik direkt in die Dateien zu implementieren  welche vom Webbrowser aufgerufen wer   den  Stattdessen werden dort  wenn m  glich  fast nur Funktionen der eingebundenen Funktionsdateien  verwendet  Dies soll die   bersichtlichkeit und Strukturierung des Quellcodes f  rdern  Weiters befinden    sich die anzuzeigenden Seiten und die Funktionsdateien jeweils in einem separaten Verzeichnis     Im Folgenden werden die Funktionen der einzelnen Seiten und der dazugeh  rigen Funktionsseiten kurz    beschrieben     45    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Allgemeine Seiten    Dieser Abschnitt behandelt allgemeine Seiten  die keinem Wizard zugeordnet sind oder unter dem    Men  punkt    Advanced    zu finden sind     e index php Dies ist die Startseite des Webinterface  Sie wird bei jedem Request eines Webbrowser  aufgerufen und stellt das gesamte Design dar  Weiters bindet sie die jeweils angeforderte Inhalts   seite ein  Es sind Funktionen zur Benutzerauthentifizierung  also zum Anmelden  und ebenfalls    zum Abmelden implementiert     e overview php Diese Seite zeigt Informationen   ber den Computer an  auf dem das Webinterface  installiert ist  Der Benutzer hat so einen schnellen   berblick   ber die Auslastung des Rechners  sowie der Festplatten  Weiters wird die Versionsnummer der OpenClone Webinterface Software    angezeigt     Image Creation Wizard    Der Image Creation Wizard hat die A
86. ialisierungsphase zeitlich so beschr  nkt wird    dass ein PXE Client eine erfolgreiche DHCP Anfrage stellen kann  Dazu muss diese Spanning Tree  Phase f  r den Port  an welchen der Computer angeschlossen ist  abgeschlossen sein  bevor der Client  das Timeout f  r die DHCP Anfrage erreicht  Der Computer wiederholt die DHCP Anfrage mehr   mals  dadurch wird jedoch auch die Netzwerkverbindung neu initialisiert  Dies f  hrt wiederum zu einer    erneuten Spanning Tree Initialisierungsphase     Im Folgenden werden die beiden Testrechner Server und Client beschrieben  In beiden Computern  war bis auf die Festplatte die gleiche Hardware verbaut  Auf der zu sichernden Festplatte war ein  Dualbootsystem mit den Betriebssystemen Windows XP mit Service Pack 2 und SuSE Linux 10 3  installiert  Als Bootmanager diente GRUB     Gemeinsame Hardware  e Name des Komplettsystems  Fujitsu Siemens P5925  e Prozessor  Intel Core2 Duo E6550  Taktfrequenz  2 33 Gigahertz     e RAM  2 Gigabyte    e Netzwerkkarte  1 Gigabit Intel PRO 1000 GT Desktop Adapter       17 B  durch den Einsatz von Rapid Spanning Tree    KAPITEL 2  ANALYSE    Server    e Festplatte  Samsung Spinpoint T166 HD501LJ  500 Gigabyte Kapazit  t  16 Megabyte Cache   SATA2 Anschluss     Client    e Festplatte  Seagate Barracuda 7200 10 ST3250310AS  250 Gigabyte Kapazit  t  8 Megabyte Ca   che  SATA2 Anschluss         Prim  re Partition 1  39998 Megabyte Gesamtgr  fe  11974 Megabyte belegt   Dateisystem   NTFS v3 1  Inhalt  Windows XP 
87. ie Schnitt   stelle zum Benutzer nat  rlich die gr    te Rolle  Die Benutzeroberfl  che soll au  erdem einfach zu instal   lieren sein oder bestenfalls gar keine Installation ben  tigen  Wie im Vergleich der bestehenden Systeme  erkannt werden konnte  ist hierf  r ein Webinterface sehr von Vorteil  da es von jedem Rechner aus mit  einem Browser ohne schwierige Abh  ngigkeiten oder l  stigen Installationsaufwand verwendet werden  kann  Au  erdem ist das Webinterface plattformunabh  ngig und k  nnte z B  sogar mit einem Mobil   telefon   ber WLAN aufgerufen werden  Ein weiterer Vorteil ist  dass ein Software Update nur am  Server durchgef  hrt werden muss und automatisch die neue Version f  r alle Clients verf  gbar ist  Bei  einer eigenst  ndigen Software zur Verwaltung m  sste diese im Zuge eines Updates am Server ebenfalls  auf allen Clients aktualisiert werden  Weiters soll die Benutzeroberfl  che das Webinterfaces durch den    Einsatz von Assistenten zum Erstellen und Wiederherstellen von Images m  glichst einfach gehalten        Remote Procedure Call  2 Web Service Description Language    13    KAPITEL 3  LOSUNGSANSATZ    werden  Die etwas geringere Interaktivit  t eines   blichen Webinterfaces k  nnte durch den Einsatz von  AJAX  sehr gut ausgeglichen werden  Ein Einsatz von AJAX ist jedoch nicht Teil dieser Diplomarbeit   sondern  wie in Kapitel 5 3 3 beschrieben  fiir die Zukunft geplant     Die Erfahrungen mit Clonezilla Live  welches beim Starten in chinesischer Spra
88. ige wichtige Merkmale jedes der verglichenen Systeme aufgezeigt  Durch  die Informationen aus den Tests werden die Nachteile dieser L  sungen zusammengefasst und die Mo     tivation  ein eigenes System zu implementieren  beschrieben     Im folgenden Kapitel 3  L  sungsansatz  wird erl  utert  mit welchen Hilfsmitteln und Methoden die Im   plementierung der eigenen L  sung erfolgt  Dabei wird das gesamte entworfene System beschrieben und  veranschaulicht  Weiters werden wichtige Teilkomponenten und deren Implementierungsansatz festge   halten  Im Anschluss werden zur Verf  gung stehende Programmiersprachen verglichen und geeignete    Sprachen f  r die Entwicklung der Einzelteile der Gesamtl  sung ausgew  hlt     Das Kapitel 4  Anwendungsentwicklung  widmet sich der Implementierung der neu entworfenen L     sung  Dabei wird n  her auf die verwendeten Techniken eingegangen  welche zur Entwicklung beitragen   Es werden die aufgetretenen Schwierigkeiten und die Vorgehensweise der Bew  ltigung dieser beschrie   ben  Zur praktischen Veranschaulichung der Entwicklung dienen diverse praktische Sourcecodebeispie   le  Dieses Kapitel soll den Einsatz und die grundlegende Funktionsweise der verwendeten Techniken    herausheben     Im abschlie  enden Kapitel 5  Ergebnisse  ist eine Auswertung des entwickelten Systems aus der Sicht  des Projektmanagements enthalten  Des Weiteren wird die Ver  ffentlichung der Software als Open  Source Projekt erl  utert und in einer Roadmap die weiteren T 
89. ines Abbilds     direkt auf eine gesamte Gruppe angewendet werden k  nnen     3 7 Datenhaltung    Das System ben  tigt viele Informationen  um funktionst  chtig zu sein  Zum einen m  ssen Informatio   nen   ber die Clients  sowie Informationen   ber die Images und die Images selbst permanent gespeichert  werden  Zum anderen m  ssen die Informationen   ber die aktuell laufenden Cloningvorg  nge tempor  r  gespeichert werden  Um diese Unmenge an Daten zu speichern  eignet sich am besten eine Datenbank   Einzig zur Speicherung der Images selbst ist durch die hohen Dateigr    en eine Datenbank eher unge   eignetn und ein Dateisystem besser geeignet  Als Datenbank Server wird MySQL eingesetzt  da es frei    verf  gbar ist und einen geringen Resourcenverbrauch hat     3 8 Datenbankzugriff    Das Webservice und das Webinterface greifen direkt auf die Datenbank zu  Dabei m  ssen aber   b     licherweise alle SQL Abfragen h  ndisch geschrieben werden  Um dies zu vereinfachen ist der Einsatz       3 Asynchronous JavaScript and XML    14    KAPITEL 3  LOSUNGSANSATZ    von objektrelationaler Abbildung m  glich  welche auf einer h  heren Abstraktionsschicht operiert  Die  objektrelationale Abbildung erm  glicht den Zugriff auf die relationale Datenbank mittels Objekten  und bietet somit einen programmiersprachennahen Ansatz f  r den Zugriff  Diese Funktionalit  t wird  in vielen Programmiersprachen durch Bibliotheken erm  glicht  wie beispielsweise durch Hibernate in    Java       blicher
90. isse   ber den inneren Aufbau der f  r Client und Server generierten Module notwendig     Weiters sind bei ZSI keine eigenen Fehler Nachrichten m  glich  denn es werden alle Fehler   ber die    Exception ZSI FaultException   bertragen  Dabei wird dem Client ein Ablaufverfolgung  Trace  des       26Frei verf  gbar unter http    winpdb org     40    Oo OD DOT FF Wn Fe      bh ki bah k   Fi Fa Fi E  oO No Ou AUNE O    KAPITEL 4  ANWENDUNGSENTWICKLUNG    serverseitig laufenden Codes als String mitgesendet     Ein weiteres Problem stellt in der aktuellen Version 2 0 von ZSI der Datentyp Base64String dar  Nor   malerweise sollte die Daten eines Base64String Attributs automatisch bei der Ubertragung mit Base64  kodiert und beim Empfang wieder dekodiert werden  ohne den Programmierer des Webservices damit  zu belasten  Jedoch tritt im Kodierungsprozess ein Fehler auf  sodass ein sp  teres das Dekodieren nicht  mehr m  glich ist  Eine Analyse mit dem Netzwerksniffer Wireshark      hat ergeben  dass  amp  xAU VT9Q     amp  xA anstatt des erwarteten Wertes U VT9Q     bertragen wird  Die zus  tzlichen  in HTML kodierten  Anf  hrungszeichen  amp  xA werden vom Empf  nger nat  rlich bereits zum Base64String gerechnet  wel   cher die in Base64 unbekannten Zeichen nicht dekodieren kann  Als Abhilfe wurden alle im Webservice  als Base64String definierten Attribute durch den String Datentyp ersetzt und die Kodierungs  und  Dekodierungsarbeit selbst erledigt     4 4 5 Objektrelationaler Mapper 
91. kt Hostlist f  hrt zu einer Auflistung aktuell eingeschalteter Hosts in OpenClone  Die angezeig   ten Hosts k  nnen durch das Drop Down Men   am Beginn der Seite gezielt ausgew  hlt werden  Durch  Auswahl einer Gruppe werden nur die zu dieser Gruppe geh  rigen Hosts angezeigt  Weiters besteht    die M  glichkeit  Hosts zu selektieren und folgende Operationen auf diese auszuf  hren     92    ANHANG B  BENUTZERHANDBUCH    OpenClone Webinterface   Mozilla Firefox       Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe                   a Se          Y  8 http   localhost openclone webinterface src  menu advanced amp site hostlist v  liv A                       Image Creation Wizard   Depolyment Wizard    Advanced          System Overview    Logout             Hostlist Running Hosts v   O mark Hosts   Show       Grouplist   ee EE F       Tasklist     Imagelist Shown Hosts  2     Status     Settings Boot ID Hostname IP Address MAC Address Group Boottime  O Details 21 WS 10 010 192 168 10 10 0011d80adf83 Testgroup1 2009 04 12 20 49 24  O Details 22 WS 10 020 192 168 10 20 0011d80ae593 Testgroupl 2009 04 12 21 33 06    U Add task to host    Uy    O Change IP Address   Start IP Address     IP Offset       O Change Hostname  Prefix     Starting number       Number offset       O Add Host to Group  Group  Testgroupl Y          bis    Fertig    Abbildung B 9  Hostliste im Men   Advanced    e Ein Task kann den gew  hlten Hosts zugewiesen werden  damit er von diesen ausgef  hrt wi
92. ldung 4 1  gel  scht  welches    1    als Attributwert f  r das Attribut    id       eingetragen hat     Doctrine_Query  create     gt delete    gt from    User      gt where    id 1      gt execute       Listing 4 14  L  schen eines Tupels mit der Doctrine Query Language    Bei Relationen  welche miteinander in Beziehung stehen  m  ssen zuerst alle Tupel aus der Relation ent   fernt oder der Wert des Attributes  welches den Fremdschl  ssel definiert  ge  ndert werden  in welchen  auf den Schl  ssel des zu l  schenden Tupels der anderen Relation verwiesen wird  sonst kann man das  Tupel aus der Relation  auf die verwiesen wird  nicht gel  scht werden  Zur Veranschaulichung werden  die Relationen    host    und    group    aus der Datenkbank verwendet  siehe Abbildung 4 1   Angenommen   die Gruppe mit dem Wert    1    f  r das Attribut    id    soll gel  scht werden  Dies ist jedoch nur m  glich         eingetragen hat    wenn zuvor in jedem Tupel der Relation  hoat   welches    1    als Wert f  r    group_id   also in Beziehung mit der Gruppe mit der id    1    steht   ge  ndert werden  Im Listing 4 15 ist genau    dies dargestellt       Fremdschluessel aendern   hosts   Doctrine_Query  create    gt from    Host      gt where    group_id 1       gt   execute     foreach  hosts as  host       host  gt group_id   NULL    host   gt save     y    Alternative  Hosts loeschen    Doctrine_Query  create    gt delete    gt from    Host       gt where    group_id 1       gt     execute
93. lgt die Konfiguration f  r den DHCP Server  Es sind die Start  und  Endadresse f  r den Bereich anzugeben  welcher vom DHCP Server dynamisch an die Clients vergeben    werden darf     Nach dieser Konfiguration folgt jene des TFTP Servers  Man muss das Verzeichnis angeben  in dem das  PXE Bootimage f  r die Clients liegt  Standardm    ig wird hier  tftpboot verwendet  Anschlie  end wird  das Wurzelverzeichnis f  r den NFS Serverdienst abgefragt  Hier ist  nfsroot voreingestellt  Ist diese  Einstellung vorgenommen  muss noch das Verzeichnis angegeben werden  in dem die Festplattenimages    der Clients gespeichert werden sollen  F  r diesen Wert wird  data als Standard angenommen     Sind all diese Einstellungen vorgenommen  wird die Installation des Systems durchgef  hrt  Es muss  gegebenfalls die Erlaubnis gegeben werden  Softwarepakete vom Internet nachladen zu d  rfen  Bei der  Installation des MySQL Datenbankservers wird das Passwort des Benutzers root f  r den Zugriff auf  den Dienst abgefragt  Dieses Passwort muss ein zweites Mal zur Best  tigung eingegeben werden  Bei  erfolgreicher Installation erscheint die Zeile     Installation finished        Folgende notwendige Einstellungen werden noch nicht vom Installationsskript durchgef  hrt  Diese sind    h  ndisch vorzunehmen     85    ANHANG B  BENUTZERHANDBUCH    e Fiir die Einrichtung des Datenpfades des TFTP Servers muss die Datei  etc inetd conf entspre     chend angepasst werden    e Die Konfiguration fiir den Webinter
94. licherweise bei einem laufenden Betriebssystem nicht garantiert werden kann  Das fiir  die Clientsoftware gestartete Betriebssystem muss also unabh  ngig von der Festplatte im Clientrechner  sein  Dazu gibt es die M  glichkeit ein Betriebssystem von einem Wechseldatentr  ger  also beispielswei   se einer Diskette  CD  DVD oder einem USB Stick  zu starten  Dazu w  re es aber notwendig  f  r einen  Cloningvorgang jeden Client mit einem Wechseldatentr  ger zu starten  was schon bei einer geringen    Anzahl an Rechnern einen erheblichen Aufwand bedeutet  Daher bleibt nur die Option  den Client    11    KAPITEL 3  LOSUNGSANSATZ      ber Netzwerk zu booten  was etwas mehr Einrichtungsaufwand am Server bedeutet  jedoch das Star   ten der Clients mit einem eigenen Betriebssystem sehr vereinfacht  Die bei heutigen PCs eingesetzte    Netzwerk Boot Methode hei  t Preboot eXecution Environment     3 3 Prozessorganisation    Im Vergleich von existierenden Systemen wurde festgestellt  dass nur FOG als einziges Cloningsys   tem der Anforderung zur Verwaltung von Hosts gentigt und alle anderen L  sungen entweder gar keine  oder nur eine geringf  gige M  glichkeit zur Verwaltung bieten  Durch den guten Ansatz von FOG  zur Verwaltung von Hosts wurde dieses n  her analysiert  um der gegebenen Einschr  nkung auf Win   dows Betriebssysteme auf den Grund zu gehen  FOG implementiert mehrere Modi zum Erstellen eines  Abbildes  dabei gibt es einen Modus f  r einzelne NTFS Partitionen  welcher eine Ve
95. m OpenClone Server verfiigbaren Images angezeigt  Aus diesen w  hlt der    Benutzer das gew  nschte Image aus  welches verteilt werden soll     e deploy2 php  Auf dieser Seite werden alle eingeschalteten Clients aufgelistet  Der Benutzer kann einen einzlnen  Client oder eine Gruppe von Clients w  hlen  Ist letzteres der Fall  werden alle Computer  die der  Gruppe angeh  ren  angezeigt  Nun werden die gew  nschten Clients ausgew  hlt  auf welche das    zuvor gew  hlte Abbild   bertragen werden soll     e deploy3 php  Diese Seite zeigt die Festplatten an  auf die das gew  hlte Image   bertragen werden kann  Dabei  werden nur Festplatten dargestellt  welche in jedem Client vorhanden sind und die selbe Ger     teadresse im Clientsystem besitzen  Ist in jedem gew  hltem Client zum Beispiel eine Festplatte  unter der Adresse     dev sda    verf  gbar  wird sie angezeigt  Zus  tzlich wird noch die kleinste  Plattengr    e aus dieser Festplattengruppe angezeigt  Ist diese Gr    e kleiner als die Gr    e des  zu   bertragenden Images  kann diese Festplatte vom Benutzer nicht gew  hlt werden  Aus allen  ausw  hlbaren Festplatten wird eine vom Benutzer selektiert  Das Abbild wird dann auf jedem  Client auf die Festplatte gespeichert  welche die selbe Ger  teadresse hat  die auch die gew  hlte  Festplatte hat  zum Beispiel     dev sda      Bei Bedarf kann auch noch veranlasst werden  dass die    Clients nach der Image  bertragung heruntergefahren oder neu gestartet werden sollen     e de
96. m aktuellen Zeit   punkt  Schuljahr 2008 2009  eine kommerzielle L  sung im Einsatz ist und die verglichenen Systeme   welche frei erh  ltlich sind  nicht den w  nschenswerten Leistungsumfang bieten k  nnen  wird ein eigenes  System implementiert  Dieses soll entsprechend den Anforderungen im Schulzentrum Ybbs a d  Donau  entwickelt werden  Besonderes Augenmerk ist dabei auf einfache Bedienung und m  glichst weitgehende  Automatisierung des Systems zu legen  Durch die geplante Ver  ffentlichung als Open Source Projekt    wird die Einsatzm  glichkeit jedoch nicht nur auf das Schulzentrum beschr  nkt     Das Projekt gliedert sich in 3 Phasen  in welche auch diese Diplomarbeit grob gegliedert ist     e In der Analysephase wird der Vergleich bereits existierender L  sungen durchgefiihrt   e Der Anwendungsentwurf dient zur Findung geeigneter Methoden zur Softwareimplementierung     e In der Anwendungsentwicklung werden die Anforderungen in ein konkretes Softwareprodukt um     gesetzt     Beim Anwendungsentwurf ist darauf zu achten  dass Software  welche von der eigens implementierten  L  sung benutzt wird  unter einer freien Lizenz erh  ltlich ist  Somit besteht das entwickelte System  ausschlie  lich aus freien Komponenten  Dieser Schritt ist notwendig  um eine Ver  ffentlichung als Open  Source Projekt durchf  hren zu k  nnen    Weiters wird in dieser Phase darauf geachtet  ein m  glichst modulares System zu entwerfen  damit die  einzelnen Softwareteile auf mehrere Computer vert
97. mentierung ab  Nach eigenen Recherchen zu den Programmierspra   chen Python und Ruby wurde klar  dass die SOAP Implementierung von Python mit dem Namen  Zolera SOAP Infrastructure  ZSI  eindeutig besser geeignet ist  da die einzige SOAP Implementierung  SOAPAR f  r Ruby anscheinend Probleme mit komplexen Datentypen hat   Wil09  Au  erdem scheint  die Entwicklung von ZSI  nach dem Subversion Repository zu urteilen  sehr aktiv zu sein  Weiters  wurde f  r den Datenbankzugriff unter Python ein objektrelationaler Mapper namens SQLAlchemy  gefunden  welcher durch seinen einfachen Einsatz und seinen gro  en Funktionsumfang sehr vielver   sprechend war  Vorteilhaft ist  dass die f  r den Client ben  tigte Unterprozess Steuerung in Python  sehr einfach mit dem subprocess Modul m  glich ist  Ein weiterer Vorteil der Skriptsprache Python ist  die einfache Syntax  welche auf wenig Formalismus optimiert ist und durch zwingendes Einr  cken der    Codezeilen auch automatisch zu besserer Lesbarkeit f  hrt     Weiters wurde entschieden das Webinterface  welches ohne SOAP Bibliothek auskommt  in der Pro   grammiersprache PHP zu schreiben  da die meiste Erfahrung mit Webanwendungen in PHP vorhanden    war  F  r PHP wurde als objektrelationaler Mapper Doctrine ausgew  hlt     3 11 Blockschaltbild    Das Blockschaltbild  Abbildung 3 1  zeigt den Aufbau des selbst entwickelten Cloningsystems Open     Clone mit den auf das Server  und Client System verteilten Softwarekomponenten  Auf dem Server   
98. n    Zur Installation des Ubuntu Systems fiir Clients werden folgende Schritte ausgefiihrt     e Installation eines minimalen Ubuntu Linux 8 10 Intrepid Ibex Systems  mit debootstrap   e Einrichten des Ubuntu Systems  hostname  fstab   e Updaten des Ubuntu Systems    e Installieren und einrichten eines Kernels fiir PXE    Installation der OpenClone Abhangigkeiten         Python  python        35Frei verf  gbar unter http    subversion tigris org     56    KAPITEL 4  ANWENDUNGSENTWICKLUNG        Zolera SOAP Infrastructure  python zsi       NET 3 Netzwerk Toolkit  net tools        hdparm       dmidecode       lzop        Partimage  partimage     UDPcast  udpcast   e OpenClone Engine installieren  einrichten    e Tempor  re Dateien aufr  umen    F  r die Clients sollte anfangs auch Ubuntu Linux 8 04 Hardy Heron eingesetzt werden  jedoch wurde  bei Tests im Schulzentrum Ybbs festgestellt  dass die On Board Netzwerkkarte einer Fujitsu Siemens   Rechner Serie nicht unterst  tzt wird  Ubuntu 8 04 setzt den Linux Kernel 2 6 24 ein  Eine genauere  Analyse hat gezeigt  dass die Netzwerkschnittstelle des Intel ICH8 Chipsatzes vom Kernel 2 6 24 mit  dem e1000 Treiber unterst  tzt werden sollte  jedoch auf diesem Mainboard Probleme machte  Weiters  wurde herausgefunden  dass ab Kernel 2 6 26 die Unterst  tzung f  r die Netzwerkschnittstelle des Intel  ICHS Chipsatzes vom el000e Treiber   bernommen wurde   Kok09  Mit einer Aktualisierung auf die  Ubuntu Version 8 10 Intrepid Ibex  welche d
99. n   angezeigt    PXELINUX l  dt dabei nicht nur eine einzige Konfiguration vom TFTP Server sondern versucht zuerst  speziellere Konfigurationen zu laden  welche nur f  r den einen Rechner oder eine Gruppe von Rechnern  gedacht ist  Zuerst wird versucht eine Konfiguration mit der MAC Adresse der Netzwerkschnittstelle  zu finden  anschlie  end mit der IP Adresse und dann mit immer gr    er definierten Subnetzen  Falls    keine spezielle Konfiguration vorhanden ist wird die Standardkonfiguration geladen     Linux Netzwerkboot    Das Starten von Linux   ber Netzwerk erfolgt folgenderma  en     e Der Bootloader PXELINUX l  dt den Kernel und das zugeh  rige initrd vom TFTP Server  e Starten des Linux Kernels   e Initialisierung des Kernels und laden der ben  tigten Treiber   e Abgabe der Kontrolle an das im initrd enthaltene init Script   e Konfiguration des Netzwerkinterfaces mit DHCP   e Mounten des Root Dateisystems   ber NFS   e Abgabe der Kontrolle an das init Programm im Root Dateisystem   e Starten der Systemdienste    e Starten der OpenClone Engine    Erweiterte DHCP Server Konfiguration    Um eine flexiblere DHCP Server Konfiguration zu erreichen  kann eine Unterscheidung zwischen den  verschiedenen DHCP Clients anhand der Client Kennung  Vendor class identifier  erfolgen  Beim PXE  Bootvorgang verwendet der DHCP Client immer eine Client Kennung die mit PXEClient beginnt  Im  initrd wird f  r die Konfiguration der Netzwerkschnittstelle das Programm ipconfig verwendet  welc
100. n edit im Drop Down Menii gelangt man auf eine Seite  auf welcher Hosts aus der    gew  hlten Gruppe gel  scht werden k  nnen  Dies ist in Abbildung B 12 veranschaulicht     94    ANHANG B  BENUTZERHANDBUCH       OpenClone Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe                         a M     Y    amp  Vi e  http j localhost openclone webinterface src index php menu advanced amp site groupedit  amp groupid 1 x      coogle e                            System Overview   Image Creation Wizard   Depolyment Wizard   Advanced   Logout U pent lone     Hostlist Boot ID Hostname IP Address MAC Address Boottime     Grouplist O Details 2 WS 20 010 192 168 20 10 0800273638ee 2009 04 09 01 30 13    Tanida O Details 3 WS 20 020 192 168 20 11 000bcd90fb57 2009 02 24 20 42 28     Imagelist PEA     Status  m  Details 4 WS 20 030 192 168 20 12 000bcd90fada 2009 04 12 21 33 08     Settings O Details 21 WS 10 010 192 168 10 10 0011d80adf83 2009 04 12 20 49 24  O Details 22 WS 10 020 192 168 10 20 0011d80ae593 2009 04 12 21 33 06    Delete from Group  Fertig         Abbildung B 12  Seite zum Editieren einer Gruppe    OpenClone Webinterface   Mozilla Firefox mor lia    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe                      vi      Y fe O y   0   http   localhost openclone webinterface srcfindex php rmenu advanced6site tasklist          OpenClone       System Overview    Image Creation Wizard   Depolyment Wizard     Advanc
101. nfragen zust  ndig und der zweite DHCP Server beantwortet nur DHCP Anfragen von  PXE Clients  Dazu miissten die beiden DHCP Server aber so konfiguriert werden  dass sie nur    die jeweiligen Anfragen beantworten     e Wenn alle Clients als ersten Booteintrag PXE eingestellt hatten  k  nnte Wake on LAN verwendet  werden  um nicht jeden Client h  ndisch einschalten zu m  ssen  In der Schule sind in den meisten  Computerr  umen die Rechner jedoch durch einen Schl  sselschalter vom Stromnetz getrennt     Somit muss erst der Strom aufgedreht werden  bevor die Computer gebootet werden k  nnen   Damit ist Wake on LAN hinf  llig     77    ANHANG A  PROJEKT  Sitzungsprotokoll vom 7 1 2009    Teilnehmer    e DI Andreas Brachinger  e DI Christian Hammer  e David Gnedt    e Manuel Steiner    Ort  IT HTL Ybbs a d  Donau    Besprochenes   Es wurde der Datenbankentwurf besprochen  Es ware noch ein Feld fiir die Seriennummer der Computer  optimal  Die Attribute fiir ein Ger  te eines Computers werden automatisch am Client ausgelesen und  bei der Registrierung oder beim Login am Server in die Datenbank eingetragen    Weiters wurde der aktuelle Status erl  utert  Das Clonen einer kompletten Festplatte wird funktionieren   jedoch wird wahrscheinlich zu wenig Zeit sein  um Postcloningoperationen  wie zum Beispiel das Andern  des Hostnamens  zu implementieren  Dazu k  nnte eventuell fertige Software wie ghostwalk oder newsid    verwendet werden     78    ANHANG A  PROJEKT  Sitzungsprotokoll vom 2
102. nzuf  gen kann  Dabei  stehen im entsprechenden Drop Down Men   Shutdown und Reboot zur Verf  gung  Shutdown legt eine  Operation zum Herunterfahren der Clients an  Reboot eine zum Neustart  Diese Einstellungen sind in  Abbildung B 14 ersichtlich     Imageliste    Diese Seite ist unter dem Men  punkt  magelist zu sehen und zeigt alle verf  gbaren Images inklusive  deren Gr    e an  Hier besteht die M  glichkeit  ein einzelnes oder mehrere Images zu l  schen  Alle  mit dem Image in Verbindung stehenden Tasks und deren Operationen werden dabei ebenfalls aus der  Datenbank gel  scht  Weiters kann der Name eines Images ge  ndert werden  Dies ist jedoch nur m  glich     wenn genau ein Image ausgew  hlt ist  Die Auflistung der Images ist in Abbildung B 15 veranschaulicht     Generelle Einstellungen    Der Men  punkt Settings f  hrt zu einer Seite mit generellen Einstellungsm  glichkeiten  In der Version  0 1 0 des OpenClone Webinterface besteht hier lediglich die M  glichkeit  Benutzernamen und Passwort  des aktuell eingeloggten Benutzers zu   ndern  Der Name kann jedoch nur ge  ndert werden  falls noch    keine anderer Benutzer mit gew  nschtem Namen in der Datenbank existiert  Zur Vergabe eines neuen    96    ANHANG B  BENUTZERHANDBUCH       OpenClone Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht    Chronik Lesezeichen Extras Hilfe                         vi Ge    Y    amp  v  9    http localhost openclone webinterface sre index phpzmenu advanced amp site imagelist  
103. objektrelationaler Mapper namens Doctrine ver   wendet  Dieser erm  glicht den Datenbankzugriff unter PHP  wobei der Programmierer auf einem hohen  Abstraktionslevel arbeiten kann  Doctrine ben  tigt mindestens die PHP Version 5 2 3  Die Verwendung    von Doctrine wird im Kapitel 4 5 3 noch genauer erkl  rt     4 5 1 Men  struktur    Nach erfolgreicher Anmeldung des Benutzers mittels Benutzername und Passwort am Webinterface    erscheinen ihm folgende Men  punkte zur Auswahl     e Overview  e Image Creation Wizard  e Deployment Wizard    e Advanced    44    KAPITEL 4  ANWENDUNGSENTWICKLUNG        Hostlist      Grouplist      Tasklist      Imagelist      Status        Settings    In der Abbildung 4 6 ist die Mentistruktur grafisch veranschaulicht  Die Aufteilung der Seiten  die  sich hinter den einzelnen Men  punkten befinden  sowie eine Beschreibung dieser  wird im folgenden    Abschnitt  4 5 2 Seitenaufteilung  erl  utert                    Abbildung 4 6  Men  struktur des OpenClone Webinterface             4 5 2 Seitenaufteilung    Das OpenClone Webinterface besteht aus mehreren PHP Seiten und zugeh  rigen PHP Dateien mit  Funktionen  die der Seite zur Verf  gung gestellt werden  Die Datei mit den Funktionen hat den gleichen  Namen wie die anzuzeigende Seite selber  jedoch mit dem Postfix    func     So existiert zum Beispiel eine  Seite    hostlist php     welche die Datei    hostlist_ func php    einbindet  Diese Datei enth  lt alle relevanten  Funktionen  die in der Date
104. on    34  welche jedem die Nutzung  auch f  r kommerzielle Zwecke  erlaubt  Auch Ver  nderungen sind je        3 Als Freeware verf  gbar unter http   www  vmware com de products server      Lizenztext verf  gbar unter http   www gnu org licenses gpl html    61    KAPITEL 5  ERGEBNISSE    dem erlaubt  jedoch wird bei jeglicher Verbreitung einer ver  nderten sowie der Original Version die    Offenlegung des Quellcodes gefordert     Zur Lizenzierung sind folgende Schritte notwendig     e Einf  gen einer Lizenzdatei ins Projektverzeichnis mit dem gesamten Lizenztext  e Einf  gen eines Lizenz Headers in jede Quellecodedatei und wenn m  glich auch in Mediendateien    e Angabe des Copyrights in jeder Quellcode  und Mediendatei    5 3 2 Hosting    Der Hostinganbieter stellt alle fiir das Projekt ben  tigten Dienste zur Verfiigung  dazu z  hlt fiir unser  Projekt hauptsachlich die Versionverwaltung Subversion zur Quellcodeverwaltung und eine Webseite    zur Pr  sentation des Projektes     Obwohl es zahlreiche kostenfreie Hostinganbieter gibt  fiel die Entscheidung auf den Dienst Savan   nah  der Free Software Foundation  da dieser komplett unabh  ngig von einzelnen Unternehmen ist     Au  erdem basiert der Dienst Savannah selbst rein auf OpenSource Software     Das OpenClone Projekt wurde bei Savannah eingereicht und unterl  uft zur Zeit eine Aufnahme  ber   pr  fung  Wenn alle Anforderungen erf  llt sind und das Projekt freigeschalten wird  sollte die Website  bald unter der URL http
105. opera   tion    f  r  type    der Wert    shutdown    gesetzt sein  Danach kann das zugeh  rige Tupel aus der Relation  operation shutdown    abgefragt werden  indem eine Selektion des    id    Attributes auf den Wert des    id     Attributes des Tupels der    operation    Relation angewendet wird  Danach erh  lt man die Attributwerte    f  r die Attribute der speziellen Relation  Das Listing 4 13 veranschaulicht diese Vorgehensweise       Auslesen des generellen Tupels     operation   Doctrine_Query  create    gt from    Operation      gt where    id 1       gt   execute        Hier kann auf die generellen Attribute zugegriffen werden   echo  operation O J  gt type       Annahme   operation  gt type      shutdown        shutdownOperation   Doctrine_Query   create     gt from    OperationShutdown      gt   where     id      operation 0    gt id    gt execute          Hier kann auf die speziellen Attribute  im Fall von OperationShutdown   mode  zugegriffen werden    echo  shutdown0peration  0    gt mode     Listing 4 13  Auslesen eines Tupels aus der Relation    operation    und der zugeh  rigen speziellen Relation     operation shutdown       52    N    os OND oOo Pe Ga    10  11  12    KAPITEL 4  ANWENDUNGSENTWICKLUNG    L  schen von Tupeln    Das L  schen eines Tupels einer Tabelle kann grunds  tzlich sehr einfach mit der Doctrine Query Lan   guage erledigt werden  Im Listing 4 14 wird mit einer Doctrine Query Language Abfrage jenes Tupel  aus der Tabelle  user   siehe Abbi
106. ot ID Hostname IP Address MAC Address Boottime     Additional info 21 WS 10 010 192 168 10 10 0011d80adf83 2009 04 12 20 49 24  m DISK  Address Size  MiB  Model number Serial number   dev sda 38158 Net multiboot   01 03 579 8608 05 19 04  Partitions   Number Record type File system Operating System  d primary vfat  2 primary ext3  3 extended  5 logical swap  Image name  IMAGE1   Image compression    gzip zi  Operation after creation    None         Finish    Fertig         Abbildung B 5  Zus  tzliche Einstellungen im Image Creation Wizard    Als letzte Aktion wird eine Seite mit Informationen zum selektierten Rechner und der Festplatte  angezeigt  Man muss nun noch einen Namen f  r das Image vergeben  Weiters kann man zwischen  den beiden Kompressionsarten gzip und lzo w  hlen  Bei Verwendung von gzip kann eine kleinere  Imagegr    e erzielt werden  jedoch ist das Erstellen des Images mit lzo schneller erledigt  Bei Bedarf  kann auch noch ausgew  hlt werden  ob der Rechner  von dem das Image erzeugt wird  nach dem  Vorgang heruntergefahren oder neu gestartet werden soll  Die letzten Einstellungen f  r den Wizard  sind in Abbildung B 5 dargestellt  Mit dem Klick auf Finish wird der Imagingprozess in die Datenbank  eingetragen und kann vom Client abgearbeitet werden  Es wird nun ein Link sichtbar  mit dem man    auf die Statusseite wechseln kann  wo man den Fortschritt des Prozesses verfolgen kann     Am OpenClone Server wird f  r das Image ein Verzeichnis namens  lt Image ID g
107. oundation  Inc  Gzip User   s Manual  http   www  gnu  org software gzip   manual index html  April 2009     Kortenbrede Datentechnik GmbH  Symantec Ghost Solution Suite 1 1 EDU Preis  http     www educheck de shop shop39974 h1291 htm  April 2009     S  Gerhold and M  Sonnenfroh  Betriebssysteme SS07   Kapitel 2  Boo   ten  https   www vs informatik uni ulm de wiki pub Main BetriebsSystemeSS07   BS_Kapitel2_print pdf  April 2009     Acronis Inc  Acronis Snap Deploy 3 f  r Workstation  http   www acronis de   enterprise products snapdeploy   April 2009     Acronis Inc  Acronis Snap Deploy 3 Handbuch  http    download acronis com pdf UG_  ASD3_DE pdf  April 2009     65    LITERATURVERZEICHNIS     Kok09      LNP09      Obe09      Par09a      Par09b      SBO9      Sed09      Sew09      SQLO9      UDP09      Wik09a      Wik09b      Wil09     Auke Kok   ANNOUNCE  e1000 to el000e migration of PCI Express devices  http     article gmane org gmane linux drivers el000 devel 3601  April 2009     Linux NTFS Project  ntfsclone  http   www linux ntfs org doku php id ntfsclone   April 2009     Markus Franz Xaver Johannes Oberhumer  LZO   a real time data compression library     http    www oberhumer com opensource lzo lzodoc php  April 2009   Partclone  Partclone  http    partclone nchc org tw   April 2009     Partimage  Supported Filesystems  http   partimage org Supported Filesystems   April 2009     Rich Salz and Christopher Blunck  ZSI  The Zolera Soap Infrastructure   Developer   s Gui
108. oy3 v   IC      d EN                         System Overview     Image Creation Wizard   Depolyment Wizard   Advanced   z Logout O penClone     Select image disk Image Size  30000 MiB     Select hosts     Select disk Address Minimal size  MiB  E  dev sda 38158  Operation after deployment    None y    Finish    Fertig         Abbildung B 8  Auswahl der Festplatte im Deployment Wizard    Im Normalfall sind in einer Lehrinstitution in einem Raum Rechner mit der selben Hardware installiert   somit ist auch die Festplatte jedes Rechners gleich gro   und der Imageverteilung steht nichts im Weg   Nach der Auswahl der Festplatte  kann mit einem Klick auf Finish die Aufgabe in die Datenbank ein   getragen und von den Clients abgearbeitet werden  Auch hier besteht die M  glichkeit  im Webinterface    durch einen Link auf die Statusseite zu gelangen     Das Image wird in jedem Computer auf die Festplatte gespeichert  die unter der Adresse zu erreichen ist   wie jene  die im Webinterface gew  hlt wird  Ist dies im Webinterface zum Beispiel  dev sda  wird das  Image auf jedem Client auf die Festplatte gespeichert  die unter  dev sda erreichbar ist  Abbildung B 8    zeigt die Seite mit der Festplattenauswahl     Erweiterte M  glichkeiten    Unter dem Men  punkt Advanced kann man weitere Einstellungen und Informationen im OpenClone  System   ndern  Es erscheint ein weiteres Men   links im Bild    ber welches man zu den einzelnen    Einstellungsm  glichkeiten gelangt     Hostliste    Der Pun
109. perating System  1 primary ntfs  5 logical ext3  6 logical swap  O HP Win7  dev sda  Partitions   Number Record type File system Operating System  1 primary ntfs  2 primary ntfs  Next    Fertig         Abbildung B 6  Auswahl des Images im Deployment Wizard       OpenClone Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe          ce  we    Y a   amp  Y     http j localhost openclone webintertace src  menu deploy amp site deploy2 y   Gl  sooale e                       OpenClone       System Overview    Image Creation Wizard   Depolyment Wizard   Advanced   Logout       Select image disk Running Y   Show       Select hosts             Select disk Boot ID Hostname IP Address MAC Address Running Boottime  EEN 21 WS 10 010 192 168 10 10 0011d80adf83 yes 2009 04 12 20 49 24  Ej 22 WS 10 020 192 168 10 20 0011d80ae593 yes 2009 04 12 21 33 06        Next         Fertig         Abbildung B 7  Auswahl der Rechner im Deployment Wizard    angezeigt  Es ist zu beachten  dass im Webinterface auch die Gr    e der kleinsten Festplatte der Com   puter angezeigt wird  Ist auf dieser Festplatte zu wenig Platz  um das Image speichern zu k  nnen  kann    diese Festplatte im Webinterface nicht ausgew  hlt werden     91    ANHANG B  BENUTZERHANDBUCH    OpenClone Webinterface   Mozilla Firefox lee    Datei Bearbeiten Ansicht Chronik Lesezeichen Extras Hilfe          vi oe    K      Y Je   http   localhost openclone webinterface src  menu deploy amp site depl
110. ploy4 php  Zum Schluss werden die ben  tigten Informationen zur Wiederherstellung eines Abbildes auf einen  oder mehrere Computer in die Datenbank eingetragen  Es besteht f  r den Benutzer ebenfalls hier  die M  glichkeit  auf die Statusseite zu wechseln  um den Fortschritt der Wiederherstellung zu    sehen     Advanced    Unter dem Men  punkt Advanced sind folgende Seiten zusammengefasst  welche erweiterte Einstellun     gen und Operationen des Cloningsystems zur Verf  gung stellen     e hostlist php  Diese Seite listet im Cloningsystem registrierte Clients auf  Dabei kann ausgew  hlt werden  ob  nur eingeschaltete Clients  oder nur Clients einer bestimmten Gruppe  oder auch alle Clients    angezeigt werden  Der Benutzer kann hier folgende Einstellungen vornehmen         Eine Abfolge von Befehlen  einen Task  einem oder mehreren Hosts zuweisen      Den Hostnamen eines oder mehrerer Clients gleichzeitig   ndern       Die IP Adresse eines oder mehrerer Clients gleichzeitig   ndern       Einen oder mehrere Hosts einer Hostgruppe zuordnen    e hostdetails php    Auf dieser Seite werden folgende detailierte Informationen zu dem gew  hlten Client angezeigt    47    KAPITEL 4  ANWENDUNGSENTWICKLUNG        Generelle Informationen  Hostname  IP Adresse  MAC Adresse  Seriennummer  Hostgruppe     letzte Anmeldung am Cloningsystem       Prozessoren  Hersteller  Modell  Taktfrequenz       RAM  Gr    e       Festplatten  Ger  teadresse  Gr  fe  Modellnummer  Seriennummer         Tasks  di
111. pment phase the requirements are converted into a concrete software    product     In the application layout phase it has to be taken care of the fact that the software used by the self  implemented solution is available under a free license  So the developed system only consists of free  components  which is nessecary to be able to publish the software as an open source project    Moreover in this phase it is to focus on implementing a modular system so that particular software  parts can be spread over more than one computer  so that software parts can easily be replaced by    other software and that new components can be added to the system     ii    Danksagung    Wir  David Gnedt und Manuel Steiner  bedanken uns bei unseren Betreuern DI Andreas Brachinger und    DI Christian Hammer fiir die Unterstiitzung und Betreuung w  hrend des gesamten Projektverlaufes     Bei DI  FH  Georg Ungerb  ck bedanken wir uns fiir die Unterstiitzung bei der Auswahl einer geeigneten  Programmiersprache fiir die Entwicklung von Web Services  Dank seiner Informationen konnte die  richtige Sprache gew  hlt werden  mit welcher das im selbst entwickelten System eingesetzte Web Service    implementiert wurde     Dem Schulerhalter  der Stadtgemeinde Ybbs a d  Donau  danken wir fiir die zur Verf  gung gestellte  Infrastruktur  in der wir unser System im Schulzentrum installieren konnten und f  r die Benutzung der  im Schulzentrum verf  gbaren Hardware  mit der es uns m  glich war  den Vergleich berei
112. prachen Java  PHP  Python    und Ruby  welche in Tabelle 3 1 aufgelistet sind                          Java PHP Python Ruby  Typ Bytecode   Interpretiert   Interpretiert   Interpretiert  Erfahrung t    4          Speicherplatzbedarf der Runtime     100 MiB   6 MiB   15 MiB   6 MiB  SOAP Implementierung verf  gbar verfiigbar verfiigbar verfiigbar  Objekt Relational Mapper verf  gbar verf  gbar verf  gbar verf  gbar                         Tabelle 3 1  Vergleich der Programmiersprachen    Die Entscheidung f  r die Programmiersprache wurde f  r das Webinterface getrennt von Clientsoftware  und Webservice getroffen  da es sich bei Clientsoftware und Webservice um CLI  Programme und beim  Webinterface um eine Webseite handelt  Eine weitere Unterteilung von Clientsoftware und Webservice  wurde nicht getroffen  da drei unterschiedliche Programmiersprachen zus  tzlichen Aufwand bedeutet    h  tten und das Projekt unn  tigerweise un  bersichtlich gemacht h  tten     Aufgrund des hohen Speicherplatzbedarfs der Java Runtime  welche auf jedem Client zur Verf  gung  stehen und dadurch bei jedem Starten zum Client   bertragen werden m  sste  wurde Java f  r die Cli   entsoftware und das Webservice ausgeschlossen und die Auswahl beschr  nkte sich nun auf die Skript   sprachen PHP  Python und Ruby  welche sehr viel weniger Speicherplatz ben  tigen  DI  FH  Georg  Ungerb  ck empfahl f  r den Einsatz mit Webservices die Programmiersprache Python und riet eher  von PHP f  r die Webservice Imple
113. r  ffentlichung als OpenSource Projekt    2 2 2 2 2 2  nn nn nn 61  beds Lizenzierung a nenn er Re NR 61   9 3 2  Hosting     nn  Ha re A ee 62   5 39  Roadmap  de zu  208 Sets A A ea od 62  Zusammenfassung 64  Literaturverzeichnis 65  Abbildungsverzeichnis 67  Tabellenverzeichnis 69  Listings 70  A Projekt 71  Al Anforderungsspezifikation       ooa 71  AND Projektplan ve na EE 73  A 3 Verantwortlichkeiten           ee 73  AA    Sitzungsprotokoll      2    2  zeug ae 74   B Benutzerhandbuch 85  BI Installationsanleitung       Coon nn 85  B 2 Handhabung des Webinterface    e  86  B 3 Erweiterte Konfiguration            nn 98  B 3 1 Subnetze hinzuf  gen         2 2  non nn ee 98   B 3 2 SSL Unterst  tzung f  r das Webinterface    99   B 3 3 Multicast Unterst  tzung von Switches aktivieren      100  Dokumentationsformular 102    vil    Kapitel 1  Finleitung    Dieses Dokument beinhaltet den Vergleich einiger bereits existierender Cloningl  sungen und die Be   schreibung der Entwicklung eines eigenen Systems  welches auf die gewonnenen Informationen des    Vergleichs aufbaut und zus  tzliche Funktionen  fiir den Einsatz am Schulzentrum implementiert     Im Kapitel 2  Analyse  werden die generellen Anforderungen an ein Cloningsystem festgehalten  Da   nach wird der Vergleich von 5 existierenden Systemen erl  utert  Dabei werden der Funktionsumfang der  einzelnen Produkte sowie erzielte Zeit  und Geschwindigkeitswerte in einem praktischen Test ber  ck   sichtigt  Weiters werden ein
114. r  nderung der Par   titionsgr    e beim Wiederherstellen erlaubt  einen f  r mehrere Partitionen auf einer Festplatte  einen  f  r mehrere Festplatten mit mehreren Partitionen und einen f  r ein komplettes Byte f  r Byte Ab   bild mit dd  Zus  tzlich wurde auch der Quellcode von FOG analysiert und herausgefunden  dass alle  diese Modi sehr ineffizient programmiert worden sind  Obwohl jeder Modus sehr   hnliche Aktionen  durchf  hrt  wurde jeder einzelne komplett neu implementiert  auch die Sicherung des MBR  FOG un   terst  tzt haupts  chlich deshalb kein Linux  da immer  abgesehen vom zeitraubenden Byte f  r Byte  Abbild  die Imagingsoftware Partimage verwendet wird und Partimage leider keine Linux Swap Parti   tionen unterst  tzt  Genau diese unflexible Programmierung ist der gro  e Nachteil von FOG und sollte  im OpenClone Projekt nicht wiederholt werden  Daher wurde ein sehr modularer und flexibler Aufbau    des OpenClone Projekts gew  hlt     Der Grundgedanke war  die Sicherungs  oder Wiederherstellungsprozesse in mehrere Operationen zu  untergliedern und f  r den Benutzer wieder in Tasks zusammenzufassen  Das bedeutet ein Client muss  nichts vom eigentlichen Sicherungs  oder Wiederherstellungsprozess wissen  er f  hrt einfach eine Ope   ration nach der anderen aus  Wenn die Client Server Infrastruktur einmal vorhanden ist  k  nnen somit  jederzeit neue Operationen implementiert werden  Weiters sollen die vom Client ausgef  hrten Opera   tionen m  glichst gut gesteuert 
115. r Version 1 4 8 fiir Subversion Unterstiitzung verwendet     4 1 3 PHP    F  r die Entwicklung des OpenClone Webinterfaces in PHP wurde die IDE NetBeans von Sun Mi   crosystems in der Version 6 5 1 verwendet    Dabei wurde jene Version eingesetzt  welche lediglich    PHP Entwicklung unterst  tzt  Diese Version bietet unter anderem folgende n  tzliche Funktionen     e Syntax Highlighting  e Vorschl  ge von Statements    e Kurzbeschreibungen zu Statements und Links zu ausf  hrlicheren Dokumentationen auf der PHP    Webseite    Automatische Codevervollst  ndigung    Automatische Bereitstellung der PHP Dateien auf einem lokal installiertem Webserver    e Integrierte Subversion Werkzeuge    Diese Features erm  glichen ein deutlich bequemeres Arbeiten mit PHP Dateien  als mit dem zu Beginn    verwendeten Texteditor gedit unter Ubuntu Linux     4 2 Datenbank    Die Datenbank stellt die Schnittstelle zum Informationsaustausch zwischen dem OpenClone Webin   terface  also der Software zum Steuern der Cloningvorg  nge durch den Benutzer  und dem Webservice  von OpenClone dar  Diese Datenbank wurde in MySQL von Sun Microsystems realisiert  Alle ange   legten Tabellen verwenden den Typ InnoDB  um Fremdschl  sselunterst  tzung zu gew  hrleisten  In  Abbildung 4 1 ist das EER Diagramm der Datenbank dargestellt        Frei verf  gbar unter http    www phpmyadmin net   Frei verf  gbar unter http    www eclipse org       Frei verf  gbar unter http    pydev sourceforge  net   Frei verf  gbar un
116. r die Funktion der PXE  Umgebung reicht f  r aktuelle Rechner ein standardkonformer DHCP Server und TFTP Server  obwohl  die PXE Spezifikation eine Erweiterung der Protokolle vorsieht  Bisher konnten alle Rechner im Schul   netzwerk   ber die standardm    ige DHCP TFTP L  sung ohne PXE Erweiterung booten  daher gab    es bisher keinen Grund auf andere L  sungen umzusteigen     PXE Bootvorgang    Der Bootvorgang funktioniert folgenderma  en     e Client  Anfragen nach verf  gbaren Konfigurationen mit einer DHCPDISCOVER Nachricht    e Server  Antworten mit einer DHCPOFFER Nachricht  welche die IP Adresskonfiguration  sowie einen    Boot Dateinamen und den TFTP Server enthalt  e Client  Anfordern der IP Adresse mit einer DHCPREQUEST Nachricht    e Server  Best  tigung mit einer DHCPACK Nachricht  welche wiederum alle Konfigurationsoptionen    enthalt  e Client  Anfordern der vom DHCP Server angegebenen Boot Datei vom angegebenen TFTP Server    e Server  Senden der Boot Datei    e Client  Ausf  hren der Boot Datei  welche das NBP   enth  lt    Bootloader PXELINUX    Beim OpenClone System wird als NBP der Bootloader PXELINUX verwendet  welcher folgenderma  en  vorgeht        36Network Bootstap Program    58    KAPITEL 4  ANWENDUNGSENTWICKLUNG    e Laden der Konfigurationsdatei prelinux cfg vom TFTP Server  e Laden von zus  tzlichen Dateien  wenn notwendig  wie z B  das Men      e Je nach Optionen wird sofort ein Betriebssystem gestartet  eine Kommandozeile angezeigt oder    ein Me
117. r einrichten   servicecontainer   ServiceContainer          18080        OpenClone Webservice hinzufuegen  servicecontainer setNode  OpenCloneEngineServicelmpl       Starten des Servers    servicecontainer serve_forever      Listing 4 5  Implementierung eines Webservice Servers mit ZSI in Python    Probleme mit ZSI    W  hrend der Entwicklung des Webservices sind einige Probleme mit ZSI aufgetreten  welche durch  die eher kurz gehaltene Dokumentation schwer zu l  sen waren  Oft war das Debuggen des ZSI Codes  erforderlich  um die genaue Fehlerursache feststellen zu k  nnen  Dazu wurde der Python Debugger    Winpdb  in der Version 1 3 8 eingesetzt     Ein anf  ngliches Problem war auch  dass das Webservice im rpc Style angelegt wurde  welcher f  r ent   fernte Funktionsaufrufe ausgelegt ist  ZSI unterst  tzt jedoch den rpc Style nicht im extended Modus   welcher das Schreiben von weniger SOAP spezifischen Methoden erlaubt  Eine Diskussion auf der Py   thon Web Services Mailinglist best  tigt dies   Bov09  Deshalb wurde das Webservice auf den document  Style umgestellt     Der simple naming Modus verspricht einfachere Benennung  jedoch ist er  wie in der Dokumentation  beschrieben  BMO09  S  13   nicht mit der complexType Option kombinierbar  Die complexType Option ist  allerdings unbedingt notwendig  weil sonst keine Generalisierung bei den Datentypen unterst  tzt wird   Jedoch ist das Instanziieren eines Kind Datentyps ohne simple naming kompliziert und zus  tzliche    Kenntn
118. ragung der Daten von einem Quell Rechner zu Ziel Rechnern ohne Zwischenspei     cherung am zentralen Server    e Absicherung  Authentifizierung  Verschliisselung  der Kommunikation zwischen Server und Ziel     Rechner    e Wartung des laufenden Systems    Eigene Kriterien der Diplomanden    e Die Verwaltungssoftware soll plattform  bergreifend verwendet werden k  nnen    e Es soll die Sicherung und Wiederherstellung von Ziel Rechnern mit der Linux Distribution Ubun     tu unterst  tzt werden  e Das Cloning System soll nur von OpenSource Software abh  ngig sein    e Das Cloning System soll unter einer Open Source Lizenz  wie der GNU General Public License    ver  ffentlicht werden    A 2 Projektplan    In der Abbildung A 1 ist der Projektablauf grafisch in Form eines Gantt Diagrammes veranschaulticht   Weiters sind die einzelnen Phasen mit der Gesamtdauer  dem Start  und dem Enddatum ersichtlich     Der Zeitplan wurde mit dem Programm OpenProj  erstellt     A 3 Verantwortlichkeiten    Im Folgenden wird die Aufteilung der Verantwortlichkeiten erl  utert  Die Analyse  welche den Vergleich  von Cloningsystemen beinhaltete  wurde von beiden Diplomanden gemeinsam durchgef  hrt  Nach dem  gemeinsamen Entwurf der Datenbank wurde die Arbeit so aufgeteilt  dass ein sinnvolles  von einander    weitestgehend unabh  ngiges Arbeiten f  r jedes Projektmitglied m  glich war  David Gnedt war f  r die       Frei verf  gbar unter http    openproj org     73    ANHANG A  PROJEKT       19 11 08 1
119. rd    e Die IP Adresse kann ge  ndert werden  Dabei bekommt der erste gew  hlte Host die angegebene  IP Adresse und alle folgenden Hosts eine IP Adresse im selben Netz  jedoch im letzten Oktett    der Adresse eine immer um den Wert  der bei Offset angegeben wurde  erh  hte Nummer    e Die Hostnamen der Computer kann ge  ndert werden  Dabei ist zu beachten  dass der Prefix bei  jedem Host am Beginn des Hostnamens steht und der Postfix f  r jeden Host eine dreistellige    Nummer ist  Dabei wird der Abstand zwischen den Nummern durch den Offset angegeben    e Die Rechner k  nnen einer Gruppe zugewiesen werden    Durch Auswahl mehrerer Checkboxen k  nnen die entsprechenden Aktionen gleichzeitig ausgef  hrt    werden  Eine   bersicht dieser Seite ist in Abbildung B 9 gezeigt     Durch den Link Details bei jedem Host wird eine Seite wie in Abbildung B 10 gezeigt  auf welcher  weitere Informationen zu dem gew  hlten Host dargestellt sind  Weiters lassen sich auf dieser Seite    Informationen des Hosts wie Seriennummer  IP Adresse  MAC Adresse und Hostname   ndern     Gruppenliste    Bei Klick auf den Link Grouplist erscheinen alle vorhanden Gruppen  Durch Eingabe eines Gruppenna   mens und Klick auf Add Group kann eine weitere Gruppe angelegt werden  Weiters kann eine Gruppe  gew  hlt und durch Auswahl von delete gel  scht werden  Falls dieser Gruppe Hosts zugeordnet waren     werden diese danach keiner Gruppe zugeordnet  Diese Seite wird in Abbildung B 11 dargestellt     93    ANHA
120. rden k  nnen      Die Wiederherstellung einer Sicherung soll auf eine ganze Gruppe m  glich sein        Auf dem zentralen Server gespeicherte Sicherungen sollen   ber die zentrale Software gel  scht    werden k  nnen        Die Ziel Rechner sollen nach einem erfolgreichen Cloningvorgang heruntergefahren werden    k  nnen        Es sollen m  glichst keine Lizenzkosten anfallen     e Installation des Cloning Systems im Schulzentrum    Wunschanforderungen    e Die ben  tigte Dauer f  r eine Sicherung und Wiederherstellung soll k  rzer als die der aktuellen    L  sung mit Norton Ghost sein    e Zusammenfassende Darstellung der Statusinformationen eines ganzen Sicherungs  und Wieder     herstellungsprozesses in der zentralen Software  e Hostname  IP Adresse von mehreren Rechnern gleichzeitig   ber eine Erzeugungsregel festlegen  e Speicherung von zus  tzlichen Hardware Informationen am zentralen Server    e Automatisierung der Post Cloning Operationen  Setzen des Hostnamens  Beitreten der Windows    Domain     e Erkennung der installierten Betriebssysteme    72    ANHANG A  PROJEKT    Ausgrenzungskriterien    e Sicherung und Wiederherstellung von einzelnen Partitionen eines Ziel Rechners    e Sicherung und Wiederherstellung von mehreren Festplatten eines Ziel Rechners in einem einzigen  Durchlauf    e Speicherung der Sicherungen an einem anderen Ort  als auf der internen Festplatte des zentralen    Servers  e Automatisches Einschalten  Power on  der Ziel Rechner    e Direkte Ubert
121. res ausw  hlen     IP Multicast  IGMP  Service ausw  hlen    IGMP Enable auf Yes setzen      Forward with High Priority am Besten auf No belassen    Am besten alle Ports auf Auto belassen    Anschlie  end die Konfiguration mit Save speichern       2 Com09a  S  6 95ff     100    OoarnNa  ar wn rr      ba ka  DH oO oO    ANHANG B  BENUTZERHANDBUCH    HP ProCurve Switches 2512 und 2524     Listing B 6 zeigt die Konfiguration der IGMP Unterstiitzung fiir das VLAN 10 auf der Kommandozeile      ber die Switch Console oder Telnet     HP_2524  configure   HP_2524 config   vlan 10 ip igmp   HP_2524 config   exit   HP_2524  show ip igmp config   IGMP Service   VLAN ID VLAN NAME IGMP Enabled Forward with High Priority Querier Allowed  1 DEFAULT_VLAN No No Yes   10 VLAN10 Yes No Yes   12 VLAN12 No No Yes    Listing B 6  IGMP Unterst  tzung f  r VLAN 10 aktivieren       3 Com09b  S  9 91ff     101    H  HERE TECHNISCHE LEHRANSTALT f  r Informationstechnologie  hh   YBBS AN DER DONAU            bildung mit zukunft   Ausbildungsschwerpunkt  Netzwerktechnik    DIPLOMARBEIT    DOKUMENTATION  Namen der GNEDT David  Verfasser innen STEINER Manuel  Jahrgang   Klasse 5AHITN  Schuljahr 2008 09  Thema der Diplomarbeit Automatisierung von Installationsroutinen in Netzwerken  Kooperationspartner            Ziel der Diplomarbeit soll der Vergleich von einigen bereits  existierenden Cloning Systemen sein  deren St  rken und Schw  chen  aufzeigen und anschlie  end  teilweise aufbauend auf diesen  Produk
122. rtete erfolgreich und der praktische Test konnte durchgef  hrt werden     Norton Ghost erreichte sowohl beim Erstellen als auch beim R  cksichern die zweitbeste Ausf  hrungs   zeit  Bei der Gr    e des Festplattenabbildes reihte sich Ghost allerdings ganz hinten an  Dies und der  h  here Konfigurationsaufwand im Gegensatz zu anderen getesteten Produkten stellen die gute Ima     gingdauer etwas in den Schatten     2 4 Fazit    Die getesteten Systeme haben alle an verschiedenen Stellen entscheidende Schw  chen  so dass sie sich  nicht optimal f  r den Einsatz  vor allem im Schulzentrum  eignen  F  r den Benutzer bietet nur FOG  eine grafische Oberfl  che  welche  unabh  ngig von einem bestimmten Computer  aus dem gesamten  Netzwerk mittels eines Webbrowser erreichbar ist  Clonezilla Server Edition kann zwar auch   ber das  Netzwerk erreicht werden  falls auf dem Server ein Secure Shell Zugang aktiviert ist  jedoch bietet die   ses Programm keine vergleichbar benutzerfreundliche Oberfl  che wie FOG  Die Produkte von Acronis  und Norton sind zwar als grafisch zu bedienende Programme am Server vorhanden  jedoch m  sste  der Benutzer zus  tzlich Windows Remote Desktop oder ein anderes Produkt wie zum Beispiel VNC  verwenden  um vom Netzwerk auf die Software zugreifen zu k  nnen  Dies ist umst  ndlicher als die  Verwendung eines Webinterface  FOG ist allerdings  abgesehen vom Webinterface und der Imagegr    e   aufgrund der inakzeptablen Dauer f  r das Erstellen und R  cksichern ein
123. rtitionen  e Zukunft        Clonezilla FOG Images importieren    Unterst  tzung von mehreren Fileservern      Webserviceschnittstelle zur Steuerung des Cloningsystems        BIOS Einstellungen clonen    63    Zusammenfassung    Das Projekt befasste sich mit einem Vergleich existierender Cloningl  sungen und der Entwicklung  eines eigenen Systems basierend auf den gewonnen Informationen aus der Analyse  Alle Pflichtan   forderungen und einige Wunschanforderungen wurden erfolgreich implementiert  Das System konnte  im Schulzentrum Ybbs a d  Donau getestet werden und wird dort auch f  r den praktischen Einsatz    installiert     Bei der Entwicklung wurde besonders auf die Bed  rfnisse des Schulzentrums eingegangen  um die Soft   ware f  r den dortigen Gebrauch zu optimieren  Weiters wurde auf einfache Handhabungsm  glichkeit  und Modularit  t geachtet  Somit ist eine Substitution einzelner Teilkomponenten oder das Einpflegen  weiterer Softwareteile ohne gr    ere Umst  nde realisierbar  Da die Implementierung teilweise mit neuen  Programmiersprachen und Techniken erfolgte  konnten in diesen Bereichen wertvolle neue Erfahrungen    gesammelt werden     Durch die Verwendung einer freien Softwarelizenz und der Ver  ffentlichung als Open Source Projekt  wird die entwickelte L  sung auch anderen Schulen und Institutionen zur Verf  gung gestellt  Weiters  ist es Interessenten dadurch m  glich  die Software nach eigenem Ermessen anzupassen und zu ver   bessern  um sie optimal auf indivi
124. ruppe verschieben  die dem Raum zugeordnet ist  in dem sie installiert    werden und die IP Adressen und Hostnamen   ndern     Zu Erledigendes  Es wurde der Wunsch ge  u  ert  Hosts aus dem Cloningsystem l  schen zu k  nnen  Diese Funktion wird    allerdings erst nach der Diplomarbeit implementiert     84    Anhang B    Benutzerhandbuch    BI Installationsanleitung    F  r die einfache Installation des OpenClone Systems auf einem Server steht ein Installationsskript zur  Verfiigung  Dieses Skript installiert die Software und alle ben  tigten Dienste auf dem Server  Damit  das Skript ordnungsgem     ausgef  hrt wird  muss es mit Rootrechten aufgerufen werden  Weiters wird  das Betriebssystem Ubuntu 8 04 LTS ben  tigt  Diese Version bietet einen l  ngeren Supportzeitraum    als andere Distributionen  wie zum Beispiel ein normales Ubuntu Linux     Nach dem erstmaligen Aufruf des Skripts mittels sudo   install sh wird man gefragt  ob man Open   Clone installieren m  chte  Mit der Eingabe von y wird diese Abfrage best  tigt und die Installation  beginnt  Danach wird gefragt    ber welches Netzwerkinterface der Server mit den Clients kommunizie   ren soll  Standardm    ig ist hier eth0 eingestellt  Sollte hier ein anderes Interface verwendet werden  ist  der Name dieses Interfaces einzugeben  Danach muss man die IP Adresse f  r das Interface eingeben   In weiterer Folge werden noch die Adresse des Netzwerkes  die Netzmaske und die Anzahl der Bits der  Netzmaske abgefragt  Danach fo
125. s Attribut einer Instanz  welches eine Beziehung mit einer anderen Relation hat  ausgef  hrt  wird  Alle zugeh  rigen Tupel der in Beziehung stehenden Relation werden vom Mapper in Instanzen    der entsprechenden Klasse abgebildet und k  nnen danach vom Entwickler verwendet werden     3 9 Betriebssystemauswahl    Da das System m  glichst keine Lizenzkosten verursachen soll  ist es auch erstrebenswert ein freies  Betriebssystem einzusetzen  Dazu bietet sich das weit verbreitete GNU Linux an  Fiir den Server  wird vorerst nur die Distribution Ubuntu Linux in der Version 8 04 Hardy Heron unterst  tzt  da  mit dem Einsatz dieser Distribution bereits die meisten Erfahrungen gemacht wurden  Die bereits  etwas   ltere Version 8 04 wurde deshalb gew  hlt  da sie Long Term Support mit f  nf Jahren Sicher   heitsupdates bietet  Im sp  teren Verlauf sollen auch andere Ubuntu Versionen  sowie eventuell andere    Linux Distributionen unterstitzt werden     3 10 Programmiersprachenauswahl    Fiir die Auswahl der Programmiersprache wurde eine Ubersicht von m  glichen Programmiersprachen  aufgestellt  Die Programmiersprache C  wurde nicht in die Ubersicht aufgenommen  da als Serverbe   triebssystem nur GNU Linux unterstiitzt werden soll  Obwohl mit Mono eine freie Implementierung    des  NET Frameworks existiert  erscheint es nicht sinnvoll eine fiir das Windows Betriebssystem entwi     15    KAPITEL 3  LOSUNGSANSATZ    ckelte Plattform unter Linux einzusetzen  Somit bleiben die Programmiers
126. s SnapDeploy Programm ausf  hren  Nach erfolgreichem Anlegen eines Festplattenabbildes  war das Zur  ckspielen jedoch nicht mehr m  glich  Laut Acronis war trotz vorhandener Testlizenz  keine Serverlizenz vorhanden  Somit weigerte sich das SnapDeploy  das Image wieder auf den Client    zu   bertragen     Die Software ben  tigte die zweitl  ngste Zeit f  r das Erstellen des Festplattenabbildes  Dieses Image  ben  tigte unter allen Images den meisten Speicherplatz  Somit sprechen diese Werte gegen das Pro     gramm         Frei verf  gbar unter http    ruttkamp gmxhome  de dhcpsrv dhcpsrv htm    KAPITEL 2  ANALYSE    2 3 5 DRBL 1 9 1 26  Clonezilla Server Edition     DRBL steht f  r    Diskless Remote Boot in Linux     Es wurde im Clonzilla Box Mode  SSI  Singe Sys   tem Image  betrieben  Dabei sind am Server mindestens 2 Netzwerkinterfaces notwendig  Eines ist fiir  den Zugang des Servers zum Internet zust  ndig und das andere fiir die Kommunikation mit den Cli   ents  Falls im Serversystem nicht zwei Netzwerkkarten verfiigbar sind  l  sst sich diese Software nicht  ordnungsgem     ausf  hren  Die Clonezilla Server Edition wurde unter Ubuntu Linux installiert und  betrieben  Da diese Cloningsoftware bereits alle ben  tigten Serverdienste enhielt  konnte der Client  sofort tiber PXE gestartet werden und ein Image seiner Festplatte angelegt werden  Zur Komprimie   rung wurde gzip ausgew  hlt  Durch die Textausgaben von Partimage und ntfsclone konnte jederzeit die  Ubertragungsge
127. s WWN nicht immer eindeutig m  glich  Eine alternative Methode ware den WWN direkt    ber den HDIO_GET_IDENTITY ioctl Befehl auszulesen  Diese Methode wurde jedoch nicht umgesetzt  da  sie viel komplexer ist und der WWN nicht fiir die Funktion des Cloningsystems ben  tigt wird  sondern    nur zur Information des Benutzers dient     4 3 4 Partitionierung    Die Partitionierung ist die Aufteilung der Festplatte in mehrere logische Teile  Sie wird beim Abrufen  der Systeminformationen ausgelesen und kann mittels einer PartitionOperation geschrieben werden   Das Lesen und Schreiben der Partitionierung wurde mit dem Modul directpart zur G  nze selbst in  Python implementiert  Es werden das weit verbreitete MBR     und EBR   Format und damit sowohl  prim  re  als auch erweiterte Partitionen mit logischen Partitionen unterst  tzt  Das neueste Partitions   format EFI  wurde allerdings aufgrund seiner Komplexit  t und seiner geringen Verbreitung noch nicht    implementiert     Da die Partitionierung beim Einloggen als Teil der Systeminformationen   bertragen wird  ist beim  Erstellen der Sicherung einer Festplatte kein explizites Auslesen mittels einer Operation notwendig  Nur  beim Wiederherstellen einer Sicherung wird eine PartitionOperation zum Schreiben der Partitionierung    ben  tigt   Die Tabelle 4 2 und die Tabelle 4 3 zeigen  wie ein MBR und EBR aufgebaut ist und welche Teile    davon gesichert werden                 Anfang   Bezeichnung Gr    e  0   Bootloader 440 Byte   440
128. schwindigkeit des unkomprimierten Festplatteninhaltes und der Fortschritt am Client    festgestellt werden  Es ergaben sich folgende durchschnittliche Ubertragungsgeschwindigkeiten     e Prim  re Partition 1  1236 MiB pro Minute  mit ntfsclone   e Prim  re Partition 2  1320 MiB pro Minute  mit ntfsclone     e Logische Partition 2  1460 MiB pro Minute  mit Partimage     Clonezilla Server Edition arbeitete mit einer Imagingzeit von 48 Minuten 11 Sekunden und einer  Zeit zum Riicksichern des Images von 29 Minuten 15 Sekunden am schnellsten unter den gestesteten    Produkten  Auch die Gr    e des Festplattenabbildes als zweitkleinste konnte   berzeugen     2 3 6 FOG 0 23    FOG wurde ebenfalls unter Ubuntu Linux verwendet  Es bot als einziges getestetes Produkt ein Webin   terface zur Konfiguration  Dies bietet nat  rlich einen Vorteil f  r die Administation  weil die Steuerung  der Software nicht auf einen Computer mit installierter Software beschr  nkt ist  Es waren ebenfalls  bereits alle ben  tigten Serverdienste im Softwarepaket enthalten  Die Komprimierung des erstellten  Images wurde mit gzip durchgef  hrt  Es bestanden hier keine weiteren Alternativen zur Auswahl     FOG erreichte folgende durchschnittliche   bertragungsgeschwindigkeiten     e Prim  re Partition 1  117 MiB pro Minute  mit Partimage   e Prim  re Partition 2  116 MiB pro Minute  mit Partimage     e Logische Partition 2  96 MiB pro Minute  mit Partimage     Diese Geschwindigkeiten und die daraus resultierend
129. sitzt  Wenn nun  ein Benutzer im Webinterface ein Festplattenabbild l  scht  muss dieses auch auf der Festplatte des  Servers gel  scht werden  Dazu muss der Systembenutzer    www data    die M  glichkeit haben  diesen  L  schbefehl auszuf  hren  weil das Webinterface unter diesem Benutzer l  uft  Dazu wurde ein Shell  Script implementiert  welches ein Verzeichnis mit einem Image von der Festplatte l  schen kann  Damit  dieses Script nicht ver  ndert werden kann  geh  rt es dem Benutzer    root     Es darf jedoch von jedem  Benutzer ausgef  hrt werden  Wenn nun aber ein Benutzer dieses Script ausf  hrt  der nicht zur Grup   pe    openclone    geh  rt  wie es auch beim Benutzer    www data    der Fall ist  kann er keine Daten vom  Imageverzeichnis l  schen  Um das L  schen m  glich zu machen  darf der Benutzer    www data    dieses  Wrapper Script als Benutzer    openclone webif    ausf  hren  Dieser Benutzer ist Mitglied in der Gruppe     openclone    und hat die erforderlichen Rechte  um ein Image von der Platte zu entfernen  In Ubun   tu Linux muss in der Datei     etc sudoers    folgende Zeile eingetragen werden  um es    www data    zu  erm  glichen  das Wrapper Script als  openclone webif    auszuf  hren  www data ALL  openclone webif   NOPASSWD   usr bin openclone webinterface wrapper  Erst damit kann der Benutzer    www data    das    L  schen eines Festplattenabbildes als Benutzer    openclone webif    durchf  hren     54    KAPITEL 4  ANWENDUNGSENTWICKLUNG    4 6 Ins
130. st  der Parameter polymorphic_on in der Basisklasse und polymorphic_identiy in der Subklasse notwendig   Dadurch wird das Auslesen sehr erleichtert  da mit einer einzigen Abfrage beispielsweise sofort ein  RAMDevice Objekt verfiigbar ist  ohne dass vorher bekannt sein muss  dass das Device vom Typ ram    ist     Datenbankzugriff mit SQLAlchemy    Im Listing 4 7 wird der Einsatz von SQLAlchemy gezeigt  dabei wird eine Verbindung aufgebaut  ein  neuer Host und ein RAMDevice angelegt  der Host wieder ausgelesen  alle RAMDevices ausgegeben  und gel  scht und die Verbindung wieder abgebaut    from sqlalchemy import create_engine  sql    from sqlalchemy orm import sessionmaker    from tablemapping import      Verbindung aufbauen    engine   create_engine    mysql   root   localhost openclone        Session   sessionmaker  bind engine     42    10  11    12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33    Q oF wn HH    KAPITEL 4  ANWENDUNGSENTWICKLUNG    session   Session        Neuen Host anlegen  hosti   Host  mac    000000000000     running True  last_boot_time sql func now           Werte veraendern    A i By    AS A A to PO      Device anlegen und dem Host zuordnen  device   RAMDevice  size 1024     hosti devices append  device       Host speichern    session save host1       Host mit MAC Adresse 000000000000 auslesen  host2   session query Host  filter_by  mac     000000000000     one        RAMDevices anzeigen und loeschen  for dev in hos
131. t    gt        notnull    gt  true       public function setUp         this  gt hasOne    Operation     array    local      gt     id        Joel    gt  Pal       2    Listing 4 11  Doctrine    OperationShutdown    Klasse    Zu beachten ist  dass die Klasse der speziellen Relation von der Klasse  welche die generelle Relation  implementiert  abgeleitet werden muss  In der Funktion    setTableDefinition    der Klasse    operation     wird mittels  this  gt setSubClasses festgelegt  welche speziellen Klassen existieren und welchem  type   Wert sie zugewiesen werden  In der Klasse    operation_shutdown    wird in der Funktion    setUp    der    Fremdschl  ssel mit  this  gt hasOne definiert     Will man nun ein Tupel in die Relation    shutdown_ operation    einf  gen  so muss man nur eine neue  Instanz der Klasse  OperationShutdown    anlegen und die Attribute mit den gew  nschten Werten be   legen  Dabei kann auch gleich auf die Attribute der Basisklasse   ber die Instanz oder speziellen Klasse  zugegriffen werden  Dabei ist zu beachten  dass man unter Doctrine das Attribute    type    selbst mit  dem entsprechenden Wert belegen muss  Andere objektrelationale Mapper k  mmern sich automatisch    darum  Mit dem Statement  this  gt save   wird das Tupel in die Tabelle eingef  gt  Doctrine k  mmert    5l    NOT KR WY FH    N    NO om KR W    KAPITEL 4  ANWENDUNGSENTWICKLUNG    sich automatisch um die Aufteilung der Werte in ein jeweiliges Tupel der generellen und der speziellen  T
132. t  im Verzeichnis  data   erzeugt  worin das Image gespeichert wird  Die Image ID wird f  r jedes Image in der Datenbank    generiert     Hinweis f  r Linux Betriebssysteme    Dieser Abschnitt beschreibt die Vorgehensweise beim Clonen von Betriebssystemen auf Basis von Linux   die in der Datei  etc fstab den Eintrag des Root Dateisystems mittels der Festplatten ID standardma   fig eingestellt haben  Dieser Eintrag sieht folgenderma  en aus   dev disk by id  lt Festplatten ID gt   lt   Partition gt     Die Festplatten ID setzt sich aus Teilen der Modellbezeichnung und der Seriennummer  jeder Festplatte individuell zusammen  Wird nun ein Image angelegt und auf andere Computer ver     teilt  kann auf diesen danach das Root Dateisystem nicht gemountet werden  weil in diesen Rechnern    89    ANHANG B  BENUTZERHANDBUCH    eine Festplatte mit eine anderen Seriennummer vorhanden ist  Somit ist auch die Festplatten ID un   terschiedlich und die Festplatte mit der in der Datei  etc fstab angegebenen ID kann auf dem System  nicht gefunden werden  Um dieses Problem zu umgehen miissen folgende Anderungen vor dem Erstellen    des Images vorgenommen werden     e In der Datei  etc fstab muss jene Zeile ge  ndert werden  welche das Mounten des Root Datei   systems angibt  also die Zeile mit folgendem Aufbau   dev disk by id  lt Festplatten ID gt     In  dieser Zeile muss die Festplatte anders angesprochen werden  geeignet hierf  r ist die UUID    welche die ID des Dateisystems ist und auch n
133. t2 devices   if type dev     RAMDevice   print dev size    session delete  dev       Verbindung beenden    session close      Listing 4 7  Einsatz von SQLAlchemy    Mehrteilige Fremdschl  ssel    Etwas komplizierter ist die Definition von mehrteiligen Fremdschl  sseln im Tablemapping  doch auch  diese Aufgabe konnte nach einigen Anfangsschwierigkeiten mit Hilfe der guten Dokumentation  SQLO9   gel  st werden  Ein Beispiel hierf  r ist in Listing 4 8 zu sehen  Es ist notwendig das Tabellenobjekt  selbst anzulegen  wobei die mehrteiligen Fremdschl  ssel mittels ForeignKeyConstraint definiert werden   Es ist notwendig  dass cur_operation und next_operation erst nach der Klassendefinition angelegt  werden  da auch die HostTask Klasse selbst voll verf  gbar sein muss  Au  erdem ist es bei diesen  Beiden notwendig die Join Bedingung anzugeben  da diese durch ihre   hnlichen Fremdschl  ssel nicht  automatisch ermittelt werden kann     class HostTask  Base    __table__   Table    host_task     Base metadata     Column    host_id     Integer  ForeignKey    host id      primary_key True    Column    task_id     Integer  ForeignKey    task id      primary_key True    Column    status     String 8   nullable False      Column    cur_operation_id     Integer      43    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Column   next_operation_id     Integer    Column   percentage     Float    Column    speed     String 255     ForeignKeyConstraint     task_id        cur_operation_id           operation 
134. taller    Der Installer ist jene Software  welche sich um die Installation und Einrichtung der OpenClone Softwa   re sowie sp  tere Updates k  mmert  Der Installer wurde als Shell Script implementiert  um m  glichst  wenige Abh  ngigkeiten zu ben  tigen und gleichzeitig Einschr  nkungen auf bestimmte Prozessor Ar   chitekturen zu umgehen  Die Installation der beiden OpenClone Softwarekomponenten Engine und    Webservice wurden mit Hilfe des setuputils Moduls in Python implementiert     Der Installer ist zur Zeit nur f  r den Betrieb unter Ubuntu Linux 8 04 Hardy Heron mit Long Term   Support ausgelegt  Dies soll jedoch sp  ter noch erweitert werden   siehe 5 3 3  Weiters werden zur Zeit  alle OpenClone Softwarekomponenten  also Engine  Webservice und Webinterface  vom Subversion  Repository bezogen  Dies muss f  r sp  tere Installerversionen noch ge  ndert werden  da in den meisten    F  llen nicht die aktuelle Entwicklerversion  sondern die neueste stabile Version gew  nscht ist     4 6 1 T  tigkeiten des Installers    In diesem Abschnitt werden die T  tigkeiten erkl  rt  welche der Installer im Installationsmodus durch     f  hrt     Abfragen der Benutzereinstellungen    Es werden die notwendigen Informationen zum Netzwerk und zum Image Speicherort abgefragt     Ubuntu Systemupdate durchf  hren    Es wird mit Hilfe des Paketmanagement Tools aptitude oder apt get ein Systemupdate durchgef  hrt     Ben  tigte Software installieren    Folgende Softwarepakete werden ben  tigt  
135. task_id        operation id        ForeignKeyConstraint     task_id        next_operation_id           operation task_id        operation id          host   relation    Host     backref    hosttasks      task   relation    Task     backref    taskhosts      HostTask cur_operation   relation    Operation     primaryjoin and_ HostTask   task_id  Operation task_id  HostTask cur_operation_id  0peration id    HostTask next_operation   relation    Operation     primaryjoin and_ HostTask     task_id  Operation task_id  HostTask next_operation_id  Operation  id       Listing 4 8  Erweiterter Ausschnitt aus dem OpenClone Tablemapping  tablemapping py     4 5 Webinterface    Das OpenClone Webinterface stellt die Schnittstelle zwischen dem Benutzer und dem Cloningsystem  dar  Es bietet dem Benutzer die M  glichkeit  das gesamte System   ber eine grafische Oberfl  che zu  steuern  Dabei muss keine zus  tzliche Software auf dem Computer installiert werden  von dem aus  die Steuerung erfolgt  Es gen  gt ein Webbrowser  welcher   blicherweise auf jedem Computer bereits  installiert ist  Somit kann der Benutzer die Software von jedem Computer bedienen  von dem aus er    auf den Server zugreifen kann  auf dem das Webinterface zur Verf  gung steht     Das OpenClone Webinterface ist in PHP realisiert  Dem entsprechend ist ein Webserver mit PHP Sup   port zum Betrieb erforderlich  Entwickelt und getestet wurde die Software unter Ubuntu Linux mit  Apache 2  Zum Zugriff auf die Datenbank wird ein 
136. tbewerben   Auszeichnungen       Moglichkeiten der    Einsichtnahme in die Arbeit MEAT     pbs ar es  DONAN       Pr  fer in Abteilungsvorstand   Direktor in  Approbation   Datum   Unterschrift           Seite 2 von 2    COLLEGE of ENGINEERING for INFORMATION TECHNOLOGY  ht       YBBS AN DER DONAU           bildung mit zukunft   Educational focus  Network Technology    DIPLOMA THESIS    Documentation  GNEDT David  Author s  STEINER Manuel  Form 5AHITN  Academic year 2008 09  Topic Automation of installation routines in networks  Co operation partners            Goal of the diploma thesis is the comparison of already existing cloning  systems  showing the pros and cons of them  Furthermore an  automated system for installation and configuration of systems should  be developed  based on informations gathered from the comparison     For freeing the administrator from lots of time consuming installation  works the system should be implemented autarkic as much as  possible     Assignment of tasks    The focus should be on the use in the Schulzentrum Ybbs  whereas  the product can also be used by other schools  because of licensing  the product under the open source license GPL     The development of the own cloning system was based on the  informations gathered from the analysis of existing cloning solutions   While the implementation  we focused on the requirements of the  Schulzentrum for optimizing the software usability  Moreover an eye  was kept on the modularity  so a substi
137. ten  eine Entwicklung eines automatisierten Systems zum  Installieren und Konfigurieren vollst  ndiger Systeme vorzunehmen     Bei dem zu entwickelnden Produkt muss ein m  glichst autarkes  System implementiert werden  sodass der Administrator von vielen  zeitaufw  ndigen Installationsarbeiten entkoppelt werden kann     Aufgabenstellung    Hauptaugenmerk wird auf dem Einsatz im Schulzentrum Ybbs liegen   wobei im Rahmen der GPL das Produkt auch anderen Schulen und  Institutionen zug  nglich gemacht werden kann     Die Entwicklung des eigenen Cloningsystems wurde basierend auf den  aus der Analyse von existierenden Cloningl  sungen gewonnnen  Informationen durchgef  hrt  Bei der Entwicklung wurde besonders auf  die Bed  rfnisse des Schulzentrums eingegangen  um die Software f  r  den dortigen Gebrauch zu optimieren  Weiters wurde auf einfache  Handhabungsm  glichkeit und Modularit  t geachtet  Somit ist eine  Substitution einzelner Teilkomponenten oder das Einpflegen weiterer  Softwareteile ohne gr    ere Umst  nde realisierbar     Realisierung    Ergebnis ist das Cloningsystem OpenClone  welches alle  Pflichtanforderungen und einige Wunschanforderungen erfolgreich  implementiert  Das System konnte im Schulzentrum Ybbs a d  Donau  getestet werden und wird dort auch f  r den praktischen Einsatz  installiert  Durch die Verwendung einer freien Softwarelizenz und der  Ver  ffentlichung als Open Source Projekt unter der GNU General  Public License wird die entwickelte L  sung auch 
138. ter  tftpboot   im Verzeichnis pxelinux cfg enthalten  Die Konfigurationen k  nnen  wie in Kapitel 4 6 2 beschrieben   unterschiedliche Namen haben  Einerseits die MAC Adresse der Client Netzwerkkarte  die IP Adresse   sowie gesamte Subnetze oder die Standardkonfiguration default  Am Zielf  hrendsten ist die Verwen   dung von Subnetzen  Dazu muss die Netzadresse in die hexadezimale Schreibweise umgewandelt werden  und anschlie  end je nach Netzmaske eine bestimmte Anzahl an Ziffern vom Ende entfernt werden  Die    Umwandlung kann  wie in Listing B 2 gezeigt  mit Hilfe des gethostip Programms erfolgen     98    Q oF wn E    ANHANG B  BENUTZERHANDBUCH      gethostip 192 168 13 0  192 168 13 0 192 168 13 0 COA8ODOO    Listing B 2  Umwandlung der Netzadresse in Hex    Anschliefend werden f  r eine 24 Bit Netzmaske die letzten 2 Ziffern abgeschnitten und als Dateiname  f  r die Konfiguration verwendet  also in Fall von 192 168 13 0 24 wird der Dateiname C0A80D verwen   det  Auf die Gro  schreibung ist zu achten  Im Listing B 3 wird der Inhalt der neuen Konfigurationsdatei  f  r den Server mit der IP 192 168 13 206 gezeigt  Am Zielf  hrendsten wird das Kopieren und anschlie     ende Anpassen der Standardkonfiguration mit dem Namen default sein   DEFAULT openclone  PROMPT 0  MENU TITLE OpenClone BootMenu  LABEL openclone   KERNEL ubuntu vmlinuz   APPEND initrd ubuntu initrd img root  dev nfs nfsroot 192 168 13 206     nfsroot ip dhcp ocws http   192 168 13 206 18080 0penCloneEngineS
139. ter http    subclipse tigris org   Frei verf  gbar unter http    www netbeans  org     19    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Vid Int      mode ENUM backup     restore        image_partition_id INT      address VARCHAR 255      transfer_mode ENUM unicast     multicast        7 id INT   gt  sequence INT  description VARCHAR 255          host idINT     task_idINT     status ENUM running    Finished  failed    as     cur_operation_id INT     next_operation_id INT  Q percentage FLOAT       gt  speed VARCHAR 255                   Vid Int   group_id INT                      tase ee Q mac CHAR 12   o weg TINYINT ip VARCHAR 15   Q vendor_id VARCHAR 255     hostname VARCHAR  255   Q model_name VARCHAR 255     se  al_no VARCHAR 255   2 ern running TINYINT 1    ps   la  time TIMESTAMP   cache SMALLINT en     core_id TINYINT  Q cpu_cores TINYINT          T E Vid Int   address VARCHAR 255      partitiontable_id INT   Q size BIGINT   zeien Size SMALLINT     model_no VARCHAR  255        gt  se  al_no VARCHAR 255    O fimvare_rev VARCHAR 255           format ENUM dd  partimage  dredsvap    compression ENUM  none   gzip   zo    Q size BIGINT   Q minimum_size BIGINT    Vidint   Q noTINYINT   9 record type ENUM  primary  extended  logal   9 boctable TINYINT 1    Q partition_type TINYINT  9 start_lbs INT   sectors INT      start_head TINYINT      start_sector TINYINT   O start_ofinder SMALLINT  Q end_head TINYINT   Q end setor TINYINT   end_cylinder SMALLINT    Abbildung 4 1  EER Diagramm der
140. tet die Programmversion    e openclone common transfer beinhaltet alle implementierten Ubertragungsmethoden  siehe  4 3 5         udpcast stellt eine Schnittstelle und Verwaltungstools fiir das Ubertragungsprogramm    UDPcast zur Verf  gung    4 4 3 Abh  ngigkeiten    F  r den Betrieb des OpenClone Webservices m  ssen folgende Abh  ngigkeiten erf  llt werden     Python 2 5  python     Zolera SOAP Infrastructure 2 0  python zsi     SQLAlchemy  gt   0 4 4    MySQL f  r Python  python mysqldb   e UDPcast    e ip  iproute2     4 4 4 SOAP Implementierung   Zolera SOAP Infrastructure  ZSI        Die Zolera SOAP Infrastructure stellt sowohl zum Erstellen von Webservice Clients als auch zum  Erstellen von Webservice Servern je ein Utility zur Verf  gung  Beide Utilities ben  tigen die WSDL    Datei des Webservices als Eingabedatei und generieren einige Python Module als Ausgabe     Webservice Client    Zum Erzeugen der fiir den Client ben  tigten Module dient der Befehl wsd12py     1 wsdl2py   file OpenCloneEngineService wsdl   complexType   extended  Listing 4 2  Erstellen der ben  tigten Client Module       25 BMO09  SB09     38    Ae G   N m    O AND On    11  12    KAPITEL 4  ANWENDUNGSENTWICKLUNG    Das Listing 4 2 zeigt ein Beispiel zum Erzeugen der Client Module fiir das OpenClone Webservice   Der Paramter   complexType aktiviert die Unterstiitzung fiir komplexe Datentypen  wie sie in der  WSDL Datei verwendet werden  Der Parameter   extended aktiviert die Erzeugung von verein
141. tiitzung  Server Linux    Windows  Client Windows  unabhangig  Benutzeroberfl  che  Server Web Grafisch  Client Text Grafisch  Client Bootmethoden  CD ROM   5       Netzwerk  PXE Wake on LAN     Ka    KE       geforderte Benutzerinteraktionen                      am Server  Abbilderstellung  riicksicherung    notwendig notwendig notwendig  notwendig  am Client  Abbilderstellung  riicksicherung    keine keine keine  keine  Abbildumfang   gesamte Festplatte  alle Partitionen MBR      E   einzelne Partition S dy   Komprimierung gzip Normal  Hoch       unterst  tzte Dateisysteme       FAT32  intelligent  Sektor          Partimage dd                NTFS  intelligent  Sektor          Partimage dd                ext3  intelligent  Sektor                               Linux SWAP  intelligent     amp    Image  bertragung   Unicast  Erstellen R  cksichern   SMB          FTP J E  NFS EA           eigenes Protokoll       aS          Riicksicherung mit Multicast       Nachbearbeitungsmethoden       Hostname setzen  Windows Linux        statische IP setzen  Windows Linux        neue SID generieren  Windows        Domainintegration  Windows Linux             Hostmanagement  Hosts Gruppen     SE       Tests       Imageerstellung  Dauer  Imagegr  fe     10 Std 35 Min  42676 MiB    49 Min 53 Sek  48931 MiB       Imager  cksicherung  Dauer     8 Std 48 Min    38 Min 50 Sek          Lizenzkosten          Open Source        19 50 Euro pro Rechner   Gmb09           Debian  Ubuntu  RedHat  Fedora  
142. ts existierender    Cloningsysteme sowie das Testen des selbst entwickelten Systems durchzuf  hren     Der Polytechnischen Schule St  Peter in der Au  sowie dem dortigen IT Administrator Ing  Thomas    Gnedt  danken wir f  r die zur Verf  gung gestellte Infrastruktur zum Testen des Cloningsystems     Weiters danken wir dem Inhaber der Firma Management Technik Systeme  Martin Steiner  f  r den    Druck der Diplomarbeit     Inhaltsverzeichnis    1 Einleitung    2 Analyse  2 1 Aktuelle Situation im Schulzentrum  e   2 141  Qloningv  rganf A ce seat see ne an Ds de eer  2 2 Anforderungen an ein Cloning System       2 3 Vergleich bereits existierender Systeme       2 3 1  Produkt  bersicht   ota e 22 0 E E BE ee a ann PR Pas  2 3 2   Lestsystem    2 222 2 a el a DG Deka ee  2 33  Vergleichst  belle occ a e a ee aaa a a S  2 3 4 Acronis SnapDeploy 3 f  r Workstation    2 2  22 m nn nme  2 3 5 DRBL 1 9 1 26  Clonezilla Server don      23 67 HOG E eas Soa EE EECHER  2 37 Norton  Ghost 2005 2 2 2 2 2 2 E EE a e ar  DA  Pa in ARTS EE EE EE  3 L  sungsansatz  3 1   System  rchitekt  r nu    a re a a et  3 2  E arm a TA A a A Ni Mina  3 3    BTOZESSOrEANISAtlon  nr  are A a ne Sale oA  3 4 Client Server Kommunikation     oaa a  3 9  Benutzeroberflache  2 soarce i iori 6 Wa 2 e Oe ea ach a le ee  3 6   Hostmdnagement    6 deeb Se e eRe eRe Ee erh  SE EENEG  3 3     D  tenbankz  ugtiff      ie reas E EA ee et ee ed ee  3 9 Betriebssystemauswahl      2    2 ee    INHALTSVERZEICHNIS    3 10 
143. tution of the software  components or adding new components is easily possible     Realization    The result of the diploma thesis is the cloning system OpenClone   which successfully implements all essential requirements and some  desired requirements  The system was tested in the Schulzentrum  Ybbs  where it also will be installed for practical use  Due to the usage  of a free software license and publishing as open source project under  the GNU General Public License the developed system can be used by  other schools or institutions     Results             Seite 1 von 2       COLLEGE of ENGINEERING for INFORMATION TECHNOLOGY    ht     YBBS AN DER DONAU  as F  bildung mit zukunft   Educational focus  Network Technology           OpenClone client    OpenClone client Management client       OpenClone server    OpenClone client    This figure shows the general structure of OpenClone  The  management client connects to the webinterface of the OpenClone  server  which controls the OpenClone clients     Illustrative graph  photo   incl  explanation        Opencione Webinterface   Mozilla Firefox    Datei Bearbeiten Ansicht Chronik Lesezeicl hen Extras Hilfe       4q     E E O    18   http tocalhost openclone webinterface src  menu create8isite  create3       iy                                      gt  System Overview     Image Creation Wizard    Depolyment Wizard   Advanced    Logout OpenClone     Select host mHOST      Select disk Boot ID Hostname IP Address MAC Address Boottime
144. tz eine IP Adresse vergeben werden  Weiteres werden die IP Adressen der Computer von einem  zentralen DHCP Server vergeben  Um das Booten   ber Netzwerk mit PXE von der virtuellen Maschine  aus zu erm  glichen  musste am DHCP Server der Schule die next server Option f  r jedes Subnetz auf  die jeweilige IP Adresse der virtuellen Maschine eingestellt werden  Die Konfiguration von zus  tzlichen    Subnetzen f  r OpenClone wird im Anhang B 3 1 beschrieben     Zur Absicherung der Kommunikation zwischen Verwaltungsclient und OpenClone Server wurde in der  virtuellen Maschine der HTTP Server Apache mit einer SSL Konfiguration erweitert  Das Webinterface  ist jedoch weiterhin   ber den unverschl  sselte HTTP Protokoll erreichbar  Die Konfiguration von  HTTPS wird im Anhang B 3 2 beschrieben     5 3 Ver  ffentlichung als OpenSource Projekt    Um den Anwendungsbereich des Cloningsystems zu erweitern  wurde das Cloningsystem unter eine  OpenSource Lizenz gestellt und frei zug  nglich gemacht  Im Kapitel 5 3 1 werden die notwendigen  Schritte zur Lizenzierung und weiters im Kapitel 5 3 2 der Registrierungsprozess bei einem OpenSource  Projekthosting Anbieter beschrieben  Im Kapitel 5 3 3 wird auf die zuk  nftig geplanten Erweiterungen    des Projektes eingegangen     5 3 1 Lizenzierung    Eine Anforderung der Diplomarbeit war die Lizenzierung der entwickelten Software unter einer Open   Source Lizenz  Die Entscheidung fiel auf die weit verbreitete GNU General Public License in der Versi
145. ufgabe  dem Benutzer m  glichst einfach das Anlegen eines Fest     plattenabbildes eines Computers zu erm  glichen  Dabei wird der Wizard in 4 Schritte unterteilt     e createl php  Diese Seite listet alle verf  gbaren  zur Zeit eingeschalteten Clients auf  unter denen der Benutzer    jenen w  hlen kann  von dem das Festplattenabbild erzeugt werden soll     e create2 php  Auf dieser Seite werden die Festplatten des gew  hlten Computers gelistet  Der Benutzer w  hlt    hier die Festplatte  von der das Image erstellt werden soll     e create3 php  Es werden zusammenfassend Details   ber den gew  hlten Client und die gew  hlte Festplatte an   gezeigt  Der Benutzer vergibt nun noch einen Namen f  r das Abbild  w  hlt eine Kompressions   methode und kann bei Bedarf auch noch ausw  hlen  ob der Client nach beendetem Clonevorgang    heruntergefahren oder neu gestartet werden soll     e create4 php  Abschlie  end werden alle fiir die Abbilderzeugung relevanten Informationen in die Datenbank  eingetragen und dem Benutzer wird die M  glichkeit geboten  auf eine Statusseite zu wechseln     um den Fortschritt des Klonvorganges zu verfolgen     Deployment Wizard    Der Deployment Wizard erm  glicht dem Benutzer  auf einfache Weise  ein angelegtes Abbild einer  Festplatte auf einen oder mehrere Rechner gleichzeitig zu verteilen  Dieser Wizard besteht  wie der    Image Creation Wizard ebenfalls aus 4 Schritten     46    KAPITEL 4  ANWENDUNGSENTWICKLUNG    e deploy1 php  Zuerst werden alle a
146. urde bisherige Uberlegungen zum Softwaredesign vorgestellt     e Die Software  welche die Schnittstelle zum Benutzer darstellt  soll als Webinterface implementiert    werden  Dazu wiirden sich die Sprachen PHP oder JavaScript eignen     e Die Engine  die auf den Clients l  uft  soll   ber ein Webservice angebunden werden  Hier w  ren  Ruby  Python oder PHP als Sprachen denkbar     e Entweder wird die Software zweiteilig oder dreiteilig implementiert  Bei einer Splittung in zwei  Teile greift die Engine auf den Web Service Server zu  welcher dann auf der Datenbank operiert   Das Webinterface greift direkt auf die Datenbank zu  Bei einer Dreiteilung greift das Webinterface    ebenfalls   ber ein Webservice auf die Datenbank zu  Dazu w  ren zwei Web Service Server n  tig     e Die Programmiersprachenwahl k  nnen die Diplomanden selbst treffen  Java und C  erscheinen  wegen einer eigenen virtuellen Maschine eher ungeeignet  Perl hat eine Syntax  mit der man sich  erst anfreunden m  sste  Ruby sollte einfach zu lernen sein  jedoch ist hier keine Hilfestellung von    Seiten der Diplomarbeitsbetreuer m  glich  Python w  re ebenfalls noch eine Alternative     e Es soll ein externer DHCP Server unterst  tzt werden  weil der DHCP Server auf der Firewall  betrieben wird  das Cloningsystem jedoch aufgrund seines Umfanges auf einen anderen Server  ausgelagert werden soll  Die DHCP Serverkonfiguration w  re   ber SSH m  glich  Ein Export  der Konfigurationsdatei aus den Informationen im We
147. uss die Konfigu     rationsdatei  etc apache2  sites available ssl mit dem Inhalt  der in Listing B 5 dargestellt ist   angelegt werden  Es werden hierbei mit Befehlen das SSL fiir diesen Host aktiviert und die Zer     tifikatsdatei angegeben     NameVirtualHost   443   lt virtualhost   443 gt     SSLEngine On  SSL aktivieren  SSLCertificateFile  etc apache2 ssl apache pem  Zertifikatsdatei    angeben     lt  virtualhost gt     Listing B 5  Apache Konfiguration des virtuellen Hosts mit SSL      Die Konfiguration des virtuellen Hosts muss mit sudo a2ensite ssl aktiviert werden       Zum Schluss wird der Webserver durch den Befehl  etc init d apache2 restart neu gestartet     Danach ist auch eine verschl  sselte Kommunikation m  glich     B 3 3 Multicast Unterstiitzung von Switches aktivieren    Um die Multicast Ubertragung im Ethernet Netzwerk effizienter zu machen  muss bei den Switches das  IGMP Snooping aktiviert werden  Dadurch analysiert der Switch alle eintreffenden IGMP Nachrichten     kann die Zugeh  rigkeit zu bestimmten Multicast Gruppen ermitteln und Multicast Ubertragungen nur    an die Rechner einer Multicast Gruppe weiterleiten  anstatt sie wie Broadcasts an alle auszusenden    siehe Kapitel 4 3 5     HP ProCurve Switches 1600M  2424M  4000M und 8000M     Zum Aktivieren der IGMP Unterst  tzung   ber die Switch Console bzw    ber Telnet sind folgende    Schritte ausgehend vom Hauptmen   notwendig     6     T       Switch Configuration ausw  hlen     Advanced Featu
148. weise werden die Relationen der Datenbank in Objektklassen der jeweilig benutzten Program   miersprache und die Attribute der Relation durch entsprechende Attribute der Klasse dargestellt  Die  einzelnen Tupel einer Relation werden als Instanzen der jeweiligen Klasse abgebildet  Das f  hrt da   zu  dass man lediglich eine Klasseninstanz im Programm anlegen und die Attribute der Instanz mit  Werten belegen muss  um ein neues Tupel in eine Relation der Datenbank einzuf  gen  Die meisten  objektrelationalen Mapper bieten eine eigene Abfragesprache an  um Abfragen aus der Datenbank zu  vereinfachen  Der Entwickler muss somit nicht zwingend eine datenbankspezifische Sprache beherr   schen  Wird eine Abfrage abgesetzt  k  mmert sich der Mapper automatisch um die Ausf  hrung  Das  Ergebnis wird in Instanzen der jeweiligen Klasse gespeichert  welche dann sehr einfach im Programm  verwendet werden k  nnen  Die   nderung von bereits bestehenden Tupel geschieht ebenfalls auf sehr  unkomplizierte Weise  Es gen  gt  lediglich ein Attribut einer Instanz zu   ndern  welche vom Mapper  mit dem Tupel aus der Datenbank gef  llt wurde  Die   nderung wird dann wieder automatisch vom  Mapper in die Datenbank   bertragen  Meist bietet ein objektrelationaler Mapper auch diverse M  g   lichkeiten  um die Arbeit mit einer Datenbank zu erleichtern  Dazu z  hlt zum Beispiel automatische die  automatische Aufl  sung von Relationsbeziehungen  welche meist einfach mit dem Zugriff des Entwick   lers auf da
149. werden k  nnen  damit nicht eine eigentlich gleichwertige Operation  mehrmals implementiert werden muss  So wurden die f  r einen einfachen Sicherungs  und Wiederher     stellungsprozess notwendigen Grund Operationen definiert     e Warten  Idle   e Partitionierung  Partition   e Abbildung  Image     e Herunterfahren  Shutdown     Eine Vorraussetzung ist  dass beispielsweise die Abbildungsoperation mit unterschiedlicher Imagingsoft   ware arbeiten soll  damit mehrere Dateisysteme unterstiitzt werden k  nnen  Weiters wurde festgelegt   dass eine Abbildungsoperation nur das Abbild einer einzigen Partition erstellen kann  Es muss also    bei einem Task zum Sichern einer Festplatte fiir jede Partition eine eigene Abbildoperation am Client    12    KAPITEL 3  LOSUNGSANSATZ    ausgef  hrt werden  F  r den Benutzer erscheint der Sicherungsprozess allerdings trotzdem als einziger    Task  um keine Verwirrung zu schaffen     3 4 Client Server Kommunikation    Die Kommunikation zwischen Client  und Server soll mit nur fiinf Befehlen erfolgen  Dazu geh  rt  das Registrieren eines Rechners  der Login des Clients  das Abrufen der n  chsten Operation  das  Aktualisieren des Status einer Operation und das Ausloggen des Clients  Mehr Befehle sollten auch fiir  sp  tere Weiterentwicklung des Projekts nicht notwendig sein  da zur Erweiterung der Funktionalitat   wie bereits beschrieben  nur neue Operationen hinzugefiigt werden miissen  welche dann tiber den    Befehl zum Abrufen der n  chsten 
150. werden muss     hnlich dem Windowing bei TCP  UDPcast wartet mit der   bertragung neuer Daten so lange  bis alle  Empf  nger die Daten erhalten haben bzw  wiederholt die alten Daten  falls sie verloren gehen  Dadurch  orientiert sich UDPcast bei der   bertragungsgeschwindigkeit am langsamsten Empf  nger  Wiederholte    bertragungen gehen ebenfalls   ber Multicast an alle Empf  nger   UDP09     Ein Nachteil von Multicast ist  dass es von allen Netzwerkger  ten  also von den Rechnern  Switches  und Routern  die an der   bertragung beteiligt sind  unterst  tzt werden muss  Um den Multicast    bertragungen zu verwalten wird IGMP    eingesetzt  Die Rechner k  nnen mit IGMP Join Nachrich   ten Multicast Gruppen beitreten und mit IGMP Leave Nachrichten Multicast Gruppen verlassen  Diese  IGMP Nachrichten werden von den Multicast Routern verarbeitet und die Multicast   bertragungen  an die entsprechenden Netzwerksegmente weitergeleitet  Die Switches in diesem Netzwerksegment lei   ten die Multicast   bertragungen normalerweise wie Broadcasts an alle Rechner weiter  Um auch im  Netzwerksegment die notwendige Bandbreite zu optimieren  wird von vielen Switches IGMP Snooping  unterst  tzt  Dabei werden die IGMP Nachrichten der Rechner auch vom Switch verarbeitet  Dieser  kann dadurch die Mutlicast   bertragungen gezielt an jene Rechner weiterleiten  die der Multicast    Gruppe angeh  ren        18 Transmission Control Protocol  User Datagram Protocol  20Internet Group Management Protocol
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Sony CDX-S2050EE User's Manual  DYNAPAC CA150 OPERAÇÃO    ENCORE ENHWI-3GN3 router  32型高輝度屋外モニタ(STD32HVV7  「ガラス製品 Version2.0」 認定基準書(案)    KOHLER K-T14423-3-PGD Installation Guide  Kurzanleitung - Fuji Electric GmbH  WOBBLE PUMPS - OEM International AB    Copyright © All rights reserved. 
   Failed to retrieve file