Tidak dapat menggunakan kdump atau kexec untuk Linux mesin virtual pada Hyper-V

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2858695 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Gejala

Pertimbangkan skenario berikut:
  • Anda memiliki komputer berbasis Windows yang memiliki peran Hyper-V diinstal.
  • Anda menginstal Linux pada mesin virtual Hyper-V pada komputer.
  • Anda mengkonfigurasi kdump pada Linux VM. Linux VM sudah memiliki driver Linux Integration Services, prebuilt atau secara manual terpasang.
Jika mesin virtual Linux crash dalam skenario ini, berkas dump inti dari Linux kernel tidak dihasilkan seperti yang diharapkan.

Penyebab

Masalah ini terjadi karena Hyper-V tidak bisa menjadi tuan rumah dua koneksi simultan dari driver sintetis yang sama yang berjalan di dalam mesin virtual.

Ketika kdump dikonfigurasi pada mesin virtual Linux yang menggunakan pengandar sintetis penyimpanan Linux integrasi layanan (juga dikenal sebagai storvsc), kexec kernel dikonfigurasi untuk menggunakan driver yang sama. Jika mesin virtual Linux crash, pengandar penyimpanan sintetis yang di-host di kexec kernel mencoba untuk membuka koneksi ke penyedia penyimpanan Hyper-V. Namun, Hyper-V gagal untuk membangun koneksi baru karena sudah ada koneksi ke driver penyimpanan yang sama pada mesin virtual Linux jatuh. Oleh karena itu, kexec kernel tidak dapat membuang inti untuk mesin virtual Linux jatuh.

Pemecahan masalah

Untuk mengatasi masalah ini, mengkonfigurasi kexec kernel dengan menggunakan pengandar penyimpanan Linux standar. Konfigurasi ini harus dilakukan setelah kdump fungsi diaktifkan pada mesin virtual Linux. Ide dasarnya adalah untuk menonaktifkan driver Linux integrasi layanan penyimpanan dan kemudian mengaktifkan driver penyimpanan Linux standar dalam kexec kernel dengan menggunakan prefer_ms_hyper_v parameter di lokasi strategis.

Prefer_ms_hyper_v parameter dapat digunakan untuk mengontrol perilaku driver penyimpanan Linux standar. Bila parameter ini diatur ke 1 dan mesin virtual Linux berjalan pada Hyper-V, pengandar penyimpanan Linux standar menonaktifkan itu sendiri dan memungkinkan driver Linux integrasi layanan penyimpanan mengontrol peranti penangkap penyimpanan. Dengan menetapkan prefer_ms_hyper_v parameter ke 0, pengandar penyimpanan Linux standar diperbolehkan untuk berfungsi. Karena Linux standar penyimpanan driver tidak memerlukan koneksi ke Hyper-V, kexec kernel dapat membuang inti.

Distribusi Linux yang berbeda memiliki mekanisme yang sedikit berbeda untuk menentukan nilai prefer_ms_hyper_v. Bagian berikut menjelaskan bagaimana parameter dapat diatur untuk beberapa distro Linux yang populer.

Red Hat Enterprise Linux (RHEL) 5.9

Di RHEL 5.9, Anda harus melewati parameter prefer_ms_hyper_v melalui argumen baris perintah kernel untuk modul ide_core yang dibangun ke dalam kernel RHEL 5.9. secara asali, parameter ini diinisialisasi ke 1, dan ini menyebabkan mesin virtual Linux untuk menghindari menggunakan modul ide_core jika itu berjalan di lingkungan Hyper-V. Administrator harus menetapkan nilai parameter prefer_ms_hyper_v ke 0 sehingga pengandar ide_core menjadi operasional selama proses boot kernel kexec. Anda dapat melakukan ini dengan mengubah isi /etc/kdump.conf.

Untuk mengubah isi dari /etc/kdump.conf, ikuti langkah berikut:
  1. Jalankan perintah berikut untuk mengkonfigurasi kdump untuk menulis ke direktori lokal:

    jalan/var/crash
  2. Blacklist driver Linux integrasi layanan di /etc/kdump.conf. Hal ini mencegah driver dari loading in ke kexec kernel. Untuk melakukan ini, jalankan perintah berikut:

    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  3. Mengkonfigurasi nilai time-out disk dengan menjalankan perintah berikut:

    disk_timeout 100
  4. Setelah suntingan diperlukan, file /etc/kdump.conf yang terlihat seperti ini:
    jalan/var/crash
    core_collector makedumpfile - c - pesan-tingkat 1 - d 31
    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    disk_timeout 100
  5. Memodifikasi isi dari /etc/sysconfig/kdump file sebagai berikut:
    • Menambah atau mengubah baris berikut untuk menyertakan prefer_ms_hyperv = 0 argumen:

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 reset_devices ide_core.prefer_ms_hyperv=0"
    • Setelah suntingan diperlukan, file /etc/sysconfig/kdump yang terlihat seperti ini:
      KDUMP_COMMANDLINE = ""

      # Variabel ini Mari kita menambahkan argumen ke commandline kdump saat ini
      # Sebagai diambil dari KDUMP_COMMANDLINE baik di atas, atau dari/proc/cmdline

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

Red Hat Enterprise Linux (RHEL) 6.4

Di RHEL 6.4, Anda harus melewati prefer_ms_hyper_v parameter ke ata_piix driver modul. Anda dapat melakukan ini dengan mengubah isi dari /etc/kdump.conf file.

Untuk mengubah isi dari /etc/kdump.conf, ikuti langkah berikut:
  1. Mengkonfigurasi kdump untuk menulis ke direktori lokal:

    jalan/var/crash
  2. Menambahkan modul tambahan ata_piix, sr_mod, sd_mod:

    extra_modules ata_piix sr_mod sd_mod
  3. Blacklist driver Linux integrasi layanan di etc/kdump.conf. Hal ini mencegah driver dari loading ke kexec kernel:

    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  4. Tambahkan pilihan parameter untuk melewati parameter untuk modul ata_piix:

    pilihan ata_piix prefer_ms_hyperv = 0
  5. Mengkonfigurasi nilai time-out disk sehingga, itu tidak berhenti merespons (hang):

    disk_timeout 100
  6. Setelah suntingan diperlukan, file /etc/kdump.conf yang terlihat seperti ini:
    jalan/var/crash
    core_collector makedumpfile - c - pesan-tingkat 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    pilihan ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

Ubuntu 12.04(.x)

Di Ubuntu 12.04 (.x), Anda harus melewati prefer_ms_hyper_v parameter untuk pengandar ata_piix . Anda dapat melakukan ini dengan mengubah isi dari /etc/init.d/kdump file.

Untuk mengubah isi dari /etc/init.d/kdump file, menambahkan ata_piix. prefer_ms_hyper_v = 0 untuk opsi baris perintah kdump:
do_start {} {
?.
?.
Tambahkan = "$APPEND kdump_needed maxcpus = 1 irqpoll reset_devices ata_piix.prefer_ms_hyperv=0"
?
}

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

Di distribusi SLES 11 SP2(x), Anda harus melewati prefer_ms_hyper_v parameter untuk pengandar ata_piix . Anda dapat melakukan ini dengan memodifikasi isi dari /etc/sysconfig/kdump file sebagai berikut:

Menambahkan ata_piix.prefer_ms_hyper_v=0 ke KDUMP_COMMANDLINE_APPEND:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Setelah suntingan diperlukan, file /etc/sysconfig/kdump yang terlihat seperti ini:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Informasi lebih lanjut

KDUMP harus dikonfigurasi dengan cara yang standar yang disarankan oleh distribusi Linux.

Produk pihak ketiga yang artikel ini membahas diproduksi oleh perusahaan yang independen terhadap Microsoft. Microsoft tidak membuat jaminan, tersirat atau sebaliknya, berkenaan dengan kinerja atau keandalan produk ini.

Properti

ID Artikel: 2858695 - Kajian Terakhir: 25 Juni 2013 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Hyper-V Server 2008 R2
  • Microsoft Hyper-V Server 2008 R2 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 for Itanium-Based Systems
  • Windows Server 2008 R2 Service Pack 1
  • Windows Storage Server 2008 R2
  • Windows Storage Server 2008 R2 Essentials
  • Microsoft Hyper-V Server 2012
  • Windows Server 2012 Foundation
  • Windows Server 2012 Release Candidate
  • Windows Server 2012 Standard
  • Windows Storage Server 2012 Standard
  • Windows Storage Server 2012 Workgroup
Kata kunci: 
kbmt KB2858695 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 2858695

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com