Pular para o conteúdo principal

Atualização do repositório

Atualizar o firmware do servidor a partir de um repositório remoto

Nota
A funcionalidade de histórico de firmware CIFS/NFS/HTTPS/integrado requer a licença Platinum do XCC.

Visão Geral

O XCC introduziu a atualização de firmware em um servidor usando os Pacotes de atualização (Service Packs). Esse recurso simplifica o processo usando uma única ferramenta cliente de API ou Redfish para atualizar todo o firmware no sistema, incluindo pacotes de firmware OOB e IB. O processo envolve identificar pacotes de firmware aplicáveis, baixá-los e extraí-los de um servidor HTTP/HTTPS remoto ou fazer upload deles para o armazenamento interno do BMC por meio de um navegador da Web ou montá-los de um diretório compartilhado do CIFS ou NFS.

Os arquivos de metadados precisam ser colocados no diretório raiz do sistema de arquivos compartilhado de rede se usar a montagem de CIFS ou NFS, com cargas de firmware especificadas nos metadados. O dispositivo microSD do servidor pode armazenar repositórios históricos, permitindo que os usuários recuperem os níveis de firmware.

Se os pacotes de firmware contiverem cargas que não suportam atualização de firmware fora da banda, o BMC iniciará o servidor e o configurará para ser inicializado a partir da imagem do SO integrada instalada no BMC antes de realizar a atualização.

Pacote de atualização e metadados

O Pacote de atualização (Service Packs) é um arquivo compactado de um pacote de firmware. Ele contém um ou vários pacotes de firmware para os componentes em um sistema. O recurso Atualização do repositório do XCC consome o arquivo Pacote de atualização. O arquivo do pacote não compactado contém metadados e binários de carga. Arquivos de metadados JSON fornecem informações ao XCC sobre o tipo de imagens de firmware que o arquivo do pacote contém, e binários de carga fornecem as imagens de firmware.

Repositório de firmware dentro do XCC

O Pacote de atualização pode conter vários pacotes de firmware, e o XCC (um dispositivo eletrônico) reserva 2 GB de espaço em seu flash para novos recursos. Quando um novo pacote é recebido, o XCC limpa dados antigos. Algumas plataformas usam um cartão MicroSD para fornecer armazenamento adicional, e o XCC move o último Pacote atualizado para o repositório de histórico do cartão SD. O repositório de histórico de firmware pode armazenar até três pacotes, e os usuários podem usar o recurso Reversão de firmware para reverter para um pacote anterior.

Nota
  • Se o Pacote de atualização incluir apenas o pacote de firmware OOB disponível para o sistema, o XCC não alterará o estado de energia do sistema. Para atualizar o firmware do dispositivo PCI, ele requer que o sistema seja ligado.

  • Se o Pacote de atualização incluir o pacote de firmware IB disponível para o sistema, o XCC armazenará o estado de energia do sistema antes de atualizar e restaurar o estado de energia após o Pacote de atualização ser atualizado. Durante o processo de atualização, o XCC reinicializa o host no SO integrado.

  • Se o Pacote de atualização incluir um nível de pré-requisito de firmware UEFI e a versão atual da UEFI instalada não atender a esse nível ou estiver atrás dele, o XCC desligará o sistema para executar uma atualização de firmware UEFI primeiro.

  • Se o Pacote de atualização incluir um nível de pré-requisito de firmware do XCC e a versão atual do XCC instalada não atender a esse nível ou estiver atrás dele, o XCC será reinicializado primeiro após a atualização.

Atualização com WebGUI

Com a Atualização do repositório, o usuário pode configurar o XCC para sincronizar o firmware do servidor com um repositório de firmware CIFS/NFS remoto. O repositório de firmware deve conter pacotes, incluindo arquivos binários e de metadados, ou JSON de metadados do Pacote de atualização e arquivos binários correspondentes. O XCC analisa os arquivos JSON de metadados para retirar os pacotes de firmware que dão suporte à atualização OOB para esse hardware do sistema específico e, em seguida, inicia uma atualização em lotes.

Há cinco status de atualização:
  • Marca de seleção verde : a atualização do firmware foi concluída com êxito.
  • Marca X vermelha : a atualização do firmware falhou.
  • Atualização: o firmware está passando pelo processo de atualização.
  • Cancelar: a atualização do firmware foi cancelada.
  • Aguardando: o upgrade do firmware está aguardando para ser implantado.
Quando o usuário clicar em Interromper atualização, ele cancelará as atualizações na fila após a atualização do pacote de instalação atual ser concluída.

Para atualização do repositório, execute as etapas a seguir:

  1. Clique em Conectar ao repositório remoto depois de inserir informações do repositório remoto.
  2. Clique em Atualizar para iniciar a atualização em lotes.
  3. Clique em Exibir detalhes para ver o status de atualização, há 5 categorias de status como mencionado acima.
  4. Clicar em Interromper atualização cancelará as atualizações na fila após a atualização do pacote de instalação atual ser concluída.
  5. Clique em Desconectar para desconectar-se do repositório remoto.
  6. Se a atualização exigir que o XClarity Controller seja reiniciado para que tenha efeito, uma mensagem de aviso será exibida. Para obter detalhes sobre como reiniciar o XClarity Controller, consulte Ações de energia.
Nota
Se o sistema tiver um cartão MicroSD instalado, será possível ver o histórico de atualização do Pacote de atualização e selecionar o índice do Pacote de atualização para executar reversões de firmware. O processo é semelhante à atualização do repositório, exceto que o Pacote de atualização histórico é colocado dentro do MicroSD.

Atualização com Redfish

A interface Redfish usa a carga do formato JSON para facilitar a leitura humana e o script. A Redfish do XCC oferece uma API padrão (SimpleUpdate) para recuperar o arquivo Pacote de atualização de um URI via HTTP/HTTPS/SFTP/TFTP, bem como uma Atualização por push HTTP multiparte para enviar o arquivo Pacote de atualização UpdateService. É possível usar um comando ou uma única ferramenta cliente Redfish para executar atualizações de firmware e consultar status de atualização.

Comando de exemplo para enviar o arquivo do pacote para o XCC e gerar a tarefa de transferência de arquivos e verificação:

curl -s -k -u USERID:PASSW0RD-F 'UpdateParameters={"Targets":[]};type=application/json' -F 'UpdateFile=@./NY7D72-IB-320.zip;type=application/octet-stream' https://10.240.218.157:443/mfwupdate
{
"ld": "f2fd6e9d-cOa6-4b11-b9f6-69a17a1 ,
"Name": "Task f2fd6e9d-cOa6-4b11-b9f6-69a17a1 e579c",
"@odata.type": "#Task.v1_5_1. Task",
"@odata.id': "[redfish/v 1 fTaskServicefTasks/f2fd6e9d-c0a6-4b11-b9f6-69a 17a1 e579c",
"Messages": [l
"Description": "This resource represents a task for a Redfish implementation."
"StartTime": "2022-03-21 TOT 16:41 +00:00",
"TaskMonitor": "/redfish/v1fTaskSen.'ice/c069ed4a-e754-4970-ab9a-922e8a3e076b",
"@odata.context": "'redfish/v1/$metadata#Task.Task",
"@odata.etag":
"PercentCompIete": O,
"HidePayload": true,
"TaskState": "New"
}

O comando de exemplo que faz a API de tarefa responder com o ID de trabalho para atualização de firmware depois de concluir a transferência e a validação da imagem:

<strong className="ph b">https://10.240.218.157/
redfish/v1/TaskService/Tasks/f2fd6e9d c0a6 4b11 b9f6 69a17a1e579c</strong>
{
"@odata.etag": ,
"Name-: "Task f2fd6e9d-cOa6-4b11-b9f6-69a17a1e579c",
Task",
"IredfishNI/TaskSemcenasksff2fd6e9d-cOa6-4bI I-b9f6-69aI 7a1e579c",
"Messages": [
{
"Resolution": "Follow the referenced job and monitor the job for further updates.",
"@odata.type":
'MessageSeverity": "0K",
"MessageArgs": [
"IredfishtvI/JobService/J0bs/J0bROOOOOI-lJPdate"
],
"Messageld": "Update. 1 .O.OperationTransitionedToJob",
"Message": "The update operation has transitioned to the job at URI 'Iredfsh/vl IJobService/Jobs/JobR000001-Update'."
}
],
"Description": "This resource represents a task for a Redfish implementation.",
"HidePayIoad": true,
"StartTime":
"TaskMonitor: "'redfish1v1/TaskseNice/c069ed4a-e754-4970-ab9a-922e8a3e076b",
"TaskStatus": "0K",
"@odata.context-: "'redfish/v1/$metadata#Task.Task",
"ld": "f2fd6e9d-cOa6-4b11-b9f6-6ga17a 1 e579c",
"Percentcomplete": 100,
"EndTime": 2022-03-21
"TaskState": "Completed"
}

Ao consultar o ID do Trabalho, o XCC retorna etapas de trabalho para todos os pacotes de firmware no Pacote de atualização, conforme mostrado abaixo:

https://10.240.218.157/redfish/v1/JobService/Jobs/JobR000001-Update
{
"@odata.etag": "\"1647847200776\"", "PercentComplete": 100, "@odata.type": "#Job.v1_0_7.Job",
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update", "Messages": [
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "OK",
"MessageArgs": [ "NY7D72-IB-320.zip",
"HardDiskDrive"
],
"MessageId": "Update.1.0.UpdateSuccessful ",
"Message": " Device 'HardDiskDrive' successfully updated with image 'NY7D72-IB-320.zip'."
},
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "OK",
"MessageArgs": [ "NY7D72-IB-320.zip",
"/redfish/v1/UpdateService/FirmwareInventory/UEFI"
],
"MessageId": "Update.1.0.UpdateSuccessful",
"Message": "Device '/redfish/v1/UpdateService/FirmwareInventory/UEFI' successfully updated with image 'NY7D72-IB-320.zip'. "
},
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "Critical",
"MessageArgs": [ "NY7D72-IB-320.zip",
"/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary"
],
"MessageId": "Update.1.0.ApplyFailed",
"Message": "Installation of image 'NY7D72-IB-320.zip' to '/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary' failed."
}
],
"Description": "This resource is used to represent a job for a Redfish implementation.",
"StartTime": "2022-03-21T07:16:58+00:00",
"Id": "JobR000001-Update",
"EndTime": "2022-03-21T07:20:00+00:00",
"@odata.context": "/redfish/v1/$metadata#Job.Job", "Steps": {
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update/Steps"
},
"Name": "JobR000001-Update", "StepOrder": [
"lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "lnvgy_fw_uefi_ese103a-1.00_anyos_comp.uxz", "lnvgy_fw_xcc_esx301p-0.01_anyos_comp.uxz"
],
"JobState": "Completed"

Quando a etapa Trabalho é consultada, o XCC retorna informações adicionais à atualização de firmware individual:

https://10.240.218.157/redfish/v1/JobService/Jobs/JobR000001- Update/Steps/lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt
{
"@odata.etag": "\"1647847202778\"", "PercentComplete": 1, "@odata.type": "#Job.v1_0_7.Job",
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update/Steps/lnvgy_fw_drives_all.samsung.pm1735.cq- cq37_anyos_comp.lvt",
"Messages": [],
"Description": "This resource is used to represent a job for a Redfish implementation.", "StartTime": "2022-03-21T07:16:58+00:00",
"@odata.context": "/redfish/v1/$metadata#Job.Job",
"Id": "lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "Name": "lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "EndTime": "2022-03-21T07:20:02+00:00",

"JobState": "Completed"

Faça download do repositório remoto e atualize conforme mostrado abaixo:

system> syncrep
syncrep [options] Launch firmware sync from remote repository options:
-t protocol to connect repository. The local type will reboot host immediately. (eg: syncrep -t samba -l url -u user -p password; syncrep -t local -l /bulk/bundle.tgz;
syncrep -t http -l http://IP/bundle.tgz)
-l location of remote repository (URL format)
-u User
-p Password
-o option (extra option string for samba and nfs mounts)
-d domain (domain for samba mount)
-q query current update status
-c cancel the sync process
-r <> firmware rollback
-gl get repository list