Hantera en Azure Stack Edge Pro FPGA-enhet via Windows PowerShell
Viktigt!
Azure Stack Edge Pro FPGA-enheter nådde slutet av livet i februari 2024.
Med Azure Stack Edge Pro FPGA-lösningen kan du bearbeta data och skicka dem via nätverket till Azure. I den här artikeln beskrivs några av konfigurations- och hanteringsuppgifterna för din Azure Stack Edge Pro FPGA-enhet. Du kan använda Azure Portal, lokalt webbgränssnitt eller Windows PowerShell-gränssnittet för att hantera din enhet.
Den här artikeln fokuserar på de uppgifter du utför med hjälp av PowerShell-gränssnittet.
I den här artikeln beskrivs följande procedurer:
- Ansluta till PowerShell-gränssnittet
- Skapa ett supportpaket
- Överför certifikat
- Återställa enheten
- Visa enhetsinformation
- Hämta beräkningsloggar
- Övervaka och felsöka beräkningsmoduler
Ansluta till PowerShell-gränssnittet
Beroende på klientens operativsystem skiljer sig procedurerna för att fjärransluta till enheten.
Fjärranslutning från en Windows-klient
Innan du börjar kontrollerar du att Windows-klienten kör Windows PowerShell 5.0 eller senare.
Följ dessa steg för att fjärransluta från en Windows-klient.
Kör en Windows PowerShell-session som administratör.
Kontrollera att Windows Remote Management-tjänsten körs på klienten. Skriv i kommandotolken:
winrm quickconfig
Mer information finns i Installation och konfiguration för Windows Fjärrhantering.
Tilldela en variabel till enhetens IP-adress.
$ip = "<device_ip>"
Ersätt
<device_ip>
med ENHETENs IP-adress.Om du vill lägga till IP-adressen för din enhet i klientens lista över betrodda värdar skriver du följande kommando:
Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force
Starta en Windows PowerShell-session på enheten:
Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
Ange lösenordet när du uppmanas att göra det. Använd samma lösenord som används för att logga in på det lokala webbgränssnittet. Standardlösenordet för det lokala webbgränssnittet är Lösenord1. När du ansluter till enheten med hjälp av fjärransluten PowerShell visas följande exempelutdata:
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> winrm quickconfig WinRM service is already running on this machine. PS C:\WINDOWS\system32> $ip = "10.100.10.10" PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration. [10.100.10.10]: PS>
Fjärranslutning från en Linux-klient
På Den Linux-klient som du använder för att ansluta:
- Installera den senaste PowerShell Core för Linux från GitHub för att hämta SSH-fjärrkommunikationsfunktionen.
-
Installera endast
gss-ntlmssp
paketet från NTLM-modulen. Använd följande kommando för Ubuntu-klienter:sudo apt-get install gss-ntlmssp
Mer information finns i PowerShell-fjärrkommunikation via SSH.
Följ dessa steg för att fjärransluta från en NFS-klient.
Om du vill öppna PowerShell-sessionen skriver du:
pwsh
För att ansluta med fjärrklienten skriver du:
Enter-PSSession -ComputerName $ip -Authentication Negotiate -ConfigurationName Minishell -Credential ~\EdgeUser
Ange lösenordet som används för att logga in på enheten när du uppmanas att göra det.
Kommentar
Den här proceduren fungerar inte på Mac OS.
Skapa ett supportpaket
Om du får problem med enheten kan du skapa ett supportpaket från systemloggarna. Microsoft Support använder det här paketet för att felsöka problemen. Följ dessa steg för att skapa ett supportpaket:
Get-HcsNodeSupportPackage
Använd kommandot för att skapa ett supportpaket. Användningen av cmdleten är följande:Get-HcsNodeSupportPackage [-Path] <string> [-Zip] [-ZipFileName <string>] [-Include {None | RegistryKeys | EtwLogs | PeriodicEtwLogs | LogFiles | DumpLog | Platform | FullDumps | MiniDumps | ClusterManagementLog | ClusterLog | UpdateLogs | CbsLogs | StorageCmdlets | ClusterCmdlets | ConfigurationCmdlets | KernelDump | RollbackLogs | Symbols | NetworkCmdlets | NetworkCmds | Fltmc | ClusterStorageLogs | UTElement | UTFlag | SmbWmiProvider | TimeCmds | LocalUILogs | ClusterHealthLogs | BcdeditCommand | BitLockerCommand | DirStats | ComputeRolesLogs | ComputeCmdlets | DeviceGuard | Manifests | MeasuredBootLogs | Stats | PeriodicStatLogs | MigrationLogs | RollbackSupportPackage | ArchivedLogs | Default}] [-MinimumTimestamp <datetime>] [-MaximumTimestamp <datetime>] [-IncludeArchived] [-IncludePeriodicStats] [-Credential <pscredential>] [<CommonParameters>]
Cmdleten samlar in loggar från enheten och kopierar loggarna till ett angivet nätverk eller en lokal resurs.
De parametrar som används är följande:
-
-Path
– Ange nätverket eller den lokala sökväg som supportpaketet ska kopieras till. (krävs) -
-Credential
– Ange autentiseringsuppgifterna för åtkomst till den skyddade sökvägen. -
-Zip
– Ange för att generera en zip-fil. -
-Include
– Ange att de komponenter som ska ingå i supportpaketet ska inkluderas. Om det inte angesDefault
antas det. -
-IncludeArchived
– Ange att arkiverade loggar ska inkluderas i supportpaketet. -
-IncludePeriodicStats
– Ange att periodiska statistikloggar ska inkluderas i supportpaketet.
-
Överför certifikat
Ett korrekt SSL-certifikat garanterar att du skickar krypterad information till rätt server. Förutom kryptering kan certifikatet också användas för autentisering. Du kan ladda upp ditt eget betrodda SSL-certifikat via Enhetens PowerShell-gränssnitt.
Använd cmdleten
Set-HcsCertificate
för att ladda upp certifikatet. När du uppmanas att göra det anger du följande parametrar:CertificateFilePath
– Sökväg till resursen som innehåller certifikatfilen i .pfx-format .CertificatePassword
– Ett lösenord som används för att skydda certifikatet.Credentials
– användarnamn för åtkomst till den filresurs som innehåller certifikatet. Ange lösenordet till nätverksresursen när du uppmanas till det.I följande exempel visas användningen av den här cmdleten:
Set-HcsCertificate -Scope LocalWebUI -CertificateFilePath "\\myfileshare\certificates\mycert.pfx" -CertificatePassword "mypassword" -Credential "Username"
Du kan också ladda upp IoT Edge-certifikat för att aktivera säker anslutning mellan din IoT Edge-enhet och de efterföljande enheter som kan ansluta till den. Det finns tre filer (.pem-format ) som du behöver installera:
- Rotcertifikatutfärdarcertifikat eller ägarcertifikatutfärdaren
- Certifikat för enhetscertifikatutfärdare
- Enhetens privata nyckel
I följande exempel visas användningen av den här cmdleten för att installera IoT Edge-certifikat:
Set-HcsCertificate -Scope IotEdge -RootCACertificateFilePath "\\hcfs\root-ca-cert.pem" -DeviceCertificateFilePath "\\hcfs\device-ca-cert.pem\" -DeviceKeyFilePath "\\hcfs\device-private-key.pem" -Credential "username"
När du kör den här cmdleten uppmanas du att ange lösenordet för nätverksresursen.
Mer information om certifikat finns i Azure IoT Edge-certifikat eller Installera certifikat på en gateway.
Visa enhetsinformation
Get-HcsApplianceInfo
Använd för att hämta information för din enhet.I följande exempel visas användningen av den här cmdleten:
[10.100.10.10]: PS>Get-HcsApplianceInfo Id : b2044bdb-56fd-4561-a90b-407b2a67bdfc FriendlyName : DBE-NBSVFQR94S6 Name : DBE-NBSVFQR94S6 SerialNumber : HCS-NBSVFQR94S6 DeviceId : 40d7288d-cd28-481d-a1ea-87ba9e71ca6b Model : Virtual FriendlySoftwareVersion : Data Box Gateway 1902 HcsVersion : 1.4.771.324 IsClustered : False IsVirtual : True LocalCapacityInMb : 1964992 SystemState : Initialized SystemStatus : Normal Type : DataBoxGateway CloudReadRateBytesPerSec : 0 CloudWriteRateBytesPerSec : 0 IsInitialPasswordSet : True FriendlySoftwareVersionNumber : 1902 UploadPolicy : All DataDiskResiliencySettingName : Simple ApplianceTypeFriendlyName : Data Box Gateway IsRegistered : False
Här är en tabell som sammanfattar en del av viktig enhetsinformation:
Parameter Description FriendlyName Det egna namnet på enheten som konfigurerats via det lokala webbgränssnittet under enhetsdistributionen. Standardnamnet är enhetens serienummer. Serienummer Enhetens serienummer är ett unikt nummer som tilldelats i fabriken. Modell Modellen för din Azure Stack Edge- eller Data Box Gateway-enhet. Modellen är fysisk för Azure Stack Edge och virtuell för Data Box Gateway. FriendlySoftwareVersion Den egna strängen som motsvarar enhetsprogramvarans version. För ett system som kör förhandsversionen skulle den användarvänliga programvaruversionen vara Data Box Edge 1902. HcsVersion HCS-programvaruversionen som körs på enheten. Till exempel är HCS-programvaruversionen som motsvarar Data Box Edge 1902 1.4.771.324. LocalCapacityInMb Enhetens totala lokala kapacitet i Megabits. IsRegistered Det här värdet anger om enheten är aktiverad med tjänsten.
Återställa enheten
Om du återställa enheten måste du på ett säkert sätt rensa alla data på datadisken och startdisken på enheten.
Använd cmdleten Reset-HcsAppliance
till att rensa både datadiskarna och startdisken, eller bara datadiskarna. Med SecureWipeBootDisk
switcharna och SecureWipeDataDisks
kan du rensa startdisken respektive datadiskarna.
Växeln SecureWipeBootDisk
rensar startdisken och gör enheten oanvändbar. Den bör bara användas när enheten måste returneras till Microsoft. Mer information finns i artikeln om att returnera enheten till Microsoft.
Om du använder enhetsåterställningen i det lokala webbgränssnittet rensas bara datadiskarna på ett säkert sätt, men startdisken hålls intakt. Startdisken innehåller enhetskonfigurationen.
Skriv i kommandotolken:
Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
I följande exempel visas hur du använder denna cmdlet:
[10.128.24.33]: PS>Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks Confirm Are you sure you want to perform this action? Performing the operation "Reset-HcsAppliance" on target "ShouldProcess appliance". [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): N
Hämta beräkningsloggar
Om beräkningsrollen har konfigurerats på enheten kan du även hämta beräkningsloggarna via PowerShell-gränssnittet.
Get-AzureDataBoxEdgeComputeRoleLogs
Använd för att hämta beräkningsloggarna för din enhet.I följande exempel visas användningen av den här cmdleten:
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
Här är en beskrivning av de parametrar som används för cmdleten:
-
Path
: Ange en nätverkssökväg till resursen där du vill skapa beräkningsloggpaketet. -
Credential
: Ange användarnamnet för nätverksresursen. När du kör den här cmdleten måste du ange resurslösenordet. -
FullLogCollection
: Den här parametern säkerställer att loggpaketet innehåller alla beräkningsloggar. Som standard innehåller loggpaketet endast en delmängd av loggarna.
-
Övervaka och felsöka beräkningsmoduler
På en Azure Stack Edge-enhet som har beräkningsrollen konfigurerad kan du felsöka eller övervaka enheten med hjälp av två olika uppsättning kommandon.
- Använda
iotedge
kommandon. Dessa kommandon är tillgängliga för grundläggande åtgärder för din enhet. - Använda
dkrdbe
kommandon. Dessa kommandon är tillgängliga för en omfattande uppsättning åtgärder för din enhet.
Om du vill köra någon av ovanstående kommandon måste du ansluta till PowerShell-gränssnittet.
Använda iotedge
kommandon
Om du vill se en lista över tillgängliga kommandon ansluter du till PowerShell-gränssnittet och använder iotedge
funktionen.
[10.100.10.10]: PS>iotedge -? Usage: iotedge COMMAND
Commands:
check
list
logs
restart
[10.100.10.10]: PS>
I följande tabell finns en kort beskrivning av de kommandon som är tillgängliga för iotedge
:
kommando | beskrivning |
---|---|
check |
Utföra automatiserade kontroller för vanliga konfigurations- och anslutningsproblem |
list |
Lista med moduler |
logs |
Hämta loggarna för en modul |
restart |
Stoppa och starta om en modul |
Använda dkrdbe
kommandon
Om du vill se en lista över tillgängliga kommandon ansluter du till PowerShell-gränssnittet och använder dkrdbe
funktionen.
[10.100.10.10]: PS>dkrdbe -?
Usage: dkrdbe COMMAND
Commands:
image [prune]
images
inspect
login
logout
logs
port
ps
pull
start
stats
stop
system [df]
top
[10.100.10.10]: PS>
I följande tabell finns en kort beskrivning av de kommandon som är tillgängliga för dkrdbe
:
kommando | beskrivning |
---|---|
image |
Hantera bilder. Om du vill ta bort oanvända bilder använder du: dkrdbe image prune -a -f |
images |
Visa en lista med bilder |
inspect |
Returnera information på låg nivå om Docker-objekt |
login |
Logga in på ett Docker-register |
logout |
Logga ut från ett Docker-register |
logs |
Hämta loggarna för en container |
port |
Lista portmappningar eller en specifik mappning för containern |
ps |
Visa en lista med containrar |
pull |
Hämta en avbildning eller en lagringsplats från ett register |
start |
Starta en eller flera stoppade containrar |
stats |
Visa en liveström med resursanvändningsstatistik för containrar |
stop |
Stoppa en eller flera containrar som körs |
system |
Hantera Docker |
top |
Visa processer som körs för en container |
Om du vill få hjälp med alla tillgängliga kommandon använder du dkrdbe <command-name> --help
.
Om du till exempel vill förstå användningen av port
kommandot skriver du:
[10.100.10.10]: P> dkrdbe port --help
Usage: dkr port CONTAINER [PRIVATE_PORT[/PROTO]]
List port mappings or a specific mapping for the container
[10.100.10.10]: P> dkrdbe login --help
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.
Options:
-p, --password string Password
--password-stdin Take the password from stdin
-u, --username string Username
[10.100.10.10]: PS>
De tillgängliga kommandona för dkrdbe
funktionen använder samma parametrar som de som används för de normala Docker-kommandona. För de alternativ och parametrar som används med docker-kommandot går du till Använd Docker-kommandoraden.
Kontrollera om modulen har distribuerats
Beräkningsmoduler är containrar som har en affärslogik implementerad. Kontrollera om en beräkningsmodul har distribuerats genom att ps
köra kommandot och kontrollera om containern (motsvarande beräkningsmodulen) körs.
Kör kommandot för att hämta listan över alla containrar (inklusive de som har pausats ps -a
).
[10.100.10.10]: P> dkrdbe ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d99e2f91d9a8 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days movefile
0a06f6d605e9 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days filemove
2f8a36e629db mcr.microsoft.com/azureiotedge-hub:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days 0.0.0.0:443->443/tcp, 0.0.0.0:5671->5671/tcp, 0.0.0.0:8883->8883/tcp edgeHub
acce59f70d60 mcr.microsoft.com/azureiotedge-agent:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days edgeAgent
[10.100.10.10]: PS>
Om det uppstod ett fel när containeravbildningen skapades eller när avbildningen hämtades kör du logs edgeAgent
.
EdgeAgent
är IoT Edge-körningscontainern som ansvarar för etablering av andra containrar.
Eftersom logs edgeAgent
dumpar alla loggar är ett bra sätt att se de senaste felen att använda alternativet --tail 20
.
[10.100.10.10]: PS>dkrdbe logs edgeAgent --tail 20
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Util.Uds.HttpUdsMessageHandler] - Connected socket /var/run/iotedge/mgmt.sock
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Util.Uds.HttpUdsMessageHandler] - Sending request http://mgmt.sock/modules?api-version=2018-06-28
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Agent] - Getting edge agent config...
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Agent] - Obtained edge agent config
2019-02-28 23:38:23.469 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Edgelet.ModuleManagementHttpClient] - Received a valid Http response from unix:///var/run/iotedge/mgmt.soc
k for List modules
--------------------CUT---------------------
--------------------CUT---------------------
08:28.1007774+00:00","restartCount":0,"lastRestartTimeUtc":"2019-02-26T20:08:28.1007774+00:00","runtimeStatus":"running","version":"1.0","status":"running","restartPolicy":"always
","type":"docker","settings":{"image":"edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64","imageHash":"sha256:47778be0602fb077d7bc2aaae9b0760fbfc7c058bf4df192f207ad6cbb96f7cc","c
reateOptions":"{\"HostConfig\":{\"Binds\":[\"/home/hcsshares/share4-dl460:/home/input\",\"/home/hcsshares/share4-iot:/home/output\"]}}"},"env":{}}
2019-02-28 23:38:28.480 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Planners.HealthRestartPlanner] - HealthRestartPlanner created Plan, with 0 command(s).
Hämta containerloggar
Om du vill hämta loggar för en specifik container listar du först containern och hämtar sedan loggarna för den container som du är intresserad av.
Kör kommandot för att hämta listan över containrar
ps
som körs.[10.100.10.10]: P> dkrdbe ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d99e2f91d9a8 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days movefile 0a06f6d605e9 edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64 "dotnet FileMoveModu…" 2 days ago Up 2 days filemove 2f8a36e629db mcr.microsoft.com/azureiotedge-hub:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days 0.0.0.0:443->443/tcp, 0.0.0.0:5671->5671/tcp, 0.0.0.0:8883->8883/tcp edgeHub acce59f70d60 mcr.microsoft.com/azureiotedge-agent:1.0 "/bin/sh -c 'echo \"$…" 2 days ago Up 2 days edgeAgent
Anteckna container-ID:t för den container som du behöver loggarna för.
Om du vill hämta loggarna för en specifik container kör
logs
du kommandot som tillhandahåller container-ID:t.[10.100.10.10]: PS>dkrdbe logs d99e2f91d9a8 02/26/2019 18:21:45: Info: Opening module client connection. 02/26/2019 18:21:46: Info: Initializing with input: /home/input, output: /home/output. 02/26/2019 18:21:46: Info: IoT Hub module client initialized. 02/26/2019 18:22:24: Info: Received message: 1, SequenceNumber: 0 CorrelationId: , MessageId: 081886a07e694c4c8f245a80b96a252a Body: [{"ChangeType":"Created","ShareRelativeFilePath":"\\__Microsoft Data Box Edge__\\Upload\\Errors.xml","ShareName":"share4-dl460"}] 02/26/2019 18:22:24: Info: Moving input file: /home/input/__Microsoft Data Box Edge__/Upload/Errors.xml to /home/output/__Microsoft Data Box Edge__/Upload/Errors.xml 02/26/2019 18:22:24: Info: Processed event. 02/26/2019 18:23:38: Info: Received message: 2, SequenceNumber: 0 CorrelationId: , MessageId: 30714d005eb048e7a4e7e3c22048cf20 Body: [{"ChangeType":"Created","ShareRelativeFilePath":"\\f [10]","ShareName":"share4-dl460"}] 02/26/2019 18:23:38: Info: Moving input file: /home/input/f [10] to /home/output/f [10] 02/26/2019 18:23:38: Info: Processed event.
Övervaka enhetens användningsstatistik
Om du vill övervaka minne, CPU-användning och I/O på enheten använder du stats
kommandot .
stats
Kör kommandot så att du inaktiverar liveströmmen och endast hämtar det första resultatet.dkrdbe stats --no-stream
I följande exempel visas användningen av den här cmdleten:
[10.100.10.10]: P> dkrdbe stats --no-stream CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS d99e2f91d9a8 movefile 0.0 24.4MiB / 62.89GiB 0.04% 751kB / 497kB 299kB / 0B 14 0a06f6d605e9 filemove 0.00% 24.11MiB / 62.89GiB 0.04% 679kB / 481kB 49.5MB / 0B 14 2f8a36e629db edgeHub 0.18% 173.8MiB / 62.89GiB 0.27% 4.58MB / 5.49MB 25.7MB / 2.19MB 241 acce59f70d60 edgeAgent 0.00% 35.55MiB / 62.89GiB 0.06% 2.23MB / 2.31MB 55.7MB / 332kB 14 [10.100.10.10]: PS>
Avsluta fjärrsessionen
Stäng PowerShell-fönstret för att avsluta den fjärranslutna PowerShell-sessionen.
Nästa steg
- Distribuera Azure Stack Edge Pro FPGA i Azure Portal.