Windows RSYNC Backup mit QtdSync auf Synology NAS

In diesem Artikel stelle ich vor, wie man Ordner eines Windows-Rechners auf ein Synology NAS-System platzsparend mit QtdSync sichert und bei Bedarf auch einfach  wiederherstellt. Die dabei verwendete Software QtdSync ist kostenlos.

RSYNC

RSYNC ist eine Open Source Software (Lizenz: GPL v3) zum Synchronisieren von Verzeichnisinhalten. Das Komandozeilenwerkzeug ist vergleichbar mit Microsoft’s ROBOCOPY. Beide Tools können Verzeichnisinhalte auf lokale Ordner oder Netzwerkfreigaben replizieren.

RSYNC kann aber auch als Serverdienst laufen und bietet mit dem RSYNC-Protokoll eine Alternative zu CIFS/SMB und NFS an. Viele Linux-basierten NAS-Systeme haben einen integrierten RSYNC-Server.

RSYNC überträgt statt ganzer Dateien bei Benutzung eines RSYNC-Servers Datenblöcke. Das Verfahren kann die Übertragungszeit deutlich beschleunigen, da nur Blöcke von Dateien übertragen werden für die noch keine identischen Prüfsummen am Server vorliegen.

QtdSync

QtdSync ist eine Open Source Software (Lizenz: GPL v2) für Windows. Sie beinhaltet RSYNC und bietet eine grafische Bedienoberfläche an. QtdSync kann als Synchronisierungsziel lokale Ordner oder RSYNC-Server benutzen.

Windows Datensicherung auf Synology NAS

Konfiguration Synology DSM

Zunächst muß am Synology NAS der RSYNC-Server aktiviert werden. Im Disk Station Manager folgendes durchführen (Beispiel gültig für DSM 5.0):

Hauptmenü > Datensicherung und Replikation > Sicherungsdienste > Netwerksicherungsziel > Netzwerk-Sicherungsdienst aktivieren: Haken setzen, übernehmen

Netzwerk-Sicherungsdienst

Netzwerk-Sicherungsdienst, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Danach wird der RSYNC-Server mit Standard-Optionen gestartet, d.h. man kann mit dem Benutzer root auf den gemeinsamen Ordner NetBackup via RSNC zugreifen.

Für alternative Konfigurationswünsche muß zusätzlich folgendes aktiviert werden: „benutzerdefinierte RSYNC-Konfiguration verwenden“. Dann ist die Konfigurationsdatei /etc/rsyncd.conf manuell anzupassen. Darauf gehe ich hier nicht weiter ein.

Konfiguration und Benutzung QtdSync

Nach dem Herunterladen und Installieren von QtdSync wird dieses gestartet.

Zunächst einmal ist das Backupset zu benennen, also der Backupjob. Hier im Beispiel wähle ich „PC-Backup“. Mit einem Klick auf den gelben Knopf „Backup-Ziel definieren“ kann man zwischem lokalen Ordner oder RSYNC-Server wählen. Um das Synology-NAS anzusprechen wähle ich „Netzwerk/RSYNC“. Im Popup gebe ich den Hostnamen (oder die IP-Adresse) des NAS sowie die Zugangsdaten dafür an. In der Synology-Standardkonfiguration wird hier der User root benötigt.

backupset

backupset, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Anschließend wird noch der gemeinsame Ordner NetBackup als Sicherungsziel am NAS festgelegt. Zur Wahrung der  Übersicht sollte man Backup in Unterordner aktivieren.

Nun kann noch festgelegt werden ob die Sicherung mit jedem Lauf überschrieben oder versioniert werden soll.

NetBackup

NetBackup, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Im Karteireiter Aufgaben werden über den grünen Knopf zu sichernde Verzeichnisse hinzugefügt (im Beispiel der Ordner c:\temp\quiesce, der ein paar Bilder enthält). Es können ebenfalls pre/post-Skripte hinterlegt werden. Darüber hinaus besteht die Möglichkeit eine Datenträgererkennung zu nutzen. Im Beispiel habe ich das nicht verwendet.

Aufgaben

Aufgaben, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Mit Speichern & Beenden werden die Einstellungen des Backupset in einer Datei gesichert.

Sichern

Sichern, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Nun kann eine Datensicherung mit QtdSync durchgeführt werden. Dazu das Backupset markieren und durchführen drücken.

starten

starten, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Im Protokoll werden ggf. aufgetretene Fehler angezeigt. Im Beispiel war das Backup erfolgreich.

Protokoll

Protokoll, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

In den Einstellungen des Backupsets kann man auch eine Zeitsteuerung aktivieren, so dass die Backups nach einem gewünschten Zeitplan durchgeführt werden.

Plan

Plan, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Im Synology DSM kann in der Anwendung Filestation das Ergebnis der Sicherung eingesehen werden.

Filestation

Filestation, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Backup mit Versionen / Hardlinks

Ist im QtdSync beim Backuptyp „Backup mit Versionen“ gesetzt, wird für jedes Backup ein eigener Ordner erstellt (Ordnername = Datum/Uhrzeit des Backups). Normalerweise würde dies bei entsprechend häufigen Backups viel Speicherplatz belegen. Für nicht geänderte Dateien werden aber Hardlinks verwendet. Diese belegen kaum Platz im Dateisystem.

Auf der Shell kann man dies sehen. Es gibt 2 durchgeführte Backups. Der Ordner des ersten Backups belegt 588kB, der Ordner des zweiten nur 4kB im Dateisystem. Beim zweiten Backup waren die Dateien im Quellordner unverändert. Bei Benutzung von ls -l im Lunux wird mit der Zahl vor Besitzer/Gruppe einer Datei die Häufigkeit der selben Datei im Dateisystem angezeigt, in diesem Fall 2.

nas> pwd
/volume1/NetBackup/PC-Backup
nas> du -h
588.0K  ./2014.03.16_14.35.28/quiesce
592.0K  ./2014.03.16_14.35.28
4.0K    ./2014.03.16_14.36.13/quiesce
8.0K    ./2014.03.16_14.36.13
604.0K  .
nas> ls -l ./2014.03.16_14.36.13/quiesce
-rw-r--r--    2 root     root         30760 May 13  2013 00sqlexpress.JPG
-rw-r--r--    2 root     root         82799 May 13  2013 01vss_writer.JPG
-rw-r--r--    2 root     root         30357 May 13  2013 02app_cons_snap.JPG
-rw-r--r--    2 root     root         67158 May 13  2013 03eventid12289_floppy.JPG
-rw-r--r--    2 root     root         29460 May 13  2013 04disable_floppy.JPG
-rw-r--r--    2 root     root         16328 May 13  2013 05disable_floppy.JPG
-rw-r--r--    2 root     root         34025 May 13  2013 06disable_fdd_ctrl.JPG
-rw-r--r--    2 root     root         16811 May 13  2013 07disable_fdd_ctrl.JPG
-rw-r--r--    2 root     root         91231 May 13  2013 08eventid57.JPG
-rw-r--r--    2 root     root         50427 May 13  2013 09eventid137.JPG
-rw-r--r--    2 root     root         61241 May 13  2013 10uuid.JPG
-rw-r--r--    2 root     root         58234 May 13  2013 11uuid.JPG

Restore der Daten

Die gesicherten Daten können über die Anwendung Filestation im Synology DSM wiederhergestellt werden. Innerhalb QtdSync kann im Karteireiter Aufgaben der grüne Würfel gedrückt werden.

Danach muss man entscheiden ob die Daten überschrieben oder in einem alternativen Ordner wiederhergestellt werden sollen.

Restore

Restore, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Zuletzt ist ggf. die Windows-Firewall zu bestätigen und das Wiederherstellungsprotokoll zu prüfen.

Firewall

Firewall, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Veröffentlicht unter Backup-Grundlagen, howto | Verschlagwortet mit , , , , , , , | 1 Kommentar

Linux Disaster Recovery mit Relax-and-Recover und EMC Networker

Linux Disaster Recovery

Bei der Erstellung eines Notfallvorsorge- und Datensicherungskonzepts ist ein wichtiger Baustein ein Verfahren festzulegen, wie mit dem Verlust einer Linux-Betriebssysteminstallation umzugehen ist.

IT Abteilungen bzw. IT Dienstleister mit einem hohen Automatisierungsgrad und weitestgehend identischen Serverinstallationen setzen dafür oft Softwareinstallationssysteme oder Automatisierungstools wie Puppet ein.

In einer heterogenen Umgebung wird das Thema oft verdrängt. Manuelle Installationen sind auch schnell durchgeführt. Oft mangelt es aber einer entsprechenden Dokumentation, wie das System aufzusetzen ist. Image-basierte Lösungen funktionieren oft nur offline oder bedingen weitere Spezialsoftware, z.B. Acronis.

Relax-and-Recover

Relax-and-Recover (http://relax-and-recover.org)

Relax-and-Recover, Foto via http://relax-and-recover.org, unter CC-BY-ND-3.0 (http://creativecommons.org/licenses/by-nd/3.0/)

Mit Relax-and-Recover steht eine Lösung für diverse Linux-Distributionen bereit, die diese Lücke füllen kann. Relax-and-Recover (REAR) erzeugt online aus dem bestehenden System eine bootfähige Umgebung (z.B. ISO-Image, USB-Stick, PXE-Netzwerkboot) und sichert die Daten der Betriebssysteminstallation. Tar und rsync stehen für ein Backup auf Netzwerk-Shares zur Verfügung. Darüber hinaus unterstützt REAR zahlreiche Backupsoftware als Alternative für Datensicherungen. Gerade diese gute Integration in bestehende Lösungen macht REAR aus meiner Sicht interessant.

Relax-and-Recover Supportmatrix

Unterstützte Linux-Distributionen:

  • CentOS
  • Fedora
  • RHEL
  • Oracle
  • OpenSUSE
  • SLES
  • Debian
  • Ubuntu
  • Gentoo

Unterstützte Backupsoftware:

  • EMC Networker
  • Symantec Netbackup
  • IBM TSM
  • HP Dataprotector
  • Commvault Simpana
  • SEP Sesam
  • Bacula / Bareos
  • duplicity /duply

cfg2html

REAR unterstützt die automatische Erzeugung einer Installationsdokumentation mittels cfg2html.

Einrichtung Disaster Recovery

Beispiel für Testumgebung

Client

  • Host: backup7.fqdn
  • OS: SLES11SP3
  • Hardware: HP ProLiant DL360 G5

Server

  • NFS-Share: dd990.fqdn:/data/col1/rear (Data Domain DD990)
  • Backup-Server: backupserver.fqdn (EMC Networker 8.0.2)

Aufgabenverteilung

  • Filesystembackup für OS und Daten über EMC Networker
  • Disaster Recovery ISO-Erstellung über REAR, Backup im Networker-saveset /var/lib/rear/ und auf NFS-Share
  • Erstellung einer Konfigurations- und Installationsübersicht mit cfg2html (erzeugt <hostname>.html) , Backup auf NFS-Share

Inbetriebnahme

Downloads

Hier findet man die rpm-Installationsdateien von Relax-and-Recover, EMC Networker und cfg2html:

Installation

Die Pakete werden auf SLES mit zypper install rpm-Paket installiert. Danach Prüfung, ob alle Pakete installiert sind…

backup7:~ # rpm -qa rear
rear-1.15-21.git201402111621
backup7:~ # rpm -qa lgto*
lgtoman-8.0.2.6-1
lgtoclnt-8.0.2.6-1
backup7:~ # rpm -qa cfg2html*
cfg2html-linux-2.78-4

Konfiguration von Relax-and-Recover

Die Standard-Parameter sind unter /usr/share/rear/conf/default.conf gesetzt.

Für Relax-and-Recover erstellt man die Konfigurationsdatei /etc/rear/site.conf und setzt Parameter, die nicht dem Standard entsprechen.

backup7:~ # cat /etc/rear/site.conf
BACKUP=NSR
OUTPUT=ISO
BACKUP_URL=nfs://dd990.fqdn/data/col1/rear/backup
OUTPUT_URL=nfs://dd990.fqdn/data/col1/rear/output
NSRSERVER=backupserver.fqdn
RETENTION_TIME="Month"
USE_CFG2HTML=y

Nun die Konfiguration nochmals prüfen lassen.

backup7:~ # rear dump
Relax-and-Recover 1.15-git201402111621 / 2014-02-11
Using log file: /var/log/rear/rear-backup7.log.lockless
Dumping out configuration and system information
This is a 'Linux-x86_64' system, compatible with 'Linux-i386'.
System definition:
                                    ARCH = Linux-i386
                                      OS = GNU/Linux
                        OS_MASTER_VENDOR =
                       OS_MASTER_VERSION =
                   OS_MASTER_VENDOR_ARCH =
                OS_MASTER_VENDOR_VERSION =
           OS_MASTER_VENDOR_VERSION_ARCH =
                               OS_VENDOR = SUSE_LINUX
                              OS_VERSION = 11
                          OS_VENDOR_ARCH = SUSE_LINUX/i386
                       OS_VENDOR_VERSION = SUSE_LINUX/11
                  OS_VENDOR_VERSION_ARCH = SUSE_LINUX/11/i386
Configuration tree:
                         Linux-i386.conf : OK
                          GNU/Linux.conf : OK
                         SUSE_LINUX.conf : OK
                    SUSE_LINUX/i386.conf : missing/empty
                      SUSE_LINUX/11.conf : missing/empty
                 SUSE_LINUX/11/i386.conf : missing/empty
                               site.conf : OK
                              local.conf : OK
Backup with NSR
                            NSR_ROOT_DIR = /nsr
                  BACKUP_INTEGRITY_CHECK =
                         BACKUP_MOUNTCMD =
                          BACKUP_OPTIONS =
                    BACKUP_RSYNC_OPTIONS = --sparse --archive --hard-links --verbose --numeric-ids --stats
                  BACKUP_SELINUX_DISABLE = 1
                             BACKUP_TYPE =
                        BACKUP_UMOUNTCMD =
                              BACKUP_URL = nfs://dd990.fqdn/data/col1/rear/backup
Output to ISO
                                 ISO_DIR = /var/lib/rear/output
                               ISO_FILES =
                              ISO_IMAGES =
                        ISO_ISOLINUX_BIN =
                            ISO_MAX_SIZE =
                         ISO_MKISOFS_BIN = /usr/bin/mkisofs
                              ISO_PREFIX = rear-backup7
                               ISO_VOLID = RELAXRECOVER
                           RESULT_MAILTO =

/usr/share/rear/lib/validated/SUSE_LINUX/11/i386.txt
Your system is validated with the following details:
Submitted:      Schlomo Schapiro
Date:           2011-02-20
Features:       NETFS, ISO, LVM, V2V
backup7:~ #

Backup durchführen

Relax-and-Recover

Boot-CD / ISO-Image und Konfigurationsübersicht mit cfg2html erstellen

backup7:~ # rear -v mkbackup
Relax-and-Recover 1.15-git201402111621 / 2014-02-11
Using log file: /var/log/rear/rear-backup7.log
Creating disk layout
Creating root filesystem layout
EMC Networker will recover these filesystems: /
TIP: To login as root via ssh you need to set up /root/.ssh/authorized_keys or SSH_ROOT_PASSWORD in your configuration file
Copying files and directories
Copying binaries and libraries
Copying kernel modules
Creating initramfs
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-backup7.iso (105M)
Copying resulting files to nfs location
Saving result files with NSR (EMC NetWorker)
If the RETENTION_TIME="Month" is too low please add RETENTION_TIME variable in /etc/rear/local.conf
 pool           retent  name
============================
backup7:~ #

Kontrolle, ob ISO-Image und cfg2html-Ausgabe erzeugt wurden

backupserver:/dd990/rear/output/backup7 # ls -l
total 110579
-rw------- 1 nobody nogroup       202 Mar  3 16:00 README
-rw------- 1 nobody nogroup       286 Mar  3 16:00 VERSION
-rw------- 1 nobody nogroup   3526279 Mar  3 16:00 backup7.html
-rw------- 1 nobody nogroup 109543424 Mar  3 16:00 rear-backup7.iso
-rw------- 1 nobody nogroup    161019 Mar  3 16:00 rear.log

EMC Networker

Erstellung Filesystem Backup

backupserver:/ # savegrp -c backup7 LINUX-GROUP
3:savegrp: Group LINUX-RZ2 waiting for 1 jobs (0 awaiting restart) to complete.

7241:savegrp: nsrim run recently, skipping
backupserver:/ #

Disaster simulieren

Mit dem Gnome Partition Editor werden nun die Daten auf den Festplatten gelöscht. Dazu vom gparted-ISO booten und die Partitionen löschen.

gparted starten

gparted starten, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

 

gparted Partitionen löschen

gparted Partitionen löschen, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

gparted beenden und neu starten

Disaster Recovery

Nun vom ISO booten, das mit Relax-and-Recover für den Rechner backup7 erstellt wurde.

REAR Boot

REAR Boot, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

1. Menüeintrag „Recover“ auswählen

REAR Login

REAR Login, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Mit Benutzer root im Recovery-System anmelden

REAR recover starten

REAR recover starten, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

„rear recover“ startet nun die Wiederherstellung des Disklayouts (Partitionierung, Formatierung) und ruft danach das konfigurierte Backupprogramm auf. In diesem Fall werden mit dem EMC Networker Commandlinetool recover nun die Verzeichnisse und Dateien des Betriebssystems wiederhergestellt (i.d.R. /).

REAR recover fertig

REAR recover fertig, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Die Wiederherstellung ist beendet.

REAR Schnellprüfung

REAR Schnellprüfung, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Ein kurzer Blick in den Mountpoint /mnt/local zeigt die erfolgreiche Wiederherstellung von /. Nun die Recovery-CD entfernen und Reboot durchführen…

SLES grub

SLES grub, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Der grub Bootloader des SLES11 ist wieder bereit.

SLES gestartet

SLES gestartet, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Der Bootvorgang lief erfolgreich.

Das Disaster Recovery wurde erfolgreich durchgeführt.

P.S.

Mein ausdrücklicher Dank geht an Gratien D’haese, der sich die Zeit nahm und mir bei der Beseitigung eines Konfigurationsfehlers half.

 

Veröffentlicht unter Backup-Grundlagen, howto | Verschlagwortet mit , , , , , , , , , | Kommentare deaktiviert für Linux Disaster Recovery mit Relax-and-Recover und EMC Networker

BSI IT-Grundschutz

Das Bundesamt für Sicherheit in der Informationstechnik (BSI) stellt mit den IT-Grundschutzkatalogen eine standardisierte Vorgehensweise zum Identifizieren und Umsetzen von Sicherheitsmaßnahmen in der Unternemens-IT bereit. Auf dieser Basis ist auch eine Zertifizierung nach ISO/IEC 27001-Standard möglich.

Wer IT-Sicherheit auf Basis BSI-Grundschutz durchführen will hat viel zu dokumentieren, u.a.

  • Datensicherungskonzept
  • Notfallvorsorgekonzept
  • Archivierungskonzept

Das BSI stellt Musterrichtlinien und Beispielkonzepte bereit, die als Basis für die eigene Umsetzung dienen können.

Warum IT-Grundschutz?

  • Eigeninteresse, Schutz der Unternehmens-IT
  • Wirtschaftsprüfung
  • Compliance (rechtskonforme Arbeitsweise)

Warum BSI IT-Grundschutzkataloge?

  • Verzicht auf detaillierte initiale Risikoanalyse
  • systematisches Vorgehen mit „Kochrezept“
  • Zertifizierung möglich

 

 

 

Veröffentlicht unter Backup-Grundlagen | Verschlagwortet mit , | Kommentare deaktiviert für BSI IT-Grundschutz

Avamar proactive_check.pl aktuell halten

Bei EMC Avamar wird gern das Tool proactive_check.pl vor Updates o.ä. Arbeiten eingesetzt. Allerdings sollte das immer topaktuell sein.

Das funktioniert z.B. über eine zeitgesteuerte Aktualisierung via crontab.

root@avamar:~/#: su - admin
admin@avamar:~/>: cd proactive_check
admin@avamar:~/proactive_check/>: ls -l proactive_check.pl
-rwxrwxr-x  1 admin admin 1178 Dec  9 17:01 proactive_check.pl
admin@avamar:~/proactive_check/>: crontab -e

In die crontab fügt man ein:

0 5 * * * cd /home/admin/proactive_check;curl --disable-eprt -P - -O ftp://avamar_ftp:anonymous@ftp.avamar.com/software/scripts/proactive_check.pl --proxy http://proxy.domain.tld:Port

Anzupassen sind:

  • Uhrzeit (hier 5:00 Uhr) für Download
  • Proxy (ggf. komplett entfernen)
Veröffentlicht unter howto | Verschlagwortet mit , , | Kommentare deaktiviert für Avamar proactive_check.pl aktuell halten

Oracle RMAN Backup und Restore Spickzettel

Oracle RMAN

Der Oracle Recovery Manager ist das Werkzeug, das Oracle zum Sichern und Wiederherstellen seiner Datenbank Oracle RDBMS verwendet. Zur Benutzung meldet man sich an der RMAN-Shell (analog sqlplus) der entsprechenden DB an.

rman user/password@database

Beispiel: automatisches controlfile-Backup einschalten und RMAN-Standard-Parameter anzeigen

root@server:/root # su - oracle
899 /oracle/bin : restore # rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Thu Nov 28 18:49:16 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: RESTORE (DBID=3006797119)
RMAN> configure controlfile autobackup on;
using target database control file instead of recovery catalog
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
RMAN> show all;
RMAN configuration parameters for database with db_unique_name RESTORE are:
CONFIGURE RETENTION POLICY TO NONE;
...

Konsistenz

Konsistenzcheck für Datenbank durchführen

run {
allocate channel t1 type 'SBT_TAPE';
 backup validate check logical database;
release channel t1;
}

Auflistung korrupter Blöcke

run {
allocate channel t1 type 'SBT_TAPE';
 blockrecover corruption list;
release channel t1;
}

Backup

Online Backup

Die Oracle Datenbank kann im laufenden Betrieb, also „online“ gesichert werden. Da die Datendateien bei dieser Art der Sicherung nicht konsistent sind, werden zusätzlich die Transaktionslogs benötigt, die von Beginn bis Ende der Sicherung angefallen sind.

  • Vorteil: keine Downtime für Backup nötig
  • Nachteil: für Restore ist zusätzlich Recover der Transaktionlogs nötig
RUN {
ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';
ALLOCATE CHANNEL CH2 TYPE 'SBT_TAPE';
 BACKUP
 FULL
  FILESPERSET 1
  FORMAT '%d_%U'
  DATABASE
  INCLUDE CURRENT CONTROLFILE
  PLUS ARCHIVELOG DELETE INPUT
 ;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}

Archivelog Backup

Die Transaktionslogs werden i.d.R. mehrmals am Tag gesichert. Sie ermöglichen die Transaktions- oder zeitgenaue Wiederherstellung der DB.

RUN {
configure controlfile autobackup on;
ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';
ALLOCATE CHANNEL CH2 TYPE 'SBT_TAPE';
 BACKUP ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}

Offline Backup

Beim Offline Backup wird die Datenbank zunächst gestoppt und dann wieder im mount-Status hochgefahren. Der Zugriff auf die DB ist damit unterbunden, es fallen keinen Logs an. Das Backup wird durchgeführt und die DB wieder gestartet.

  • Vorteil: keine Logfiles beim Restore nötig, da Datendateien konsistent gesichert werden.
  • Nachteil: Datenbank steht während des Backups nicht zur Verfügung.
RUN {
ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';
ALLOCATE CHANNEL CH2 TYPE 'SBT_TAPE';
shutdown immediate
startup mount
 BACKUP
 FULL
  FILESPERSET 1
  FORMAT '%d_%U'
  DATABASE
  INCLUDE CURRENT CONTROLFILE
  PLUS ARCHIVELOG DELETE INPUT
 ;
 sql "alter database open";
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}

Restore/Recover

Restore/Recover auf letzten Stand

Das ist die einfachste Übung.

run {
allocate channel t1 type 'SBT_TAPE';
allocate channel t2 type 'SBT_TAPE';
 restore database;
 recover database;
release channel t1;
release channel t2;
}

Restore/Recover auf letztmöglichen Stand

Wenn die Transaktionslogs eine Lücke aufweisen oder nicht bis zum letzten Stand vorhanden sind klappt das auch.

Bei jedem unvollständigem Recovery wird eine neue „incarnation“ gestartet! (Oracle Datenbanken kennen die Wiedergeburt und ein neuer Zeitstrahl weist den Weg in die Zukunft.)

run {
allocate channel t1 type 'SBT_TAPE';
allocate channel t2 type 'SBT_TAPE';
 restore database;
 recover database until cancel;
 alter database open resetlogs;
release channel t1;
release channel t2;
}

Point in time Recovery (PITR)

Zurücksichern zu einem bestimmten Zeitpunkt – benötigt wird eine Datenbanksicherung inklusive Transaktionslogs bis zum gewünschten Restore-Zeitpunkt.

run {
allocate channel t1 type 'SBT_TAPE';
allocate channel t2 type 'SBT_TAPE';
 set until time "to_date('Aug 29 2013 09:00:00','Mon DD YYYY HH24:MI:SS')";
 restore database;
 recover database;
 alter database open resetlogs;
release channel t1;
release channel t2;
}

Incarnation

Es soll ein Restore/Recover auf eine frühere „incarnation“ durchgeführt werden. Deshalb zunächst incarnations anzeigen lassen und die passende wählen.

RMAN> list incarnation;
List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       RESTORE  932694316        PARENT  1          19.07.12 14:25:48
2       2       RESTORE  932694316        PARENT  19920014424 03.12.12 15:25:58
3       3       RESTORE  932694316        PARENT  21417911938 31.01.13 20:33:51
5       5       RESTORE  932694316        CURRENT 23333063539 28.05.13 18:59:47
4       4       RESTORE  932694316        ORPHAN  23335379910 28.05.13 12:11:41
RMAN> reset database to incarnation 3;
database reset to incarnation 3
RMAN>

Danach wird wie beim PITR verfahren.

Dump

Ein Dump ist eigentlich kein Backup, sondern ein Export der Tabellen in eine Textdatei in SQL-Syntax.

exp SYSTEM/password FULL=y FILE=Exportdatei.dmp GRANTS=y ROWS=y

EMC Networker / NMDA

Ich benutze zum Sichern von Oracle DBs die Backup Software Networker bzw. das „Networker module for databases“.

Beispiel: Installation Networker/NMDA auf AIX

installp -ac -d/networker/8.0.2.4/aix LGTOnw.clnt.rte
installp -ac -d/networker/8.0.2.4/aix LGTOnw.man.rte
/etc/rc.nsr start
installp -ac -d/networker/nmda1.5.0.1/aix_64 LGTOnmda.rte
su - oracle
cd $ORACLE_HOME/lib
ln -s /usr/lib/libnsrora.a libobk.a
exit
nsroraadmin -r list

Egal welche Backup Software man einsetzt – nach der installation muß die Media-Library libobk verlinkt werden.

Die Konfiguration des Backups läuft dann bei EMC über einen Wizard in der NMC (Networker Management Console).

Veröffentlicht unter Backup-Grundlagen, howto | Verschlagwortet mit , , , , , , , , , , | Kommentare deaktiviert für Oracle RMAN Backup und Restore Spickzettel

EMC ProSphere unusable capacity

EMC Control Center verschwindet langsam aber sicher in die ewigen Jagdgründe, dafür soll u.a. EMC ProSphere nachfolgen. Damit kann man dann u.a. Reports der vorhandenen Storage-Umgebung anzeigen lassen.

Beim ersten Blick in die Software war ich dann doch erstaunt. Da behauptet doch ProSphere tatsächlich ca. ¼ der Kapazität des Storage Systems wären „unusable“!?!

unusable capacity?

unusable capacity? – Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Was ist passiert? Was haben wir falsch gemacht? Lügt mich die Software an?

RAID Overhead und Hotspares sind bereits separat gelistet. Snapshots und Clones werden laut Doku bei configured usable mit aufgeführt. WTF?

Der EMC Support klärt dann das Rätsel:

Bei einer Plattennachrüstung waren die gewünschten 1TB SATA-HDDs nicht lieferbar, deshalb wurden 2TB SATA-HDDs verbaut – wobei diese durch Software-Beschränkung nur mit 1TB nutzbar sind..

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , | Kommentare deaktiviert für EMC ProSphere unusable capacity

Networker Clients mit DFA und restartable checkpoints

Data Domain bietet Backup-Speichersysteme mit „inline deduplication“ an. Data Domain Boost bzw. DDBOOST wird die zugehörige „source based deduplication“ genannt. Hier wird die Deduplizierung nicht erst beim Schreiben in das Speichersystem ausgeführt, sondern auf den Client vorverlagert. Diese Technology unterstützen neuere EMC Networker Module für Datenbank-Backups aber auch EMC Networker Clients und Storage Nodes.

Eingeführt wurde DDBOOST im Client mit Networker >= 8.0. Der Networker Server muß dabei >=7.6 sein. Zunächst als Option „client direct“ genannt wird es nun „direct file access“ (DFA) bezeichnet.

Wichtig zu wissen ist, dass bei aktivierter „restartable checkpoints“ Funktionalität, das zum punktgenauem Wiederaufsetzen von abgebrochenen Filesystem-Backups dient, DFA automatisch deaktiviert wird.

Log eines Backups mit aktivierten „restartable checkpoints“:

* host.domain:/ 87132:savepnpc: Disabling DFA with Data Domain device for save-set ID ‚3210216891‘ since checkpoint restart is used.

Wie man sieht wurde DFA automatisch ausgeschaltet. Um das Verhalten zu ändern schaltet man die Checkpoints aus:

Client > rechte Maustaste > properties

Checkpoint Restart > Checkpoint enabled > Haken raus

Nun das Log eines Backups ohne aktivierte „restartable checkpoints“:

* host.domain:/ libDDBoost version: major: 2, minor: 5, patch: 2, engineering: 2, build: 373123

* host.domain:/ 86704:savepnpc: Successfully established DDCL session for save-set ID ‚2153253518‘

Hier wurde DFA erfolgreich gestartet.

Veröffentlicht unter howto | Verschlagwortet mit , , , , , | Kommentare deaktiviert für Networker Clients mit DFA und restartable checkpoints

Avamar Checkpoint erstellen

Vor irgendwelchen kritischen Aktionen im Avamar Grid immer einen Checkpoint erstellen…

admin@avutilnode:~/>: date
Mon Sep 23 10:25:50 CEST 2013
admin@avutilnode:~/>: cplist
cp.20130923050556 Mon Sep 23 07:05:56 2013   valid rol ---  nodes   4/4 stripes  12518
cp.20130923052249 Mon Sep 23 07:22:49 2013   valid --- ---  nodes   4/4 stripes  12518
admin@avutilnode:~/>: dpnctl stop maint && dpnctl stop sched
dpnctl: INFO: Suspending maintenance windows scheduler...
dpnctl: INFO: Suspending backup scheduler...
dpnctl: INFO: Backup scheduler suspended.
admin@avutilnode:~/>: avmaint --ava checkpoint
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<checkpoint
  tag="cp.20130923082707"
  isvalid="false"/>
admin@avutilnode:~/>: watch avmaint cpstatus
Every 2.0s: avmaint cpstatus                                   Mon Sep 23 10:35:43 2013
<xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cpstatus
  generation-time="1379925344"
  tag="cp.20130923082707"
  status="completed"
  stripes-completed="12518"
  stripes-total="12518"
  start-time="1379924827"
  end-time="1379924937"
  result="OK"
  refcount="4"/>
admin@avutilnode:~/>: dpnctl start maint && dpnctl start sched
dpnctl: INFO: Resuming maintenance windows scheduler...
dpnctl: INFO: maintenance windows scheduler resumed.
dpnctl: INFO: Resuming backup scheduler...
dpnctl: INFO: Backup scheduler resumed.
Veröffentlicht unter howto | Verschlagwortet mit , , , , | Kommentare deaktiviert für Avamar Checkpoint erstellen

QUADStor OpenSource Storage Virtualization auf SLES 11 SP3

QUADStor OpenSource Storage Virtualization

Vor kurzem schrieb ich einen Artikel über die OpenSource VTL von Quadstor. Bei dieser Gelegenheit bin ich auf eine weitere OpenSource Software des Herstellers aus Bangalore/Indien gestossen. Das Produkt zur Speichervirtualisierung „QUADStor OpenSource Storage Virtualization“ hat eine interessante Liste an Features zu bieten:

  • Thin Provisioning – virt. LUNs mit bis zu 64TB Kapazität können „dünn“ bereitgestellt werden, unabhängig davon wie viel Kapazität tatsächlich vorhanden ist. Erst beim Beschreiben der virt. LUNs, bei Quadstor „VDisks“ genannt, wird tatsächlich Speicherplatz benötigt.
  • Deduplizierung
    • Inline Deduplizierung, d.h. Deduplizierung sofort beim Schreiben auf VDisks, nicht nachgelagert (Vorteil: Platzersparnis, Nachteil: CPU-Last)
    • sowohl für NAS- als auch SAN-Zugriffe
    • Deduplizierung ist unabhängig vom verwendeten Filesystem, da dies auf Storage-Ebene abläuft
    • globale Deduplizierung (VDisks innerhalb eines Pools)
  • Komprimierung
  • Support für HA Cluster
  • lokales VDisk Cloning
  • VDisk Spiegelung auf anderes Quadstor Storage Virtualization System
  • Unified Storage – Zugriff auf VDisks lokal, via FC (nur mit Qlogic HBAs!) und iSCSI, lokale VDisks können auch als Netzwerkfreigaben via NFS/CIFS im LAN bereitgestellt werden (NAS via NFS-Server/Samba)
  • VAAI Support – Clone-Operationen von VMs lagert VMware Sphere an Quadstor aus, mittels Deduplizierung schnelle Bereitstellung
  • in der neuesten Version können VDisks als Plattenplatz für Quadstor VTL genutzt werden
  • Weboberfläche für Management
  • Open Source Software unter GPL v2 Lizenz, bei GitHUB

Voraussetzungen

  • 64bit Linux (Pakete für Redhat, SLES, Dedian und CentOS) oder FreeBSD
  • 64bit Intel/AMD Multicore-CPU
  • >=4GB RAM für SAN, >=8GB RAM für NAS
  • Qlogic 24xx/25xx HBA für FC
  • 1 Gb/s bzw. 10Gb/s Ethernet-NICs
  • Die Pakete apache2, gcc, perl, kernel-default-devel und sg3_utils
  • nicht gemountete Platten >4GB via SCSI-Subsystem oder mdadm (Software RAID)

Der Apache2 Webserver ist (dauerhaft bei Systemstart) zu starten.

yast > system > system services (run level) > apache2 > enable

Alternativ Installation RPMs und Apache2 bei Systemstart via Shell:

zypper install apache2
zypper install gcc
zypper install perl
zypper install kernel-default-devel
zypper install sg3_utils
/sbin/chkconfig --add apache2

Dann sind die Quadstor Storage Virtualization RPMs passend zum OS herunterzuladen (die RPMs für SLES11SP2 passen auch für SLES11SP3).

Testumgebung

Aus alten Restposten habe ich eine Testumgebung zusammengestellt.

  • Sun/STK 6140 Storage Array mit ein paar Trays mit 500GB SATA Platten und kaputten Batterien für den Cache (deshalb kein write Cache), redundante Anbindung (active/passive controller) für 2 Hosts via FC-AL 4Gb/s
  • ein alter Sun x86 Rechner mit Qlogic Dualport FC HBA, SLES11SP3 und Common Array Manager Software
  • HP DL360 mit Xeon E5640 Quadcore CPU, 16GB RAM, interne Disks RAID1, Emulex Dualport FC HBA und 4x1Gb/s NICs (LACP), SLES11SP3 für QUADStor OpenSource Storage Virtualization

Bei der Installation von SLES11SP3 wird gefragt ob die Unterstützung für Multi-Pathing aktiviert werden soll. Nachdem ich das bejaht hatte war ich durchaus positiv überrascht, dass alle LUNs vom Array problemlos erkannt und mit Multipathing eingerichtet waren. Dabei werden Multi-Pathing Gerätendateien mit „device mapper names“ verwendet. Lesenswert ist die Doku zu Multi-Pathing für SLES11SP3.

Installation

Nun sind die RPMs zu installieren.

backup1:/tmp/quadstor/storagev # ls

quadstor-client-3.0.43-sles11sp2.x86_64.rpm  quadstor-core-3.0.43-sles11sp2.x86_64.rpm  quadstor-itf-3.0.43-sles11sp2.x86_64.rpm

backup1:/tmp/quadstor/storagev # rpm -ivh quadstor-core-3.0.43-sles11sp2.x86_64.rpm

Preparing...                ########################################### [100%]

   1:quadstor-core          ########################################### [100%]

QUADStor Storage Virtualization Software is provided free of charge and is distributed under the GPL v2 license. However the softw                   are also contains other third/party/open source software. For such parts their respective licenses apply.

For any queries regarding the licensing contact support@quadstor.com.

For the GPL v2 license visit http://www.gnu.org/licenses/gpl-2.0.html

Performing post install. Please wait...

backup1:/tmp/quadstor/storagev # rpm -ivh quadstor-itf-3.0.43-sles11sp2.x86_64.rpm

Preparing...                ########################################### [100%]

   1:quadstor-itf           ########################################### [100%]

Building required kernel modules

Running /quadstor/bin/builditf

rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions Module.symvers .*.o.d Module.*

cp /quadstor/lib/modules/corelib.o /quadstor/src/export

make -C /lib/modules/3.0.76-0.11-default/build SUBDIRS=/quadstor/src/export modules

make[1]: Entering directory `/usr/src/linux-3.0.76-0.11-obj/x86_64/default'

make -C ../../../linux-3.0.76-0.11 O=/usr/src/linux-3.0.76-0.11-obj/x86_64/default/. modules

  CC [M]  /quadstor/src/export/core_linux.o

  CC [M]  /quadstor/src/export/ldev_linux.o

  CC [M]  /quadstor/src/export/devq.o

  LD [M]  /quadstor/src/export/ldev.o

  LD [M]  /quadstor/src/export/coredev.o

  Building modules, stage 2.

  MODPOST 2 modules

WARNING: could not find /quadstor/src/export/.corelib.o.cmd for /quadstor/src/export/corelib.o

  CC      /quadstor/src/export/coredev.mod.o

  LD [M]  /quadstor/src/export/coredev.ko

  CC      /quadstor/src/export/ldev.mod.o

  LD [M]  /quadstor/src/export/ldev.ko

make[1]: Leaving directory `/usr/src/linux-3.0.76-0.11-obj/x86_64/default'

strip --strip-debug *.ko

rm -f *.o *.ko iscsit.mod.c .*.o.cmd .*.ko.cmd Module.symvers

rm -rf .tmp_versions

make -C /lib/modules/3.0.76-0.11-default/build SUBDIRS=/quadstor/src/target-mode/iscsi/kernel modules

make[1]: Entering directory `/usr/src/linux-3.0.76-0.11-obj/x86_64/default'

make -C ../../../linux-3.0.76-0.11 O=/usr/src/linux-3.0.76-0.11-obj/x86_64/default/. modules

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/tio.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/iscsi.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/nthread.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/config.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/digest.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/conn.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/session.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/target.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/event.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/param.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/scdefs.o

  CC [M]  /quadstor/src/target-mode/iscsi/kernel/seq_list.o

  LD [M]  /quadstor/src/target-mode/iscsi/kernel/iscsit.o

  Building modules, stage 2.

  MODPOST 1 modules

  CC      /quadstor/src/target-mode/iscsi/kernel/iscsit.mod.o

  LD [M]  /quadstor/src/target-mode/iscsi/kernel/iscsit.ko

make[1]: Leaving directory `/usr/src/linux-3.0.76-0.11-obj/x86_64/default'

strip --strip-debug *.ko

rm -f *.o ietd ietadm

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o ietd.o ietd.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o iscsid.o iscsid.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o conn.o conn.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o session.o session.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o target.o target.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o message.o message.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o ctldev.o ctldev.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o log.o log.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o chap.o chap.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o event.o event.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o param.o param.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o plain.o plain.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o isns.o isns.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o md5.o md5.c

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o sha1.o sha1.c

cc ietd.o iscsid.o conn.o session.o target.o message.o ctldev.o log.o chap.o event.o param.o plain.o isns.o md5.o sha1.o -o ietd

cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o ietadm.o ietadm.c

cc ietadm.o param.o -o ietadm

rm -f *.o *.ko qla2xxx.mod.c .*.*.cmd .*.ko.cmd Module.symvers .*.o.d *.ko.unsigned modules.order

rm -rf .tmp_versions

make -C /lib/modules/3.0.76-0.11-default/build SUBDIRS=/quadstor/src/target-mode/fc/qla2xxx modules

make[1]: Entering directory `/usr/src/linux-3.0.76-0.11-obj/x86_64/default'

make -C ../../../linux-3.0.76-0.11 O=/usr/src/linux-3.0.76-0.11-obj/x86_64/default/. modules

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_os.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_init.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_mbx.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_iocb.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_isr.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_gs.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_dbg.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_sup.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_attr.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_mid.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_dfs.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_bsg.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_nx.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_target.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_sc.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/fcbridge.o

  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/fcq.o

  LD [M]  /quadstor/src/target-mode/fc/qla2xxx/qla2xxx.o

  Building modules, stage 2.

  MODPOST 1 modules

  CC      /quadstor/src/target-mode/fc/qla2xxx/qla2xxx.mod.o

  LD [M]  /quadstor/src/target-mode/fc/qla2xxx/qla2xxx.ko

make[1]: Leaving directory `/usr/src/linux-3.0.76-0.11-obj/x86_64/default'

strip --strip-debug *.ko

strip --strip-unneeded *.ko

Moving original qla2xxx driver to /lib/modules/3.0.76-0.11-default/kernel/drivers/scsi/qla2xxx/qla2xxx.ko.qssave

Recreating initrd image

Kernel image:   /boot/vmlinuz-3.0.76-0.11-default

Initrd image:   /boot/initrd-3.0.76-0.11-default

KMS drivers:     radeon

Root device:    /dev/disk/by-id/cciss-3600508b1001c522836b1d3d076c1e8c8-part2 (/dev/dm-11) (mounted on / as ext3)

Resume device:  /dev/disk/by-id/cciss-3600508b1001c522836b1d3d076c1e8c8-part1 (/dev/dm-10)

Kernel Modules: hwmon thermal_sys thermal processor fan scsi_mod cciss scsi_tgt scsi_transport_fc lpfc hpsa libata ata_piix ata_ge                   neric scsi_dh dm-mod dm-multipath dm-log dm-region-hash dm-mirror dm-snapshot scsi_dh_alua scsi_dh_rdac scsi_dh_emc scsi_dh_hp_sw                    mbcache jbd ext3 dm-round-robin dm-queue-length dm-least-pending dm-service-time i2c-core i2c-algo-bit drm drm_kms_helper ttm rade                   on usb-common usbcore ohci-hcd uhci-hcd ehci-hcd xhci-hcd hid usbhid crc-t10dif sd_mod

Firmware:       radeon/R520_cp.bin radeon/R520_cp.bin.sig radeon/RS600_cp.bin radeon/RS600_cp.bin.sig radeon/RS690_cp.bin radeon/R                   S690_cp.bin.sig radeon/R420_cp.bin radeon/R420_cp.bin.sig radeon/R300_cp.bin radeon/R300_cp.bin.sig radeon/R200_cp.bin radeon/R200                   _cp.bin.sig radeon/R100_cp.bin radeon/R100_cp.bin.sig radeon/RV710_me.bin radeon/RV710_me.bin.sig radeon/RV710_pfp.bin radeon/RV71                   0_pfp.bin.sig radeon/RV730_me.bin radeon/RV730_me.bin.sig radeon/RV730_pfp.bin radeon/RV730_pfp.bin.sig radeon/RV770_me.bin radeon                   /RV770_me.bin.sig radeon/RV770_pfp.bin radeon/RV770_pfp.bin.sig radeon/RS780_me.bin radeon/RS780_me.bin.sig radeon/RS780_pfp.bin r                   adeon/RS780_pfp.bin.sig radeon/RV670_me.bin radeon/RV670_me.bin.sig radeon/RV670_pfp.bin radeon/RV670_pfp.bin.sig radeon/RV635_me.                   bin radeon/RV635_me.bin.sig radeon/RV635_pfp.bin radeon/RV635_pfp.bin.sig radeon/RV620_me.bin radeon/RV620_me.bin.sig radeon/RV620                   _pfp.bin radeon/RV620_pfp.bin.sig radeon/RV630_me.bin radeon/RV630_me.bin.sig radeon/RV630_pfp.bin radeon/RV630_pfp.bin.sig radeon                   /RV610_me.bin radeon/RV610_me.bin.sig radeon/RV610_pfp.bin radeon/RV610_pfp.bin.sig radeon/R600_me.bin radeon/R600_me.bin.sig rade                   on/R600_pfp.bin radeon/R600_pfp.bin.sig radeon/R520_cp.bin radeon/R520_cp.bin.sig radeon/RS600_cp.bin radeon/RS600_cp.bin.sig rade                   on/RS690_cp.bin radeon/RS690_cp.bin.sig radeon/R420_cp.bin radeon/R420_cp.bin.sig radeon/R300_cp.bin radeon/R300_cp.bin.sig radeon                   /R200_cp.bin radeon/R200_cp.bin.sig radeon/R100_cp.bin radeon/R100_cp.bin.sig radeon/SUMO2_me.bin radeon/SUMO2_me.bin.sig radeon/S                   UMO2_pfp.bin radeon/SUMO2_pfp.bin.sig radeon/SUMO_me.bin radeon/SUMO_me.bin.sig radeon/SUMO_pfp.bin radeon/SUMO_pfp.bin.sig radeon                   /SUMO_rlc.bin radeon/SUMO_rlc.bin.sig radeon/PALM_me.bin radeon/PALM_me.bin.sig radeon/PALM_pfp.bin radeon/PALM_pfp.bin.sig radeon                   /CYPRESS_rlc.bin radeon/CYPRESS_rlc.bin.sig radeon/CYPRESS_me.bin radeon/CYPRESS_me.bin.sig radeon/CYPRESS_pfp.bin radeon/CYPRESS_                   pfp.bin.sig radeon/JUNIPER_rlc.bin radeon/JUNIPER_rlc.bin.sig radeon/JUNIPER_me.bin radeon/JUNIPER_me.bin.sig radeon/JUNIPER_pfp.b                   in radeon/JUNIPER_pfp.bin.sig radeon/REDWOOD_rlc.bin radeon/REDWOOD_rlc.bin.sig radeon/REDWOOD_me.bin radeon/REDWOOD_me.bin.sig ra                   deon/REDWOOD_pfp.bin radeon/REDWOOD_pfp.bin.sig radeon/CEDAR_rlc.bin radeon/CEDAR_rlc.bin.sig radeon/CEDAR_me.bin radeon/CEDAR_me.                   bin.sig radeon/CEDAR_pfp.bin radeon/CEDAR_pfp.bin.sig radeon/R700_rlc.bin radeon/R700_rlc.bin.sig radeon/R600_rlc.bin radeon/R600_                   rlc.bin.sig radeon/RV710_me.bin radeon/RV710_me.bin.sig radeon/RV710_pfp.bin radeon/RV710_pfp.bin.sig radeon/RV730_me.bin radeon/R                   V730_me.bin.sig radeon/RV730_pfp.bin radeon/RV730_pfp.bin.sig radeon/RV770_me.bin radeon/RV770_me.bin.sig radeon/RV770_pfp.bin rad                   eon/RV770_pfp.bin.sig radeon/RS780_me.bin radeon/RS780_me.bin.sig radeon/RS780_pfp.bin radeon/RS780_pfp.bin.sig radeon/RV670_me.bi                   n radeon/RV670_me.bin.sig radeon/RV670_pfp.bin radeon/RV670_pfp.bin.sig radeon/RV635_me.bin radeon/RV635_me.bin.sig radeon/RV635_p                   fp.bin radeon/RV635_pfp.bin.sig radeon/RV620_me.bin radeon/RV620_me.bin.sig radeon/RV620_pfp.bin radeon/RV620_pfp.bin.sig radeon/R                   V630_me.bin radeon/RV630_me.bin.sig radeon/RV630_pfp.bin radeon/RV630_pfp.bin.sig radeon/RV610_me.bin radeon/RV610_me.bin.sig rade                   on/RV610_pfp.bin radeon/RV610_pfp.bin.sig radeon/R600_me.bin radeon/R600_me.bin.sig radeon/R600_pfp.bin radeon/R600_pfp.bin.sig ra                   deon/CAYMAN_rlc.bin radeon/CAYMAN_rlc.bin.sig radeon/CAYMAN_mc.bin radeon/CAYMAN_mc.bin.sig radeon/CAYMAN_me.bin radeon/CAYMAN_me.                   bin.sig radeon/CAYMAN_pfp.bin radeon/CAYMAN_pfp.bin.sig radeon/CAICOS_mc.bin radeon/CAICOS_mc.bin.sig radeon/CAICOS_me.bin radeon/                   CAICOS_me.bin.sig radeon/CAICOS_pfp.bin radeon/CAICOS_pfp.bin.sig radeon/TURKS_mc.bin radeon/TURKS_mc.bin.sig radeon/TURKS_me.bin                    radeon/TURKS_me.bin.sig radeon/TURKS_pfp.bin radeon/TURKS_pfp.bin.sig radeon/BTC_rlc.bin radeon/BTC_rlc.bin.sig radeon/BARTS_mc.bi                   n radeon/BARTS_mc.bin.sig radeon/BARTS_me.bin radeon/BARTS_me.bin.sig radeon/BARTS_pfp.bin radeon/BARTS_pfp.bin.sig

Features:       acpi dm multipathd kms block usb multipath kpartx resume.userspace resume.kernel

Bootsplash:     SLES (1024x768)

46471 blocks

>>> Network: auto

>>> Calling mkinitrd -k /boot/vmlinuz-3.0.76-0.11-default -i /tmp/mkdumprd.9PTYIUcr7Q -f 'kdump network' -B  -s ''

Regenerating kdump initrd ...

Kernel image:   /boot/vmlinuz-3.0.76-0.11-default

Initrd image:   /tmp/mkdumprd.9PTYIUcr7Q

KMS drivers:     radeon

Root device:    /dev/disk/by-id/cciss-3600508b1001c522836b1d3d076c1e8c8-part2 (/dev/dm-11) (mounted on / as ext3)

Resume device:  /dev/disk/by-id/cciss-3600508b1001c522836b1d3d076c1e8c8-part1 (/dev/dm-10)

Kernel Modules: hwmon thermal_sys thermal processor fan scsi_mod cciss scsi_tgt scsi_transport_fc lpfc hpsa libata ata_piix ata_ge                   neric scsi_dh dm-mod dm-multipath dm-log dm-region-hash dm-mirror dm-snapshot scsi_dh_alua scsi_dh_rdac scsi_dh_emc scsi_dh_hp_sw                    mbcache jbd ext3 dm-round-robin dm-queue-length dm-least-pending dm-service-time i2c-core i2c-algo-bit drm drm_kms_helper ttm rade                   on usb-common usbcore ohci-hcd uhci-hcd ehci-hcd xhci-hcd hid usbhid af_packet bonding bnx2 nls_utf8 hpwdt crc-t10dif sd_mod

Firmware:       radeon/R520_cp.bin radeon/R520_cp.bin.sig radeon/RS600_cp.bin radeon/RS600_cp.bin.sig radeon/RS690_cp.bin radeon/R                   S690_cp.bin.sig radeon/R420_cp.bin radeon/R420_cp.bin.sig radeon/R300_cp.bin radeon/R300_cp.bin.sig radeon/R200_cp.bin radeon/R200                   _cp.bin.sig radeon/R100_cp.bin radeon/R100_cp.bin.sig radeon/RV710_me.bin radeon/RV710_me.bin.sig radeon/RV710_pfp.bin radeon/RV71                   0_pfp.bin.sig radeon/RV730_me.bin radeon/RV730_me.bin.sig radeon/RV730_pfp.bin radeon/RV730_pfp.bin.sig radeon/RV770_me.bin radeon                   /RV770_me.bin.sig radeon/RV770_pfp.bin radeon/RV770_pfp.bin.sig radeon/RS780_me.bin radeon/RS780_me.bin.sig radeon/RS780_pfp.bin r                   adeon/RS780_pfp.bin.sig radeon/RV670_me.bin radeon/RV670_me.bin.sig radeon/RV670_pfp.bin radeon/RV670_pfp.bin.sig radeon/RV635_me.                   bin radeon/RV635_me.bin.sig radeon/RV635_pfp.bin radeon/RV635_pfp.bin.sig radeon/RV620_me.bin radeon/RV620_me.bin.sig radeon/RV620                   _pfp.bin radeon/RV620_pfp.bin.sig radeon/RV630_me.bin radeon/RV630_me.bin.sig radeon/RV630_pfp.bin radeon/RV630_pfp.bin.sig radeon                   /RV610_me.bin radeon/RV610_me.bin.sig radeon/RV610_pfp.bin radeon/RV610_pfp.bin.sig radeon/R600_me.bin radeon/R600_me.bin.sig rade                   on/R600_pfp.bin radeon/R600_pfp.bin.sig radeon/R520_cp.bin radeon/R520_cp.bin.sig radeon/RS600_cp.bin radeon/RS600_cp.bin.sig rade                   on/RS690_cp.bin radeon/RS690_cp.bin.sig radeon/R420_cp.bin radeon/R420_cp.bin.sig radeon/R300_cp.bin radeon/R300_cp.bin.sig radeon                   /R200_cp.bin radeon/R200_cp.bin.sig radeon/R100_cp.bin radeon/R100_cp.bin.sig radeon/SUMO2_me.bin radeon/SUMO2_me.bin.sig radeon/S                   UMO2_pfp.bin radeon/SUMO2_pfp.bin.sig radeon/SUMO_me.bin radeon/SUMO_me.bin.sig radeon/SUMO_pfp.bin radeon/SUMO_pfp.bin.sig radeon                   /SUMO_rlc.bin radeon/SUMO_rlc.bin.sig radeon/PALM_me.bin radeon/PALM_me.bin.sig radeon/PALM_pfp.bin radeon/PALM_pfp.bin.sig radeon                   /CYPRESS_rlc.bin radeon/CYPRESS_rlc.bin.sig radeon/CYPRESS_me.bin radeon/CYPRESS_me.bin.sig radeon/CYPRESS_pfp.bin radeon/CYPRESS_                   pfp.bin.sig radeon/JUNIPER_rlc.bin radeon/JUNIPER_rlc.bin.sig radeon/JUNIPER_me.bin radeon/JUNIPER_me.bin.sig radeon/JUNIPER_pfp.b                   in radeon/JUNIPER_pfp.bin.sig radeon/REDWOOD_rlc.bin radeon/REDWOOD_rlc.bin.sig radeon/REDWOOD_me.bin radeon/REDWOOD_me.bin.sig ra                   deon/REDWOOD_pfp.bin radeon/REDWOOD_pfp.bin.sig radeon/CEDAR_rlc.bin radeon/CEDAR_rlc.bin.sig radeon/CEDAR_me.bin radeon/CEDAR_me.                   bin.sig radeon/CEDAR_pfp.bin radeon/CEDAR_pfp.bin.sig radeon/R700_rlc.bin radeon/R700_rlc.bin.sig radeon/R600_rlc.bin radeon/R600_                   rlc.bin.sig radeon/RV710_me.bin radeon/RV710_me.bin.sig radeon/RV710_pfp.bin radeon/RV710_pfp.bin.sig radeon/RV730_me.bin radeon/R                   V730_me.bin.sig radeon/RV730_pfp.bin radeon/RV730_pfp.bin.sig radeon/RV770_me.bin radeon/RV770_me.bin.sig radeon/RV770_pfp.bin rad                   eon/RV770_pfp.bin.sig radeon/RS780_me.bin radeon/RS780_me.bin.sig radeon/RS780_pfp.bin radeon/RS780_pfp.bin.sig radeon/RV670_me.bi                   n radeon/RV670_me.bin.sig radeon/RV670_pfp.bin radeon/RV670_pfp.bin.sig radeon/RV635_me.bin radeon/RV635_me.bin.sig radeon/RV635_p                   fp.bin radeon/RV635_pfp.bin.sig radeon/RV620_me.bin radeon/RV620_me.bin.sig radeon/RV620_pfp.bin radeon/RV620_pfp.bin.sig radeon/R                   V630_me.bin radeon/RV630_me.bin.sig radeon/RV630_pfp.bin radeon/RV630_pfp.bin.sig radeon/RV610_me.bin radeon/RV610_me.bin.sig rade                   on/RV610_pfp.bin radeon/RV610_pfp.bin.sig radeon/R600_me.bin radeon/R600_me.bin.sig radeon/R600_pfp.bin radeon/R600_pfp.bin.sig ra                   deon/CAYMAN_rlc.bin radeon/CAYMAN_rlc.bin.sig radeon/CAYMAN_mc.bin radeon/CAYMAN_mc.bin.sig radeon/CAYMAN_me.bin radeon/CAYMAN_me.                   bin.sig radeon/CAYMAN_pfp.bin radeon/CAYMAN_pfp.bin.sig radeon/CAICOS_mc.bin radeon/CAICOS_mc.bin.sig radeon/CAICOS_me.bin radeon/                   CAICOS_me.bin.sig radeon/CAICOS_pfp.bin radeon/CAICOS_pfp.bin.sig radeon/TURKS_mc.bin radeon/TURKS_mc.bin.sig radeon/TURKS_me.bin                    radeon/TURKS_me.bin.sig radeon/TURKS_pfp.bin radeon/TURKS_pfp.bin.sig radeon/BTC_rlc.bin radeon/BTC_rlc.bin.sig radeon/BARTS_mc.bi                   n radeon/BARTS_mc.bin.sig radeon/BARTS_me.bin radeon/BARTS_me.bin.sig radeon/BARTS_pfp.bin radeon/BARTS_pfp.bin.sig bnx2/bnx2-rv2p                   -09ax-6.0.17.fw bnx2/bnx2-rv2p-09ax-6.0.17.fw.sig bnx2/bnx2-rv2p-09-6.0.17.fw bnx2/bnx2-rv2p-09-6.0.17.fw.sig bnx2/bnx2-mips-09-6.                   2.1b.fw bnx2/bnx2-mips-09-6.2.1b.fw.sig bnx2/bnx2-rv2p-06-6.0.15.fw bnx2/bnx2-rv2p-06-6.0.15.fw.sig bnx2/bnx2-mips-06-6.2.3.fw bnx                   2/bnx2-mips-06-6.2.3.fw.sig

Features:       acpi dm multipathd kms block usb network multipath kpartx resume.userspace resume.kernel kdump

61122 blocks

Jetzt kann der Quadstor Daemon (Dienst) gestartet werden.

backup1:/tmp/quadstor/storagev # /etc/init.d/quadstor start

Starting quadstor: Starting iSCSI target service:

Bedienung

Aufruf von http://localhost bzw. http://127.0.0.1 im Browser (über Netzwerk ist der hostname bzw. die IP-Adresse des Servers einzugeben)

QUADStor Storage Virtualization

QUADStor Storage Virtualization, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Quadstor Storage Virtualization läuft also schon mal. Für eine gesicherte Konfiguration des Webinterface gibt es eine Anleitung.

QUADStor - Physical disks

QUADStor – Physical disks, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Problem

Wie man hier im Screenshot erkennen kann erfasst Quadstor statt der Multipathing-Gerätedateien die Standard-SCSI-Gerätedateien. Beim vorhandenen Dual Controller Array tauchen deshalb die LUNs doppelt auf.

backup1:~ # more /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 01
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 02
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 03
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 04
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 05
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 06
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 07
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 31
  Vendor: SUN      Model: Universal Xport  Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 01
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 02
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 03
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 04
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 05
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 06
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 07
  Vendor: SUN      Model: CSM200_R         Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 31
  Vendor: SUN      Model: Universal Xport  Rev: 0660
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: TEAC     Model: DV-28S-W         Rev: C.2D
  Type:   CD-ROM                           ANSI  SCSI revision: 05

Hier die Multi-Pathing Konfiguration. Man sieht je 2 Standard SCSI Geräte einem Multi-Pathing Gerät untergeordnet (CSM200_R = Sun/STK 6140 tray).

backup1:~ # multipath -l
3600a0b80002998400000090b50a431be dm-4 SUN     ,CSM200_R
size=346G features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:2 sdk        8:160  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:2 sdc        8:32   active undef running
3600a0b80002998400000090f50a4341a dm-2 SUN     ,CSM200_R
size=1.9T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:0 sdi        8:128  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:0 sda        8:0    active undef running
3600508b1001c522836b1d3d076c1e8c8 dm-0 HP      ,LOGICAL VOLUME
size=137G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
  `- 0:0:0:0 cciss/c0d0 104:0  active undef running
3600a0b8000299840000008ff509b5878 dm-8 SUN     ,CSM200_R
size=2.0T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:6 sdo        8:224  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:6 sdg        8:96   active undef running
3600a0b80002998400000090a50a4274a dm-5 SUN     ,CSM200_R
size=2.0T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:3 sdl        8:176  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:3 sdd        8:48   active undef running
3600508b1001c6a3287b5ac4f4bc8eb30 dm-1 HP      ,LOGICAL VOLUME
size=137G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
  `- 0:0:1:0 cciss/c0d1 104:16 active undef running
3600a0b80002998400000090e50a433da dm-9 SUN     ,CSM200_R
size=2.0T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:7 sdp        8:240  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:7 sdh        8:112  active undef running
3600a0b800029a1fa00000d96509b52dd dm-7 SUN     ,CSM200_R
size=2.0T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:5 sdn        8:208  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:5 sdf        8:80   active undef running
3600a0b80002998400000090950a423b6 dm-6 SUN     ,CSM200_R
size=2.0T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:4 sdm        8:192  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:4 sde        8:64   active undef running
3600a0b80002998400000090c50a43304 dm-3 SUN     ,CSM200_R
size=2.0T features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 2:0:0:1 sdj        8:144  active undef running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 1:0:0:1 sdb        8:16   active undef running

backup1:~ # ls -l /dev/mapper
total 0
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600508b1001c522836b1d3d076c1e8c8 -> ../dm-0
lrwxrwxrwx 1 root root       8 Jul 29 14:53 3600508b1001c522836b1d3d076c1e8c8_part1 -> ../dm-10
lrwxrwxrwx 1 root root       8 Jul 29 14:53 3600508b1001c522836b1d3d076c1e8c8_part2 -> ../dm-11
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600508b1001c6a3287b5ac4f4bc8eb30 -> ../dm-1
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600a0b8000299840000008ff509b5878 -> ../dm-8
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600a0b80002998400000090950a423b6 -> ../dm-6
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600a0b80002998400000090a50a4274a -> ../dm-5
lrwxrwxrwx 1 root root       7 Jul 29 14:55 3600a0b80002998400000090b50a431be -> ../dm-4
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600a0b80002998400000090c50a43304 -> ../dm-3
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600a0b80002998400000090e50a433da -> ../dm-9
lrwxrwxrwx 1 root root       7 Jul 29 15:15 3600a0b80002998400000090f50a4341a -> ../dm-2
lrwxrwxrwx 1 root root       7 Jul 29 14:53 3600a0b800029a1fa00000d96509b52dd -> ../dm-7
crw-rw---- 1 root root 10, 236 Jul 29 10:00 control

 

Workaround

Quadstor unterstützt Software RAID devices (mdadm). Das nutze ich aus um die Multi-Pathing Geräte doch noch mit quadstor nutzen zu können. Für jedes Multi-Pathing Gerät erstelle ich ein zugeordnetes Dummy RAID Gerät (RAID 0 bestehend aus einer Platte).

backup1:~ # mdadm --create /dev/md0 --level=0 --raid-devices=1 /dev/mapper/3600a0b8000299840000008ff509b5878 --force
mdadm: /dev/mapper/3600a0b8000299840000008ff509b5878 appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b8000299840000008ff509b5878 but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
backup1:~ # mdadm --create /dev/md1 --level=0 --raid-devices=1 /dev/mapper/3600a0b80002998400000090b50a431be --force
mdadm: /dev/mapper/3600a0b80002998400000090b50a431be appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b80002998400000090b50a431be but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
backup1:~ # mdadm --create /dev/md2 --level=0 --raid-devices=1 /dev/mapper/3600a0b80002998400000090f50a4341a --force
mdadm: /dev/mapper/3600a0b80002998400000090f50a4341a appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b80002998400000090f50a4341a but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
backup1:~ # mdadm --create /dev/md3 --level=0 --raid-devices=1 /dev/mapper/3600a0b80002998400000090a50a4274a --force
mdadm: /dev/mapper/3600a0b80002998400000090a50a4274a appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b80002998400000090a50a4274a but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
backup1:~ # mdadm --create /dev/md4 --level=0 --raid-devices=1 /dev/mapper/3600a0b80002998400000090e50a433da --force
mdadm: /dev/mapper/3600a0b80002998400000090e50a433da appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b80002998400000090e50a433da but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md4 started.
backup1:~ # mdadm --create /dev/md5 --level=0 --raid-devices=1 /dev/mapper/3600a0b800029a1fa00000d96509b52dd --force
mdadm: /dev/mapper/3600a0b800029a1fa00000d96509b52dd appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b800029a1fa00000d96509b52dd but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
backup1:~ # mdadm --create /dev/md6 --level=0 --raid-devices=1 /dev/mapper/3600a0b80002998400000090950a423b6 --force
mdadm: /dev/mapper/3600a0b80002998400000090950a423b6 appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b80002998400000090950a423b6 but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md6 started.
backup1:~ # mdadm --create /dev/md7 --level=0 --raid-devices=1 /dev/mapper/3600a0b80002998400000090c50a43304 --force
mdadm: /dev/mapper/3600a0b80002998400000090c50a43304 appears to be part of a raid array:
    level=raid0 devices=0 ctime=Thu Jan  1 01:00:00 1970
mdadm: partition table exists on /dev/mapper/3600a0b80002998400000090c50a43304 but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md7 started.

backup1:~ # cat /proc/mdstat
Personalities : [raid0]
md7 : active raid0 dm-3[0]
      2134897664 blocks super 1.2 512k chunks
md6 : active raid0 dm-6[0]
      2134894592 blocks super 1.2 512k chunks
md5 : active raid0 dm-7[0]
      2134894592 blocks super 1.2 512k chunks
md4 : active raid0 dm-9[0]
      2134897664 blocks super 1.2 512k chunks
md3 : active raid0 dm-5[0]
      2134894592 blocks super 1.2 512k chunks
md2 : active raid0 dm-2[0]
      2072411136 blocks super 1.2 512k chunks
md1 : active raid0 dm-4[0]
      362906624 blocks super 1.2 512k chunks
md0 : active raid0 dm-8[0]
      2134894592 blocks super 1.2 512k chunks
unused devices:

Die RAID Konfiguration wird erst nach Sichern der Konfiguration permanent.

backup1:~ # mdadm --detail --scan >> /etc/mdadm.conf
backup1:~ # vi /etc/mdadm.conf
DEVICE /dev/disk/by-id/*
ARRAY /dev/md0 metadata=1.2 name=backup1:0 UUID=68de1206:6a244d7e:89d3788f:5860b5e8
ARRAY /dev/md1 metadata=1.2 name=backup1:1 UUID=b043cdd4:13b3b19e:bccd5b05:04cb7116
ARRAY /dev/md2 metadata=1.2 name=backup1:2 UUID=19e868b8:bfa7f12c:a773d1b7:0a800112
ARRAY /dev/md3 metadata=1.2 name=backup1:3 UUID=cac11075:1906c1da:9ad5a190:2fd6a15f
ARRAY /dev/md4 metadata=1.2 name=backup1:4 UUID=63097236:6c60b353:f0c8ea61:c251bf6c
ARRAY /dev/md5 metadata=1.2 name=backup1:5 UUID=72a0c2a7:07569c58:2c5a45bc:ab2b7463
ARRAY /dev/md6 metadata=1.2 name=backup1:6 UUID=e4b31529:c5cbb5b1:637bcae6:3471981e
ARRAY /dev/md7 metadata=1.2 name=backup1:7 UUID=2d2aae1e:3033a0b2:598e2f47:7672b380

Das sollte man am Besten mit einem Neustart überprüfen. Im Zweifelsfall schreibt man noch ein init-Skript, das vor quadstor gestartet wird. Beispiel:

mdadm --examine --scan
mdadm --assemble --scan

Nun müsste Quadstor RAID Geräte erkennen, die wiederum auf Multi-Pathing Geräte zeigen. Deshalb in Quadstor > physical storage > rescan.

QUADStor - Physical disks inkl. RAID

QUADStor – Physical disks inkl. RAID, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Nun tauchen die RAID Geräte auf.

Pool

Zunächst gilt es einen Pool anzulegen: quadstor > Storage pools > add pool

QUADStor - add pool

QUADStor – add pool, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor - add pool1

QUADStor – add pool1, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Nun gilt es dem erstellten Pool Platten hinzuzufügen: Quadstor > physical storage > add

QUADStor - add pdisk md0 to pool1

QUADStor – add pdisk md0 to pool1, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor - add pdisk

QUADStor – add pdisk, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Auch die anderen RAID Gerät werden nun dem Pool1 hinzugefügt.

QUADStor - initializing

QUADStor – initializing, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor - Pool

QUADStor – Pool, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

VDisk

Nachdem nun ein Pool angelegt und mit disks bestückt wurde kann man nun eine virt. LUN, eine sog. VDisk, erstelllen: Quadstor > Virtual Disk > add VDisk

QUADStor - VDisk hinzufügen

QUADStor – VDisk hinzufügen, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Diese VDisk soll via iSCSI der Virtualisierungslösung VMware VSphere (ESXi) zur Verfügung gestellt werden (Haken setzen bei 512byte emulation).

QUADStor - VDisk hinzufügen für Virtualisierung mit ESXi

QUADStor – VDisk hinzufügen für Virtualisierung mit ESXi, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Im Feld Status erkennt man am Buchstaben E (Emulation) die VDisks für ESXi und Co..

QUADStor - VDisk hinzugefügt

QUADStor – VDisk hinzugefügt, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Unter modify lassen sich u.a. die iSCSI Zugangsdaten verändern.

QUADStor - VDisk Eigenschaften

QUADStor – VDisk Eigenschaften, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Nun noch eine Standard-VDisk für die lokale Nutzung einrichten…

quadstor13

QUADStor – VDisk für lokales Filesystem, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Die VDisk für ein lokales Filesystem ist nun ebenfalls erstellt.

QUADStor - VDisk für lokales Filesystem erstellt

QUADStor – VDisk für lokales Filesystem erstellt, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

 iSCSI LUN für VMware ESXi

Auf einem Hard- oder Software iSCSI Initiator in VMware ESXi / VSphere muß zunächst das iSCSI Target bekannt gegeben werden.

Am ESXi Server: Konfiguration > Speicheradapter > iSCSI Initiator auswählen > Eigenschaften > dynamische Erkennung > FQDN des Quadstor Host angeben

QUADStor - iSCSI target

QUADStor – iSCSI target, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

iSCSI LUNs sind nun sichtbar…

QUADStor - iSCSI LUNs

QUADStor – iSCSI LUNs, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Nun kann man die iSCSI LUN dem ESXi hinzufügen und ein VMFS-Filesystem darauf anlegen.

LUN für lokales Filesystem

Dem Rechner mit der Quadstor Software kann natürlich eine VDisk auch als LUN für lokalen Zugriff zugewiesen werden. Auf der o.g. 5GB großen VDisk habe ich eine Partition mit dem ext3- Dateisystem angelegt.

QUADStor - LUN für lokales Dateisystem

QUADStor – LUN für lokales Dateisystem, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Auf einer VDisk kann ein beliebiges Dateisystem aufgebracht werden, hier z.B. ext3. Um es benutzen zu können muß es in einem Verzeichnis einhängt werden. Das kann man dann nicht nur lokal nutzen sondern auch als Netzwerkfreigabe via CIFS/NFS anderen zur Verfügung stellen.

Fazit

Quadstor Storage Virtualization bietet eine leicht bedienbare Open Source Software zur Speichervirtualisierung mit Inline Deduplizierung und iSCSI/FC-target Integration. Quadstor bietet daneben noch eine VTL Software an.

Mit der Software von Quadstor läßt sich mit Hilfe eines 64bit x86 kompatiblen-Rechners ein professionelles NAS-System bereitstellen – ausreichend RAM und HDDs vorausgesetzt. Netzwerkfreigaben und lokale Filesysteme muß man allerdings noch mit Betriebssystemmitteln verwalten. Vieles ist aber bereits über eine gefällige Weboberfläche bedienbar.

Aus meiner Sicht eine klare Testempfehlung! Gerade in low budget Umgebungen könnte das Produkt interessant sein…

Die direkte Unterstützung von Linux Multi-Pathing Geräten wäre noch wünschenswert.

Veröffentlicht unter howto, Labor | Verschlagwortet mit , , , , , , , , , , , , , , | Kommentare deaktiviert für QUADStor OpenSource Storage Virtualization auf SLES 11 SP3

EMC News: Networker 8.1, Avamar 7.0, Datadomain appliances und DDOS 5.4

EMC will im Q3/2013 Produktupdates für Backupsoftware und -hardware herausbringen (GA). Konkret betrifft das Networker 8.1, Avamar 7.0 und Datadomain.

Zusammenfassung der Neuerungen, Videos, etc

Mittlerweile sind interessante Dokumente dazu erschienen.

Kompatibilitätsleitfäden:

Dokumentation

Directed Availabilty (vgl. RTM)

Während einige Produkte eine Frischzellenkur erhalten werden andere in die ewigen Jagdgründe (EOL bzw. EOS) befördert bzw. durch Nachfolgeprodukte ersetzt. Vorteilhaft ist dabei z.B. dass mit einer alten NMSQL/NME-Lizenz auch NMM verwendet werden kann.

  • Networker module for Microsoft applications (NMM) ersetzt Networker Module for Exchange (NME) / SQL Server (NMSQL)
  • Networker module for databases and applications (NMDA) ersetzt Networker Module for Oracle (NMO)
  • Networker Snapshot Management ersetzt PowerSnap

Meine Highlights

  • DDBoost / client direct support für NMDA 1.5 mit Oracle auf AIX 64bit
  • virtual synthetic full backups mit Datadomain und Networker
  • Avamar 7 – „Blackout window“ entfällt! Backups während garbage collection möglich
  • Avamar 7  VM recovery – Boot vom VM-Backup-Image auf Datadomain, anschließend Storagevmotion, keine Downtime…

offene Punkte

  • für die neue Art von VMware Image Backups via virt. appliance wird eine neue Lizenz benötigt: Networker VMware Protection Tier 1/2/3/4/5 qty1/5 (Tier 1: 1-5 CPUs, Tier 2: 6-10 CPUs, Tier 3: 11-25 CPUs, Tier 4: 26-50 CPUs, Tier 5: 50+ CPUs) – gibt es einen Migrationsweg für bisherige Networker VADP backups?
  • File Level Restore für Linux ist nur via VMware protection appliance möglich

 

Veröffentlicht unter News | Verschlagwortet mit , , , , | Kommentare deaktiviert für EMC News: Networker 8.1, Avamar 7.0, Datadomain appliances und DDOS 5.4