19.04.2023

Solaris

Dateien und Verzeichnisse
Anpassung nach der Installation
Befehle
Netzwerkserver
Dateisystem ZFS
sonstiges


Seitenanfang

Dateisystem ZFS

Hilfe: SUN Anleitung ZFS

ZFS Grundlagen
ZFS Speicherpool-Baum
Reparaturmöglichkeiten
Backup
sonstiges

Seitenanfang

ZFS Grundlagen

max. Dateigröße 1384 PByte und max. 16.384 PByte Dateisystem.

- Speicherpool anlegen

zpool create daten c1t1d0

Controller 1 (zweite Massenspeicher-Controller)
Target Device 1 (zweite Port des SATA Adapters)
Disk 0

Option -n Aktion wird nur virtuell ausgeführt, am System werden keine Änderungen durchgeführt.

Pool mit dem Namen daten wird erstellt und automatisch nach /daten gemountet.

- Speicherpool um ein Device erweitern

zpool add daten c1t2d0

- Speicherpool löschen

zpool destroy

- ein Verzeichnis zum Mounten vom Speicherpool daten angeben.

zpool create -m /verzeichnis daten c1t1d0

- Mountpoint nachträglich ändern

zpool set mountpoint=/verzeichnis daten

- automatisches Mounten des Speicherpools deaktivieren

zfs set mountpoint=legacy daten

- Speicherpool daten manuell mounten nach mnt

mount -F zfs daten /mnt

- zweite und dritte SATA Platte wird in ein RAID0 zusammengefasst

zpool create daten c1t1d0 c1t2d0

- zweite und dritte SATA Platte wird in ein RAID1 zusammengefasst

zpool create daten c1t1d0 c1t2d0

- zeigt Plattenstatus an

zpool status

- zeit Liste der Speicherpools an mit Auslastung

zpool list

- Anzahl Lese und Schreiboperationen, mit Option -v auch für jedes Device

zpool iostat

- Ist eine Platte ausgefallen wechselt der Speicherpool vom Status Online in den Status Degraded es erfolgt auch eine Meldung in /var/adm/messages
Die Platte c1t2d0 wird durch die c1t3d0 ersetzt und die Redundanz wird wiederhergestellt, Daten werden automatisch auf die neue Platte übertragen

zpool replace daten c1t2d0 c1t3d0

- RAID1 mit HotSpare anlegen, Die Platte c1t3d0 ersetzt automatisch eine der beiden anderen bei Ausfall

zpool create daten mirror c1t1d0 c1t2d0 spare c1t3d0

- das HotSpare Device aus einen Speicherpool entfernen, das entfernen von aktiven Massenspeichern aus einen Speicherpool ist nicht möglich.

zpool remove daten c1t3d0

- RAID 5 anlegen

zpool create daten raidz1 c1t1d0 c1t2d0 c1t3d0

- RAID 6 anlegen

zpool create daten raidz2 c1t0d0 c1t1d0 c1t2d0 c1t3d0

wenn bei einem RAID5 oder RAID6 die Platten nicht gleichgroß sind muss die Option -f verwendet werden. Dabei gibt die kleinst Platte die größe des RAIDs vor.

- Infos zum Dateisystem

zfs list
Seitenanfang

ZFS Speicherpool-Baum

Mit ZFS ist es möglich unterhalb eines Speicherpools noch weitere Dateisysteme anzulegen, dabei teilen sich alle Dateisysteme den verfügbaren Speicherplatz. Dabei werden die Sub-Speicherpools Standardmäßig unterhalt des Speicherpools gemountet. Es ist auch möglich für jeden Benutzer ein eigenes Dateisystem anzulegen und dieses per Snapshot zu sichern.

- erstellt ein untergeordnetes Dateisystem im Speicherpool daten

zfs create daten/sub

- Mountpoint für den untergeordneten Speicherpool sub ändern.

zfs set mountpoint=/sub daten/sub

- Quotas erstellen , der untergeordneten Speicherpool sub kann 100GB nutzen.

zfs set quota=100GB daten/sub

- eine bestimmte Größe im Speicherpool für des Dateisystem sub reservieren

zfs set reservation=10GB daten/sub

Für alle Dateisysteme die unterhalb von sub angelegt werden, gilt die gleiche Quota und auch die Reservierung, diese Einstellungen werden vererbt.

zeigt alle Eigenschaften an, Quotas u.a.

zfs get all

- In einem Speicherpool lassen sich auch Volumes anlegen, die dann als Block-Device z.B. für iSCSI genutzt werden können.

zfs create -V 20GB daten\volume

Reserviert einen 20GB großen Bereich im Speicherpool, der über /dev/zvol/dsk/daten/volume angesprochen werden kann.

 

Seitenanfang

Reparaturmöglichkeiten

ZFS legt für jeden Datenblock eine Checksumme an und prüft beim lesen der Daten ob diese mit der Checksumme übereinstimmen.

- eine manuelle Prüfung den aller Datenblocke gegen die Checksumme, die Prüfung erfolgt im Hintergrund, aber mit einer hohen I/O Last.

zpool scrub daten

- wenn von einer Live-CD gebootet wird, kann man ein Dateisystem im zur Reparatur einbinden.

zpool import -f rpool
# zfs list
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
rpool                               2,66G  7,13G    55K  /rpool
rpool@install                         16K      -    55K  -
rpool/ROOT                          2,64G  7,13G    18K  /rpool/ROOT
rpool/ROOT@install                    15K      -    18K  -
rpool/ROOT/opensolaris              2,64G  7,13G  2,45G  legacy
rpool/ROOT/opensolaris@install      61,8M      -  2,22G  -
rpool/ROOT/opensolaris/opt           136M  7,13G   136M  /opt
rpool/ROOT/opensolaris/opt@install    81K      -  3,60M  -
rpool/export                        14,6M  7,13G    19K  /export
rpool/export@install                  15K      -    19K  -
rpool/export/home                   14,6M  7,13G  14,6M  /export/home
rpool/export/home@install             18K      -    21K  -

das ROOT Dateisystem das unter rpool/ROOT/opensolaris gespeichert ist, muß manuell eingebunden werden

mount -F zfs rpool/ROOT/opensolaris /mnt
# zpool  get all rpool
NAME   PROPERTY     VALUE                   SOURCE
rpool  size         9,94G                   -
rpool  used         2,66G                   -
rpool  available    7,28G                   -
rpool  capacity     26%                     -
rpool  altroot      -                       default
rpool  health       ONLINE                  -
rpool  guid         840255554639111538      -
rpool  version      10                      default
rpool  bootfs       rpool/ROOT/opensolaris  local
rpool  delegation   on                      default
rpool  autoreplace  off                     default
rpool  cachefile    -                       default
rpool  failmode     wait                    default

- Grub reparieren

/mnt/sbin/installgrub /mnt/boot/grub/stage1 /mnt/boot/grub/stage2 /dev/rdsk/c1t0d0s0

mit Option -m wird Grub in den MBR installiert.

 

Seitenanfang

Backup

- einen Snapshot des Speicherpools daten erstellen

zfs snapshot daten@snap

- einen Snapshot des Speicherpools daten zurückspielen

zfs rollback daten@snap

will man nur eine Datei zurückspielen muss man mit

zfs set snapdir=visible daten

das Verzeichnis mit den Snapshots sichtbar machen, dies befindet sich für den Speicherpool daten unter /daten/.zfs/snapshot. Nicht benötigte Snapshots können mittels zfs destroy gelöscht werden.

- rekursive Snapshots einer Herarchie von Speicherpools erstellen.

zfs snapshot -r

zeigt die bisher angelegten Snapshots an

zfs list

- einen Snapshot Clone beschreibbar ins Dateisystem einbinden

zfs snapshot clone daten@08-11-10 daten/all_clones/clone08-11-10

- ein Image von einem Snapshot erstellen, das Image wird nur so groß wie der Speicherpool mit Daten belegt ist

zfs send daten@snap > /mnt/backup/daten.zfs

- Image in den Speicherpool daten/backup wiederherstellen

zfs receive daten/backup < /mnt/backup/daten.zfs

 

Seitenanfang

sonstiges

- für Datenbanken empfiehlt es sich die Blockgröße des Dateisystems herabzusetzen, ZFS verwendet Standardmäßig eine Blockgröße von 128 kB, diese sollten auf 8kB gesetzt werden.

zfs set recordsize=8K daten