Thomas Kaiser
2014-09-23 22:59:02 UTC
Moin,
anbei Kurzer Blick auf den Banana Pi [0] aus der Perspektive OS X bzw.
TimeMachine.
Banana Pi ist sowas wie ein RasPi bloß schneller/höher/weiter (zwar fast
gleich groß aber andere Komponenten: Allwinner ARM-Dual-Core-CPU, SATA,
GBit-NIC, 1 GByte RAM [1]). Ich hab mich als Linux-Distro für das IMO
recht sympathische "Bananian" (<https://www.bananian.org>, aktuell ein
Hamburger Ein-Mann-Projekt <https://twitter.com/tryvann>), in der
aktuellen Version 14.09 entschieden: SD-Card so vorbereiten wie auf
bananian.org beschrieben, in Banana Pi schieben, Strom dran, Booten
lassen.
Als erste Tat "bananian-config" aufrufen (alles Wichtige inkl. neuem
root-Paßwort und root-fs-Vergrößerung -- Reboot nötig -- in einem
Rutsch einzustellen). Und anschl. nicht vergessen, ein
apt-get update && apt-get upgrade"
direkt hinterherzuschießen (Debian hatte vor Kurzem einen "lustigen" Bug
bzgl. der internen Paketverwaltung -- das gehört in jedem Fall gefixt).
Die Performance ist so, wie man's von 'nem A20-Board erwarten kann [2].
Also gleich drangemacht, Netatalk einzuspielen [3]. 15 Minuten später
ist die Banane soweit, dass sie Spotlight-fähiges Mini-NAS und Time-
Machine-Ziel spielen kann -- muß halt noch 'ne SATA-Platte dran und
alles kurz und knapp konfiguriert werden.
Hab der Einfachheit/Stromversorgung halber eine 120er Samsung 840 Evo
drangehangen [4]: Loading Image...
Die ersten Performance-Tests sehen ohne irgendwelches Tuning gut bzw.
ausreichend aus (siehe unten bzw. [2]). Der Banana Pi verwendet den
internen GBit-Ethernet-Chip des A20 [5], der auf den ersten Blick im
Gegensatz zu bspw. dem im Cubietruck zusätzlich verbauten RTL8211E mehr
Wumms hat. Ich hab zwei kurze Tests mit TimeMachine und btrfs gemacht
(einmal mit LZO-Kompression ohne). Erkenntnisse:
- LZO oder nicht bringt kaum was, weil TM zumindest ab 10.8 selbst schon
Daten komprimiert, bevor die ins SparseBundle geschrieben werden
(AppleFSCompression.framework). Meine naive Idee dahinter war, dass
bei der SATA-Schreibschwäche des A20-SoCs mehr TM-Durchsatz erreichbar
ist, wenn transparente Datei(system)-Kompression zum Einsatz kommt.
Aufgrund der Sparseband-Size von 8 MByte wäre das auch kein Problem
(btrfs mit Dateikompression hat Performance-Probleme bei späterem
lesendem Random-I/O-Zugriffen auf fette Dateien), nur komprimiert halt
TM selbst schon vorher den Kram (was ja nicht doof ist, v.a. weil
normale Backups meist durchs WLAN laufen und da weniger Datenmenge
mehr Durchsatz bedeutet)
- btrfs will man nicht wirklich unter Bananian nutzen, weil "Btrfs
v0.19" ist *uralt* [6] (und ob sich daran was ändert, sei mal
dahingestellt, immerhin dockt btrfs direkt an die Kernel-Version an
und der Allwinner-Kernel krebst seit Ewigkeiten bei 3.4.x herum) und
außerdem ist es immer eine Scheißidee, ein Checksummen-basiertes
Dateisystem auf einem Host zu nutzen, der noch nicht mal ECC-RAM hat
(weil dann an und für sich intakte Daten bei Bitkippern im RAM
geschreddert werden). Um Logs zu sammeln und zu parsen, OK. Aber
_wichtige_ Daten will man da nicht drauflegen.
Aber ansonsten ist an dem Ding wenig auszusetzen, v.a. bei dem Preis.
Viel von dem Geschissel, das ich mit Cubietruck oder WandBoard hatte
(<http://preview.tinyurl.com/mh9jmfz>), tritt da gar nicht erst auf
(Bananian sei Dank) und für den angedachten Einsatzzweck (Monitoring-
und Loghost-Appliance) dürfte es kaum was mit besserem Preis-/Leistungs-
Verhältnis geben.
Gruss,
Thomas
[0] http://geizhals.at/eu/banana-pi-a1108641.html
Ich hab meinen vom günstigsten Anbieter der letzte Woche (Pollin),
der grad noch parallel 'ne Gutschein-Aktion und keine Versandkosten
hatte (Endpreis brutto damit 35,-)
[1] http://openbenchmarking.org/result/1408120-GLND-140706967
[2] Bananian hat den CPU-Takt dynamisch auf 600-1080 MHz eingestellt mit
"ondemand"-Scheduler (also rauf und runter taktend je nach Last),
siehe https://www.bananian.org/details#configuration_details
Kann man problemlos auf 1200 Mhz hochtakten, dito auf Performance
eichen:
echo performance >/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
7zip-Ergebnisse bei max. 1080 MHz (wie zu erwarten fast identisch
mit Cubietruck):
***@bananas ~ # 7za b
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=de_DE.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
RAM size: 970 MB, # CPU hardware threads: 2
RAM usage: 425 MB, # Benchmark threads: 2
Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS
22: 573 150 371 557 | 14693 198 668 1326
23: 569 153 379 580 | 14482 198 668 1326
24: 565 156 389 607 | 14262 198 667 1323
25: 557 159 398 636 | 14001 198 664 1316
----------------------------------------------------------------
Avr: 155 384 595 198 667 1323
Tot: 176 526 959
"Netzwerk-Durchsatz an sich" per iperf gemessen:
Banane --> Mac: single iperf: ca. 440 MBits/sec und 100% CPU
2 iperf parallel: ca. 670 MBits/sec und je 75% CPU
Mac --> Banane: single iperf: ca. 500-700 Mbits/sec bei 100% CPU
2 iperf parallel: über 800 MBits/sec und je 75% CPU
Heißt: Bei single-threaded Chosen regelt die CPU ab, wenn beide CPU-
Cores im Einsatz sind, geht mehr durchs LAN. Aber nicht das, was man
typischerweise zwischen zwei Macs der letzten Jahre mit GBit-NIC
erreicht (mindestens 930, eher 940 MBits/sec)
Helios' LanTest: Volume und CNID-Datenbank auf der SSD, null Tuning:
Loading Image...
Das sind bisserl bessere Ergebnisse als mit dem Cubietruck letztes
Jahr gemessen. Wird wohl bei dem Random-I/O-Zeugs an an der SSD
liegen und beim Durchsatz, dass der GBit-NIC des Banana Pi mehr
hergibt. Zum Vergleich Cubietruck mit HDD:
Loading Image...
[3] Das Debian-Netatalk-Paket ist leider *hoffnungslos* veraltet, also zu
Fuß bauen gemäß
http://netatalk.sourceforge.net/wiki/index.php/Install_Netatalk_3.1.6_on_Debian_7_Wheezy
(mir fehlte dann erstmal das MySQL-CNID-Backend aber das war mir
wurscht -- hab grad eh nur _eine_ Banane und will keinen Netatalk-
Cluster bauen ;-)
Und in Bananian fehlte dann noch ein "apt-get install avahi-daemon"
dann passte alles analog zur Anleitung im Netatalk-Wiki.
[4] Wenn man die Banane mit SSD betreibt, kann man auch drüber nachdenken,
das root-FS weg von der SD-Card auf die SSD zu werfen:
http://gleenders.blogspot.de/2014/08/banana-pi-boot-your-rootfs-from-sata.html
(geht natürlich auch bei Platten aber die laufen dann halt
potentiell dauernd durch bzw. spielen permanent spin-down/spin-up,
was beim Betrieb als TM-Backup-Laufwerk evtl. nicht so smart ist)
[5] https://lkml.org/lkml/2014/2/2/197
[6] https://btrfs.wiki.kernel.org/index.php/Changelog#v0.19_.28June_2009.29
anbei Kurzer Blick auf den Banana Pi [0] aus der Perspektive OS X bzw.
TimeMachine.
Banana Pi ist sowas wie ein RasPi bloß schneller/höher/weiter (zwar fast
gleich groß aber andere Komponenten: Allwinner ARM-Dual-Core-CPU, SATA,
GBit-NIC, 1 GByte RAM [1]). Ich hab mich als Linux-Distro für das IMO
recht sympathische "Bananian" (<https://www.bananian.org>, aktuell ein
Hamburger Ein-Mann-Projekt <https://twitter.com/tryvann>), in der
aktuellen Version 14.09 entschieden: SD-Card so vorbereiten wie auf
bananian.org beschrieben, in Banana Pi schieben, Strom dran, Booten
lassen.
Als erste Tat "bananian-config" aufrufen (alles Wichtige inkl. neuem
root-Paßwort und root-fs-Vergrößerung -- Reboot nötig -- in einem
Rutsch einzustellen). Und anschl. nicht vergessen, ein
apt-get update && apt-get upgrade"
direkt hinterherzuschießen (Debian hatte vor Kurzem einen "lustigen" Bug
bzgl. der internen Paketverwaltung -- das gehört in jedem Fall gefixt).
Die Performance ist so, wie man's von 'nem A20-Board erwarten kann [2].
Also gleich drangemacht, Netatalk einzuspielen [3]. 15 Minuten später
ist die Banane soweit, dass sie Spotlight-fähiges Mini-NAS und Time-
Machine-Ziel spielen kann -- muß halt noch 'ne SATA-Platte dran und
alles kurz und knapp konfiguriert werden.
Hab der Einfachheit/Stromversorgung halber eine 120er Samsung 840 Evo
drangehangen [4]: Loading Image...
Die ersten Performance-Tests sehen ohne irgendwelches Tuning gut bzw.
ausreichend aus (siehe unten bzw. [2]). Der Banana Pi verwendet den
internen GBit-Ethernet-Chip des A20 [5], der auf den ersten Blick im
Gegensatz zu bspw. dem im Cubietruck zusätzlich verbauten RTL8211E mehr
Wumms hat. Ich hab zwei kurze Tests mit TimeMachine und btrfs gemacht
(einmal mit LZO-Kompression ohne). Erkenntnisse:
- LZO oder nicht bringt kaum was, weil TM zumindest ab 10.8 selbst schon
Daten komprimiert, bevor die ins SparseBundle geschrieben werden
(AppleFSCompression.framework). Meine naive Idee dahinter war, dass
bei der SATA-Schreibschwäche des A20-SoCs mehr TM-Durchsatz erreichbar
ist, wenn transparente Datei(system)-Kompression zum Einsatz kommt.
Aufgrund der Sparseband-Size von 8 MByte wäre das auch kein Problem
(btrfs mit Dateikompression hat Performance-Probleme bei späterem
lesendem Random-I/O-Zugriffen auf fette Dateien), nur komprimiert halt
TM selbst schon vorher den Kram (was ja nicht doof ist, v.a. weil
normale Backups meist durchs WLAN laufen und da weniger Datenmenge
mehr Durchsatz bedeutet)
- btrfs will man nicht wirklich unter Bananian nutzen, weil "Btrfs
v0.19" ist *uralt* [6] (und ob sich daran was ändert, sei mal
dahingestellt, immerhin dockt btrfs direkt an die Kernel-Version an
und der Allwinner-Kernel krebst seit Ewigkeiten bei 3.4.x herum) und
außerdem ist es immer eine Scheißidee, ein Checksummen-basiertes
Dateisystem auf einem Host zu nutzen, der noch nicht mal ECC-RAM hat
(weil dann an und für sich intakte Daten bei Bitkippern im RAM
geschreddert werden). Um Logs zu sammeln und zu parsen, OK. Aber
_wichtige_ Daten will man da nicht drauflegen.
Aber ansonsten ist an dem Ding wenig auszusetzen, v.a. bei dem Preis.
Viel von dem Geschissel, das ich mit Cubietruck oder WandBoard hatte
(<http://preview.tinyurl.com/mh9jmfz>), tritt da gar nicht erst auf
(Bananian sei Dank) und für den angedachten Einsatzzweck (Monitoring-
und Loghost-Appliance) dürfte es kaum was mit besserem Preis-/Leistungs-
Verhältnis geben.
Gruss,
Thomas
[0] http://geizhals.at/eu/banana-pi-a1108641.html
Ich hab meinen vom günstigsten Anbieter der letzte Woche (Pollin),
der grad noch parallel 'ne Gutschein-Aktion und keine Versandkosten
hatte (Endpreis brutto damit 35,-)
[1] http://openbenchmarking.org/result/1408120-GLND-140706967
[2] Bananian hat den CPU-Takt dynamisch auf 600-1080 MHz eingestellt mit
"ondemand"-Scheduler (also rauf und runter taktend je nach Last),
siehe https://www.bananian.org/details#configuration_details
Kann man problemlos auf 1200 Mhz hochtakten, dito auf Performance
eichen:
echo performance >/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
7zip-Ergebnisse bei max. 1080 MHz (wie zu erwarten fast identisch
mit Cubietruck):
***@bananas ~ # 7za b
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=de_DE.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
RAM size: 970 MB, # CPU hardware threads: 2
RAM usage: 425 MB, # Benchmark threads: 2
Dict Compressing | Decompressing
Speed Usage R/U Rating | Speed Usage R/U Rating
KB/s % MIPS MIPS | KB/s % MIPS MIPS
22: 573 150 371 557 | 14693 198 668 1326
23: 569 153 379 580 | 14482 198 668 1326
24: 565 156 389 607 | 14262 198 667 1323
25: 557 159 398 636 | 14001 198 664 1316
----------------------------------------------------------------
Avr: 155 384 595 198 667 1323
Tot: 176 526 959
"Netzwerk-Durchsatz an sich" per iperf gemessen:
Banane --> Mac: single iperf: ca. 440 MBits/sec und 100% CPU
2 iperf parallel: ca. 670 MBits/sec und je 75% CPU
Mac --> Banane: single iperf: ca. 500-700 Mbits/sec bei 100% CPU
2 iperf parallel: über 800 MBits/sec und je 75% CPU
Heißt: Bei single-threaded Chosen regelt die CPU ab, wenn beide CPU-
Cores im Einsatz sind, geht mehr durchs LAN. Aber nicht das, was man
typischerweise zwischen zwei Macs der letzten Jahre mit GBit-NIC
erreicht (mindestens 930, eher 940 MBits/sec)
Helios' LanTest: Volume und CNID-Datenbank auf der SSD, null Tuning:
Loading Image...
Das sind bisserl bessere Ergebnisse als mit dem Cubietruck letztes
Jahr gemessen. Wird wohl bei dem Random-I/O-Zeugs an an der SSD
liegen und beim Durchsatz, dass der GBit-NIC des Banana Pi mehr
hergibt. Zum Vergleich Cubietruck mit HDD:
Loading Image...
[3] Das Debian-Netatalk-Paket ist leider *hoffnungslos* veraltet, also zu
Fuß bauen gemäß
http://netatalk.sourceforge.net/wiki/index.php/Install_Netatalk_3.1.6_on_Debian_7_Wheezy
(mir fehlte dann erstmal das MySQL-CNID-Backend aber das war mir
wurscht -- hab grad eh nur _eine_ Banane und will keinen Netatalk-
Cluster bauen ;-)
Und in Bananian fehlte dann noch ein "apt-get install avahi-daemon"
dann passte alles analog zur Anleitung im Netatalk-Wiki.
[4] Wenn man die Banane mit SSD betreibt, kann man auch drüber nachdenken,
das root-FS weg von der SD-Card auf die SSD zu werfen:
http://gleenders.blogspot.de/2014/08/banana-pi-boot-your-rootfs-from-sata.html
(geht natürlich auch bei Platten aber die laufen dann halt
potentiell dauernd durch bzw. spielen permanent spin-down/spin-up,
was beim Betrieb als TM-Backup-Laufwerk evtl. nicht so smart ist)
[5] https://lkml.org/lkml/2014/2/2/197
[6] https://btrfs.wiki.kernel.org/index.php/Changelog#v0.19_.28June_2009.29