Raspberry Pi
-
Upload
droidcon-berlin -
Category
Documents
-
view
300 -
download
2
Transcript of Raspberry Pi
Der Inhalt
● Was ist ein RaspBerry Pi● Wieso RPIs im Cluster● Lastverteilung, Marke Eigenbau● Praktische Erfahrungen● Ausblick● Qt am RaspBerry Pi
/me.info();
● Tam HANNA– Director, Tamoggemon
Holding k.s.
About /girly
● Annette BOSBACH– Mitarbeiterin der
Leitstelle, Tamoggemon Holding k.s.
Krank...Krank...
About /girly
● Annette BOSBACH– Mitarbeiterin der
Leitstelle, Tamoggemon Holding k.s.
Krank...Krank...
wieder einmal ;)wieder einmal ;)
Wieso
TouchCalc
● Eine Engine fiel vom Himmel ;) ;)– Notdürftig auf C++ portiert
● Einsatz unter Windows Phone und Firefox OS– Wenig Konkurrenz
– C++ ungeeignet
TouchCalc - II
● Aufbau als Client-Server-App● Server rechnet, Client zeigt an
– Bessere Kontrolle über Nutzerverhalten
– Einfachere Portierung
● Nutzerakzeptanz gegeben (!!!)
Himbeere
Drei Varianten
● Modell A– Kein LAN
– 256MB RAM
– Weniger Stromverbrauch (500 statt 700mA)
● Modell B– LAN
– 512MB RAM
Möglichkeit der Kaskadierung
● Ein RaspBerry Pi B routet mehrere As– Einsparung im Bereich Energieverbrauch
● Nur manchmal sinnvoll:– Viel Rechenleistungsbedarf
– Kommt mit 256MB RAM aus
– Wenig Bandbreite
Flaschenhals USB
● SOC ist für Handys vorgesehen– Vergleichsweise wenig BUSse, etc
● Alles hängt am USB
Flaschenhals USB - II
● Geschwindigkeit per USB – rund 30MBroot@raspberrypi:~# dd if=/dev/sda of=/dev/null bs=32M count=10 iflag=direct
10+0 records in
10+0 records out
335544320 bytes (336 MB) copied, 10.6428 s, 31.5 MB/s
Flaschenhals USB - III
● Bandbreite über LAN– Rund 50-60MBit
● Achtung: Kollision zwischen USB und LAN– Für E/A-lastige Systeme ungeeignet
Betriebssystem herbei
● RPI hat KEINEN Bootloader, etc● Start NUR über SD-Karte möglich
● Externer Massenspeicher– SD
– USB (Stromverbrauch!)
Betriebssystem herbei - II
● Standardsystem: RaspBIAN● Abgespecktes Debian● An ARM-Prozessor angepasst
● Ubuntu funktioniert NICHT
Zustandlosigkeit
Ein Protokoll, das zwischen den einzelnen Aufrufen keinen Zustand hält. Mehrere Anfragen desselben Klienten werden vom selben Host als
unabhängig betrachtet...
Zustandslosigkeit - II
● Zustandslose Protokolle sind gut– Skalieren sehr gut
– Verursachen keine Internodal-Kommunikation
● „Babycluster“ haben wenig Internodalbandbreite
Das Floriani-Prinzip
Heiliger Sankt Florian / Verschon' mein Haus /
Zünd' and're an!
Idee
● Lastverteilung am Server erzeugt Last● System ist „für Angreifer unattraktiv“
● Ab zum Client!
Der „Lastraum“● Object 0:●
● .ip : 89.173.25.32● .port : 2345● .minResponsibilityRange : 0● .maxResponsibilityRange : 10● .uid : BA_PI_1● .setOffline :● Check server BA_PI_1...● Server seems to work.●
● Object 1:●
● .ip : 212.186.120.179● .port : 2345● .minResponsibilityRange : 10● .maxResponsibilityRange : 20● .uid : VIE_PI_1● .setOffline :● Check server VIE_PI_1...● SERVER DOES NOT WORK!
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 10
10
20
30
40
50
60
70
80
90
100
Ein kleines Beispiel
● Zwei Rpis– 1 Leistungseinheit
● Ein BeagleBone– 2 Leistungseinheiten
● RPI A– 0.00-0.25
● RPI B– 0.25-0.5
● BB A– 0.5-1
Verschiedene Anfragen?
● Was ist, wenn die Anfragen verschieden sind● Verteilung bleibt trotzdem fair
– Alle Aufgaben werden gleich verteilt
– Jeder Server bekommt gleichen Anteil an Clients
Problem: Single Point of Failure
● Ausfall des ServerServers– Keine Berechnungen möglich
● Problemlösung– Client cached Liste lokal
– Auslieferung erfolgt mit Liste „stabiler“ Server
Funktioniert gut
● Computersimulation mit Qt– Von der Qualität des RNG abhängig
● Praxistext: seit 6 Monaten keine Imbalancen– Firefox OS
– Windows Phone
Praktische Erfahrungen
Übertaktung, ja bitte
Praktische Erfahrungen
● „MODEST“ wird im gesamten Cluster genutzt● Andere Betreiber nutzen höhere Einstellungen
– Keine Probleme bekannt
● Nutzung gerechtfertigt:– Minimal höherer Stromverbrauch
– Wesentlich bessere Hardware-Ausnutzung
Provider wehren sich
● Zehn Jahre lang– Selbe IP
● Eines Tages– Neue Adresse
Router sind anfällig
● 5 Router, eine grantige Assistentin– Diverse seltsame Abstürze
● Home-Router sind unzuverlässig– War nicht immer so (!!!)
MicroUSB-Lader sind teuer
● Rund 5V / 700mA per Planare● Energieversorgung via MicroUSB ist „teuer“● Besser: Netzteil an GPIO-PIN
– Effizienter
– Risiko von Hardwareschaden
– Sicherung „umgangen“
Vermeide externe Peripherie
● RPI mit SD-Karte → Angenehm kompakt
● USB-Geräte sind ungünstig– Strombedarf (Hub nötig)
– Platzbedarf
Ausblick
Ideales Lehrwerkzeug
● RaspBerry Pis sind preiswert● RaspBerry Pis sind cool
– „Out-Sell Arduino on a 100 to 1 basis“
● RaspBerry Pis schränken ein– Grenzerfahrung wg wenigen Ressourcen
– Nutzer lernen Umgang mit SSH (!)
Ideales Lehrwerkzeug - II
● Nahe an echtem Server● Software lässt sich weiterverwenden
– Linux ist – meist - Linux
● Reale Server leicht einpflegbar– ServerServer anpassen
„Bessere“ Konkurrenten
● BeagleBone Black– Schneller
– Keine GPU
● Diverse Evaluationsboards– Wesentlich schneller
– Wenig Community
Es geht! Wirklich!
● Clusterbetrieb– Seit 6 Monaten
– Kunden Happy
– Kosten gering
BONUS:Qt am RaspBerry Pi
Hinweis, der Form halber
● Im Saal „Grün“ findet eine QA-Session statt● Diese ist hochkarätig besetzt● Öffentliche Diskussion ist dort möglich
Native Nutzung
● Qt 4 lässt sich per apt-get installieren● Qt Creator und Co rennen am Rpi● Kompilation großer Programme: aua
Bessere Idee
● RaspBerry Pi per Cross-Compiler ansprechen● Erstellung von Qt 5 erfolgt am Desktop● Wird danach in SD-Kartenimage geschrieben
BakeQtPi
amhan@ubuntu:~/Downloads$ sudo ./bakeqtpi.bash -help [sudo] password for tamhan: Using 4 threads for compilation Usage:
./bakeqtpi.bash [options] options:
--package Downloads and builds the official QT5 Package from qt-project.org
--webkit Builds Webkit --http Tells git and init-repository to use http(s) --httppi Tells the script to download the Raspbian image using http/wget --torrentpi Tells the script to download the Raspbian image using
torrent/ctorrent --raspbian <path> Use custom raspbian. Note, you can point this to your SD
card, assuming it's a standard raspbian sd card using --raspbian /dev/sdX (Don't put the
partition number in) --confclean Runs 'make confclean' before running ./configure -v, --version Version Info -h, --help Help and usage info
Aber Achtung!
Donwloading QT5 Package --2013-09-24 21:25:02-- http://releases.qt-project.org/qt5/5.0.0/single/qt-everywhere-opensource-src-5.0.0.tar.gz Auflösen des Hostnamen »releases.qt-project.org (releases.qt-project.org)«... 77.86.229.90 Verbindungsaufbau zu releases.qt-project.org (releases.qt-project.org)|77.86.229.90|:80... verbunden. HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently Platz: http://download.qt-project.org/ [folge] --2013-09-24 21:25:03-- http://download.qt-project.org/ Auflösen des Hostnamen »download.qt-project.org (download.qt-project.org)«... 77.86.229.90 Verbindungsaufbau zu download.qt-project.org (download.qt-project.org)|77.86.229.90|:80... verbunden.
Achtung, Ubuntu!
● Wird mit veraltetem Qt Creator ausgeliefert● Installation neuer Version ersetzt diese nicht● qtcreator startet alte Version
– Erkennt Cross-Compiler nicht!
Praktisches Entwickeln
● SD-Kartenimage ist erforderlich
tamhan@ubuntu:~/opt$ sudo mount -o
loop,offset=62914560
2013-02-09-wheezy-raspbian.img
/home/tamhan/opt/rasp-pi-rootfs/
Deployment
?!?
@tamhannaPics: Fir0002/Flagstaffotos, Manuel F. Guerrero, U.S. Marine
Corps