BSD-Wiki

Mitschrift einer FreeBSD-Installation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


system_von_ufs_auf_zfs_umstellen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

system_von_ufs_auf_zfs_umstellen [2016/02/06 10:04]
rakor [Mirror erzeugen]
system_von_ufs_auf_zfs_umstellen [2017/10/02 13:40]
Zeile 1: Zeile 1:
-====== Allgemein ====== 
-ZFS ist ein modernes Dateisystem welches gegenüber UFS einige Vorteile bietet. Einige Dieser Vorteile sind: 
-    *Instant Snapshots (für Backups) 
-    *Ein integrierter LVM 
-    *Integrierte Quotas 
-    *Komprimierung einzelner Dateisysteme 
-    *Verschiedene RAID-Levels (Mirror, RAID-Z). 
- 
-Als Nachteile sind zu werten: 
-    *Etwas komplexeres Handling 
-    *Derzeit nur von manuell zu erstellen (Keine Installeroption) 
-    *Ressourcenhungrig (64Bit und "​ausreichend"​ RAM sollten vorhanden sein). 
- 
-====== Voraussetzung ====== 
-Es wird hier davon ausgegangen,​ dass ein vorhandenes System welches mit UFS partitioniert wurde in ein reines ZFS-System umgewandelt wird. Damit das Vorgehen ohne Datenverlust durchführbar ist muss eine von zwei Vorraussetzungen erfüllt sein. 
-    -Es liegen zwei Festplatten vor 
-    -Es liegt ein Komplettbackup des Systems vor. 
- 
-Im Weiteren wird davon ausgegangen,​ dass zwei Festplatten gleicher Größe vorliegen. Auf Festplatte //ada0// liegt das aktuelle System und //ada1// wird neu mit ZFS angelegt. Zum Ende wird //ada0// zusammen zu //ada1// in ein zmirror (also ein RAID1-Verband in ZFS) überführt. 
- 
-====== Partitionen anlegen ====== 
-Zunächst wird die 2. Festplatte //ada1// partitioniert. Sie erhält einen Bootsector um später das System starten zu können und eine 8GB große Swap-Partition für Auslagerungen. Der Rest der Festplatte wird für das ZFS zur Verfügung gestellt. 
-<​code>​ 
-# gpart create -s gpt ada1 
-# gpart add -b 34 -s 128k -a 1m -t freebsd-boot ada1 
-# gpart add -s 8G -a 1m -t freebsd-swap -l swap1 ada1 
-# gpart add -a 1m -t freebsd-zfs -l disk1 ada1 
-# gpart bootcode -b /boot/pmbr -p /​boot/​gptzfsboot -i 1 ada1 
-</​code>​ 
- 
-====== Module laden ====== 
-Bevor mit ZFS gearbeitet werden kann müssen die hierfür nötigen Kernelmodule geladen werden. 
-<​code>​ 
-# kldload opensolaris 
-# kldload zfs 
-</​code>​ 
- 
-====== ZFS anlegen ====== 
-Im nächsten Schritt wird der **zpool** angelegt und die ZFS-Datasets (die ZFS-Partitionen) angelegt. Zunächst wird mittels des ashift-Werts eine Sektorgröße von mindestens 4K-Blöcken erzwungen. 
-<​code>​ 
-# sysctl vfs.zfs.min_auto_ashift=12 
- 
-# zpool create -o altroot=/​mnt -o cachefile=/​var/​tmp/​zpool.cache zroot /​dev/​gpt/​disk1 
- 
-# zpool set bootfs=zroot zroot 
-# zfs set checksum=fletcher4 zroot 
- 
-# zfs create zroot/usr 
-# zfs create zroot/​usr/​home 
-# zfs create zroot/​usr/​home/​user1 
-# zfs create zroot/​usr/​jails 
-# zfs create zroot/​usr/​local 
-# zfs create zroot/var 
-# zfs create -o setuid=off zroot/​usr/​ports 
-# zfs create -o exec=on -o setuid=off zroot/tmp 
-# zfs create -o compression=gzip -o exec=off -o setuid=off zroot/​usr/​src 
-</​code>​ 
- 
-====== Anpassungen ====== 
-Das Verzeichnis ///tmp// benötigt besondere Rechte damit jeder Nutzer darin seine temorären Daten ablegen kann. 
-<​code>​ 
-# chmod 1777 /mnt/tmp 
-</​code>​ 
- 
-====== Daten einspielen ====== 
-Nachdem das Dateisystem komplett angelegt ist können die Daten der alten Festplatte //ada0// eingespielt werden. Dies muss für jede Partition auf //ada0// die übernommen werden soll durchgeführt. Im Beispiel hier ist unter //ada0p1// das root-Verzeichnis ///// abgelegt und unter //ada0p3// das Verzeichnis ///usr//. 
- 
-Alternativ kann an dieser Stelle ein bestehendes Backup eingespielt werden. 
-<​code>​ 
-# cd /mnt 
-# dump 0Laf - /dev/ada0p1 | restore rf - 
-# cd /mnt/usr 
-# dump 0Laf - /dev/ada0p3 | restore rf - 
-... 
-</​code>​ 
- 
-====== Nachbereitung ====== 
-Das neue System muss nun noch angepasst werden. Zunächst wird der ZFS-Cache in das neue System kopiert damit das zpool überhaupt eingebunden werden kann. 
-Als nächstes werden in //rc.conf// und //​loader.conf//​ die zfs-optionen gesetzt damit das Kernelmodul geladen wird und alle fehlenden Partitionen eingebunden werden. 
-Abschliessend wird in der //​loader.conf//​ noch das zu bootende Root-Dateisystem gesetzt. In diesem Fall ist das der zpool. 
- 
-<​code>​ 
-cp /​var/​tmp/​zpool.cache /​mnt/​boot/​zfs/​zpool.cache 
-echo '​zfs_enable="​YES"'​ >> /​mnt/​etc/​rc.conf 
-echo '​zfs_load="​YES"'​ >> /​mnt/​boot/​loader.conf 
-echo '​vfs.root.mountfrom="​zfs:​zroot"'​ >> /​mnt/​boot/​loader.conf 
-</​code>​ 
- 
-In ///​mnt/​etc/​fstab//​ alle Mountpoints löschen oder auskommentieren und folgende Zeile für den Swap ergänzen: 
-<​code>​ 
-/​dev/​gpt/​swap1 none swap sw 0 0 
-</​code>​ 
- 
-====== Reboot ====== 
-Nun kann in das neue ZFS-System gebootet werden um zu testen ob alles funktioniert. 
- 
-====== Mirror erzeugen ====== 
-Wenn alle Daten von //ada0// sicher auf //ada1// übertragen wurden kann die Platte in einen Spiegel aufgenommen werden. Hierbei gehen alle auf //ada0// vorhandenen Daten verloren!! 
- 
-Zunächst wird die Festplatte identisch zur ersten partitioniert:​ 
-<​code>​ 
-# gpart create -s gpt ada0 
-# gpart add -b 34 -s 128k -a 1m -t freebsd-boot ada0 
-# gpart add -s 8G -a 1m -t freebsd-swap -l swap0 ada0 
-# gpart add -a 1m -t freebsd-zfs -l disk0 ada0 
-# gpart bootcode -b /boot/pmbr -p /​boot/​gptzfsboot -i 1 ada0 
-</​code>​ 
- 
-Anschließend wird die Festplatte zum //zroot// hinzugefügt. Wird dies mit dem Befehl **attach** durchgeführt wird automatisch ein Mirror erstellt. 
- 
-<​code>​ 
-# zpool attach zroot /​dev/​gpt/​disk1 /​dev/​gpt/​disk0 
-</​code>​ 
- 
-Zum Abschluss muss nur noch die zweite Swap-Partition in ///​etc/​fstab//​ hinzugefügt werden. 
- 
-<​code>​ 
-/​dev/​gpt/​swap0 swap sw 0 0 
-</​code>​ 
  
system_von_ufs_auf_zfs_umstellen.txt · Zuletzt geändert: 2017/10/02 13:40 (Externe Bearbeitung)

Impressum