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