Migration Linux Server -> FreeBSD 11.0

schorsch_76

FreeBSD Fanboy
Hallo zusammen,

ich überlege was bei der Migration meines lokalen Server von Debian auf FreeBSD passieren kann, bzw. welche Stolperfallen warten könnten.

Der Server ist mein NAS + VPN Server + Software Paketspiegel (apt-cacher-ng) + Photovoltaik Monitor.

Hardware:
  • Core2Duo T7400M
  • Sata SSD Platte
  • Marvel + Intel NIC.
  • 3 GB Memory
Code:
01:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22)
02:08.0 Ethernet controller: Intel Corporation NM10/ICH7 Family LAN Controller (rev 02)

Software:
  • Postgresql DB mit einer Custom Anwendung. Hier wird libpqxx als Interface genutzt. cron startet alle 2 min eine Aktion. einbindung über crontab sollte kein Problem machen.
  • Samba Server (vermutlich keine Probleme)
  • SSH
  • OpenVPN
  • git/CMake
Die echte Hardware fährt momentan zeitgesteuert in der Nacht runter und startet dann am morgen wieder. Die Hardware kann RTC Wakeup. Gibt es hier evtl. Schwierigkeiten? Was kann ich nutzen um die Wakeup Zeit vom System aus der Hardware zu geben?

Ich hab das bereits als VM installiert. Ist es wie unter Linux einfach möglich einen Dump des Filesystems der VM auf die echte Hardware zu bringen? Ich nutze den GENERIC Kernel unter amd64 und Free BSD 11.0-RELEASE.

In der /boot/loader.conf hab ich keine Anpassungen gemacht. Alles Standard Einstellungen was die Hardware anbelangt.

Gruß
Georg
 
Mit tar klappt die überspielung der VM-Daten auf einen anderen Server auf jedenfall, selbst schon öfters gemacht.

Also am Server Partitionen erstellen+Bootloader installieren, und danach .tar drüber entpacken.
 

Damit kann der gute Lennert sich von mir aus sonstwas wo hinschubsen in seiner Landschaft. Glücklicherweise kann ich um Lennertware einen recht großen Bogen machen - noch ...

... casync is hosted under the github systemd umbrella, and the projects share the same coding style.

Sag ich doch, wenn mans braucht, ist es vermutlich kaputt ... :belehren:

Wobei das, was er da vorhat ja durchaus sinnvoll sein kann. Warum man das nicht mit rsync und git abbilden kann und dafür ein Extra-Tool braucht erschließt sich mir nicht, was sicherlich an mir liegen wird.
 
Postgresql DB mit einer Custom Anwendung. Hier wird libpqxx als Interface genutzt. cron startet alle 2 min eine Aktion. einbindung über crontab sollte kein Problem machen.

Postgres funktioniert da unter FreeBSD meiner Erfahrung nach meist etwas besser, wenn man damit ein bisschen mehr off the norm geht, also eventuell auch Erweiterungen nutzt, man bestimmte Versionen und Kombinationen braucht, etc. Wenn da das was man standardmäßig mit Paketen bekommt nicht reicht kann man da gut mit poudriere nachhelfen, dass man dann wirklich entsprechend Postgres und libs in den Versionen die man braucht zur Verfügung hat.

Sollte also recht gut funktionieren.

  • Samba Server (vermutlich keine Probleme)
  • SSH
  • OpenVPN
  • git/CMake
Zu Samba kann ich nichts sagen, zu CMake auch relativ wenig, aber OpenVPN, git und SSH werden keinesfalls Problem werden.

Für systemd gibt's schon einen Thread, der "erfolgreicher" war, als erhofft. :ugly:

Also wenn's sein muss sich darüber auszulassen bitte anderswo. Ich glaube daran, dass wir es schaffen in einem Thread die Diskussion ohne dieses Thema zu führen. :)
 
Ok, FreeBSD läuft jetzt auf der Kiste. Als FS hab ich ZFS genommen auf der SSD. Ich hab das jetzt neu installiert. Nicht zur Strafe, sondern zur Übung ;)

Bei libpqxx aus den Packages wird postgres 9.3 reingezogen. Ich wollte zwar 9.6 haben aber ich nutzte keine Funktionen die bei >9.3 eingeführt wurden. Also lass ich das jetzt mal so.

Samba: Hier konnte ich die Konfiguration aus der VM einfach nutzen. Zu den Pfaden der Freigaben: Ich habe das jetzt alles unter /usr/local/srv/nas abgelegt. Das scheint aber auf der / Partition des installierten ZFS zu liegen. Wo sollte man das bei BSD hinpacken? Unter Linux hatte ich das eben unter /srv/nas.

git + CMake machten keinerlei Probleme.

OpenVPN: Hier konnte ich auch die Config vom Linuxrechner nutzen.

Zum Runterfahren und Aufwachen: Ich nutzte rtcwake zum setzen der Aufwachzeit unter Linux: Gibt es hier ein Äquivalent auf BSD oder ist das BIOS die einzige Option?
 
Ohne groß drüber nachgedacht zu haben -> Wenn Du deine Pakete alle selber baust, kannst Du Dir deine Abhängigkeiten basteln wie Du willst und in der make.conf festnageln. Wenn Du aber mit den Standardpaketen auskommst, dann ist die Verwaltung weniger rechen- und arbeitsintensiv für Dich.

Es ist eine Überlegung die Pakete von quarterly auf latest zu stellen. Meiner Erfahrung nach, laufen die latest bsi auf seltene Ausnahmen auch produktiv stabil genug.

Wenn Dir der Pfad unter /usr/local/ gefällt, dann lass ihn doch einfach da. Ich versuche alles "selbstreingebaute" unter /var oder /home unterzubringen, dann muß ich bei einem Umzug nicht lange Sachensucher spielen.

HTH
 
aber auf der / Partition
da müsste man nun mal sehen, wie du ZFS umgesetzt hast, um da überhaupt etwas dazu sagen zu können.
Bei mir zB ist es so, dass ich ZFS (fast) immer die kompletten Platten hinwerfe, also noch nicht mal zuvor überhaupt dort irgendeine Partition anlege. Das kann ZFS. Ein ZFS braucht auch keine Partitionen, denn es kennt Datasets und wenn man das möchte, kann man davon welche einfach anlegen. Eben auch nachträglich. Dazu braucht man die man-pages von ZFS und ZPOOL und vielleicht die Erklärungen im FreeBSD-Handbuch. Einzelne Datasets können gewisse Vorteile bringen, wie früher eben auch einzelne Partitionen, doch grundsätzlich ist es ziemlich egal, ob ich einen Snapshot von einem Dataset anlege, auf dem mein Verzeichnis liegt, oder ob ich ein eigenes Dataset für mein Verzeichnis erstelle. Ich denke, die Vorteile sind offensichtlich und es kann jeder für sich leicht entscheiden. Datansicherung ist auch bei ZFS und Snapshots immer noch Pflicht.

Zum Runterfahren und Aufwachen:
ich habe da nur bescheidene Erfahrung gesammelt. Diese war ausnahmslos negativ, vor allem mit FreeBSD. Aber langfristig gesehen fangen auch Mac-OS-X und sogar GNU/Linux nach längerer Zeit an, sich merkwürdig zu verhalten, wenn sie immer nur schlafen. Bei FreeBSD auf unterschiedlicher HW habe ich das sogar schon mehrfach vollkommen aufgegeben.
Seit einiger Zeit beobachtete ich dann auf meiner HW, dass nur die Macs noch wirklich schnell aufwachten. Der Hammer war dabei ein Win10 auf aktuellem Laptop, das länger zum Aufwachen brauchte, als ein Ubuntu auf sehr viel schwächerer HW zum Booten.
Deshalb nutze ich keine Schlafmodi mehr. Vielleicht ändert sich das im Laufe der Zeit mal wieder, aber aktuell boote ich lieber neu oder lasse durchgehend laufen. FreeBSD kann sehr gut sehr lange laufen und jedenfalls bei mir nur sehr schlecht wieder vollständig aufwachen.
 
Hallo pit234a,
Ich habe immer ganz heruntergefahren (S5) und dann zeitgesteuert wieder hochgefahren. rtcwake habe ich genutzt um im BIOS die Aufwachzeit zu setzen. Ich kenne unter FreeBSD noch nicht die Konsolenkommandos für diese Tätigkeit. Ich hätte auch kein Problem mit einer API, dann schreib ich eben ein Programm dazu ;)

Zum ZFS: Der Installer hat das so angelegt:
Code:
root@nas-dsm:/usr/home/nas/ # df -h
Filesystem  Size  Used  Avail Capacity  Mounted on
zroot/ROOT/default  200G  1.1G  199G  1%  /
devfs  1.0K  1.0K  0B  100%  /dev
zroot/tmp  199G  104K  199G  0%  /tmp
zroot/usr/home  211G  13G  199G  6%  /usr/home
zroot/usr/ports  199G  640M  199G  0%  /usr/ports
zroot/usr/src  199G  96K  199G  0%  /usr/src
zroot/var/audit  199G  96K  199G  0%  /var/audit
zroot/var/crash  199G  96K  199G  0%  /var/crash
zroot/var/log  199G  224K  199G  0%  /var/log
zroot/var/mail  199G  108K  199G  0%  /var/mail
zroot/var/tmp  199G  96K  199G  0%  /var/tmp
zroot  199G  96K  199G  0%  /zroot

Ich hab die Datenordner jetzt nach /usr/home/nas gepackt. Das erschien mir dann logisch :) Was ich hier nicht verstehe, wenn das ein Pool ist, warum hat dann bsp /usr/home 6% belegt und / 1%?
Wen ich "ls /zroot" mache bekomme ich eine leere Ausgabe, aber bei df -h erscheint "zroot/ROOT/default".
Ich denke ich muss mich nochmal intensiv mit ZFS beschäftigen...

Das ist eine
Code:
smartctl -a /dev/ada0
smartctl 6.5 2016-05-07 r4318 [FreeBSD 11.0-RELEASE-p9 amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:  SandForce Driven SSDs
Device Model:  SanDisk SDSSDA240G
Serial Number:  170217458302
LU WWN Device Id: 5 001b44 4a6aaa82e
Firmware Version: Z32080RL
User Capacity:  240,057,409,536 bytes [240 GB]
Sector Size:  512 bytes logical/physical
Rotation Rate:  Solid State Device
Form Factor:  2.5 inches
Device is:  In smartctl database [for details use: -P show]
ATA Version is:  ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:  Thu Jun 29 21:26:09 2017 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Gruß
Georg
 
Was ich hier nicht verstehe, wenn das ein Pool ist, warum hat dann bsp /usr/home 6% belegt und / 1%?
Weil sich alle Datasets den Speicherplatz teilen. So hat /usr/home 6% des Speicherplates von 199GB belegt und / hat 1% des Speicherplatzes von 199GB belegt. Mit df ist das etwas verwirrend, ich finde die Ausgabe von "zfs list" besser.
Wen ich "ls /zroot" mache bekomme ich eine leere Ausgabe
Das Dataset zroot hat einge "Kinder". Die sind aber alle wo anders hin gemounted, keines davon hat einen mountpoint unterhalb von /zroot. Darum siehst du da nix.
aber bei df -h erscheint "zroot/ROOT/default".
genau, das ist ja auch nach / gemounted.
Ich denke ich muss mich nochmal intensiv mit ZFS beschäftigen...
Unbedingt. Es gibt hier im Forum einige Threads dazu und auch die Doku von Oracle zu ZFS unter Solaris hat einige gute Artikel, die die Grundlagen erklären.
 
Ich denke ich muss mich nochmal intensiv mit ZFS beschäftigen...
unbedingt!!!

Ich habe das Jahre ignoriert und ZFS nur als super Dateisystem für redundante Platten-Verbände begriffen/benutzt. Erst vor wenigen Wochen hatte ich mir die Zeit genommen, etwas mehr darüber zu lernen und war ziemlich verblüfft. ZFS ist echt geil, es verbraucht nur teuflisch viele Ressourcen, die heute aber jeder PC mitbringt.

das Weitere hat derOliver schon erklärt, nur noch soviel: man kann auch ein Dataset auf eine maximale Größe festlegen, anstatt im Rahmen der Möglichkeiten dynamisches Wachstum zuzulassen. Das siehst du dann aber, wenn du dich mit ZFS etwas genauer befasst.
 
Rich (BBCode):
rtwake
Zum Runterfahren und Aufwachen: Ich nutzte rtcwake zum setzen der Aufwachzeit unter Linux: Gibt es hier ein Äquivalent auf BSD oder ist das BIOS die einzige Option?

Bitte um Entschuldigung, dass ich diesen älteren Thread wiederbelebe, aber ich stehe gerade mit meiner TrueNAS-Installation vor dem selben Problem. Ich würde gerne die vorhandene RTC mit einer Aufwachzeit programmieren, sehe aber weder ein RTC Device im Filesystem noch Unterstützung für rtcwake. Hast Du da mittlerweile eine Lösung?
 
Bitte um Entschuldigung, dass ich diesen älteren Thread wiederbelebe, aber ich stehe gerade mit meiner TrueNAS-Installation vor dem selben Problem. Ich würde gerne die vorhandene RTC mit einer Aufwachzeit programmieren, sehe aber weder ein RTC Device im Filesystem noch Unterstützung für rtcwake. Hast Du da mittlerweile eine Lösung?
Nein. leider nicht :(
 
Kleines Update: Ich hab jetzt einen Workaround: WOL. Ich hab WOL eingeschalten und ein kleines Script gebaut das prüft ob offene TCP verbindungen in den letzten 5 min waren. Falls keine Nutzung stattfand, fährt der Rechner runter und wartet auf ein WOL Packet. Bei Aktivität auf der LAN Schnittstelle fährt der Rechner wieder hoch.
 
Zurück
Oben