ไม่สามารถใช้ kdump หรือ kexec สำหรับเครื่องเสมือน Linux บน Hyper-V

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2858695 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

อาการ

พิจารณาสถานการณ์สมมติต่อไปนี้:
  • คุณมีคอมพิวเตอร์ที่ใช้ Windows ที่มีบทบาท Hyper-V ติดตั้ง
  • คุณได้ติดตั้ง Linux บนเครื่องเสมือน Hyper-V บนคอมพิวเตอร์เครื่องนั้น
  • คุณสามารถกำหนดค่า kdump บน VM Linux VM Linux มีไดรเวอร์ Linux รวมบริการ ปรากฏ หรือติดตั้งด้วยตนเอง
ถ้า Linux เครื่องเสมือนล้มเหลวในสถานการณ์นี้ แฟ้มการถ่ายโอนข้อมูลหลักจาก Linux kernel จะไม่สร้างขึ้นตามที่คาดไว้

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจาก Hyper-V ไม่โฮสต์การเชื่อมต่อที่เกิดขึ้นพร้อมกันสองจากโปรแกรมควบคุม synthetic เหมือนที่กำลังทำงานอยู่ภายในเครื่องเสมือน

เมื่อมีการกำหนดค่า kdump บนเครื่องเสมือน Linux ที่กำลังใช้โปรแกรมควบคุมที่เก็บ synthetic Linux บริการการรวม (เรียกอีกอย่างว่า storvsc), kexec เคอร์เนลมีการกำหนดค่าการใช้โปรแกรมควบคุมเดียวกัน ถ้า Linux เครื่องเสมือนล้มเหลว โปรแกรมควบคุมที่เก็บข้อมูล synthetic ที่เป็นโฮสต์ในเคอร์เนล kexec พยายามเปิดการเชื่อมต่อกับผู้ให้บริการที่เก็บข้อมูล Hyper-V อย่างไรก็ตาม Hyper-V ที่ล้มเหลวในการสร้างการเชื่อมต่อใหม่ได้เนื่องจากการเชื่อมต่อที่มีอยู่ก่อนการโปรแกรมควบคุมที่เก็บข้อมูลเดียวกันบนเครื่องเสมือน Linux crashed ดังนั้น kexec เคอร์เนลไม่สามารถถ่ายโอนข้อมูลสำหรับเครื่องเสมือน Linux crashed แกนนำ

การแก้ไข

เมื่อต้องการแก้ไขปัญหานี้ กำหนดค่าเคอร์เนล kexec โดยใช้โปรแกรมควบคุมที่เก็บข้อมูล Linux มาตรฐาน การตั้งค่าคอนฟิกนี้ต้องดำเนินการหลังจากที่เปิดใช้งานฟังก์ชันการทำงานของ kdump บนเครื่องเสมือน Linux แนวคิดพื้นฐานคือการ ปิดโปรแกรมควบคุมที่เก็บข้อมูล Linux รวมบริการ และจากนั้น เปิดใช้งานโปรแกรมควบคุมพื้นที่เก็บ Linux ที่มาตรฐานภายในเคอร์เนล kexec โดยใช้พารามิเตอร์prefer_ms_hyper_vในสถานเชิงกลยุทธ์

สามารถใช้พารามิเตอร์prefer_ms_hyper_vเพื่อควบคุมลักษณะการทำงานของโปรแกรมควบคุมที่เก็บข้อมูล Linux มาตรฐาน เมื่อมีการตั้งค่าพารามิเตอร์นี้เป็น1และเรียกใช้บน Hyper-V เครื่องเสมือน Linux โปรแกรมควบคุมที่เก็บข้อมูล 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ผ่านอาร์กิวเมนต์บรรทัดคำสั่งเคอร์เนลโมดูide_coreที่มีอยู่ในเคอร์เนล RHEL 5.9 โดยค่าเริ่มต้น พารามิเตอร์นี้จะกำหนดค่าเริ่มต้นเป็น1และซึ่งทำให้เครื่องเสมือน Linux เพื่อหลีกเลี่ยงการใช้โมดูide_coreถ้าจะทำงานในสภาพแวดล้อมของ Hyper-V ผู้ดูแลระบบต้องตั้งค่าพารามิเตอร์prefer_ms_hyper_vเป็น0เพื่อให้โปรแกรมควบคุมide_coreกลายเป็นการดำเนินงานในระหว่างกระบวนการเริ่มระบบ kexec เคอร์เนล คุณสามารถทำเช่นนี้ได้ โดยการเปลี่ยนแปลงเนื้อหาของ /etc/kdump.conf

เมื่อต้องการเปลี่ยนแปลงเนื้อหาของ /etc/kdump.conf ให้ทำตามขั้นตอนเหล่านี้:
  1. เรียกใช้คำสั่งต่อไปนี้เพื่อกำหนดค่า kdump สามารถเขียนไปยังไดเรกทอรีภายในเครื่อง:

    เส้น ทาง/var/ล้ม เหลว
  2. Blacklist ไดรเวอร์ Linux บริการการรวมใน /etc/kdump.conf ซึ่งป้องกันไดรเวอร์จากการโหลดในไปยังเคอร์เนล kexec เมื่อต้องการทำเช่นนี้ เรียกใช้คำสั่งต่อไปนี้:

    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  3. ตั้งค่าคอนฟิกค่าการหมดเวลาของดิสก์ โดยการเรียกใช้คำสั่งต่อไปนี้:

    disk_timeout 100
  4. หลังจากการแก้ไขที่จำเป็น แฟ้ม /etc/kdump.conf มีลักษณะดังนี้:
    เส้น ทาง/var/ล้ม เหลว
    core_collector makedumpfile - c--ข้อความระดับ 1 - d 31
    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    disk_timeout 100
  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 อย่างใดอย่างหนึ่งข้างต้น หรือ/proc/cmdline

      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. ไดรเวอร์ Linux รวมบริการ blacklist ใน etc/kdump.conf ซึ่งป้องกันไม่ให้โปรแกรมควบคุมจากการโหลดลงในเคอร์เนล kexec:

    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  4. เพิ่มพารามิเตอร์ตัวเลือกการส่งผ่านพารามิเตอร์ไปยังโมดู ata_piix:

    ตัวเลือก ata_piix prefer_ms_hyperv = 0
  5. กำหนดค่าการหมดเวลาของดิสก์เพื่อให้ จะไม่หยุดการตอบสนอง (แฮงค์):

    disk_timeout 100
  6. หลังจากการแก้ไขที่จำเป็น แฟ้ม /etc/kdump.conf มีลักษณะดังนี้:
    เส้น ทาง/var/ล้ม เหลว
    core_collector makedumpfile - c--ข้อความระดับ 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    ตัวเลือก ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

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 ="
…
}

เซิร์ฟเวอร์องค์กร Linux SUSE (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 ไม่รับประกันไม่ว่าโดยนัยหรือรูปแบบอื่นใด เกี่ยวกับประสิทธิภาพหรือความน่าเชื่อถือของผลิตภัณฑ์เหล่านี้

คุณสมบัติ

หมายเลขบทความ (Article ID): 2858695 - รีวิวครั้งสุดท้าย: 26 มิถุนายน 2556 - Revision: 2.0
ใช้กับ
  • 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
Keywords: 
kbmt KB2858695 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2858695

ให้ข้อเสนอแนะ

 

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