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.
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.
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.
amCLI [-c|--create] <mod/AdpIdx> raid=<raidLevel> parameters <mod/PDIdx>+
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.
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 _
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.
Mit diesem Kommando kann man das Laufwerk mit der höchsten "logischen Laufwerks-ID" löschen, welches i.d.R. das zuletzt erzeugte ist.
amCLI [-d|--delete] <mod/AdpIdx>
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 _
Dieses Kommando startet die Ausführung eines gerätespezifischen Kommandos auf dem angegebenen Gerät.
amCLI [-e|--exec] <mod/idx> <operation> <param>*
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.
# 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
Mit Hilfe dieses Kommandos kann man gerätespezifische Eigenschaften und Zustände auslesen.
amCLI [-g|--get] <mod/idx> <property>
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.
# 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
Dieses Kommando importiert ein Zertifikat.
amCLI [-i|--import] <certificate file> <private key file>
# amCLI -i cert.pem key.pem [intermediate.pem]
Dieses Kommando zeigt Informationen zu einem gegebenen Objekt an.
amCLI [-l|--list] [all|struct|<mod/idx>]
Ist kein Parameter angegeben, wird die Struktur des gesamten RAID-Subsystems ohne Details angezeigt.
# 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
...
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.
amCLI [-m|--migrate] <mod/LDIdx> [raid=<raidLevel>] parameters <mod/PDIdx>*
Um herauszufinden, in welche RAID-Levels ein existierendes logisches Laufwerk überführt werden kann, kann man das folgende Kommando benutzen:
# 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 _
Dieses Kommando stellt den Zustand einer vorher mit amCLI -w in einer Datei gesicherten Konfiguration wieder her.
amCLI [-r|--restore] <filename>
# amCLI -r OldState
Auch hier ist eine Bestätigung erforderlich:
Are you sure to restore the configuration?
Type YES to confirm _
Die Wiederherstellung des Status des Adapters, der den Systemdatenträger verwaltet, kann dazu führen, dass das System nicht mehr verwendbar ist!
Mit Hilfe dieses Kommandos kann man gerätespezifische Eigenschaften und Zustände verändern.
amCLI [-s|--set] <mod/idx> <property> <value>
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.
# 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
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.
amCLI [-w|--write] <mod/SysIdx> [<file>]
amCLI [-w|--write] <mod/AdpIdx> [<file>]
# amCLI -w 32/1
<ServerViewRAIDManager Version="5.7.0">
<SASAdapter UniqueID="PCI:Bus=2&Device=14&Function=0" AdapterNumber="0
...
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.
amCLI [-Z|--zap] [<mod/idx>]
(Beachten: ein großes Z)
# amCLI -Z 32/17
Auch hier ist eine Bestätigung erforderlich:
Are you sure to zap Adapter '32/17'?
Type YES to confirm _
Dieses Kommando hat zwei Funktionen:
amCLI [-?|--help] [[create | get | set | exec | migrate] [<mod/idx>]]
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:
# 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>)+
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 |