Compartilhar via


Partições

O hipervisor dá suporte ao isolamento em termos de uma partição. Uma partição é uma unidade lógica de isolamento, com suporte do hipervisor, na qual os sistemas operacionais são executados.

Sinalizadores de privilégio de partição

Cada partição tem um conjunto de privilégios atribuídos pelo hipervisor. Os privilégios controlam o acesso ao MSRs sintético ou a hiperchamadas.

Uma partição pode consultar seus privilégios por meio da folha CPUID "identificação do recurso do hipervisor" (0x40000003). Consulte HV_PARTITION_PRIVILEGE_MASK para obter uma descrição de todos os privilégios.

Esclarecimento de falha de partição

O hipervisor fornece partições de convidado com um recurso de controle de falhas. Essa interface permite que o sistema operacional em execução em uma partição de convidado a opção de fornecer informações forenses sobre as condições fatais do sistema operacional para o hipervisor como parte de seu procedimento de despejo de memória. As opções incluem preservar o conteúdo do MSRs do parâmetro de falha do convidado e especificar uma mensagem de falha. Em seguida, o hipervisor disponibiliza essas informações para a partição raiz para registro em log. Esse mecanismo permite que o administrador de host de virtualização colete informações sobre o evento de falha do sistema operacional convidado sem a necessidade de inspecionar o armazenamento persistente anexado à partição de convidado para despejo de memória ou informações de despejo de núcleo que possam ser armazenadas lá pelo sistema operacional convidado com falha.

A disponibilidade desse mecanismo é indicada por meio CPUID.0x400003.EDX:10 do sinalizador GuestCrashMsrsAvailable; consulte descoberta de recursos.

Interface de esclarecimento de falha do convidado

A interface de controle de falhas do convidado é fornecida por seis MSRs sintéticos, conforme definido abaixo.

#define HV_X64_MSR_CRASH_P0 0x40000100
#define HV_X64_MSR_CRASH_P1 0x40000101
#define HV_X64_MSR_CRASH_P2 0x40000102
#define HV_X64_MSR_CRASH_P3 0x40000103
#define HV_X64_MSR_CRASH_P4 0x40000104
#define HV_X64_MSR_CRASH_CTL 0x40000105

Controle de falhas do convidado MSR

O HV_X64_MSR_CRASH_CTL MSR do controle de falhas do convidado pode ser usado por partições de convidado para determinar os recursos de falha do convidado do hipervisor e para invocar a ação especificada a ser tomada. A estrutura de dados HV_CRASH_CTL_REG_CONTENTS define o conteúdo da MSR.

Determinando os recursos de falha do convidado

Para determinar os recursos de falha do convidado, as partições de convidado podem ler o registro de HV_X64_MSR_CRASH_CTL. O conjunto com suporte de ações e recursos com suporte pelo hipervisor é relatado.

Invocando recursos de falha do convidado

Para invocar uma ação de falha de convidado de hipervisor com suporte, uma partição de convidado grava no registro de HV_X64_MSR_CRASH_CTL, especificando a ação desejada. Há suporte para duas variações: CrashNotify por si só e CrashMessage em combinação com CrashNotify. Para cada ocorrência de uma falha de convidado, no máximo uma única gravação em HV_X64_MSR_CRASH_CTL MSR deve ser executada, especificando uma das duas variações.

Ação de falha de convidado Descrição
CrashMessage Essa ação é usada em combinação com CrashNotify para especificar uma mensagem de falha para o hipervisor. Quando selecionado, os valores de P3 e P4 são tratados como o local e o tamanho da mensagem. HV_X64_MSR_CRASH_P3 é o endereço físico do convidado da mensagem e HV_X64_MSR_CRASH_P4 é o comprimento em bytes da mensagem (máximo de 4096 bytes).
CrashNotify Essa ação indica ao hipervisor que a partição de convidado concluiu a gravação dos dados desejados no MSRs do parâmetro de falha do convidado (ou seja, P0 a P4) e o hipervisor deve continuar com o log do conteúdo desses MSRs.