Raspberry Pi

51

Transcript of Raspberry Pi

Page 1: Raspberry Pi
Page 2: Raspberry Pi

Der Inhalt

● Was ist ein RaspBerry Pi● Wieso RPIs im Cluster● Lastverteilung, Marke Eigenbau● Praktische Erfahrungen● Ausblick● Qt am RaspBerry Pi

Page 3: Raspberry Pi

/me.info();

● Tam HANNA– Director, Tamoggemon

Holding k.s.

Page 4: Raspberry Pi

About /girly

● Annette BOSBACH– Mitarbeiterin der

Leitstelle, Tamoggemon Holding k.s.

Krank...Krank...

Page 5: Raspberry Pi

About /girly

● Annette BOSBACH– Mitarbeiterin der

Leitstelle, Tamoggemon Holding k.s.

Krank...Krank...

wieder einmal ;)wieder einmal ;)

Page 6: Raspberry Pi

Wieso

Page 7: Raspberry Pi

TouchCalc

● Eine Engine fiel vom Himmel ;) ;)– Notdürftig auf C++ portiert

● Einsatz unter Windows Phone und Firefox OS– Wenig Konkurrenz

– C++ ungeeignet

Page 8: Raspberry Pi

TouchCalc - II

● Aufbau als Client-Server-App● Server rechnet, Client zeigt an

– Bessere Kontrolle über Nutzerverhalten

– Einfachere Portierung

● Nutzerakzeptanz gegeben (!!!)

Page 9: Raspberry Pi

Himbeere

Page 10: Raspberry Pi

Drei Varianten

● Modell A– Kein LAN

– 256MB RAM

– Weniger Stromverbrauch (500 statt 700mA)

● Modell B– LAN

– 512MB RAM

Page 11: Raspberry Pi

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

Page 12: Raspberry Pi

Flaschenhals USB

● SOC ist für Handys vorgesehen– Vergleichsweise wenig BUSse, etc

● Alles hängt am USB

Page 13: Raspberry Pi

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

Page 14: Raspberry Pi

Flaschenhals USB - III

● Bandbreite über LAN– Rund 50-60MBit

● Achtung: Kollision zwischen USB und LAN– Für E/A-lastige Systeme ungeeignet

Page 15: Raspberry Pi

Betriebssystem herbei

● RPI hat KEINEN Bootloader, etc● Start NUR über SD-Karte möglich

● Externer Massenspeicher– SD

– USB (Stromverbrauch!)

Page 16: Raspberry Pi

Betriebssystem herbei - II

● Standardsystem: RaspBIAN● Abgespecktes Debian● An ARM-Prozessor angepasst

● Ubuntu funktioniert NICHT

Page 17: Raspberry Pi

Zustandlosigkeit

Ein Protokoll, das zwischen den einzelnen Aufrufen keinen Zustand hält. Mehrere Anfragen desselben Klienten werden vom selben Host als

unabhängig betrachtet...

Page 18: Raspberry Pi

Zustandslosigkeit - II

● Zustandslose Protokolle sind gut– Skalieren sehr gut

– Verursachen keine Internodal-Kommunikation

● „Babycluster“ haben wenig Internodalbandbreite

Page 19: Raspberry Pi

Das Floriani-Prinzip

Heiliger Sankt Florian / Verschon' mein Haus /

Zünd' and're an!

Page 20: Raspberry Pi

Idee

● Lastverteilung am Server erzeugt Last● System ist „für Angreifer unattraktiv“

● Ab zum Client!

Page 21: Raspberry Pi

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!

Page 22: Raspberry Pi

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

Page 23: Raspberry Pi

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

Page 24: Raspberry Pi

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

Page 25: Raspberry Pi

Problem: Single Point of Failure

● Ausfall des ServerServers– Keine Berechnungen möglich

● Problemlösung– Client cached Liste lokal

– Auslieferung erfolgt mit Liste „stabiler“ Server

Page 26: Raspberry Pi

Funktioniert gut

● Computersimulation mit Qt– Von der Qualität des RNG abhängig

● Praxistext: seit 6 Monaten keine Imbalancen– Firefox OS

– Windows Phone

Page 27: Raspberry Pi

Praktische Erfahrungen

Page 28: Raspberry Pi

Übertaktung, ja bitte

Page 29: Raspberry Pi

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

Page 30: Raspberry Pi

Provider wehren sich

● Zehn Jahre lang– Selbe IP

● Eines Tages– Neue Adresse

Page 31: Raspberry Pi

Router sind anfällig

● 5 Router, eine grantige Assistentin– Diverse seltsame Abstürze

● Home-Router sind unzuverlässig– War nicht immer so (!!!)

Page 32: Raspberry Pi

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“

Page 33: Raspberry Pi
Page 34: Raspberry Pi

Vermeide externe Peripherie

● RPI mit SD-Karte → Angenehm kompakt

● USB-Geräte sind ungünstig– Strombedarf (Hub nötig)

– Platzbedarf

Page 35: Raspberry Pi

Ausblick

Page 36: Raspberry Pi

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 (!)

Page 37: Raspberry Pi

Ideales Lehrwerkzeug - II

● Nahe an echtem Server● Software lässt sich weiterverwenden

– Linux ist – meist - Linux

● Reale Server leicht einpflegbar– ServerServer anpassen

Page 38: Raspberry Pi

„Bessere“ Konkurrenten

● BeagleBone Black– Schneller

– Keine GPU

● Diverse Evaluationsboards– Wesentlich schneller

– Wenig Community

Page 39: Raspberry Pi

Es geht! Wirklich!

● Clusterbetrieb– Seit 6 Monaten

– Kunden Happy

– Kosten gering

Page 40: Raspberry Pi
Page 41: Raspberry Pi

BONUS:Qt am RaspBerry Pi

Page 42: 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

Page 43: Raspberry Pi

Native Nutzung

● Qt 4 lässt sich per apt-get installieren● Qt Creator und Co rennen am Rpi● Kompilation großer Programme: aua

Page 44: Raspberry Pi

Bessere Idee

● RaspBerry Pi per Cross-Compiler ansprechen● Erstellung von Qt 5 erfolgt am Desktop● Wird danach in SD-Kartenimage geschrieben

Page 45: Raspberry Pi

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

Page 46: Raspberry Pi

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.

Page 47: Raspberry Pi

Achtung, Ubuntu!

● Wird mit veraltetem Qt Creator ausgeliefert● Installation neuer Version ersetzt diese nicht● qtcreator startet alte Version

– Erkennt Cross-Compiler nicht!

Page 48: Raspberry Pi

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/

Page 49: Raspberry Pi

Deployment

Page 50: Raspberry Pi
Page 51: Raspberry Pi

?!?

[email protected]

@tamhannaPics: Fir0002/Flagstaffotos, Manuel F. Guerrero, U.S. Marine

Corps