Hantera en Azure Stack Edge Pro FPGA-enhet via Windows PowerShell

Viktigt!

Azure Stack Edge Pro FPGA-enheter når livets slut i februari 2024. Om du överväger nya distributioner rekommenderar vi att du utforskar Azure Stack Edge Pro 2 - eller Azure Stack Edge Pro GPU-enheter för dina arbetsbelastningar.

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-portalen, det lokala webbgränssnittet 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.

  1. Kör en Windows PowerShell-session som administratör.

  2. 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.

  3. Tilldela en variabel till enhetens IP-adress.

    $ip = "<device_ip>"

    Ersätt <device_ip> med ENHETENs IP-adress.

  4. 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

  5. Starta en Windows PowerShell-session på enheten:

    Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell

  6. 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:

Mer information finns i PowerShell-fjärrkommunikation via SSH.

Följ dessa steg för att fjärransluta från en NFS-klient.

  1. Om du vill öppna PowerShell-sessionen skriver du:

    pwsh

  2. 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:

  1. Anslut till PowerShell-gränssnittet på enheten.

  2. 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 anges Default 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.

  1. Ansluta till PowerShell-gränssnittet.

  2. 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

  1. Ansluta till PowerShell-gränssnittet.

  2. 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.

  1. Ansluta till PowerShell-gränssnittet.

  2. 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.

  1. Ansluta till PowerShell-gränssnittet.

  2. 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 Anslut 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.

  1. Ansluta till PowerShell-gränssnittet.

  2. 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
    
  3. Anteckna container-ID:t för den container som du behöver loggarna för.

  4. 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 .

  1. Ansluta till PowerShell-gränssnittet.

  2. 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