BoincPE per Netzwerk booten

hollyhart

Fleet Captain Special
Mitglied seit
11.11.2001
Beiträge
310
Renomée
34
  • RCN Russia
Einleitung:

In meiner ersten Anleitung habe ich beschrieben wie man mehrere Boards zum Crunchen an einem Netzteil betreibt. Man kann natürlich jeden Node mit einer Festplatte ausstatten. Energie-, Krach- und Festplattensparender ist es allerdings die Nodes per Netzwerk starten zu lassen.
Die grundlegende Arbeitsweise ist die dass ein Bootimage per Netzwerk an die Nodes übertragen wird. Dieses Bootimage enthält ein Mini-Betriebssystem auf dem dann Boinc läuft.
Die erste Idee war ein Linux per Netzwerk zu starten. Das erwies sich aber wegen unzureichender Linux-Kenntnisse meinerseits als nicht erfolgreich. BoincPE fand sich als erfolgsversprechender Ansatz. BoincPE ist eine Abwandlung von BartPE welches als Rettungssystem benutzt werden kann und von CD oder USB-Stick gestartet wird. links:

BoincPE:
link

BoincPE auf USB-Stick:
link

BoincPE per Netzwerk:
link

Diese Anleitung basiert auf der Anleitung (letzter Link), welche Thomas im Meisterkühler-Forum gepostet hat. Leider hat es so wie er es macht nicht so gut funktioniert (siehe Thread). Deshalb habe ich seine Version so abgewandelt dass die BoincPEs nicht in einer RAM-Disk rechnen sondern auf einem Netzlaufwerk.

Was man braucht:

Man braucht einen DHCP-Server, einen TFTP-Server und einen Server auf dem die Boinc-Verzeichnisse liegen. DHCP und TFTP habe ich auf einem Linux-Rechner. Dieser läuft bei mir auf einer Linux-Maschine in einer VMWare-Umgebung. Die Boinc-Verzeichnisse liegen auf einem freigegebenen Verzeichnis auf einem Windows-Server (\\server\boinc).
DHCP und TFTP soll auch auf einem Windows Rechner mit tftp32 funktionieren. Leider scheint diese Software Probleme mit mehrere gleichzeitigen DHCP-Anfragen zu haben. Es hat jedenfalls bei mir nicht funktioniert, deshalb die Linux-Maschine.
Die Boinc-Verzeichnisse können auch per Samba auf einer Linux-Maschine liegen, irgendwas mit den Zugriffsrechten hat da bei mir aber nicht funktioniert. Wie auch immer: VMWare hat das Problem bei mir gelöst.
Der DHCP-Server ist so konfiguriert, dass er dem gleichen Node anhand seiner MAC-Adresse immer die gleiche IP zuweist und als TFTP-Server sich selbst angibt (192.168.0.200). Die entsprechende dhcp.conf sieht dann (bei Suse) zum Beispiel so aus:

ddns-update-style interim;
default-lease-time 14400;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name "workgroup";
option time-offset -7;
option ntp-servers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
range 192.168.0.201 192.168.0.220;
default-lease-time 3600;
max-lease-time 4800;
}
host node1 {
option host-name "node1";
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address 192.168.0.201;
filename "pxelinux.0";
next-server 192.168.0.200;
}
usw.

BoincPE per Netzwerk:

Grundsetztlich ist der Weg zum Ziel der den Thomas in seiner Anleitung beschrieben hat (siehe link). Leider hat es so wie er es macht nicht ganz funktioniert (siehe Thread). Deshalb habe ich seine Version so abgewandelt dass die BoincPEs nicht in einer RAM-Disk rechnen sondern auf einem Netzlaufwerk. Das wird automatisch von BoincPE beim Start verbunden. Dazu ist es notwendig bei der Konfiguration von BOINC-PE in der Datei „penetcfg.ini“ (BOINC-PE\plugin\penetcfg\) folgendes einzustellen:

[General]
AutoStartNet=Yes
PromptForProfile=No
ShowGUI=No

[NetProfiles]
Custom from A:\= a:\penetcfg.ini
Custom from C:\= c:\penetcfg.ini

; You will get the settings below if you hit
; escape/cancel on the profile dialog
[NetAdapter1]
EnableDHCP=Yes
UseStaticGateway=No
UseStaticDNS=No
UseStaticWINS=No
IPAddress=
SubnetMask=
DefaultGateway=
DNSServer=192.168.0.200

[NetID]
ComputerName =
Workgroup = workgroup
;PrimaryDNSSuffix = your.domain.

[NetDrive1]
; Drive = * (to use the first available drive letter)
Drive = N
NetworkPath = \\server\boinc
UserName = server\boinc
; Password = (leave it empty to be prompted for a password)
Password = boinc

[PostNetAutoRun]
; StartupFlag = CommandLine

; StartupFlag is a bit field that can take the following values:
; 0 = run hidden and wait (00 00 00 00)
; 1 = run normal and wait (00 00 00 01)
; 2 = run hidden and don't wait (00 00 00 10)
; 3 = run normal and don't wait (00 00 00 11)

; 2 = %SystemDrive%\Programs\BGInfo\bginfo.cmd

; necessary for starting BOINC (do not modify)
; 3 = %SystemDrive%\BOINC\Client\init_boinc.bat

: 1 = n:\boinc.bat

„N“ ist bei mir das Netzlaufwerk welchen von jeden Node verbunden wird, mit „\\server\boinc“. Wichtig ist noch dass der Arbeitsgruppenname mit dem des Servers übereinstimmt und das es den Benutzer auf dem Server gibt und er die Rechte hat auf der Freigabe alles zu machen, hier: „server\boinc“ mit Passwort „boinc“.
Am Ende wird dann die Datei “boinc.bat“ ausgeführt welche auf dem „\\server\boinc“-Verzeichnis (N:) liegt und folgenden Inhalt hat:

for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%j
start n:\%IP%.bat /min

Hier wird die IP-Nummer des Nodes ausgelesen und die entsprechende „IP.bat“ gestartet. Als Beispiel mal die des Nodes 192.168.0.201:

n:
cd node1
boinc.exe

Es wird auf das Netzlaufwerk gewechselt, ins richtige Verzeichnis und der Text-Boinc-Client gestartet.

Steuern tue ich das ganze mittels boincview. Dazu ist es notwendig in jedem Verzeichnis eine „remote_hosts.cfg“ zu habe in der die IP-Adresse des Steuerrechners drin steht. Ins Internet geht es bei mir über einen Proxy-Server. Den muss man bei den einzelnen Boincs per boincview einstellen.

Viel Spass beim Ausprobieren!
 
Zuletzt bearbeitet:
sehr schön. werd ich mich am wochenende mal ranwagen an den thread und eventuell dann auch an die rechner zuhaus ;)
 
Hi Leute,

ist vielleicht ne blöde Frage, aber was ich noch net verstehe.???
Wie krieg ich das mit pebuilder erzeugte image in ein pxe-boot image umgewandelt?

Das "PeBuilder image" besteht ja aus Dateien und ordnern und ist keine Image Datei.

Wenn ich am Monatg abend wieder in CZ bin, will ich meinen DHCP Server starten und mit dem neuen Q6600 bissel rumprobieren. der TFTP Server soll auf einer Windows PC liegen.
Aber das nur zur Info

EDIT: Dachte kann das boincpe Image auch mit VM Ware Player starten, aber das will er auch net? ?????????
Oder hat schon einer nen fertiges PXE Image fürs GA G33-DS2R?


Gruß Klödhilf
 
Zuletzt bearbeitet:
Hi Leute,

ist vielleicht ne blöde Frage, aber was ich noch net verstehe.???
Wie krieg ich das mit pebuilder erzeugte image in ein pxe-boot image umgewandelt?

Das "PeBuilder image" besteht ja aus Dateien und ordnern und ist keine Image Datei.

Gruß Klödhilf

Dem Pebuilder kann man sagen ob er ein image erstellen soll oder nicht. Da muss man dann ja angeben und den pfad und namen. An diesem Image muss man noch etwas rumbasteln damit es als PXE-Image funktioniert. Steht in dieser Anleitung die ich als Grundlage genommen habe:

BoincPE uebers PXE
 
*rauskram*

Gibt es mittlerweile eine aktuelle BoincPE Version? Die verlinkte Version ist ja schon etwas betagt. Wenn man Boinc nicht installieren müsste, dann könnte ich einige Rechner locker machen, die ich nicht mit "unnötigen" Installationen zumüllen will.

Mfg sightus
 
Ich habe es mit Version 0.4.1 gemacht. Habe eigentlich keine Lust dran rumzuspielen solange es funktioniert. Mittlerweile gibt es auch eine 0.5.0 Version, sowas wie ein changelog hab ich nicht gefunden.
Immer dieser Update-Wahn...
 
Zurück
Oben Unten