Atualizar o firmware da unidade no Windows Server 2016Updating drive firmware in Windows Server 2016

Aplica-se a: Windows 10, Windows Server (canal semestral), Windows Server 2016Applies to: Windows 10, Windows Server (Semi-Annual Channel), Windows Server 2016

A atualização do firmware para unidades historicamente tem sido uma tarefa difícil com potencial para tempo de inatividade. Por isso, estamos fazendo aprimoramentos nos Espaços de Armazenamento, no Windows Server, Windows 10, versão 1703 e mais recente.Updating the firmware for drives has historically been a cumbersome task with a potential for downtime, which is why we're making improvements to Storage Spaces, Windows Server, and Windows 10, version 1703 and newer. Se você tiver unidades que dão suporte ao novo mecanismo de atualização de firmware incluído no Windows, poderá atualizar o firmware da unidade de unidades em produção sem tempo de inatividade.If you have drives that support the new firmware update mechanism included in Windows, you can update drive firmware of in-production drives without downtime. No entanto, se você pretende atualizar o firmware de uma unidade de produção, leia nossas dicas sobre como minimizar o risco ao usar essa nova e poderosa funcionalidade.However, if you're going to update the firmware of a production drive, make sure to read our tips on how to minimize the risk while using this powerful new functionality.

Aviso

Atualizações de firmware são uma operação de manutenção potencialmente perigosa e você só deve aplicá-las após um teste completo da nova imagem do firmware.Firmware updates are a potentially risky maintenance operation and you should only apply them after thorough testing of the new firmware image. É possível que esse novo firmware em hardware sem suporte afete negativamente a estabilidade e a confiabilidade ou até mesmo cause perda de dados.It is possible that new firmware on unsupported hardware could negatively affect reliability and stability, or even cause data loss. Os administradores devem ler as notas de versão que acompanham uma determinada atualização para determinar o impacto e a aplicabilidade.Administrators should read the release notes a given update comes with to determine its impact and applicability.

Compatibilidade de unidadeDrive compatibility

Para usar o Windows Server para atualizar o firmware da unidade, você deverá ter unidades compatíveis.To use Windows Server to update drive firmware, you must have supported drives. Para garantir o comportamento comum do dispositivo, começamos definindo requisitos novos e - para Windows 10 e Windows Server 2016 - opcionais de Hardware Lab Kit (HLK) para dispositivos SAS, SATA e NVMe.To ensure common device behavior, we began by defining new and - for Windows 10 and Windows Server 2016 - optional Hardware Lab Kit (HLK) requirements for SAS, SATA, and NVMe devices. Esses requisitos descrevem a quais comandos um dispositivo NVMe, SAS ou SATA devem oferecer suporte para o firmware atualizável usando esses cmdlets do PowerShell novos e nativos do Windows.These requirements outline which commands a SATA, SAS, or NVMe device must support to be firmware-updatable using these new, Windows-native PowerShell cmdlets. Para oferecer suporte a esses requisitos, há um novo teste de HLK para verificar se os produtos do fornecedor dão suporte aos comandos certos e para fazê-los serem implementados em revisões futuras.To support these requirements, there is a new HLK test to verify if vendor products support the right commands and get them implemented in future revisions.

Para obter informações sobre se o hardware oferece suporte a atualização do firmware da unidade do Windows, entre em contato com o fornecedor da solução.Contact your solution vendor for info about whether your hardware supports Windows updating the drive firmware. Aqui estão links para os diversos requisitos:Here are links to the various requirements:

Cmdlets do PowerShellPowerShell cmdlets

Os dois cmdlets adicionados ao Windows são:The two cmdlets added to Windows are:

  • Get-StorageFirmwareInformationGet-StorageFirmwareInformation
  • Update-StorageFirmwareUpdate-StorageFirmware

O primeiro cmdlet fornece informações detalhadas sobre os recursos do dispositivo, as imagens de firmware e as revisões.The first cmdlet provides you with detailed information about the device's capabilities, firmware images, and revisions. Nesse caso, a máquina contém apenas um único SSD SATA com 1 slot de firmware.In this case, the machine only contains a single SATA SSD with 1 firmware slot. Veja um exemplo:Here's an example:

Get-PhysicalDisk | Get-StorageFirmwareInformation

SupportsUpdate        : True
NumberOfSlots         : 1
ActiveSlotNumber      : 0
SlotNumber            : {0}
IsSlotWritable        : {True}
FirmwareVersionInSlot : {J3E16101}

Observe que os dispositivos SAS sempre informam "SupportsUpdate" como "True", porque não há nenhuma maneira de consultar explicitamente o dispositivo para oferecer suporte a esses comandos.Note that SAS devices always report "SupportsUpdate" as "True", since there is no way of explicitly querying the device for support of these commands.

O segundo cmdlet, Update-StorageFirmware, permite aos administradores atualizarem o firmware da unidade com um arquivo de imagem, se a unidade aceitar o novo mecanismo de atualização de firmware.The second cmdlet, Update-StorageFirmware, enables administrators to update the drive firmware with an image file, if the drive supports the new firmware update mechanism. Você deve obter esse arquivo de imagem diretamente do fornecedor OEM ou unidade.You should obtain this image file from the OEM or drive vendor directly.

Observação

Antes de atualizar qualquer hardware de produção, teste a imagem do firmware específico em hardware idêntico em um laboratório.Before updating any production hardware, test the particular firmware image on identical hardware in a lab setting.

A unidade primeiro carregará a nova imagem de firmware para uma área de preparo interna.The drive will first load the new firmware image to an internal staging area. Enquanto isso acontece, E/S continua normalmente.While this happens, I/O typically continues. A imagem é ativada após o download.The image activates after downloading. Durante esse tempo, a unidade não poderá responder a comandos de E/S porque ocorre uma reinicialização interna.During this time the drive will not be able to respond to I/O commands as an internal reset occurs. Isso significa que essa unidade não serve dados durante a ativação.This means that this drive serves no data during the activation. Um aplicativo que acessa dados nessa unidade precisaria aguardar uma resposta até que a ativação de firmware tivesse sido concluída.An application accessing data on this drive would have to wait for a response until the firmware activation completes. Aqui está um exemplo do cmdlet em ação:Here's an example of the cmdlet in action:

$pd | Update-StorageFirmware -ImagePath C:\Firmware\J3E160@3.enc -SlotNumber 0
$pd | Get-StorageFirmwareInformation

SupportsUpdate        : True
NumberOfSlots         : 1
ActiveSlotNumber      : 0
SlotNumber            : {0}
IsSlotWritable        : {True}
FirmwareVersionInSlot : {J3E160@3}

As unidades normalmente não concluem solicitações de E/S quando ativam uma nova imagem de firmware.Drives typically do not complete I/O requests when they activate a new firmware image. O tempo que uma unidade demora para ativar depende de seu design e do tipo de firmware que você atualiza.How long a drive takes to activate depends on its design and the type of firmware you update. Observamos que o tempo de atualização varia de menos de 5 segundos a mais de 30 segundos.We have observed update times range from fewer than 5 seconds to more than 30 seconds.

Essa unidade realizou a atualização do firmware em ~5,8 segundos, como mostrado aqui:This drive performed the firmware update within ~5.8 seconds, as shown here:

Measure-Command {$pd | Update-StorageFirmware -ImagePath C:\\Firmware\\J3E16101.enc -SlotNumber 0}

 Days : 0
 Hours : 0
 Minutes : 0
 Seconds : 5
 Milliseconds : 791
 Ticks : 57913910
 TotalDays : 6.70299884259259E-05
 TotalHours : 0.00160871972222222
 TotalMinutes : 0.0965231833333333
 TotalSeconds : 5.791391
 TotalMilliseconds : 5791.391

Atualizando unidades em produçãoUpdating drives in production

Antes de colocar um servidor em produção, é altamente recomendável atualizar o firmware de suas unidades para o firmware recomendado pelo fornecedor de hardware ou OEM que vende e oferece suporte à sua solução (compartimentos de armazenamento, unidades e servidores).Before placing a server into production, we highly recommend updating the firmware of your drives to the firmware recommended by the hardware vendor or OEM that sold and supports your solution (storage enclosures, drives, and servers).

Quando um servidor estiver em produção, é uma boa ideia fazer poucas alterações no servidor, por praticidade.Once a server is in production, it's a good idea to make as few changes to the server as is practical. No entanto, algumas vezes o fornecedor da solução pode avisar que há uma atualização de firmware extremamente importante para as unidades.However, there may be times when your solution vendor advises you that there is a critically important firmware update for your drives. Se isso ocorrer, aqui estão algumas práticas recomendadas a seguir antes de aplicar atualizações de firmware da unidade:If this occurs, here are a few good practices to follow before applying any drive firmware updates:

  1. Revise as notas de versão de firmware e confirme que a atualização corrige problemas que poderiam afetar seu ambiente e que o firmware não contém os problemas conhecidos que podem prejudicá-lo.Review the firmware release notes and confirm that the update addresses issues that could affect your environment, and that the firmware doesn't contain any known issues that could adversely affect you.

  2. Instale o firmware em um servidor em seu laboratório com unidades idênticas (incluindo a revisão da unidade, se houver várias revisões da mesma unidade) e teste a unidade sob carga com o novo firmware.Install the firmware on a server in your lab that has identical drives (including the revision of the drive if there are multiple revisions of the same drive), and test the drive under load with the new firmware. Para obter informações sobre como fazer o teste de carga sintética, consulte Testar o desempenho dos Espaços de Armazenamento usando cargas de trabalho sintéticas.For info about doing synthetic load testing, see Test Storage Spaces Performance Using Synthetic Workloads.

Atualizações de firmware automatizadas com Espaços de Armazenamento DiretosAutomated firmware updates with Storage Spaces Direct

O Windows Server 2016 inclui um serviço de integridade para implantações de Espaços de Armazenamento Diretos (inclusive soluções de pilha do Microsoft Azure).Windows Server 2016 includes a Health Service for Storage Spaces Direct deployments (including Microsoft Azure Stack solutions). O objetivo principal do serviço de integridade é facilitar o monitoramento e o gerenciamento da implantação do hardware.The main purpose of the Health Service is to make monitoring and management of your hardware deployment easier. Como parte de suas funções de gerenciamento, ele tem a capacidade de distribuição de firmware da unidade em um cluster inteiro sem receber cargas de trabalho offline ou incorrer em tempo de inatividade.As part of its management functions, it has the capability to roll-out drive firmware across an entire cluster without taking any workloads offline or incurring downtime. Esse recurso é orientado por políticas, com o controle nas mãos do administrador.This capability is policy-driven, with the control in the admin's hands.

Usar o serviço de integridade para distribuir firmware em um cluster é muito simples e envolve as seguintes etapas:Using the Health Service to roll-out firmware across a cluster is very simple and involves the following steps:

  • Identificar quais unidades de discos rígidos e SSD você pretende que façam parte do seu cluster de Espaços de Armazenamento Diretos e se as unidades dão suporte às atualizações de firmware realizadas pelo WindowsIdentify what HDD and SSD drives you expect to be part of your Storage Spaces Direct cluster, and whether the drives support Windows performing firmware updates
  • Listar as unidades no arquivo xml de componentes com suporteList those drives in the Supported Components xml file
  • Identificar as versões de firmware que você espera que essas unidades tenham no xml de componentes com suporte (incluindo caminhos de local das imagens de firmware)Identify the firmware versions you expect those drives to have in the Supported Components xml (including location paths of the firmware images)
  • Carregar o arquivo xml no banco de dados do clusterUpload the xml file to the cluster DB

Neste ponto, o serviço de integridade inspecionará e analisará o xml e identificará as unidades que não têm a versão do firmware desejada implantada.At this point, the Health Service will inspect and parse the xml and identify any drives that do not have the desired firmware version deployed. Ele continuará para redirecionar E/S para fora das unidades afetadas – indo nós por nó – e para atualizar o firmware nelas.It will then proceed to re-direct I/O away from the affected drives – going node-by-node – and updating the firmware on them. Um cluster de Espaços de Armazenamento Diretos atinge resiliência distribuindo dados em vários nós de servidor; é possível para o serviço de integridade isolar um nó inteiro de unidades para atualizações.A Storage Spaces Direct cluster achieves resiliency by spreading data across multiple server nodes; it is possible for the health service to isolate an entire node worth of drives for updates. Uma vez que o nó é atualizado, ele iniciará um reparo nos Espaços de Armazenamento, trazendo todas as cópias de dados no cluster de volta para sincronizar com os outros, antes de passar para o próximo nó.Once a node updates, it will initiate a repair in Storage Spaces, bringing all copies of data across the cluster back in sync with each other, before moving on to the next node. É esperado e normal que os Espaços de Armazenamento mudem para um modo de operação "degradado" enquanto o firmware é distribuído.It is expected and normal for Storage Spaces to transition to a "degraded" mode of operation while firmware is rolled out.

Para garantir uma distribuição estável e tempo suficiente de validação de uma nova imagem de firmware, existe um atraso significativo entre as atualizações de vários servidores.To ensure a stable roll-out and sufficient validation time of a new firmware image, there exists a significant delay between the updates of several servers. Por padrão, o serviço de integridade aguardará 7 dias antes de atualizar o 2o servidor.Per default, the Health Service will wait 7 days before updating the 2nd server. Os servidores subsequentes (3o, 4o, ...) atualizam com 1 dia de atraso.Any subsequent server (3rd, 4th, …) updates with a 1 day delay. Se um administrador considerar que o firmware está instável ou de alguma maneira indesejável, ele pode parar a distribuição pelo serviço de integridade a qualquer momento.Should an administrator find the firmware to be unstable or otherwise undesirable, she can stop further roll-out by the health service at any time. Se o firmware tiver sido validado anteriormente e uma distribuição mais rápida for desejada, esses valores padrão poderão ser modificados de dias para horas ou minutos.If the firmware has been previously validated and a quicker roll-out is desired, these default values can be modified from days, to hours or minutes.

Veja aqui um exemplo de xml de componentes com suporte para um cluster genérico de Espaços de Armazenamento Diretos:Here is an example of the supported components xml for a generic Storage Spaces Direct cluster:

 <Components>
     <Disks>
        <Disk>
            <Manufacturer>Contoso</Manufacturer>
            <Model>XYZ9000</Model>
            <AllowedFirmware>
              <Version>2.0</Version>
              <Version>2.1>/Version>
              <Version>2.2</Version>
            </AllowedFirmware>
            <TargetFirmware>
              <Version>2.2</Version>
              <BinaryPath>\\path\to\image.bin</BinaryPath>
            </TargetFirmware>
        </Disk>
        ...
        ...
    </Disks>
 </Components>

Para fazer a distribuição do novo firmware iniciar neste cluster de Espaços de Armazenamento Diretos, basta carregar o .xml para o banco de dados do cluster:To get the roll-out of the new firmware started in this Storage Spaces Direct cluster, simply upload the .xml to the cluster DB:

$SpacesDirect = Get-StorageSubSystem Clus*

$CurrentDoc = $SpacesDirect | Get-StorageHealthSetting -Name "System.Storage.SupportedComponents.Document"

$CurrentDoc.Value | Out-File <Path>

Edite o arquivo no seu editor favorito, como o Visual Studio Code ou bloco de notas e, em seguida, salve.Edit the file in your favorite editor, such as Visual Studio Code or Notepad, then save it.

$NewDoc = Get-Content <Path> | Out-String

$SpacesDirect | Set-StorageHealthSetting -Name "System.Storage.SupportedComponents.Document" -Value $NewDoc

Se você quiser ver o serviço de integridade em ação e saiba mais sobre seu mecanismo de distribuição, dê uma olhada neste vídeo: https://channel9.msdn.com/Blogs/windowsserver/Update-Drive-Firmware-Without-Downtime-in-Storage-Spaces-DirectIf you would like to see the Health Service in action and learn more about its roll-out mechanism, have a look at this video: https://channel9.msdn.com/Blogs/windowsserver/Update-Drive-Firmware-Without-Downtime-in-Storage-Spaces-Direct

Perguntas frequentesFrequently asked questions

Consulte também Solução de problemas de atualizações de firmware de unidade.Also see Troubleshooting drive firmware updates.

Isso funcionará em qualquer dispositivo de armazenamentoWill this work on any storage device

Isso funcionará em dispositivos de armazenamento que implementam os comandos corretos no firmware.This will work on storage devices that implement the correct commands in their firmware. O cmdlet Get-StorageFirmwareInformation mostrará se firmware da unidade, de fato, oferece suporte os comandos corretos (para SATA/NVMe) e o teste HLK permite que os fornecedores e os OEMs testem esse comportamento.The Get-StorageFirmwareInformation cmdlet will show if a drive's firmware indeed does support the correct commands (for SATA/NVMe) and the HLK test allows vendors and OEMs to test this behavior.

Depois de atualizar uma unidade SATA, ele relata que não oferece mais suporte ao mecanismo de atualização.After I update a SATA drive, it reports to no longer support the update mechanism. Há algo de errado com a unidadeIs something wrong with the drive

Não, a unidade está bem, a menos que o novo firmware não permita mais atualizações.No, the drive is fine, unless the new firmware doesn't allow updates anymore. Você está atingindo um problema conhecido no qual uma versão em cache dos recursos da unidade está incorreta.You are hitting a known issue whereby a cached version of the drive's capabilities is incorrect. Executar “Update-StorageProviderCache -DiscoveryLevel Full” enumerará novamente os recursos de unidade e atualizará a cópia armazenada em cache.Running "Update-StorageProviderCache -DiscoveryLevel Full" will re-enumerate the drive capabilities and update the cached copy. Como uma solução alternativa, recomendamos executar o comando acima uma vez antes de iniciar uma atualização de firmware ou completar a distribuição em um cluster de Espaços Diretos.As a work-around, we recommend running the above command once before initiating a firmware update or complete roll-out on a Spaces Direct cluster.

Posso atualizar o firmware em minha SAN por meio desse mecanismoCan I update firmware on my SAN through this mechanism

Não. SANs geralmente têm seus próprios utilitários e suas próprias interfaces para essas operações de manutenção.No - SANs usually have their own utilities and interfaces for such maintenance operations. Esse novo mecanismo é para armazenamento com conexão direta, como dispositivos NVMe, SAS ou SATA.This new mechanism is for directly attached storage, such as SATA, SAS, or NVMe devices.

Onde posso obter a imagem do firmwareFrom where do I get the firmware image

Você deve sempre obter firmware diretamente do seu OEM, fornecedor da solução ou fornecedor da unidade e não baixá-lo de terceiros.You should always obtain any firmware directly from your OEM, solution vendor, or drive vendor and not download it from other parties. O Windows fornece o mecanismo para obter a imagem para a unidade, mas não verifica sua integridade.Windows provides the mechanism to get the image to the drive, but cannot verify its integrity.

Isso funcionará em unidades de clusterWill this work on clustered drives

Os cmdlets também podem executar sua função em unidades de cluster, mas tenha em mente que a orquestração do serviço de integridade reduz o impacto de E/S em cargas de trabalho em execução.The cmdlets can perform their function on clustered drives as well, but keep in mind that the Health Service orchestration mitigates the I/O impact on running workloads. Se os cmdlets forem usados diretamente em unidades de cluster, E/S provavelmente paralisará.If the cmdlets are used directly on clustered drives, I/O is likely to stall. Em geral, é uma prática recomendada executar atualizações de firmware de unidade quando não houver nenhuma ou apenas uma carga de trabalho mínima nas unidades subjacentes.In general, it is a best practice to perform drive firmware updates when there is no, or just a minimal workload on the underlying drives.

O que acontece quando eu atualizo o firmware em Espaços de ArmazenamentoWhat happens when I update firmware on Storage Spaces

No Windows Server 2016, com o serviço de integridade implantados em Espaços de Armazenamento Diretos, você pode executar esta operação sem colocar suas cargas de trabalho offline, supondo que as unidades deem suporte ao Windows Server que está atualizando o firmware.On Windows Server 2016 with the Health Service deployed on Storage Spaces Direct, you can perform this operation without taking your workloads offline, assuming the drives support Windows Server updating the firmware.

O que acontece se a atualização falharWhat happens if the update fails

A atualização pode falhar por vários motivos, algumas delas são: 1) a unidade não dá suporte a comandos corretos para o Windows atualizar seu firmware.The update could fail for various reasons, some of them are: 1) The drive doesn't support the correct commands for Windows to update its firmware. Nesse caso, a nova imagem de firmware nunca é ativada e a unidade continuará funcionando com a imagem antiga.In this case the new firmware image never activates and the drive continues functioning with the old image. 2) A imagem não pode baixar ou ser aplicada a essa unidade (incompatibilidade de versão, imagem corrompida, ...).2) The image cannot download to or be applied to this drive (version mismatch, corrupt image, …). Nesse caso, ocorre falha no comando de ativação da unidade.In this case the drive fails the activate command. Novamente, a imagem antiga do firmware continuará funcionando.Again, the old firmware image will continue function.

Se a unidade não responder após uma atualização de firmware, você provavelmente estará atingindo um bug no próprio firmware da unidade.If the drive does not respond at all after a firmware update, you are likely hitting a bug in the drive firmware itself. Teste todas as atualizações de firmware em um ambiente de laboratório antes de colocá-las em produção.Test all firmware updates in a lab environment before putting them in production. A única correção poderá ser substituir a unidade.The only remediation may be to replace the drive.

Para obter mais informações, consulte Solução de problemas de atualizações de firmware de unidade.For more info, see Troubleshooting drive firmware updates.

Como posso interromper a distribuição de um firmware em andamentoHow do I stop an in-progress firmware roll-out

Desabilite a distribuição no PowerShell por meio de:Disable the roll-out in PowerShell via:

Get-StorageSubSystem Cluster* | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoFirmwareUpdate.RollOut.Enabled" -Value false

Vejo um acesso negado ou erro de caminho não encontrado durante a distribuição. Como posso corrigir issoI am seeing an access denied or path-not-found error during roll out. How do I fix this

Verifique se a imagem do firmware que você deseja usar para a atualização está acessível por todos os nós do cluster.Ensure that the firmware image you would like to use for the update is accessible by all cluster nodes. A maneira mais fácil de garantir isso é colocá-lo em um volume compartilhado do cluster.The easiest way to ensure this is to place it on a cluster shared volume.