您目前已離線,請等候您的網際網路重新連線

無法使用 kdump 或 kexec 在 Hyper-V Linux 虛擬機器

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2858695
徵狀
預先 Windows 伺服器 2012 R2
請考慮下列情況:
  • 您必須為預先 Windows Server 2012 R2 架構的電腦已安裝 Hyper-V 角色。
  • 您的電腦上的 Hyper-V 虛擬機器上安裝 Linux。
  • 您可以設定 kdump Linux VM 上。

    附註 Linux VM 中已經有 Linux 整合服務驅動程式。驅動程式可以是預先建置或手動安裝。
在這個案例中,如果 Linux 虛擬機器損毀,從 Linux 核心核心傾印檔案不會產生如預期般運作。
Windows Server 2012 R2
請考慮下列情況:
  • 您在 Windows Server 2012 R2 Hyper-V 主機上有 Linux VM。
  • 15 個或以上的 vCPUs 會附加到 Linux VM。
  • 您可以設定 kdump Linux VM 中。
在這個案例中,kdump 無法運作,而且損毀傾印不會建立因為處理程序會停止回應 (擱置)。
發生的原因
Hyper-V 無法裝載相同的綜合驅動程式在虛擬機器內部執行的兩個同時連線,就會發生這個問題。

當 kdump 設定 Linux 虛擬機器正在使用 Linux 整合服務綜合的存放裝置驅動程式 (也稱為 storvsc) 時,kexec 核心被設定為使用相同的驅動程式。如果損毀 Linux 虛擬機器,裝載於 kexec 核心綜合的存放裝置驅動程式會嘗試開啟 Hyper-V 存放區提供者的連接。不過,Hyper-V 會預先存在的連線到相同的存放裝置驅動程式損毀的 Linux 虛擬機器上建立新的連線失敗。因此,kexec 核心無法傾印損毀的 Linux 虛擬機器的核心。
解決方案
若要解決這個問題,請使用標準的 Linux 存放裝置驅動程式來設定 kexec 核心。必須執行這項設定之後 kdump 功能已啟用 Linux 虛擬機器上。若要關閉 Linux 整合服務存放裝置驅動程式,並在適當的組態檔中使用prefer_ms_hyper_v參數,以啟用標準 Linux 存放裝置驅動程式,在 kexec 核心內是基本的概念。

Prefer_ms_hyper_v參數可以用來控制標準的 Linux 存放裝置驅動程式的行為。當這個參數設定為1 ,Linux 虛擬機器執行 Hyper-V 時,標準的 Linux 存放裝置驅動程式本身會停用,並讓控制存放裝置的 Linux 整合服務儲存區驅動程式。藉由設定prefer_ms_hyper_v參數為0,標準的 Linux 存放裝置驅動程式才能運作。因為標準的 Linux 存放裝置驅動程式不需要連線到 Hyper-V,kexec 核心可以傾印核心。

不同的 Linux 散發都會有稍微不同的機制,來指定prefer_ms_hyper_v的值。下列章節將說明如何設定參數的幾個常用的 Linux 散發。

紅色的帽子企業 Linux (RHEL) 5.9

在 RHEL 5.9,您可以將透過核心命令列引數的prefer_ms_hyper_v參數傳遞至 RHEL 5.9 核心內建的ide_core模組。根據預設,這個參數會被初始化為1,而這會導致 Linux 虛擬機器,以避免使用ide_core模組,如果它在 Hyper-V 環境中執行。系統管理員必須設定為0prefer_ms_hyper_v參數值,讓ide_core驅動程式 kexec 核心開機程序期間變成操作。您可以變更 /etc/kdump.conf 的內容。

若要變更的 /etc/kdump.conf 內容,請依照下列步驟執行:
  1. 執行下列命令,以設定要寫入至本機目錄的 kdump:

    路徑/var/損毀
  2. Blacklist /etc/kdump.conf Linux 整合服務驅動程式。這樣會防止驅動程式載入到 kexec 核心。若要這樣做,請執行下列命令:

    黑名單 hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
  3. 執行下列命令,以設定磁碟逾時值:

    100 disk_timeout
  4. 必要的編輯之後, /etc/kdump.conf 檔案看起來像這樣:
    路徑/var/損毀
    core_collector makedumpfile-c-訊息層級 1 d 31
    黑名單 hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
    100 disk_timeout
  5. 修改 /etc/sysconfig/kdump 檔案的內容如下所示:
    • 新增或修改以下這行來包含 prefer_ms_hyperv = 0 的引數:

      KDUMP_COMMANDLINE_APPEND ="irqpoll maxcpus = 1 reset_devices ide_core.prefer_ms_hyperv=0"
    • 必要的編輯之後, /etc/sysconfig/kdump 檔案看起來像這樣:
      KDUMP_COMMANDLINE =""

      # 此變數可讓我們附加至目前的 kdump 命令列的引數
      # 如採取從上述任一個 KDUMP_COMMANDLINE 或/程序/命令行

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

紅色的帽子企業 Linux (RHEL) 6.4

在 RHEL 6.4 中,您可以將prefer_ms_hyper_v參數傳遞至ata_piix驅動程式的模組。您可以變更 /etc/kdump.conf 檔案的內容。

若要變更內容的 /etc/kdump.conf,請依照下列步驟執行
  1. 設定要寫入至本機目錄的 kdump:

    路徑/var/損毀
  2. 新增額外的模組 ata_piix、 sr_mod、 sd_mod:

    extra_modules ata_piix sr_mod sd_mod
  3. 黑名單中 etc/kdump.conf 的 Linux 整合服務驅動程式。這可避免載入 kexec 核心驅動程式:

    黑名單 hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
  4. 新增選項參數將參數傳遞給 ata_piix 模組:

    選項 ata_piix prefer_ms_hyperv = 0
  5. 這麼一來,它不會停止回應 (擱置),請設定磁碟逾時值:

    100 disk_timeout
  6. 必要的編輯之後, /etc/kdump.conf 檔案看起來像這樣:
    路徑/var/損毀
    core_collector makedumpfile-c-訊息層級 1 d 31
    extra_modules ata_piix sr_mod sd_mod
    黑名單 hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
    選項 ata_piix prefer_ms_hyperv = 0
    100 disk_timeout

Ubuntu 12.04(.x)

在 Ubuntu 12.04 (。x),您必須將prefer_ms_hyper_v參數傳遞至ata_piix驅動程式。您可以變更 /etc/init.d/kdump 檔案的內容。

若要變更 /etc/init.d/kdump 檔案的內容,請附加 ata_piix。prefer_ms_hyper_v = 0 到 kdump 命令列選項:
do_start {} {
….
….
附加 ="$APPEND kdump_needed maxcpus = 1 irqpoll reset_devices ata_piix.prefer_ms_hyperv=0 」

}

SUSE Linux 企業伺服器 (SLES) 11 SP2(x)

在 SLES 11 SP2(x) 散發,您可以將prefer_ms_hyper_v參數傳遞至ata_piix驅動程式。您可以修改 /etc/sysconfig/kdump 檔案的內容,如下所示:

您可以附加 ata_piix.prefer_ms_hyper_v=0 到 KDUMP_COMMANDLINE_APPEND:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0 」

必要的編輯之後, /etc/sysconfig/kdump 檔案看起來像這樣:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0 」

其他相關資訊
KDUMP 應該設定 Linux 散發所建議的標準方式。

本文將所述之產品製造協力廠商均與 Microsoft 無關。Microsoft 不對這些產品之其他相關效能或可靠性作出任何擔保或默示。

警告:本文為自動翻譯

內容

文章識別碼:2858695 - 最後檢閱時間:06/04/2015 20:24:00 - 修訂: 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 KbMtzh
意見反應