FreeBSD portierte bisher seinen ZFS Zweig von Illumos. Dieses wechselt nun zu ZFS on Linux. Was es für mich so spannend macht ist der Verschlüsselungssupport. ZFS on Linux bietet diesen bereits und somit wird er wohl auch bald für FreeBSD zur Verfügung stehen 🙂
Gerade eben lese ich eine E-Mail von Kris Moore auf der FreeBSD-Current Mailingliste. In der E-Mail werden zwei ISO Images genannt welche es ermöglichen FreeBSD mit ZFS on Linux zu testen. \o/ Natürlich ist es nicht die Version welche am Ende „drin“ sein wird und es ist nichts was man auch nur im Ansatz produktiv einsetzten kann/sollte. ABER testen soll man es ja und ich möchte unbedingt mal die Verschlüsselung sehen!
Als Art der Verschlüsselung habe ich hier aes-256-gcm gewählt und der Schlüssel soll als passphrase von mir eingegeben werden. Nachdem ich mein passphrase eingegeben habe wird das neue Dataset erstellt und direkt für mich ein gehangen, wie man es gewohnt ist:
root@freebsd13-zol:~ # zfs list usbpool/test01
NAME USED AVAIL REFER MOUNTPOINT
usbpool/test01 99K 899G 99K /usbpool/test01
root@freebsd13-zol:~ # zfs get encryption usbpool/test01
NAME PROPERTY VALUE SOURCE
usbpool/test01 encryption aes-256-gcm -
root@freebsd13-zol:~ # zfs get mounted usbpool/test01
NAME PROPERTY VALUE SOURCE
usbpool/test01 mounted yes -
Da ein passphrase von mir jeweils eingegeben werden muss, kann dieses Dataset bei einem reboot oder impot/export nicht automatisch eingehangen werden.
root@freebsd13-zol:~ # zpool export usbpool
root@freebsd13-zol:~ # zpool import usbpool
root@freebsd13-zol:~ # zfs get mounted usbpool/test01
NAME PROPERTY VALUE SOURCE
usbpool/test01 mounted no -
Daher muss ich dieses von Hand anstoßen.
root@freebsd13-zol:~ # zfs mount -l usbpool/test01
Enter passphrase for 'usbpool/test01':
root@freebsd13-zol:~ # zfs get mounted usbpool/test01
NAME PROPERTY VALUE SOURCE
usbpool/test01 mounted yes -
Genau so habe ich es mir gewünscht. Schnell, einfach und unkompliziert. Ob es ebenfalls über Snapshots send/recv und mit Keyfiles usw. so arbeitet wie ich es mir wünsche, werde ich nun probieren können!
Ein verschlüsseltes Dataset anlegen zu können, erfreut mich aber jetzt schon sehr!
Fragen? Dann fragen 🙂
Update
Um Fragen zu beantworten. Ja, die Userland Tools und das Kernelmodul sind bereits in den Ports. Will man es auf einem FreeBSD 12.x RELEASE bauen funktioniert dieses nicht:
root@test:/usr/ports/sysutils/zol-kmod # make install clean
===> zol-kmod-2019041800 needs FreeBSD 12/13 with AES-CCM support.
*** Error code 1
Stop.
make: stopped in /usr/ports/sysutils/zol-kmod
Es funktioniert sauber mit FreeBSD 13 CURRENT und dem FreeBSD 12 STABLE. CURRENT ist bei FreeBSD immer die nächste Version. Die RELEASE Versionen sind die stabilen Versionen welche auch nur noch Security und Bugfixes bekommen. Die STABLE Verstion bekommt zudem noch „Veränderungen“ mit. Ganz grob kann man es also mit Stable, Testing, Unstable bei Debian vergleichen 🙂
Der AES-CCM Support ist also nur in FreeBSD 13 CURRENT und in FreeBSD 12 STABLE im Kernel aktiviert. Man kann also nun zum Testen auf die 13 wechseln, auf die 12 Stable gehen, auf das nächste RELEASE warten, seinen Kernel neu bauen oder eines der ISOs oben probieren. Jetzt ist auch klar, warum ich die ISOs so empfehlenswert fand/finde 😀 Vor allem da das FreeBSD 12 ISO das FreeBSD 12.0-RELEASE-p3 ist und man so schon seine Produktivumgebung testen kann!
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:
Es gibt auf FreeBSD mehrere Möglichkeiten um ZFS Snapshots zu automatisieren. Ich selbst nutze sehr gerne die zfstools (sysutils/zfstools). Dieses orientiert sich nämlich an der Automatisierung von Solaris / Opensolaris. Liegt mir am nächsten und kann sogar konsistente Snapshots einer MySQL oder auch PostgreSQL erstellen.
Die zfstools sind als binary oder aus den Ports flott installiert:
root@errorlap ~> pkg install zfstools
Nach der Installation füttert man noch schnell seine /etc/crontab:
Fehlt nur noch dieses ebenfalls im jeweiligen ZFS Volume zu aktivieren. Auf meinem Notebook reicht es mir für das Homevolume:
root@errorlap ~> zfs set com.sun:auto-snapshot=true zroot/usr/home
Ab diesem Moment werden nun ZFS Snapshots für mein(e) home(s) erstellt. Im Standard werden dabei folgende Snapshots vorgehalten:
– Ein Snapshot alle 15 Minuten, dabei werden 4 Snapshots vorgehalten. – Ein Snapshot jede Stunde, dabei werden 24 Snapshots vorgehalten. – Ein Snapshot jeden Tag, dabei werden 7 Snapshots vorgehalten. – Ein Snapshot jede Woche, dabei werden 4 Snapshots vorgehalten. – Ein Snapshot jeden Monat, dabei werden 12 Snapshots vorgehalten.
Für meine Zwecke ist diese absolut ausreichend. Über diesen Weg komme ich sehr schnell und einfach wieder an einen alten Stand 🙂
Möchte man eine Datenbank damit „sichern“ muss dieses speziell für das Datenbankvolume angegeben werden:
root@errorlap ~> zfs set com.sun:auto-snapshot=postgresql DATASET
Im Grunde muss es nicht erwähnt werden…. Aber eine Datensicherung auf dem gleichen System ist keine echte Datensicherung 😛 Man könnte jetzt aber diese Snapshots mit einem zfs send verbinden und somit die Snapshots replizieren.
Ja, meine Posts schlafen in der letzten Zeit etwas 🙁
Um wieder etwas zu schreiben und auch ein paar Wünschen entgegen zu kommen, hier nun etwas zu FreeBSD auf dem Desktop. Das Windows und MAC Benutzer immer etwas irritiert auf die fertige Grundinstallation von einem FreeBSD schauen wundert sicher nicht. Linux Benutzer schauen aber oft ebenfalls etwas „überrascht“….
FreeBSD als Serversystem, damit können sich Linuxuser ja noch einlassen…. Aber als Desktop? Dinge wie VPN, LAN oder WLAN plötzlich wieder selbst konfigurieren müssen… Oder dem Benutzer erst die Rechte zu geben um eine CD brennen zu können, das kennen auch Linuxuser kaum noch. In dieser usability hängt FreeBSD auch noch ein paar Jahre hinter Linux. Nun kann man sich darüber streiten! 2016 sollten bestimmte Dinge einfach gegeben sein. Ich persönlich empfinde es aber als sehr angenehm. Früher habe ich lange mit einem Opensolaris auf dem Desktop gearbeitet. Dieses ist inzwischen leider vollständig von FreeBSD verdrängt worden. Opensolaris ist einfach inzwischen ZU weit weg um auf einem Desktop sinnvoll betrieben zu werden 🙁
Ein FreeBSD bietet mir noch immer das gute alte Unixgefühl, ich habe direkt ein sauberes ZFS unter den Füßen und die für mich wichtigen Anwendungen laufen alle sauber und Problemlos unter FreeBSD und mit so einem Ubuntu bin ich noch nie richtig warm geworden. Ich würde selbst bei einem Linuxdesktop am Ende wieder bei einem Gentoo oder ähnlichem landen.
Es sollte aber um die Grundinstallation gehen, nein nicht mit Screenshots bis zum Login…. Ich meine eher den Punkt zwischen der fertigen FreeBSD 10.3 Installation und einem grafischen Desktop.
Der grafische Desktop soll am Ende deutsch sprechen, ein Mate sein, Firefox, Pidgin, Evolution und VLC bieten, sowie einen grafischen Login per SLIM. Also eine ordentliche Startbasis um FreeBSD einmal auf dem Desktop probieren zu können. Oh.. Wer es noch einfacher möchte kann ebenso auf PCBSD zurückgreifen. Ein wunderbares Projekt (viele der deutschen Übersetzungen sind von mir *lach*)! Um mehr mit FreeBSD zu machen dennoch nicht der perfekte Start. Es ist nicht immer SO stabil wie ich es erwarten würde und nimmt dem User dann doch etwas zu viel ab. Kommt den Erwartungen von Linuxusern dafür sehr nahe!
Zurück zum Thema..
Ist die Grundinstallation vom FreeBSD erledigt, hängt man auf dem root Login in der Konsole. Wenn ich nun von einer funktionstüchtigen Internetverbindung ausgehe, bringt einen folgendes zu einem Desktop:
Als erstes wird FreeBSD versuchen sich den aktuellen Quellenstand aus dem Internet zu holen. Im Anschluss wird es beginnen die nötigen Pakte zu laden und zu installieren. Die Zeile ist dabei selbsterklärend, oder?
Ist die Installation durch müssen ein paar Einstellungen vorgenommen werden!
Mit dem vi füttert man nun die Datei /etc/rc.conf mit folgenden Informationen:
# Use German (ISO8859-15) console fonts
font8x8="iso15-8x8"
font8x14="iso15-8x14"
font8x16="iso15-8x16"
#dbus and hald for our Desktop
dbus_enable="YES"
hald_enable="YES"
#Activate slim
slim_enable="YES"
# Disable line printer daemon
lpd_enable="NO"
# Enable CUPS
cupsd_enable="YES"
# Clean temporary files.
clear_tmp_enable="YES"
clean_tmp_X="YES"
#activate new devfsrules
devfs_system_ruleset="devfsrules_common"
Ich gehe es mal der Reihe nach durch. Da keymap=“german.iso.kbd“ bereits in der rc.conf gesetzt sein sollte fehlen nur noch die richtigen Schriftarten in der Konsole um alles passen darstellen zu können. Dbus und hald sorgt dafür das unser Desktop am Ende mit allem so wunderbar sprechen kann. Damit slim auch beim Boot gestartet wird muss es aktiviert werden. Drucken wollen wir über cups und zur Sicherheit deaktivieren wir die Konkurrenz. Desktops müllen immer alles gerne voll, temp aufräumen kann da helfen. Um mit unserem Benutzer auf verschiedene Hardware zugreifen zu können, muss er die Rechte bekommen. Dieses wird später über erweiterte devfsrules gesetzt. Damit diese angewendet werden, muss es aktiviert werden!
Wir wollen später deutsch sprechen am einfachsten lässt sich dieses den einzelnen Logins mitgeben, wenn diese Information einfach angepasst für den einzelnen Benutzer mitgegeben wird. Unter FreeBSD legt in der /etc/login.conf Verschiedene „Logingruppen“ an und weißt diese dann später den jeweiligen Benutzern zu, wenn sie greifen sollen.
Ebenfalls verständlich und logisch, richtig? Japp 😀
Wie unter Linux sollte der Benutzer in der Gruppe wheel sein um per su zum root wechseln zu können (nur falls mal jemand sucht..). Ebenfalls haben wir zwar sudo installiert, der Benutzer sollte aber noch per visudo die Möglichkeit bekommen es zu benutzen:
##
## User privilege specification
##
root ALL=(ALL) ALL
kernel ALL=(ALL) ALL
root@errorlap:~ # pw groupmod wheel -m kernel
Im Grunde sollte es damit schon einen nutzbaren Desktop geben. Wer noch weitergehen möchte, ich habe da noch ein paar Dinge in meiner /boot/loader.conf die helfen könnten:
# Use new graphical console driver
kern.vty=vt
# Devil worship in loader logo
loader_logo="beastie"
# Boot-time kernel tuning
kern.ipc.shmseg=1024
kern.ipc.shmmni=1024
kern.maxproc=10000
# Load MMC/SD card-reader support
mmc_load="YES"
mmcsd_load="YES"
sdhci_load="YES"
# Filesystems in Userspace
fuse_load="YES"
# Intel Core thermal sensors
coretemp_load="YES"
# In-memory filesystems
tmpfs_load="YES"
# Asynchronous I/O
aio_load="YES"
# Handle Unicode on removable media
libiconv_load="YES"
libmchain_load="YES"
cd9660_iconv_load="YES"
msdosfs_iconv_load="YES"
snd_driver_load="YES"
cuse4bsd_load="YES"
linux_load="YES"
drm_load="YES"
drm2_load="YES"
iicbus_load="YES"
# Tune ZFS Arc Size - Change to adjust memory used for disk cache
vfs.zfs.arc_max="2048M"
Im Grunde findet sich aber für alles eine recht gute Anleitung. Auch wenn man jetzt Nvidia Karten nutzen möchte oder Virtualbox braucht! Ein wirklich ganz wichtiger Punkt für ein BSD (egal ob FreeBSD / NetBSD usw…) ist die Dokumentation. Wie auch bei einem Solaris oder beim guten alten Unix ist die Dokumentation nicht nur vollständig, sondern auch aktuell, richtig, ausführlich und sehr gut! Bei Linux ist die Dokumentation auch… sagen wir mal „ok“ ABER sie ist nicht immer vollständig, nicht immer aktuell, auch gerne mal nicht ganz korrekt und nicht immer so ausführlich, wie sie sein sollte.
Beim nächsten mal dann vielleicht wirklich etwas zu nvidia, virtualbox, den Ports oder ähnliches!
Mist verdammter! In meiner Sun Ultra 45 ist gerade die Grafikkarte abgefackelt :-/ Im Grunde dürfte ich mich nicht aufregen, denn das System ist von 2006. Also inzwischen 9 Jahre alt. Welches 9-Jahre alte System darf nicht mal einen Def. haben?
Ich stand also vor der Entscheidung die Workstation endgültig in Rente zu schicken oder mich noch einmal um einen neuen VGA zu kümmern. Puhh…
Es sind zwei UltraSPARC IIIi 1.6-GHz CPUs verbaut, 8GB Speicher und ein paar feine SAS Platten…. Zusammen mit der Grafikkarte ist es noch immer ein ganz passables Arbeitsgerät. Vor allem wenn ein Solaris darauf rennt! Natürlich gibt es kaum etwas, dass man nicht genauso (wenn nicht sogar besser) auf jeder anderen Kiste machen könnte. Aber die Maschine ist nun schon so lange bei mir und arbeitet so perfekt, ich hänge einfach an der Kiste.
Ich werde mir also mal so eine refurbished Karte „klicken“. Irgendwo habe ich etwas von 70€ gelesen. Ich glaube nicht, dass ich 70€ in ein 9Jahre altes System stecken. Ich muss bekloppt sein!!!
Kann mich jemand verstehen / mir Mut machen? ==> kernel-error@kernel-error.com
Ich muss sicher keinem mehr erzählen, dass ich ein absoluter ZFS Fan bin…. Wie sich Snapshots erstellen und per ssh einfach über das Netzwerk übertragen lassen, habe ich ja bereits vor einigen Jahren beschrieben. In einem Gespräch sind wir vor kurzem auf FlexClone von NetApp gekommen (von wegen Enterprise Storage 😉 ). In diesem Zusammenhang auch irgendwann auf die Art wie ich die Datensicherung auf meinem FreeBSD Notebook machen 🙂
Ich habe einen kleinen Solaris basierten Storageserver. Auf diesen pumpe ich inkrementell das ZFS Home Volume von diesem Notebook. Um euch nicht im Dunkeln zu lassen, beschreibe ich es hier kurz.
Der Ablauf ist im Grunde so: – Snapshot auf dem Client anlegen. – Volume auf dem Ziel anlegen. – Snapshot vom Client per SSH in das Ziel schieben. – Weitere Snapshots auf dem Client anlegen. – Die Differenz der Snapshots auf das Volume ins Ziel schieben.
Los gehts!
Erstellen eines Snapshots auf dem Notebook. Dieses definiert damit auch den zu sichernden Stand:
Sollte ein zfs list keine Snapshots anzeigen, ist dieses sicher beim Pool deaktiviert. In diesem Fall hilft ein:
$ zpool set listsnapshots=on tank
Auf dem Sicherungsziel erstelle ich nun ein neues ZFS Volume, in welches die Sicherung gehen soll:
$ zfs create DatenPool01/Datensicherung/errorlap
$ zfs list DatenPool01/Datensicherung/errorlap
NAME USED AVAIL REFER MOUNTPOINT
DatenPool01/Datensicherung/errorlap 209K 2.56T 209K /mnt/DatenPool01/Datensicherung/errorlap
Nun kann ich bereits den erstellten Snapshot in dieses neue Volume schieben:
$ zfs send -R tank/usr/home/kernel@-12-10-2014 | ssh
root@solaris-storage.kernel-error.de zfs receive -Fduv DatenPool01/Datensicherung/errorlap
The authenticity of host 'solaris-storage.kernel-error.de (192.168.10.10' can't be
established.
ECDSA key fingerprint is ec:c0:e6:ed:81:b4:16:35:e9:c6:22:f0:a7:f7:ed:d6.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'solaris-storage.kernel-error.de' (ECDSA) to the list of known
hosts.
root@solaris-storage.kernel-error.de's password:
receiving full stream of tank/usr/home/kernel@-12-10-2014 into
DatenPool01/Datensicherung/errorlap/usr/home/kernel@-12-10-2014
received 98.4GB stream in 5298 seconds (19.0MB/sec)
Ist dieses durch, sollte man dieses natürlich am Ziel auch erkennen können:
$ zfs list DatenPool01/Datensicherung/errorlap
NAME USED AVAIL REFER MOUNTPOINT
DatenPool01/Datensicherung/errorlap 97.0G 2.47T 221K /mnt/DatenPool01/Datensicherung/errorlap
Jetzt ist also bereits eine Vollsicherung im Ziel angekommen. Die weiteren Sicherungen sollen/können nun inkrementell erfolgen. Dazu erstelle ich einen weiteren Snapshot:
Nun kann ich die Differenz dieser beiden Snapshots ins Ziel schieben:
$ zfs send -R -i tank/usr/home/kernel@-12-10-2014
tank/usr/home/kernel@-12-10-2014-02 | ssh root@solaris-storage.kernel-error.de zfs
receive -Fduv DatenPool01/Datensicherung/errorlap
root@solaris-storage.kernel-error.de's password:
Permission denied, please try again.
root@solaris-storage.kernel-error.de's password:
receiving incremental stream of tank/usr/home/kernel@-12-10-2014-02 into
DatenPool01/Datensicherung/errorlap/usr/home/kernel@-12-10-2014-02
received 991MB stream in 59 seconds (16.8MB/sec)
Somit liegt im Ziel nun eine aktuelle Datensicherung. Dieses lässt sich nun natürlich per Script automatisieren und vor allem alle 15 Minuten erstellen, sofern gewünscht! So lassen sich natürlich auch Vollsicherungen des kompletten Notebooks erstellen 🙂
B.t.w.1: NetApp stelle ich hiermit sicher nicht in Frage. Spitzen Produkte, gut durchdacht und toller Service.
B.t.w.2: PC-BSD bietet ein Stück Software mit dem Namen Life Preserver. Mit dessen Hilfe kann man die Snapshots auf seinem kompletten Pool managen und diesen recht einfach per SSH mit einem anderen ZFS System syncen. So zum Beispiel auch mit FreeNAS. Alles lässt sich damit komplett automatisieren. So kann man alle 15 Minuten per SSH seinen kompletten Pool auf sein ZFS Backup schieben. Mit passenden Internetanbindung von überall auf der Welt transparent. Stirbt das System, kann man mit einer Boot CD und einer neuen Platte ganz flott alles wiederherstellen, egal wo man gerade ist 😀
Ich habe heute einen Anruf eines befreundeten Sysadmins bekommen. Der arme muss darf heute bei einem seiner Kunden den Serveraum umziehen… Dafür möchte er nun die Systeme abschalten. Jetzt steht dort ein Solaris 11 System und der zum System gehörende Admin ist krank (zufällig am Feiertag des Serverraumumzuges…)! Jetzt steht mein Bekannter also vor der Konsole und will die Kiste im Grunde nur abschalten. Folgendes Gespräch ergab sich:
Bekannter: init 0 geht nicht, beim shutdown -h now soll -h eine unknown option sein. Ich bin genervt… Wie geht das aus? Ich: Solaris 11 im poduktiveinsatz? Dann habt ihr auch Support von Oracle; anrufen / chatte die helfen immer sofort. Bekannter: Laber nicht rum, ich bin hier für die Microsoft Maschinen. Keine Ahnung wo ich weh anrufen kann. Du kannst das doch, oder? Ich: Joar… Folgendes sollte dir helfen:
$ shutdown -y -i5 -g0
Bekanter: *Klacker Tipper* Ich: Root Konsole hattest du schon oder? Bekannter: *Klacker* japp *Klacker* Ich: shutdown ist shutdown, -y ist damit du nicht gefragt wirst -i5 ist um die Kiste nach dem Shutdown auch aus zu machen und -g0 ist das es unverzüglich gemacht wird. Bekannter: Warum ist das so kompliziert? Geht das nicht einfacher? Bei Linux ist das doch einfach shutdown -h now… Man… Ich will eine Maus! Ahh ich glaube er fährt runter! Ich: Du hättest mit man shutdown den korrekten Befehl erlesen können. Bekannter: Ach, das muss einfacher gehen! Ich: Ok dann nimmer das nächste mal den Befehl poweroff… Bekannter: Du Sack! Danke..
Ich finde es schon sinnvoll unterschiedliche Arten eines shutdown zu haben. Vor allem mit verschiedenen Arten der Signalisierung.
Eine gute Frage, oder? Nun ja, man bekommt diese tolle Windows Server Image oder Image Server Sicherung ja kostenlos von Microsoft dazu. Mit ihr lassen sich auch tatsächlich komplette Server sichern. Dieses sogar zuverlässig 😀
Ich muss aber sicher nicht erwähnen, dass ich im Grunde keine Ahnung von Microsoft Systemen und vor allem der Windows Server Sicherung habe, oder? Egal, mal weiter! Ich wollte ja die Frage beantworten….
Die Windows Server Sicherung kann nicht mit Bandlaufwerken oder ähnlichem umgehen. Natürlich kann man auf einen Netzwerk Share -eine Freigabe- sichern. Da die Sicherung in diesem Fall leider keine Volume Shadow Copy vom Ziel erstellen kann, würde die laufende Sicherung also die bestehende Überschreiben. Bricht die Sicherung als „unvollständig“ ab, hat man nichts mehr.
Volume Shadow Copy…. Weist man der Windows Server Sicherung ein spezielles Backup Volume zu, gibt es der Windows Sicherung die Möglichkeit solche Schattenkopien vom Ziel anzulegen. Man verliert also bei einer unvollständigen Sicherung nicht unbedingt die alten Sicherungen :-). Damit sind wir also bei einer im Rechner verbauten Platte, einer externen USB Platte (bis hier eine schlechte Idee) oder auch bei einer ISCSI Platte. Ersteinmal ok, oder? Jain, warum erkläre ich später! Erst noch etwas zu den Schattenkopien. Windows selbst hat natürlich die Möglichkeit einzelne Schattenkopie von seinen Dateien anzulegen. Diese werden sogar noch von der Serversicherung gesichert. So könnte man also nach dem Zurückspielen einer Vollsicherung sogar noch zu einem etwas älteren Stand zurückspringen. Denn noch muss zuerst die Vollsicherung zurückgespielt werden und dann geht es auf einen älteren Stand. Das ist im Falle einer Rücksicherung sehr langwierig. Funktioniert denn noch sehr gut…
Vollsicherung… Die Windows Server Sicherung kann nur Vollsicherungen erstellen, also keine inkrementell oder differentielle Datensicherung. Das bedeutet man muss jeden Tag die kompletten Daten zum Sicherungsziel „pumpen“. Nutzt man nun als Ziel ein intelligentes Storage System wie ein NetApp oder ein ZFS basiertes System (Nexenta, OpenIndiana, Solaris, FreeNas)… Vielleicht noch zusammen mit ISCSI…. dann bringen einem sehr viele der feinen Zusatzfunktionen des Storage Servers kaum noch etwas. Mal angenommen man möchte sein Storage System mit einem anderen abgleichen, dann wird ebenfalls wieder alles kopiert, da sich ja leider immer alles ändert. Dumme Sache das 🙁
Möchte man also seine Sicherung nicht im Unternehmen liegen haben (Feuer / Flugzeug / Wasser / ..) würde so jeden Tag die vollständige Sicherung bewegt werden müssen. Denkt man nun an ein paar TB wird schnell klar, das man sich schon extreme Anbindungen an seinen Standort mieten muss, nur um die Sicherung überhaupt in einem gewissen Zeitfenster aus dem Haus zu bekommen.
Hier kommen dann wieder die etwas teureren Sicherungsprogramme anderer Hersteller ins Spiel .-)
Um es also auf den Punkt zu bringen… Die Windows Server Sicherung funktioniert und hält was sie verspricht, ohne die Möglichkeit einer differentielle Sicherung wird sie denn noch von mir in fast allen Fällen eine Abfuhr bekommen.
Oh ja, sobald es die Möglichkeit einer differentiellen Datensicherung gibt, bitte melden!
Was ist TRIM oder besser; Warum ist meine SSD so langsam?
Da unterhalte ich mich heute mit einem Bekannten über das neue Android 4.3 und welche Neuerungen es beinhaltet. Da stolpert mein Bekannter über TRIM. Nachdem ich es ihm erklärt habe, meint er: „Warum hat so eine geile Sache denn bisher noch keiner ersonnen? Das wäre doch auch für seinen PC wichtig!“. Wir sprechen kurz darüber das TRIM nicht wirklich eine Erfindung von Android/Google ist sondern um 2007 schon klar war.
Scheinbar ist das Thema im Zusammenhang mit Flash-Speichern wie SSD Festplatten, USB-Sticks oder Speicherkarten doch nicht so klar wie ich zuerst dachte….. Ja Felix, ich schreib es ja schon hier auf 🙂
Also was macht dieses komische TRIM? Nichts besonders, im Groben sagt es der Festplatte nur, welche Blöcke noch in Verwendung sind und welche nicht! Dieses hat natürlich einen Grund. Jeder der schon einmal „aus Versehen“ Dateien gelöscht hat und diese mit einem kleinen Programm wiederherstellen konnte, der weiß dass Dateien meist nicht gelöscht werden, sondern sie werden nur aus dem „Inhaltsverzeichnis“ des Datenträgers gelöscht und ihre Speicherblöcke werden im Dateisystem wieder zum Überschreiben gekennzeichnet. Welche Blöcke belegt und welche Böcke frei (also überschreibbar) sind davon hat der eigentliche Datenträger in der Regel keine Ahnung. Klassische Speichermedien müssen dieses auch nicht wissen. Für sie macht es keinen Unterschied ob der Block nun frei ist oder belegt. Im Gegenteil, es würde eher ein Problem sein, dieses dem Datenträger bei jedem Vorgang mit zu teilen. Warum? Nun ja, wenn ich eine Datei löscht, dann weiß das Dateisystem davon, dieses entfernt den Eintrag aus seinem „Inhaltsverzeichnis“ und macht noch ein bisschen „wuwu“ drumherum. Dieses bedeutet IOPS auf dem Datenträger. Wenn man nun zusätzlich noch den Datenträger darüber Informiert, dann bedeutet dieses noch mehr IOPS. Dieses setzt alle Komponenten unnötig unter Last und macht alles langsam.
Flash-Speicher kann nun IOPS deutlich besser verkraften als zum Beispiel eine einfache Festplatte. Denn beim Flash-Speicher sind die Informationen, egal wie verteilt sie auf dem Speicher liegen mögen, immer direkt verfügbar. Bei einer Festplatte muss erst der Schreib-/Lesekopf zur richtigen Spur gefahren werden und dann wartet alles darauf, dass die Information vorbei gedreht wird. Sind die Informationen auf einer Festplatte weit verteilt dauert es lange alle Informationen einzusammeln. Der Schreib-/Lesekopf muss halt immer erst zur richtigen Spur und dort auf die Informationen warten… Daher defragmentieren wir Festplatten, damit die Informationen möglichst schön zusammen liegen und optimalerweise in einer Spur direkt hintereinander eingelesen werden können. SSDs / Flash-Speicher defragmentieren wir nicht, denn es bringt nichts und macht nur den Speicher kaputt!!
Kaputt? Japp…. Denn hier wird in Speicherzellen geschrieben welche nach einer gewissen Anzahl Speichervorgängen unwiederbringlich kaputt gehen. Flash-Speicher sind daher mit etwas Intelligenz ausgestattet. So wird das Speichern auf einem Flash-Speicher immer über alle Speicherzellen verteilt. Damit ist die „Abnutzung“ am geringsten und der Speicher lebt am längsten. Zusätzlich gibt es immer etwas mehr Speicher als man wirklich benutzen kann. Dieser Speicher wird dann benutzt, wenn der Flash-Speicher voll oder besser fast voll beschrieben ist. Jetzt kann dieses verteilte und gleichmäßige Beschreiben der Speicherzellen natürlich nur mit freien und frei werdenden Blöcken passieren. Sonst würde wir ja Nutzdaten überschreiben. Genau jetzt wird es spannend. Denn wenn der Datenträger nicht weiß welche Blöcke wieder frei geworden sind, dann wird er irgendwann die Speichervorgänge nur noch auf dem Reservebereich verteilen und noch etwas später dann überhaupt nicht mehr, da für den Datenträger irgendwann alle Blöcke belegt sind. Dieses merkt der Benutzer dann meist daran, dass seine SSD ganz plötzlich sehr langsam arbeitet. Denn ab jetzt werden nur die Blöcke überschrieben, welche vom Filesystem explizit angegeben werden. Damit „verschleißt“ man also nicht nur seinen Flash-Speicher, sondern es wird zusätzlich langsam.
Teilt man also seinem Flash-Speicher mit welche Blöcke wieder frei geworden sind, kann dieser die Schreibvorgänge überhaupt und vor allem so gleichmäßig wie möglich verteilen. Das macht also TRIM 😀
Android kann es nun also ab Version 4.3, Linux macht es ab Kernel 2.6.33 (glaube ich zumindest) Windows 7 und die auf Windows 7 basierende Serverversion von Microsoft, Windows Server 2008 R2, kann es genau so wie: Solaris, FreeBSD oder Mac OS X.
Mac OS X im übrigen erst recht spät, bevor die Jungs angefangen haben in ihre MacBooks SSDs einzubauen war es wohl aus ihrer Sicht nicht nötig. Apple halt… Wie auch immer… Aktiviert werden muss es bei den meisten Betriebssystemen/Dateisystemen noch immer von Hand. Nur Microsoft ist da wie so oft etwas benutzerfreundlicher. Denn wenn der NTFS-Treiber erkennt dass der Datenträger TRIM unterstützt, schaltet er dieses voll automatisch mit an 🙂
Wer jetzt noch Windows XP oder *grusel* Window Vista einsetzt: Verkackt 🙂 ihr macht eure SSD kaputt!
Ein Linux Beispiel gefällig? Kein Problem…
So gesehen gibt es zwei mögliche Lösungen TRIM zu aktivieren:
1. Von Hand, wenn man es für nötig hält oder halt per cron-job. + Klasse Sache, geht ab Kernel 2.6.3irgendwas. + Per cron-job so einfach wie nem Baby den Schnuller zu klauen. – Informiert den Datenträger natürlich nur in dem Moment in welchem es gestartet wird über den aktuellen Zustand.
2. Automatisch beim einbinden/mounten des Dateisystems per fstab. + Informiert den Datenträger in Echtzeit. – Erst ab Kernel 3.0 wirklich mit den gängigen Filesystemen nutzbar. – Man munkelt über kaputte Daten/Datenträger mit sehr alten SSDs.
Beispiel für Version 1:
fstrim -v /
Ach ja, fstrim ist das Programm welches mit Root-Rechten ausgeführt werden muss. „-v“ sorgt für die nötigen Informationen und „/“ ist das gewünschte Filesystem.
Möchte man alles per cron täglich ausgeführt haben erstellt man am besten unter: /etc/cron.daily/ ein neues Script: hdd-trim
„/dev/sda1 / UUID“ natürlich genau so anpassen wie Mountpunkt oder Filesystem.
B.t.w.: Wir nehmen hier ein Programm, welches dem Datenträger sagt welche Blöcke frei sind und er doch bitte überschreiben darf/soll. Wenn hier etwas schief geht, werden unserer Daten überschrieben 🙂 Also, erst schauen ob die Versionen stimmen, ob die Firmware der Platte alles mit macht und dann nach einem Backup, testen 🙂
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Dauer
Beschreibung
cookielawinfo-checkbox-advertisement
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analytics
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
cookielawinfo-checkbox-necessary
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
cookielawinfo-checkbox-others
1 year
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Others".
cookielawinfo-checkbox-performance
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to store the user consent for cookies in the category "Performance".
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Dauer
Beschreibung
CONSENT
16 years 3 months 22 days 14 hours
These cookies are set via embedded youtube-videos. They register anonymous statistical data on for example how many times the video is displayed and what settings are used for playback.No sensitive data is collected unless you log in to your google account, in that case your choices are linked with your account, for example if you click “like” on a video.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Dauer
Beschreibung
yt-remote-connected-devices
never
These cookies are set via embedded youtube-videos.
yt-remote-device-id
never
These cookies are set via embedded youtube-videos.