PowerFlex: Vysvětlení funkce spouštění skriptu na hostiteli (neboli opravy operačního systému)
Summary: Tato funkce se používá ke spouštění uživatelských skriptů na serverech, které hostují komponenty MDM nebo SDS. Funkci lze použít pro jakýkoli účel mimo systém PowerFlex, jako je spuštění sady příkazů prostředí Linux, opravy operačního systému a další. ...
Instructions
Uživatelské rozhraní – před PFMP (PowerFlex 4.x)
Požadavky
Povinné – hlavní skript se nachází ve složce /opt/emc/scaleio/lia/bin/ s oprávněními ke spuštění.
- Název skriptu musí být patch_script
Volitelné – ověřovací skript se nachází ve složce /opt/emc/scaleio/lia/bin/ s oprávněními ke spuštění.
- Název skriptu musí být verification_script
> Tato funkce je podporována pouze v systému Linux (RHEL a SLES).
> Tato funkce zkontroluje, zda je ukončovací kód na konci procesu 0 (nula).
> Ukončovací kódy a spuštění skriptu naleznete v protokolech LIA.
> Je odpovědností zákazníka otestovat skript patch_script a verification_script před spuštěním procesu pomocí brány.
> Umístění funkce: Maintain → System Logs and Analysis → Run Script on Hosts.
Kroky a postupy
Spuštění skriptu:
1. Celý systém – všechny uzly PowerFlex
Ve výchozím nastavení je skript spuštěn v doméně ochrany (PD) prvního hostitele, poté se přesune na druhou atd.
Souběžně v různých doménách ochrany zakázáno – ve výchozím nastavení není toto políčko zaškrtnuto.
Souběžně v různých doménách ochrany povoleno – po zvolení této možnosti bude skript patch_script probíhat souběžně na doménách ochrany.
Domény ochrany, které nemají uzly MDM, jsou první a uzly clusteru jsou poslední.
2. Doména ochrany – konkrétní doména ochrany
Domény ochrany, které nemají uzly MDM, jsou první a uzly clusteru MDM jsou poslední.
3. Sada selhání – konkrétní sada selhání.
Sady selhání, které nemají uzly MDM, jsou první a uzly clusteru MDM jsou poslední.
4. SDS – jeden uzel SDS
Spuštěná konfigurace:
1. Zastavte proces při selhání skriptu.
1.1 Povoleno zastavení procesu při selhání skriptu – ve výchozím nastavení je políčko zaškrtnuto.
Celý proces selže a zastaví se, jakmile se skript patch_script (a verification_script, pokud je vybrán) ukončí s jiným kódem než 0 (nula).
1.2 Zastavení procesu při selhání skriptu je zakázáno.
V případě, že skript patch_script selže, spuštění tohoto uzlu také selže a systém se přesune do dalšího uzlu a spustí na něm skript patch_script.
2. Vypršení časového limitu skriptu – jak dlouho se má čekat na dokončení skriptu patch_script?
Spuštění skriptu má konfigurovatelný časový limit, který si zvolí uživatel.
Ve výchozím nastavení je časový limit nakonfigurovaný na 15 minut → kvůli chybě je ve verzích starších než PowerFlex 3.6 pevně zakódován na 15 minut.
Celý proces selže a zastaví se, jakmile vyprší časový limit spuštění skriptu.
3. Ověřovací skript – Chcete spustit skript verification_script po spuštění skriptu patch_script?
3.1 Spuštění – spustí se skript patch_script a po jeho dokončení se spustí skript verification_script v závislosti na tom, zda následnou akcí po skriptu patch_script bylo restartování nebo ne (část č. 4).
3.2 Nespuštění – spustí se skript patch_script a po jeho dokončení se celý proces zastaví a skončí stejně úspěšně.
4. Akce po provedení skriptu – Chcete po spuštění skriptu patch_script restartovat uzel?
4.1 Restart – po dokončení skriptu patch_script a ukončení s kódem 0 (nula) se uzel restartuje a zastaví se nebo bude pokračovat v závislosti na tom, zda byl skript verification_script vybrán ke spuštění nebo ne (část č. 3).
Pokud je brána v uzlu, který chcete restartovat, k restartu nedojde, operace proběhne úspěšně a zobrazí se místní okno s výzvou, abychom restart provedli rušně.
4.2 Nerestartování – jakmile se skript patch_script dokončí a skončí s kódem 0 (nula), uzel se nerestartuje a zastaví se nebo pokračuje v závislosti na tom, zda byl skript verification_script vybrán ke spuštění nebo ne (část č. 3).
Spuštění skriptu na hostitelích:
Klikněte na tlačítko „Run Script on Hosts“ –> začne fáze ověření.
Tato fáze odešle požadavek do každé LIA uzlu k ověření existence skriptu patch_script a verification_script (pokud jsou vybrané) v části /opt/emc/scaleio/lia/bin/.
Logika kódu vybere náhodný seznam uzlů, na kterých se má spustit (podle zmíněných podmínek).
Spuštění fáze provedení:
Klikněte na tlačítko „Lstart execution phase“.
1. Brána provede následující ověření:
a. Zkontrolujte, zda nedošlo k selhání kapacity.
b. Zkontrolujte platnou záložní kapacitu.
c. Zkontrolujte platný stav clusteru.
d. Zkontrolujte, zda není v režimu údržby žádné jiné SDS.
2. Uvedení jednotky SDS do režimu údržby.
3. Spuštění skriptu patch_script – po úspěšném spuštění se soubor odstraní a vytvoří se jeho záložní soubor ve stejném adresáři.
S názvem backup_patch_script
4. Restartujte hostitele (je-li vybrán)
5. Spuštění skriptu verification_script (pokud je vybrán) – po úspěšném spuštění se soubor smaže a vytvoří se jeho záložní soubor ve stejném adresáři s názvem backup_verification_script.
6. Ukončete režim údržby u SDS.
7. Operace byla úspěšně dokončena.
RESTAPI – po PFMP (PowerFlex 4.x)
- Spusťte opravný skript na všech nebo některých systémových uzlech s volitelným restartováním a volitelným ověřovacím skriptem. Operace má určitou úroveň paralelismu.
- Soubory skriptů by měly být uloženy ve složce uzlu: /opt/emc/scaleio/lia/bin. Případně je může brána nahrát do uzlu. Skripty je možné vzít z místní složky brány nebo stáhnout ze sdílené složky HTTP/HTTPS.
- Abyste mohli přímo zvolit uzly, na kterých se mají spustit, je možné poskytnout seznam identifikátorů SdsId a/nebo mdmId.
- Názvy souborů jsou pevně zakódované a nelze je změnit: patch_script a verification_script
Příkaz REST
- /im/types/Configuration/actions/liaRunOsPatching
Požadované parametry
- Je povinný jeden z následujících parametrů: pdIds/fsIds/sdsIds/mdmIds / executeOnAllSdss / executeOnAllMdms
pdIds– spustit na všech uzlech, které jsou součástí následujících domén ochrany (ID PD), v desítkovém formátufsIds– spustit na všech uzlech, které jsou součástí následujících sad selhání (ID FS), v desítkovém formátusdsIds– spustit na všech SDS uvedených podle ID v desítkovém formátumdmIds– spustit na všech MDM seřazených podle ID, v desítkovém formátuexecuteOnAllSdss– spustit na všech SDS (true/false)executeOnAllMdms– spustit na všech MDM (true/false)
Volitelné parametry
isRebootRequired– každý uzel by se měl restartovat po spuštění opravného skriptu (hodnoty: true/false)isVerificationScriptRequired– pokud by měl ověřovací skript běžet na každém uzlu (hodnoty: true/false)isRunningInParallelOnPds– pokud by měla operace probíhat souběžně na uzlech, které patří do různých domén ochrany (hodnoty: true/false)isStopProcessingOnScriptFailure– pokud by se celá operace měla zastavit v případě selhání skriptu (hodnoty: true/false)TimeoutMs– časový limit pro spuštění opravného skriptu v milisekundáchisUploadFileNeeded– pokud by brána měla nahrávat skripty do uzlů (hodnoty: true/false)
Následující pole jsou relevantní, pokud isUploadFileNeeded mají hodnotu „true“:
patchScriptFilePath– buď název místní složky, nebo http/https URL opravného skriptuverificationScriptFilePath– buď název místní složky, nebo http/https URL ověřovacího skriptumaintenanceModeType– Typ režimuúdržby (hodnoty: IMM/PMM)verificationScriptTimeoutSec– časový limit ověřovacího skriptu v sekundáchrebootTimeoutSec– časový limit restartování uzlu v sekundách
Upozorňujeme, že před spuštěním příkazu liaRunOsPatching byste se měli nejprve přihlásit a získat konfiguraci systému, viz příklad níže.
Příklad příkazu
Proměnná *token obsahuje token Keycloak, který byl vrácen z umístění /auth/login nebo z /api/gatewayLogin.
**<ip-address> – IP adresa serveru http obsahující skripty, které se mají spustit
Získejte soubor json konfigurace systému, což bude datová část příkazu k opravě (je nutné ručně nahradit liaPassword a mdmPassword z hodnoty null na nějaký řetězec).
Vložte výstup tohoto příkazu (s pevnými hesly) do souboru config.json:
curl -s -X POST -k -H "Content-Type: application/json" -d '{ "mdmIps":["1.2.3.4","5.6,7,8"], "mdmUser":"<mdm_username>", "mdmPassword":"<mdm_password>", "securityConfiguration":{ "allowNonSecureCommunicationWithMdm":"true", "allowNonSecureCommunicationWithLia":"true", "disableNonMgmtComponentsAuth":"false" } }' -H "Authorization: Bearer ${token}" https://<m&o-ip-address>/im/types/Configuration/instances
Spusťte příkaz k opravě:
curl -v -k -X -i POST -H "Content-Type:application/json" -H "Authorization: Bearer ${token}"
"https:/<m&o-ip-address>/im/types/Configuration/actions/liaRunOsPatching?executeOnAllSdss=true &isRebootRequired=true&isVerificationScriptRequired=true&patchScriptFilePath=https://<ip-address>/patch_script&verificationScriptFilePath=https://<ip-address>/verification_script&maintenanceModeType=IMM&rebootTimeoutSec=30" -d @config.json
Additional Information
Protokoly
Brána:
- /opt/emc/scaleio/gateway/logs/scaleio.log
- /opt/emc/scaleio/gateway/logs/scaleio-trace.log
LIA:
/opt/emc/scaleio/lia/logs/trc.x
Tip – Speciální přepínač pro zachování skriptu v uzlu při odstraňování problémů nebo testování:
- Upravte soubor /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayInternal.properties
- Vyhledejte pole „ospatching.delete.scripts=false“
- Změňte hodnotu na „true“ pro odstraňování problémů (výchozí hodnota je „false“)