Al momento sei offline in attesa che la connessione Internet venga ristabilita

Impossibile utilizzare kdump o kexec per le macchine virtuali di Linux su Hyper-V

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2858695
Sintomi
Precedente a Windows Server 2012 R2
Si consideri lo scenario seguente:
  • Si dispone di un computer basato su Server 2012 R2 precedente a Windows è installato il ruolo Hyper-V.
  • Installazione di Linux su una macchina virtuale di Hyper-V nel computer.
  • Configurate la VM Linux kdump.

    Nota La VM Linux già i driver Linux Integration Services. I driver possono essere predefinite o installati manualmente.
In questo scenario, se si blocca la macchina virtuale di Linux, il file di dump di base del kernel Linux non viene generato come previsto.
Windows Server 2012 R2
Si consideri lo scenario seguente:
  • Hai Linux VM nell'host di Windows Server 2012 R2 Hyper-V.
  • 15 o più vCPUs collegati per VM Linux.
  • È possibile configurare kdump di VM Linux.
In questo scenario, kdump non funziona e l'arresto anomalo non viene creata perché il processo non risponde (si blocca).
Cause
Questo problema si verifica perché la tecnologia Hyper-V non può ospitare due connessioni simultanee dallo stesso driver sintetico che viene eseguito all'interno di una macchina virtuale.

Quando kdump è configurata su una macchina virtuale Linux che utilizza il driver di archiviazione sintetici Linux Integration Services (noto anche come storvsc), il kernel kexec è configurato per utilizzare lo stesso driver. Se si blocca la macchina virtuale di Linux, il driver di archiviazione sintetici ospitato nel kernel kexec tenta di aprire una connessione al provider di archiviazione di Hyper-V. Tuttavia, Hyper-V non riesce a stabilire la nuova connessione a causa della connessione di pre-esistente per lo stesso driver di archiviazione nella macchina virtuale Linux bloccato. Pertanto, il kernel kexec Impossibile eseguire il dump del nucleo centrale per la macchina virtuale Linux bloccato.
Risoluzione
Per risolvere questo problema, configurare il kernel kexec utilizzando il driver di archiviazione standard di Linux. Questa configurazione deve essere eseguita dopo aver attivata la funzionalità di kdump su una macchina virtuale di Linux. L'idea di base consiste nel disattivare il driver di archiviazione Linux Integration Services e quindi attivare il driver di archiviazione Linux standard all'interno del kernel kexec utilizzando il parametro prefer_ms_hyper_v nel file di configurazione appropriato.

Il parametro prefer_ms_hyper_v consente di controllare il comportamento del driver di archiviazione standard di Linux. Quando questo parametro è impostato su 1 e la macchina virtuale di Linux è in esecuzione su Hyper-V, il driver di archiviazione Linux standard si disattiva automaticamente e consente al driver di archiviazione Linux Integration Services di controllare le periferiche di archiviazione. Impostando il parametro prefer_ms_hyper_v su 0, il driver di archiviazione Linux standard può funzionare. Poiché il driver di archiviazione standard Linux non richiede una connessione a Hyper-V, il kernel kexec possibile eseguire il dump di base.

Diverse distribuzioni di Linux sono leggermente diversi meccanismi per specificare il valore di prefer_ms_hyper_v. Nella sezione seguente viene descritto come impostare il parametro per diverse distribuzioni di Linux più diffusi.

Red Hat Enterprise Linux (RHEL) 5.9

In RHEL 5.9, è necessario passare il parametro prefer_ms_hyper_v tramite un argomento della riga di comando del kernel per il modulo ide_core che è incorporato nel kernel di RHEL 5.9. Per impostazione predefinita, questo parametro viene inizializzato su 1, e questo fa sì che la macchina virtuale di Linux evitare di utilizzare il modulo ide_core se è in esecuzione in un ambiente Hyper-V. Gli amministratori devono impostare il valore del parametro prefer_ms_hyper_v su 0 in modo che il driver ide_core diventa operativo durante il processo di avvio del kernel kexec. È possibile farlo modificando il contenuto di /etc/kdump.conf.

Per modificare il contenuto di /etc/kdump.conf, attenersi alla seguente procedura:
  1. Eseguire il comando seguente per configurare kdump per scrivere in una directory locale:

    arresto anomalo del sistema/var/percorso
  2. Blacklist i driver Linux Integration Services in /etc/kdump.conf. I driver impedisce che vengano caricati al kernel kexec. A tale scopo, eseguire il comando riportato di seguito:

    black list hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
  3. Configurare il valore di timeout del disco eseguendo il comando riportato di seguito:

    disk_timeout 100
  4. Dopo le modifiche necessarie, il file /etc/kdump.conf è simile al seguente:
    arresto anomalo del sistema/var/percorso
    livello di messaggio core_collector makedumpfile - c - 1 - d 31
    black list hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
    disk_timeout 100
  5. Modificare il contenuto del file /etc/sysconfig/kdump come segue:
    • Aggiungere o modificare la riga seguente per includere la prefer_ms_hyperv = 0 argomento:

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 ide_core.prefer_ms_hyperv=0 reset_devices"
    • Dopo le modifiche necessarie, il file /etc/sysconfig/kdump è simile al seguente:
      KDUMP_COMMANDLINE = ""

      # Questa variabile consente di aggiungere argomenti alla riga di comando kdump corrente
      # Come uno dei due KDUMP_COMMANDLINE di cui sopra, o da/Process/cmdline prelevati

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 ide_core.prefer_ms_hyperv=0 reset_devices"

Red Hat Enterprise Linux (RHEL) 6.4

In RHEL 6.4, è necessario passare il parametro prefer_ms_hyper_v per il modulo del driver ata_piix . È possibile farlo modificando il contenuto del file /etc/kdump.conf.

Per modificare il contenuto di /etc/kdump.conf, attenersi alla seguente procedura:
  1. Configurare kdump per scrivere in una directory locale:

    arresto anomalo del sistema/var/percorso
  2. Aggiungere ulteriori moduli ata_piix, sr_mod, sd_mod:

    extra_modules ata_piix sr_mod sd_mod
  3. Black list driver Linux Integration Services in etc/kdump.conf. In questo modo i driver nel kernel kexec il caricamento:

    black list hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
  4. Aggiungere opzioni parametro per passare il parametro per il modulo ata_piix:

    Opzioni ata_piix prefer_ms_hyperv = 0
  5. Configurare il valore di timeout del disco in modo che non risponda (si blocchi):

    disk_timeout 100
  6. Dopo le modifiche necessarie, il file /etc/kdump.conf è simile al seguente:
    arresto anomalo del sistema/var/percorso
    livello di messaggio core_collector makedumpfile - c - 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    black list hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
    Opzioni ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

Ubuntu 12.04(.x)

In Ubuntu 12.04 (.x), è necessario passare il parametro prefer_ms_hyper_v per il driver ata_piix . È possibile farlo modificando il contenuto del file /etc/init.d/kdump.

Per modificare il contenuto del file /etc/init.d/kdump, aggiungere ata_piix. prefer_ms_hyper_v = 0 per le opzioni della riga di comando kdump:
{{} do_start
….
….
APPEND = "$APPEND kdump_needed maxcpus = 1 irqpoll reset_devices ata_piix.prefer_ms_hyperv=0"

}

SUSE Linux Enterprise Server (SLES) 11 SP2(x)

Nelle distribuzioni SLES 11 SP2(x), è necessario passare il parametro prefer_ms_hyper_v per il driver ata_piix . È possibile farlo modificando il contenuto del file /etc/sysconfig/kdump come segue:

Aggiungere ata_piix.prefer_ms_hyper_v=0 a KDUMP_COMMANDLINE_APPEND:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Dopo le modifiche necessarie, il file /etc/sysconfig/kdump è simile al seguente:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Informazioni
KDUMP deve essere configurato nel modo standard che viene suggerito da distribuzioni di Linux.

I prodotti di terze parti descritti in questo articolo sono forniti da società indipendenti da Microsoft. Microsoft esclude ogni garanzia, implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2858695 - Ultima revisione: 06/04/2015 00:46:00 - Revisione: 4.0

Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Essentials, Microsoft Hyper-V Server 2012 R2, Windows Storage Server 2012 R2 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Microsoft Hyper-V Server 2012, Windows Storage Server 2012 Standard, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Server 2008 R2 Service Pack 1, Microsoft Hyper-V Server 2008 R2 Service Pack 1, Microsoft Hyper-V Server 2008 R2

  • kbmt KB2858695 KbMtit
Feedback
;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">