feed-image -=Kernel-Error=- BlogFeed

Bild zum Geburtstag

Das mir meine Kinder ein Bild malen ist nichst ungewöhnliches. Heute hat mir aber ein Arbeitskollege ein Bild überreicht, welches er mir zum Geburtstag gemalt hat :-D

Ich find es klasse und freue mich wie "Bolle".

  • FreeBSD-Bild

Simple Image Gallery Extended

Danköööööö

FreeBSD Kernel Quellen installieren | How to install FreeBSD kernel sources

Wie immer wenn mich eine Frage oft erreicht, gibt es hier dazu eine kurze Erklährung. Dieser Beitrag wird wirklich extrem kurz, denn um die Kernel Quellen für sein FreeBSD zu installieren nuzte ich selbst immer folgenden Einzeiler:

# sudo svn checkout https://svn.freebsd.org/base/releng/`uname -r | cut -d'-' -f1,1` /usr/src

Tja, ich sag doch... Einfach und kurz :-) Viel Spaß

OpenPower Testsystem von Thomas Krenn mit der POWER8 CPU

Die netten Leute von Thomas Krenn haben uns ihr OpenPower Testsystem zur Verfügung gestellt \o/ Wir wollten dieses System schon etwas länger in die Finger bekommen. Jetzt hat es endlich geklappt!

Der Server verballert mit seinen zwei 1200 Watt Netzteilen in der Spitze etwas um 370Watt (im normalen Betrieb etwas um die 230Watt) und soll laut TK 1.325 BTU/h produzieren.

Verbaut sind 128GB RAM und natürlich eine Power8 CPU:

root@ubuntu:/home/tk# lscpu
Architecture:          ppc64le
Byte Order:            Little Endian
CPU(s):                64
On-line CPU(s) list:   0-63
Thread(s) per core:    8
Core(s) per socket:    8
Socket(s):             1
NUMA node(s):          1
Model:                 2.0 (pvr 004d 0200)
Model name:            POWER8 (raw), altivec supported
CPU max MHz:           3857.0000
CPU min MHz:           2061.0000
Hypervisor vendor:     horizontal
Virtualization type:   full
L1d cache:             64K
L1i cache:             32K
L2 cache:              512K
L3 cache:              8192K
NUMA node0 CPU(s):     0-63

OS ist ein Ubuntu:

root@ubuntu:/home/tk# lsb_release -a          
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.4 LTS
Release:	16.04
Codename:	xenial

Die im Testsystem mitgelieferten Festplatten (3,5" Nearline SAS mit 7,2k) waren für unseren Datenbanktest etwas zu langsam, daher haben wir ein paar ältere 15k 2,5" Platten aus unserem Lager verbaut und diese in ein Raid 10 geworfen. Damit ist das lokale Storage-Backend nun laut pg_test_fsync vergleichbar mit unseren anderen Testsystemen. Wir wollen ja sehen welche CPU "schneller" ist und nicht welche Festplatte am meisten "bremst".

So "einfach" ist es nicht zu sagen welche CPU nun wirklich schneller ist als eine andere. Ich habe als erstes versucht ein paar alltägliche Dinge miteinander zu vergleichen:

 CPU  SHA256-hashing 500 MB  bzip2-compressing 500 MB  AES-encrypting 500 MB 
 2 x Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz  3.859 seconds  5.445 seconds  1.337 seconds
 1 x Power8 2.0 (pvr 004d 0200)  3.803 seconds  7.868 seconds  0.866 seconds
 1 x Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz  2.370 seconds  4.207 seconds  0.831 seconds
 2 x Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz  2.652 seconds  5.413 seconds  1.585 seconds
 2 x Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz  2.484 seconds  5.217 seconds  1.500 seconds

Als nächstes habe ich unixbench.sh laufen lassen:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
chmod +x unixbench.sh
./unixbench.sh

Hier sollte nun das OpenPower System einmal gegen einen Dell System mit zwei verbauten Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz antreten. Natürlich sind hier nur die Infos zu CPU/RAM spannend!

 2 x Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz        Power8  
 Dhrystone 2 using register variables   34551077.1 lps   (10.0 s, 7 samples)     27167563.6 lps   (10.0 s, 7 samples)
 Double-Precision Whetstone   4082.2 MWIPS   (9.9 s, 7 samples)     4092.2 MWIPS   (9.7 s, 7 samples)
 Execl Throughput   2124.0 lps   (30.0 s, 2 samples)     2776.0 lps   (29.9 s, 2 samples)
 File Copy 1024 bufsize 2000 maxblocks   1087796.7 KBps   (30.0 s, 2 samples)     299978.8 KBps   (30.0 s, 2 samples)
 File Copy 256 bufsize 500 maxblocks   299275.0 KBps   (30.0 s, 2 samples)     75847.4 KBps   (30.0 s, 2 samples)
 File Copy 4096 bufsize 8000 maxblocks   3350511.2 KBps   (30.0 s, 2 samples)     1079708.7 KBps   (30.0 s, 2 samples)
 Pipe Throughput   2067851.3 lps   (10.0 s, 7 samples)     465883.7 lps   (10.0 s, 7 samples)
 Pipe-based Context Switching   215476.9 lps   (10.0 s, 7 samples)     132003.3 lps   (10.0 s, 7 samples)
 Process Creation   4278.0 lps   (30.0 s, 2 samples)     7390.5 lps   (30.0 s, 2 samples)
 Shell Scripts (1 concurrent)   5542.8 lpm   (60.0 s, 2 samples)     7085.1 lpm   (60.0 s, 2 samples)
 Shell Scripts (8 concurrent)   6090.1 lpm   (60.0 s, 2 samples)     4356.5 lpm   (60.0 s, 2 samples)
 System Call Overhead   4186839.6 lps   (10.0 s, 7 samples)     344156.5 lps   (10.0 s, 7 samples)
           
 System Benchmarks Index Values   BASELINE   RESULT   INDEX   RESULT   INDEX
 Dhrystone 2 using register variables   116700.0   34551077.1   2960.7   27167563.6   2328.0
 Double-Precision Whetstone   55.0   4082.2   742.2   4092.2   744.0
 Execl Throughput   43.0   2124.0   494.0   2776.0   645.6
 File Copy 1024 bufsize 2000 maxblocks   3960.0   1087796.7   2747.0   299978.8   757.5
 File Copy 256 bufsize 500 maxblocks   1655.0   299275.0   1808.3   75847.4   458.3
 File Copy 4096 bufsize 8000 maxblocks   5800.0   3350511.2   5776.7   1079708.7   1861.6
 Pipe Throughput   12440.0   2067851.3   1662.3   465883.7   374.5
 Pipe-based Context Switching   4000.0   215476.9   538.7   132003.3   330.0
 Process Creation   126.0   4278.0   339.5   7390.5   586.5
 Shell Scripts (1 concurrent)   42.4   5542.8   1307.3   7085.1   1671.0
 Shell Scripts (8 concurrent)   6.0   6090.1   10150.2   4356.5   7260.8
 System Call Overhead  15000.0  4186839.6   2791.2   344156.5   229.4
           
 System Benchmarks Index Score      1629.6     851.8

 

Die hohe Anzahl Threads und die fette Speicheranbindung der CPU sind ein paar Besonderheiten, welche dieses System theoretisch sehr gut brauchbar als Datenbankserver machen sollten. Wir arbeiten viel mit PostgresSQL, daher war einer unserer Tests ein Restore unserer Testdatenbank.

 CPU  Restore Zeit
 2 x Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz  129min 34s
 1 x Power8 2.0 (pvr 004d 0200)  120min 43s

 

Bisher zeigt sich folgendes Bild: Die Power8 CPU ist ohne Zweifel sehr leistungsstark. Die "bessere" Speicheranbindung und die vielen Threads bemerkt man. Das OpenPower System von Thomas Krenn gibt es nur mit einem CPU Socket, also ist es immer eine singel CPU. Im direkten Vergleich mit einer Intel single CPU macht das Power8 System bei Datenbanken sicher den Stich. Da es preislich viel eher an einem dual Intel CPU System angesiedelt ist, muss es sich damit vergleichen lassen, selbst wenn es nicht ganz fair ist. Hier hat im direkten Vergleich ein solches Intel System die Nase vorne.

IBM hat im Jahr 2013 ihre Power8 CPU vorgestellt. Jetzt haben wir 2018.... Daher sind die Vergleichssysteme ebenfalls etwas älter. Unterm Strick: Echt tolle CPU, leider im Preis/Leistungsvergleich (für einen Datenbankserver) gegenüber eines Intel-Systems, der Verlierer! Was sicher im HPC oder bei Anbindungen von Nvidia Rechenbeschleunigern anders aussieht. Dual CPU Systeme wären spannend, besser noch direkt Power9 Systeme (mit AES und GZIP im Chip). Da IBM von diesen CPUs im Vergleich mit Intel nur sehr geringe Stückzahlen verkauft ist der Preis hoch. Vielleicht passiert hier ja noch mal irgendwann etwas?!?!

Wir haben hier noch ein paar Tests mehr gemacht und wir werden in den nächsten Tagen noch ein paar Experimente mit dem System vornehmen. Wenn sich also am ersten Eindruck noch etwas ändert schreibe ich es.

Hier habe ich noch ein paar Bilder..

  • OpenPower8-test-Hardware-01
  • OpenPower8-test-Hardware-02
  • OpenPower8-test-Hardware-03
  • OpenPower8-test-Hardware-04
  • OpenPower8-test-Hardware-05
  • OpenPower8-test-Hardware-06
  • OpenPower8-test-Hardware-07
  • OpenPower8-test-Hardware-08
  • OpenPower8-test-Unix-Bench
  • OpenPower8-test-htop

Simple Image Gallery Extended

Fragen? Na dann wie immer einfach fragen :-)

FreeBSD 11.1 Jail will nicht auf 11.2

Nachdem FreeBSD 11.2 nun aktuell ist wurde es natürlich Zeit alles auf diese Version zu haben. FreeBSD macht es einem zum Glück sehr einfach mittels freebsd-update.

Ein Upgrade auf eine neue Version sieht im Groben immer so aus:

root@hostname:/ # freebsd-update -r 11.1-RELEASE upgrade
root@hostname:/ # freebsd-update install
root@hostname:/ # reboot
root@hostname:/ # freebsd-update install
root@hostname:/ # Alle möglichen Programme auf den aktuellen Stand bringen (aus den ports oder die fertigen Pakete mit pkg).
root@hostname:/ # freebsd-update install
root@hostname:/ # fertig.. (vielleicht noch zpool upgrade)

FreeBSD trennt (ganz grob gesehen) das eigentliche System und die Anwendungen. Man zerlegt sich also nicht so leicht wie mit einem "dist upgrade" sein System. Zusammen mit Boot Environments wie in Solaris und auch der Rollbackfunktion kommt man eigentlich immer schnell wieder auf ein sauberes System, wenn wirklich mal etwas schief gehen sollte.

Setzt man auf kein spezielles Management für seine Jails kommen die Jails über den gleichen Weg auf die neue Version.

root@hostname:/ # service jail status
 JID             IP Address      Hostname                      Path
 test            10.18.10.200   test.test          /zroot/jails/test
root@hostname:/ # freebsd-update -r 11.2-RELEASE upgrade -b /zroot/jails/test
root@hostname:/ # freebsd-update install -b /zroot/jails/test
root@hostname:/ # service jail restart test
Stopping jails: test.
Starting jails: test.
root@hostname:/ # freebsd-update install -b /zroot/jails/test
root@hostname:/ # Alle möglichen Programme auf den aktuellen Stand bringen (aus den ports oder die fertigen Pakete mit pkg).
root@hostname:/ # freebsd-update install -b /zroot/jails/test
root@hostname:/ # fertig..

Leider war in meinem Fall freebsd-update fest davon überzeugt, dass die Jail schon auf Version 11.2 ist. War die Jail aber nicht:

root@hostname:/ # jexec test freebsd-version
11.1-RELEASE-p9

Man kann freebsd-update in solchen Fällen fest vorgeben welche Version aktuell in der Jail läuft und so dieses Problem erschlagen:

root@hostname:/ # freebsd-update -b /zroot/jails/test --currently-running 11.1-RELEASE-p9 -r 11.2-RELEASE upgrade

Zack schon ist alles auf der richtigen Version :-D

Der Typ-2 Hypervisor bhyve von FreeBSD

Aus euch bekannten Gründen nutze ich selbst auf meinen Desktops und Notebooks FreeBSD als OS. Zugegeben.... An bestimmten Stellen ist es ganz ohne Microsoft Systeme nicht ohne Einschränkungen möglich bestimmte Dinge zu erledigen. Echtes Word oder Excel lässt sich nur bis zu einem bestimmten Punkt "ersetzten" vor allem wenn alle anderen damit arbeiten. Zwischen Outlook / Evolution oder OWA gibt es auch größere Unterschiede. Das Citrix XenCenter existiert so wie viele andere Software nur als Windows Version bei welcher es keinen Spaß macht diese durch Wine zu schieben..... Wie löst man dieses Problem? Richtig, mit einer VM in VirtualBox! Darf man ein Windows 10 Pro virtualisieren? Ja und nein... Man muss schon auf die passende Lizenz achten! Ähnlich ist es mit VirtualBox, hier ist der kostenlose Einsatz im Unternehmen an bestimmte Einschränkungen gekoppelt.

 

Alles kein Grund es nicht so zu machen. Die Windows und VirtualBox Lizenzen sind nicht unglaublich teuer und selbst mit den VirtualBox Einschränkungen könnte man sicher in vielen Fällen leben. FreeBSD kommt aber seit Version 10.0 mit einem eigenen Typ-2 Hypervisor mit dem Namen bhyve (gott ich vertippe mich immer bei dem Wort). Jetzt habe ich damit natürlich sehr neugierig experimentiert. Aber schnell gemerkt das es als VirtualBox Ersatz noch etwas Zeit benötigt. Für den täglichen FreeBSD Servereinsatz hatte ich keine Verwendung, hier lebe ich mit den jails :-) Inzwischen sind wir bei FreeBSD 11.1 und die Version 11.2 steht vor der Tür. Meine Windows VM hatte ebenfalls irgendein Problem mit welchem ich mich nicht beschäftigen wollte (ja ich vernachlässige sie sehr), also stand eh mal eine neue an. Mit den Basis Tools von bhyve lässt sich eine VM einrichten und nutzen. Ich würde es sogar empfehlen um die Idee dahinter zu verstehen. Für den normalen täglichen Umgang sollte man aber lieber ein Verwaltungstool nutzen. Für meinen neuen Test habe ich dieses mal auf vm-bhyve gesetzt. Weil... Na weil es in den Ports und ebenfalls direkt als binary über pkg zu bekommen ist. Ok ok, ich habe ebenfalls das Wiki in meine Überlegung einbezogen...

Im Wiki findet sich der Quickstart und ähm, ja das ist wirklich alles genau so nutzbar:

1. pkg install vm-bhyve [grub2-bhyve uefi-edk2-bhyve]
2. zfs create pool/vm
3. echo 'vm_enable="YES"' >> /etc/rc.conf
4. echo 'vm_dir="zfs:pool/vm"' >> /etc/rc.conf
5. vm init
6. cp /usr/local/share/examples/vm-bhyve/* /mountpoint/for/pool/vm/.templates/
7. vm switch create public
8. vm switch add public em0
9. vm iso ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-bootonly.iso
10. vm create myguest
11. vm [-f] install myguest FreeBSD-10.3-RELEASE-amd64-bootonly.iso
12. vm console myguest

Für meine Windows VM habe ich nur ein paar Dinge leicht anfassen müssen.

Die ISO hatte ich bereits auf meinem System liegen und schnell mit folgendem Aufruf "importiert":

vm iso /home/kernel/Download/windoof-iso.iso

Das virtualisierte Windows benötigt am Ende noch Treiber für die Netzwerkkarte. Dabei passt der virtio-net Driver den ich erst heruntergeladen und dann direkt importiert habe:

fetch https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.149-1/virtio-win-0.1.149.iso
vm iso /home/kernel/Download/virtio-win-0.1.149.iso

Dann die eigentliche VM aus dem mitgelieferten Template erstellen:

vm create -t windows -s 200G windoof

Durch das Template kommt die VM mit 2 CPUs und 2GB RAM. Die Systemplatte hat durch meine Option -s 200G eine Größe von 200GB. Da ich die Installation aber irgendwie durchführen muss und ich gerne doch 4 CPUs mit 8GB RAM hätte änderte ich die Konfiguration der VM direkt wie folgt ab:

vm configure windoof

uefi="yes"
cpu=4
memory=8G
graphics="yes"
graphics_port="5999"
graphics_listen="127.0.0.1"
graphics_res="1280x1024"
graphics_wait="auto"
xhci_mouse="yes"
network0_type="virtio-net"
network0_switch="public"
disk0_type="ahci-hd"
disk0_name="disk0.img"
uuid="c36583eb-739e-11e8-8176-ecf4bb47c54c"
network0_mac="58:9c:fc:01:41:8a"

So und nun nur noch VM starten und ISO "einlegen":

vm install windoof windoof-iso.iso

Nun einfach mit einem VNC Viewer der Wahl mit 127.0.0.1:5999 verbinden und Windows installieren. Nachher wieder über vm install die ISO mit den Netzwerktreibern "einlegen" und Windows einfach dort die Netzwerkkartentreiber suchen lassen, klappt prima. Ich habe dann einfach für meinen Benutzer rdp aktiviert und verbinde mich für alles Zukünftige einfach über rdp mit der VM. Fertig is :)

An / aus / snapshot usw. läuft alles über vm. So zum Beispiel auch die Übersicht über alle laufenden VMs:

vm list
NAME            DATASTORE       LOADER      CPU    MEMORY    VNC                  AUTOSTART    STATE
windoof    default         uefi        4      8G        -                    No           Running (10638)

Im Grunde absolut selbsterklärend, oder? Bei mir rennt nun seit einigen Tagen die VM so und ich brauche kein VirtualBox mehr \o/ Fragen? Dann Fragen :)