Symantec-Scripts für Speichervolumen-Snapshots
Erstellungsdatum: 1. August 2011
Revisionsdatum: 1. August 2011
Produkt: DS-System (Linux)
Zusammenfassung
Diese Funktion wird vom Parameter "UseSnapshot" des DS-Systems aktiviert (Siehe "DS-System Erweiterte Konfiguration".).
Die folgenden Schritte beschreiben, wie Scripts für einen Symantec-Snapshot erstellt werden. Die vordefinierten Beispiel-Scripts, die zur Verfügung gestellt werden, müssen für jede Umgebung, in der diese verwendet werden, konfiguriert werden.
Schritte zur Erstellung von Scripts für einen Symantec-Snapshot
1. Für einen Symantec-File-Store wird keine API von Symantec zur Verfügung gestellt. Deshalb muss das DS-System SSH verwenden, um einen Snapshot zu erstellen. Dies bedeutet, dass ein Symantec-Snapshot nur für Linux-DS-Systeme funktioniert.
2. Zwei Scripts werden zur Verfügung gestellt: Eines ist, um einen Snapshot zu erstellen und das andere ist, um diesen Snapshot zu löschen.
- Sie (der Dienstanbieter) müssen diese zwei Scripts zu einem Standort kopieren, der für das DS-System zugreifbar ist und diese in den Feldern "Snapshot-Erstellung" und "Snapshot-Vernichtung" des Bildschirms "Neuer Speicher / Speicher bearbeiten" angeben:
3. Falls nötig, ändern Sie die folgenden drei Parameter in jedem Script. (Die Standardeinstellungen könnten ausreichen, abhängig von Ihrer Umgebung.):
|
|
|
|
|
Konfiguriert ein Dateisystem-Prefix. Der Standardwert ist /vx (Sie können mit den Symantec-Tools überprüfen, welches Prefix verwendet wird). |
|
|
Das Verzeichnis wird konfiguriert, wo der Snapshot verbunden wird und das DS-System dieses Verzeichnis verwenden wird, um auf die Snapshots zuzugreifen. |
|
IDENTITY=/root/.ssh/id_rsa
|
Konfiguriert die SSH-Verbindung. - Auf der DS-System-Seite wählen Sie, welcher Benutzer für die SSH-Verbindung zum Symantec-Speicher verwendet werden soll. In den Beispiel-Scripts wird der 'root' Benutzer verwendet.
- Melden Sie sich als 'root' Benutzer beim DS-System an und führen Sie ssh-keygen durch, um einen Privatschlüssel (/root/.ssh/id_rsa) und einen öffentlichen Schlüssel (/root/.ssh/id_rsa.pub) für den 'root' Benutzer zu erstellen.
- Erstellen Sie einen Benutzer auf dem Speichergerät, der für die Durchführung eines Snapshots (ein anderer Benutzer als 'root') verwendet wird. Zum Beispiel, wenn Sie den Benutzer 'master' verwenden, würden Sie den Inhalt der öffentlichen Schlüsseldatei (/root/.ssh/id_rsa.pub) zur authorisierten Datei des Benutzers 'master' (/home/master/.ssh/authorized_keys) kopieren.
- Konfigurieren Sie den Privatdatei-Standort mit "IDENTITY= "
|
4. Beispiel jedes Scripts:
symantec_snapshot_create.sh
-
-
#!/bin/sh
-
-
FS_PREFIX=/vx
-
SNAP_DIR=/snapshot
-
IDENTITY=/root/.ssh/id_rsa
-
-
if [ $# -lt 4 ]; then
-
echo "$0 <NAS address> <username> <volume name> <snapshot name>"
-
exit 1
-
fi
-
-
NAS_ADDR=$1
-
USER_NAME=$2
-
VOL_NAME=$3
-
SNAP_NAME=$4
-
/usr/bin/ssh -o StrictHostKeyChecking=no -i $IDENTITY $USER_NAME@$NAS_ADDR storage snapshot create $SNAP_NAME $VOL_NAME
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "Snapshot $SNAP_NAME creation failed (error code: $rc)."
-
exit $rc
-
fi
-
echo "Snapshot $SNAP_NAME created."
-
-
/usr/bin/ssh -o StrictHostKeyChecking=no -i $IDENTITY $USER_NAME@$NAS_ADDR nfs share add ro,no_root_squash,async $FS_PREFIX/$VOL_NAME:$SNAP_NAME
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "NFS share snapshot $SNAP_NAME share failed (error code: $rc)."
-
exit $rc
-
fi
-
echo "Snapshot $SNAP_NAME NFS shared."
-
-
snapdir=$SNAP_DIR/$VOL_NAME:$SNAP_NAME
-
/bin/mkdir -p $snapdir
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "mkdir $snapdir failed (error code: $rc)."
-
exit $rc
-
fi
-
-
/sbin/mount.nfs $NAS_ADDR:$FS_PREFIX/$VOL_NAME:$SNAP_NAME $snapdir -n -o ro,async
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "mount snapshot $SNAP_NAME to $snapdir failed (error code: $rc)."
-
exit $rc
-
fi
-
echo "Snapshot $SNAP_NAME mounted to $snapdir."
-
-
exit 0
-
|
symantec_snapshot_delete.sh
-
#!/bin/sh
-
-
FS_PREFIX=/vx
-
SNAP_DIR=/snapshot
-
IDENTITY=/root/.ssh/id_rsa
-
-
if [ $# -lt 4 ]; then
-
echo "$0 <NAS address> <username> <volume name> <snapshot name>"
-
exit 1
-
fi
-
-
NAS_ADDR=$1
-
USER_NAME=$2
-
VOL_NAME=$3
-
SNAP_NAME=$4
-
-
snapdir=$SNAP_DIR/$VOL_NAME:$SNAP_NAME
-
-
/sbin/umount.nfs $snapdir -f -n -l
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "umount snapshot $SNAP_NAME from $snapdir failed (error code: $rc)."
-
exit $rc
-
fi
-
echo "Snapshot $SNAP_NAME umounted."
-
-
/usr/bin/ssh -o StrictHostKeyChecking=no -i $IDENTITY $USER_NAME@$NAS_ADDR nfs share delete $FS_PREFIX/$VOL_NAME:$SNAP_NAME
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "NFS unshare snapshot $SNAP_NAME failed (error code: $rc)."
-
exit $rc
-
fi
-
echo "Snapshot $SNAP_NAME NFS unshared."
-
-
/usr/bin/ssh -o StrictHostKeyChecking=no -i $IDENTITY $USER_NAME@$NAS_ADDR storage snapshot destroy $SNAP_NAME $VOL_NAME
-
rc=$?
-
if [ $rc != 0 ]
-
then
-
echo "Snapshot $SNAP_NAME deletion failed (error code: $rc)."
-
exit $rc
-
fi
-
echo "Snapshot $SNAP_NAME deleted."
-
-
/bin/rmdir $snapdir
-
-
exit 0
|
Siehe auch
Die in diesem Dokument enthaltenen Informationen sind "ohne Mängelgewähr", ohne jegliche Gewährleistung. ASIGRA Inc. (ASIGRA) übernimmt keine Gewährleistung, weder ausdrücklich, noch stillschweigend. In keinem Fall haften ASIGRA oder seine Geschäftspartner für jedwede Schäden, eingeschlossen direkt, indirekt, zufällig, daraus folgend, für Verlust von Geschäftsgewinnen oder besondere Schäden, auch dann nicht, wenn ASIGRA oder ihren Geschäftspartnern die Möglichkeit solcher Schäden angekündigt wurde. © Asigra Inc. Alle Rechte vorbehalten. Vertraulich.