amCLI

amCLI ist die Kommandozeilen-Schnittstelle zum ServerView RAID Manager. Sie dient dazu, von der Kommandozeile oder aus Skripten heraus RAID-Verbände zu erstellen, löschen oder verwalten oder den ServerView RAID Manager zu steuern.

Auf höchster Ebene bietet amCLI die folgenden Kommando-Optionen:

-c|--create: zum Anlegen eines neuen logischen Laufwerks,
-d|--delete: zum Löschen eines logischen Laufwerks,
-e|--exec: zum Ausführen gerätespezifischer Kommandos,
-g|--get: zum Auslesen von Geräte-Eigenschaften,
-i|--import: zum Importieren eines Zertifikats,
-l|--list: zum Anzeigen von Informationen,
-m|--migrate: zum Überführen eines RAID-Verbandes in einen anderen RAID-Level,
-r|--restore: zum Wiederherstellen eines früher gesicherten Zustandes,
-s|--set: zum Verändern von Geräte-Eigenschaften,
-w|--write: zum Sichern eines Systemzustandes,
-Z|--zap: zum Löschen der Konfiguration und
-?|--help: zum Anzeigen von Hilfe-Informationen.

Höchstens eines dieser Kommando-Optionen darf beim Aufruf von amCLI angegeben werden. Wurde keine Kommando-Option angegeben, wird -? angenommen.

Adressierungs-Schema

Alle Objekte, die mit diesem Kommando bearbeitet werden können (das gesamte ServerView RAID Manager Subsystem, RAID-Adapter, physische Laufwerke und logische Laufwerke, d.h. RAID-Verbände) werden über zwei Zahlenwerte, getrennt durch einen Schrägstrich (/) identifiziert, wobei die erste Zahl ein Modul auswählt und die zweite Zahl einen (0-basierten) Index darstellt: <mod/idx>. In dieser Dokumentation wird eine solche Zahlenkombination Adresse genannt.

Folgende Module werden zur Zeit unterstützt:

mod Modul
21 ServerView RAID Manager
32 Avago MegaRAID SAS Adapter, SAS/SAS2/SAS3 IT/IR Adapter, MegaSR
36 Fujitsu Aries SAS Adapter
39 Linux Software RAID
40 Avago MegaRAID SAS Adapter, SAS/SAS2/SAS3 IT/IR Adapter (via CIM)
47 AMD Chipset RAID
48 Fusion-io PCIe SSD's
53 Intel PCIe SSD's

Anmerkung: Die Index-Werte müssen nicht aufeinanderfolgend sein, d.h. wenn 27/5 und 27/7 existieren, muß 27/6 nicht notgedrungen auch existieren. Index-Werte beziehen sich auch immer auf ein Modul, d.h. 26/5 und 27/5 können beide gleichzeitig existieren. Auch verläuft die Indizierung über Adapter, logische und physische Laufwerke hinweg, d.h. 27/5 und 27/10 können Adapter adressieren und 27/6 und 27/7 physische und 27/8 und 27/9 logische Laufwerke adressieren.

Im Folgenden sind

In der Ausgabe von amCLI -l kann man die Adresse eines gewünschten Objekts ablesen.

Zur Erzeugung von Skripten, können durch die Verwendung des Schalters -quiet alle Bestätigungsnachfragen unterdrückt werden.

Anlegen eines logischen Laufwerks

Bevor man ein neues logisches Laufwerk anlegt, sollte man sich genauestens die gewünschten Eigenschaften (welcher RAID-Level mit welchen zusätzlichen Parametern auf welchen physischen und/oder logischen Laufwerken) überlegen. Im Folgenden wird davon ausgegangen, dass diese Begrifflichkeiten bekannt sind.

Synopsis

amCLI [-c|--create] <mod/AdpIdx> raid=<raidLevel> parameters <mod/PDIdx>+

Parameter

Mit Hilfe von amCLI --help create <mod/AdpIdx> läßt sich feststellen, welche RAID-Level ein bestimmter Adapter unterstützt und mit welchen zusätzlichen Parameter.

Beispiel

Um einen RAID-5-Verband aus den physischen Laufwerken 32/5, 32/6 und 32/7 auf dem Avago MegaRAID Adapter 32/1 anzulegen, kann man das folgende Kommando absetzen:

# amCLI -c 32/1 raid=5 32/5 32/6 32/7

Aus Sicherheitsgründen muß man dieses Kommando bestätigen (die Eingabe wird ohne Berücksichtigung von Groß- oder Kleinschreibung ausgewertet):

Are you sure to create a new Logical Drive on Adapter '32/1'?
Type YES to confirm _

Anmerkung

Der ServerView RAID Manager wird selbst eine Adresse für das neu angelegte logische Laufwerk erzeugen. Diese Adresse läßt sich danach mit Hilfe von amCLI -l bestimmen.

Löschen des letzten logischen Laufwerks

Mit diesem Kommando kann man das Laufwerk mit der höchsten "logischen Laufwerks-ID" löschen, welches i.d.R. das zuletzt erzeugte ist.

Synopsis

amCLI [-d|--delete] <mod/AdpIdx>

Parameter

Beispiel

Um das oben angelegte logische Laufwerk wieder zu löschen, kann man das folgende Kommando benutzen:

# amCLI -d 32/1

Auch hier ist eine explizite Bestätigung erforderlich:

Are you sure to delete the last Logical Drive on Adapter '32/1'?
Type YES to confirm _

Gerätespezifisches Kommando ausführen

Dieses Kommando startet die Ausführung eines gerätespezifischen Kommandos auf dem angegebenen Gerät.

Synopsis

amCLI [-e|--exec] <mod/idx> <operation> <param>*

Parameter

Um herauszufinden, welche Kommandos von einem Objekt unterstützt werden und welche zusätzlichen Parameter erforderlich sind, kann man

amCLI [-?|--help] exec <mod/idx>

aufrufen.

Beispiele

# amCLI -? exec 32/26
amCLI v5.7.0
Usage:
  -e | --exec <32/PDIdx>    locate
  -e | --exec <32/PDIdx>    stop_location
  -e | --exec <32/PDIdx>    create_global_hot_spare
  -e | --exec <32/PDIdx>    delete_global_hot_spare
  -e | --exec <32/PDIdx>    create_dedicated_hot_spare <mod/LDIdx>
  -e | --exec <32/PDIdx>    delete_dedicated_hot_spare
  -e | --exec <32/PDIdx>    make_online
  -e | --exec <32/PDIdx>    make_offline
  -e | --exec <32/PDIdx>    make_ready
  -e | --exec <32/PDIdx>    replace_missing_disk <mod/LDIdx>
# amCLI -e 32/26 locate

Auslesen von Geräte-Eigenschaften

Mit Hilfe dieses Kommandos kann man gerätespezifische Eigenschaften und Zustände auslesen.

Synopsis

amCLI [-g|--get] <mod/idx> <property>

Parameter

Mit amCLI -? get kann man herausfinden, welche Objekte generell welche Eigenschaften und Zustände unterstützen und mit amCLI -? get <mod/idx> läßt sich dies für ein spezifisches Objekt herausfinden.

Beispiele

# amCLI -? get 32/2
amCLI v5.7.0
Usage:
  -g | --get <32/LDIdx> activity
  -g | --get <32/LDIdx> status
  -g | --get <32/LDIdx> disk_cache_mode
  -g | --get <32/LDIdx> bgi
  ...
# amCLI -g 32/2 status
Operational

Importieren eines Zertifikats

Dieses Kommando importiert ein Zertifikat.

Synopsis

amCLI [-i|--import] <certificate file> <private key file>

Parameter

Beispiel

# amCLI -i cert.pem key.pem [intermediate.pem]

Anzeigen von Informationen

Dieses Kommando zeigt Informationen zu einem gegebenen Objekt an.

Synopsis

amCLI [-l|--list] [all|struct|<mod/idx>]

Parameter

Ist kein Parameter angegeben, wird die Struktur des gesamten RAID-Subsystems ohne Details angezeigt.

Beispiel

# amCLI -l struct
21/3: System, 'hostname'
  32/1: SAS Adapter 0, 'Avago MegaRAID SAS PCI Express(TM) ROMB (0)'
    32/2: Logical Drive 0, 'LogicalDrive_0', RAID-0, 69472MB
    32/3: SAS Port 0
      32/11: Physical Drive 0, 'SEAGATE ST373454SS (0)', 69472MB
    32/4: SAS Port 1
      32/12: Physical Drive 1, 'SEAGATE ST336754SS (1)', 34464MB
     ...

Einen RAID-Verband in einen anderen RAID-Level überführen

Dieses Kommando erlaubt es, den RAID-Level eines logischen Laufwerks zu ändern, soweit dies in der aktuellen Konfiguration  möglich und vom zuständigen Adapter unterstützt wird.

Synopsis

amCLI [-m|--migrate] <mod/LDIdx> [raid=<raidLevel>] parameters <mod/PDIdx>*

Parameter

Um herauszufinden, in welche RAID-Levels ein existierendes logisches Laufwerk überführt werden kann, kann man das folgende Kommando benutzen:

amCLI -? migrate <mod/LDIdx>

Beispiele

# amCLI -l 32/2
32/2: Logical Drive 0, 'LogicalDrive_0', RAID-0, 69472MB
   Parents: 1
   Children: -
   Containers: 1
   Drives: 1 --> ( 32/11 )
   Properties:
    Unique ID: PCI:Bus=2&Device=14&Function=0&ID=0
    Logical Drive Number: 0
    Name: LogicalDrive_0, settable
    Logical Size: 69472 MB
    Physical Size: 69472 MB
    RAID Level: RAID-0
    ...
# amCLI -? migrate 32/2
amCLI v5.7.0
Usage:
  -m | --migrate 32/2
  [raid=(0|1|5)]
  (<PDIdx>)+

Diese Ausgabe bedeutet, dass das logische Laufwerk 32/2 (mit RAID-Level 0) nur in die RAID-Level 0, 1 oder 5 überführt werden kann und dass zusätzliche physische Laufwerke hinzugefügt werden können (was im Falle der RAID-Level 1 und 5 auch erforderlich ist).

# amCLI -m 32/2 raid=1 32/8

Wiederum ist eine Bestätigung erforderlich:

Are you sure to modify Logical Drive '32/2' on Adapter '32/1'?
Type YES to confirm _

Wiederherstellen eines früher gesicherten Zustandes

Dieses Kommando stellt den Zustand einer vorher mit amCLI -w in einer Datei gesicherten Konfiguration wieder her.

Synopsis

amCLI [-r|--restore] <filename>

Parameter

Beispiel

# amCLI -r OldState

Auch hier ist eine Bestätigung erforderlich:

Are you sure to restore the configuration?
Type YES to confirm _

Warnung

Die Wiederherstellung des Status des Adapters, der den Systemdatenträger verwaltet, kann dazu führen, dass das System nicht mehr verwendbar ist!

Verändern von Geräte-Eigenschaften

Mit Hilfe dieses Kommandos kann man gerätespezifische Eigenschaften und Zustände verändern.

Synopsis

amCLI [-s|--set] <mod/idx> <property> <value>

Parameter

Mit amCLI -? set kann man herausfinden, welche Objekte generell welche Eigenschaften und Zustände unterstützen und mit amCLI -? set <mod/idx> läßt sich dies für ein spezifisches Objekt herausfinden.

Beispiele

# amCLI -? set 32/2
amCLI v5.7.0
Usage:
  -s | --set <32/LDIdx> name <string>
  ...
# amCLI -g 32/2 name
LogicalDrive_0
# amCLI -s 32/2 name 'OS disk'
# amCLI -g 32/2 name
OS disk

Sichern eines Systemzustandes

Mit Hilfe dieses Kommandos läßt sich der Zustand des gesamten RAID Subsystems oder eines einzelnen Adapters in eine Datei retten oder auf der Standard-Ausgabe ausgeben.

Synopsis

amCLI [-w|--write] <mod/SysIdx> [<file>]

amCLI [-w|--write] <mod/AdpIdx> [<file>]

Parameter

Beispiel

# amCLI -w 32/1
<ServerViewRAIDManager Version="5.7.0">
  <SASAdapter UniqueID="PCI:Bus=2&amp;Device=14&amp;Function=0" AdapterNumber="0
...

Löschen der Konfiguration

Mit diesem Befehl läßt sich die Konfiguration eines einzelnen Adapters oder des gesamten RAID-Subsystems löschen. Dabei werden sämtliche RAID-Verbände, Hot-Spares usw. aufgelöst.

Synopsis

amCLI [-Z|--zap] [<mod/idx>]
(Beachten: ein großes Z)

Parameter

Beispiel

# amCLI -Z 32/17

Auch hier ist eine Bestätigung erforderlich:

Are you sure to zap Adapter '32/17'?
Type YES to confirm _

Anzeigen von Hilfe-Informationen

Dieses Kommando hat zwei Funktionen:

  1. Es soll den Benutzer die Kommando-Syntax anzeigen und
  2. mit ihm können kommando- und objekt-spezifische Optionen angezeigt werden.

Synopsis

amCLI [-?|--help] [[create | get | set | exec | migrate] [<mod/idx>]]

Parameter

Ohne Parameter gibt amCLI -? (und auch nur amCLI) die Syntax aller verfügbarer Kommandos aus.

Durch zusätzliche Parameter läßt sich abfragen, welche Möglichkeiten ein Kommando bei einem gegebenen Objekt bietet:

Beispiele

# amCLI -?
amCLI v5.7.0
Usage:
-c <mod/AdpIdx> raid=<raidLevel> [span=<spanCount>] [stripe=<stripeSize>]
   [<raidFlag>=<flag>] [size=<megabytes>] (<mod/PDIdx>)+
--create <mod/AdpIdx> raid=<raidLevel> [span=<spanCount>]
   [stripe=<stripeSize>] [<raidFlag>=<flag>] [size=<megabytes>]
   (<mod/PDIdx>)+
-d <AdpIdx>
--delete <AdpIdx>
...

# amCLI -? create
amCLI v5.7.0
Usage:
-c <mod/AdpIdx> raid=<raidLevel> [span=<spanCount>] [stripe=<stripeSize>]
   [<raidFlag>=<flag>] [size=<megabytes>] (<mod/PDIdx>)+
--create <mod/AdpIdx> raid=<raidLevel> [span=<spanCount>]
   [stripe=<stripeSize>] [<raidFlag>=<flag>] [size=<megabytes>]
   (<mod/PDIdx>)+

# amCLI --help create 32/17
amCLI v5.7.0
Usage:
  -c | --create 32/17
  raid=(0|1|5|6|10|50|60|1e)
  [span=<(RAID-0:1)|
         (RAID-1:1)|
         (RAID-5:1)|
         (RAID-6:1)|
         (RAID-10:2..8)|
         (RAID-50:2..8)|
         (RAID-60:2..8)|
         (RAID-1E:1)>]
  [stripe=<(RAID-0:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-1:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-5:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-6:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-10:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-50:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-60:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)|
           (RAID-1E:(8kb|16kb|32kb|64kb|128kb|256kb|512kb|1mb)>]
  [init_mode=(no_initialization|fast_initialization|normal_initialization)]
  [read_mode=(readahead|no_readahead)]
  [write_mode=(writeback|always_writeback|writethrough)]
  [cache_mode=(cached|direct)]
  [disk_cache_mode=(disabled|enabled)]
  [cache_settings=(data_protection|performance|advanced)]
  [name=<string>]
  [size=<megabytes>]
  (<PDIdx>)+

Diagnose

Der Exit-Status (oder Fehler-Level) gleicht die Fehlermeldebedingungen, definiert durch ServerView RAID Manager, ab und nimmt die folgenden Werte an:

Exit-Status Beschreibung
0 Normal; keine Fehler oder Warnungen erkannt
1 Interner Fehler
2 Ungültige Syntax
3 Ungültiges Objekt
4 Speicherfehler
5 Aktion nicht unterstützt
6 Eigenschaft nicht unterstützt
7 Aktion kann zum jetzigen Zeitpunkt nicht ausgeführt werden
8 Kommunikation mit dem Kerndienst fehlgeschlagen
10 Initialisierung des Kerndienstes fehlgeschlagen
11 Fehler in der Datenbank des Kerndienstes
12 Aktion fehlgeschlagen
13 Ungültiger Parameterwert
14 Anmeldung fehlgeschlagen
15 System wird heruntergefahren
16 Keine Administrationsrechte
17 Datei kann nicht geöffnet werden
18 Datei kann nicht gelesen werden
19 Datei kann nicht geschrieben werden
20 Kerndienst initialisiert sich