Hyper-V Network ตอนที่ 2

วันนี้อยู่ในสถานะการปัญหาบน Virtual Network คือ เครื่องมี Network
onboard จำนวน 2
port และอยู่บน PCI 1 card มี 1 port เป้าหมายเราจะทำ Network Team แล้วใช้ Hyper-V Manager สร้าง Virtual Network ให้ผูกกับ Team ที่สร้างขึ้นมาใหม่ ผลที่ออกมาคือ Hyper-V Manager แสดงข้อความ “Error Applying New Virtual Network Changes” และ “Cannot bind to (ชื่อ virtual network) because it is already bound to another virtual network” ปัญหานี้ Microsoft ได้ออกวิธีแก้ไขตาม KB 2486812

จากที่อธิบายเบื้องต้นเกี่ยวกับ Hyper-V Network ในตอนที่ 1  
ว่า ขั้นตอนการสร้าง Virtual Network นั้น Hyper-V จะแปลงโฉม Physical Network Card ไปเป็น Virtual Switch ถ้าเราดูที่ Property ของ Card จะมีรายการชื่อ Microsoft Virtual Network Switch Protocol หรือเรียกย่อว่า vms_pp ผมตั้งสมมติฐานไว้เลยว่า ถ้า Network port ไหนถูกใช้งานเป็น Virtual Switch ไปแล้วจะใช้ซ้ำไม่ได้ ซึ่งเราอาจสงสัยว่าก็ทำงานผ่าน GUI มันผิดได้อย่างไร อันนี้เป็นปัญหาที่ Microsoft ต้องไปแก้ที่ต้นเหตุหรืออาจมี่ข่าวดีใน Hyper-V 3 ก็ได้

วิธีการแก้ไขต้องใช้ Tools nvspbind เราสามารถ
download ได้ที่นี่ ขั้นตอนการแก้ไขให้ทำดังนี้

  1. จัดทำทะเบียน Network ให้เรียบร้อย เพื่อป้องกันความผิดพลาดซ้ำซ้อน ใช้ตัวอย่างด้านล่าง

Physical Port

ใช้งานอะไร

Network Connection Name

MAC

Friendly Name

On-Board 1

Management

Local Area Connection

xx-xx-xx-xx-xx-xx

HP NC382i DP Multifunction Gigabit Server Adapter #1

On-Board 2

Application (Team)

Local Area Connection 2

xx-xx-xx-xx-xx-xx

HP NC382i DP Multifunction Gigabit Server Adapter #2

PCI-A

Application (Team)

Local Area Connection 3

xx-xx-xx-xx-xx-xx

HP NC360T PCIe DP Gigabit Server Adapter #1

Team2

Team

Local Area Connection 4

xx-xx-xx-xx-xx-xx

 

 

 

  1. ใช้คำสั่ง c:\>nvspbind ผลเป็นตามด้านล่างสังเกตุตรง Highlight ตัวสีแดง

     

Hyper-V Network VSP Bind Application 6.1.7725.0.

Copyright (c) Microsoft Corporation. All rights reserved.

Adapters:

{2D0E05DE-E2DA-41D4-A81F-F4178AE39EBF}

“cq_cpqteammp”

“Team2”    <- Friendly Name

“Local Area Connection 4”:

disabled: ms_netbios (NetBIOS Interface)

disabled: ms_server (File and Printer Sharing for Microsoft Networks)

disabled: ms_pacer (QoS Packet Scheduler)

disabled: ms_msclient (Client for Microsoft Networks)

disabled: ms_lltdio (Link-Layer Topology Discovery Mapper I/O Driver)

disabled: ms_rspndr (Link-Layer Topology Discovery Responder)

disabled: ms_tcpip6 (Internet Protocol Version 6 (TCP/IPv6))

disabled: ms_netbt (WINS Client(TCP/IP) Protocol)

disabled: ms_smb (Microsoft NetbiosSmb)

disabled: ms_tcpip (Internet Protocol Version 4 (TCP/IPv4))

disabled: cq_cpqteam (HP Network Configuration Utility)


enabled: vms_pp (Microsoft Virtual Network Switch Protocol)

<-
มีปัญหาตรงนี้จุดที่ 1

 

{CAFD2418-32EF-4F64-B4E8-A3B155595587}

“b06bdrv\l2nd&pci_163914e4”

“HP NC382i DP Multifunction Gigabit Server Adapter #2”

“Brd-2”:

disabled: ms_netbios (NetBIOS Interface)

disabled: ms_server (File and Printer Sharing for Microsoft Networks)

disabled: ms_pacer (QoS Packet Scheduler)

disabled: ms_msclient (Client for Microsoft Networks)

disabled: ms_lltdio (Link-Layer Topology Discovery Mapper I/O Driver)

disabled: ms_rspndr (Link-Layer Topology Discovery Responder)

disabled: ms_tcpip6 (Internet Protocol Version 6 (TCP/IPv6))

disabled: ms_netbt (WINS Client(TCP/IP) Protocol)

disabled: ms_smb (Microsoft NetbiosSmb)

disabled: ms_tcpip (Internet Protocol Version 4 (TCP/IPv4))

enabled: cq_cpqteam (HP Network Configuration Utility)


disabled: vms_pp (Microsoft Virtual Network Switch Protocol)

 

{7005F7AD-0DB5-47F2-A302-FAE517BE56D0}

“pci\ven_8086&dev_105e”

“HP NC360T PCIe DP Gigabit Server Adapter”    <- Friendly Name

“Local Area Connection”:

disabled: ms_netbios (NetBIOS Interface)

disabled: ms_server (File and Printer Sharing for Microsoft Networks)

disabled: ms_pacer (QoS Packet Scheduler)

disabled: ms_msclient (Client for Microsoft Networks)

disabled: ms_lltdio (Link-Layer Topology Discovery Mapper I/O Driver)

disabled: ms_rspndr (Link-Layer Topology Discovery Responder)

disabled: ms_tcpip6 (Internet Protocol Version 6 (TCP/IPv6))

disabled: ms_netbt (WINS Client(TCP/IP) Protocol)

disabled: ms_smb (Microsoft NetbiosSmb)

disabled: ms_tcpip (Internet Protocol Version 4 (TCP/IPv4))

disabled: cq_cpqteam (HP Network Configuration Utility)


enabled: vms_pp (Microsoft Virtual Network Switch Protocol)
<-
มีปัญหาตรงนี้จุดที่ 2

cleaning up…finished (0)

 

  1. ใช้คำสั่ง nvspbind /u “friend name” (ดูเขียวๆ จาก result ที่ capture มาด้านบน) ด้านล่างเพื่อ disable
    Microsoft virtual network switch

     

    c:\>nvspbind /u “HP NC360T PCIe DP Gigabit Server Adapter”

    c:\>nvspbind /u “Team2”

 

เมื่อแก้เสร็จตาม 1-3 การสร้าง Virtual Network ก็จะทำได้

 

สรุป

การทำงานกับ Hyper-V เราควรมีการวางแผนและเตรียมทุกอย่างก่อนลงมือทำ อย่างปัญหาในตอนนี้เกิดจากมี NIC อันหนึ่งเคยถูกใช้เป็น Virtual Network แล้วต่อมาภายหลังไปสร้าง Team แล้วรวม NIC อันนี้ไปด้วยจึงมีปัญหา

 

Reference

  1. Knowledge base ของ Microsoft ที่แสดงวิธีแก้ไขปัญหา
    http://support.microsoft.com/kb/2486812 \
  2. เครื่องมือ nvspbind ที่ใช้แก้ปัญหา

Hyper-V Network ตอนที่ 1

การใช้งาน Network ใน Hyper-V ควรมึความเข้าใจและมีการวางแผนล่วงหน้า เข้าเรื่องเลยดีกว่าคือสมมุติว่า เรากำลังจะสร้าง virtual server ขึ้นมา 2 เครื่อง โดยกำหนดวัตถุประสงค์ดั้งนี้

  1. เครื่องแรกเอาไว้ทดสอบงานไม่จำเป็นต้องไปคุยกับเครื่องใดๆ (เครื่อง VM guest ต้องมี virtual network เพื่อคุยกับ Host)
  2. เครื่องที่สอง เอาไว้ run งานที่ต้องติดต่อกับเครื่องอื่นในอยู่ในระบบ LAN ของบริษัท จะใช้หมายเลข IP 10.0.0.2

การ setup network ใน Hyper-V นั้น เรียกว่า connection type แบ่งออกเป็น 3 แบบ ตามรูปที่ 1 คือ

  1. External หมายถึง network ที่เชื่อมกับกับระบบ LAN ของบริษัท ต้องมีสาย LAN และ Network switch ของจริง
  2. Internal only หมายถึง การสร้าง virtual network ขึ้นมาในเครื่อง Hyper-V แล้วเครื่องที่อยู่ใน physical เดียวกับคุยกันเองได้ เครื่อง Root และ virtual machine คุยกันเองได้
    รูปแบบนี้ไม่จำเป็นต้องมีสาย LAN มี notebook ตัวเดียวก็ทดสอบงานจำลองการคุยกับ server ได้
  3. Private virtual machine network อันนี้มีความหมายใกล้เคียง internal only แต่อันนี้เป็นกำหนดให้ virtual machine คุยกันเอง ห้าม root เข้าไปเกี่ยว

    มีเรื่องของ Network speed ที่ควรรู้คือ virtual switch มี speed 10 gigabit ส่วนการต่อไป external ก็ได้ speed ตามอุปกรณ์จริงๆ ของบริษัท


รูปที่ 1: Hyper-V virtual network

ในเครื่อง Windows Server ที่ไม่ได้เปิดใช้ Hyper-V จะมีหน้าตาเหมือนภาพที่ 2 – A คือมีการใช้งาน Network card ตรงๆ เมื่อเราได้ Enable role Hyper-V เครื่องจะแปลงร่างเป็นรูปที่ 2 –B คือ Windows ได้ลง Kernel ของ Hyper-V บน hard disk แล้วย้าย Windows ที่เราเคยลงไว้ไปเป็น virtual machine ที่มีความพิเศษกว่าตัวอื่นให้ชื่อเรียกว่า Root ทำให้เมื่อเวลาเรา power-on เครื่องจะ boot ตัว kernel จาก hyper-v ขึ้นมาก่อนแล้วจึง root ตามลำดับ แต่ในการใช้งานจริงเราจะไม่เห็นความแตกต่างในส่วนนี้ และในรูป 2-B เมื่อเราสร้าง virtual machine ของเราขึ้นมา มันต้องไปอาศัย root ในการติดต่อกับ network

Virtual Switch ของ Hyper-V

ใน Hyper-V การใช้งาน Network จะกระทำผ่าน virtual switch อยู่ใน Hypervisor จากที่กล่าวไปตั้งแต่ต้นว่า Connection มี 3 แบบ เมื่อเราสร้าง Network Connection ทุกครั้ง Hyper-V ก็จะสร้าง virtual switch ขึ้นมาให้เราอัตโนมัติ รวมถึง root เองก็ใช้ virtual switch ด้วยตามรูปที่ 2-C


รูปที่ 2: Virtual Network – 1

ต่อไปนี้เป็นเหตุการตัวอย่างของการสร้าง setup network ใน Hyper-V ขออธิบายขั้นตอนด้วยรูปภาพเพื่ออาจนำไปเป็นตัวอย่างได้

  • เมื่อเรา Enable Hyper-V role หน้าตาของ Network Connection ใน Root จะมีเพียง 1
    network card เหมือนเครื่อง PC ธรรมดา


รูปที่ 3 – Network Connection

  • เมื่อเปิดดู Property ของ Card จะพบสิ่งที่ Hyper-V ใส่มาใน card ของเรา คือ Microsoft Virtual Network Switch Protocol ณ จุดนี้ เราสามารถแก้ไขหมายเลข IP Address ของเครื่องได้ เหมือนการใช้งานตามปกติ

    คำเตือน ห้ามไป check หรือ uncheck
    Microsoft Virtual Network Switch Protocol เอง เพราะอาจทำให้ระบบสับสนและใช้งานไม่ได้


รูปที่ 4 – Root NIC property

  • เมื่อจะสร้าง Virtual machine ขึ้นมา จะต้องสร้าง Network เตรียมไว้ก่อน โดยเลือก Connection Type ให้ตรงกับงาน ด้านล่างตรงช่องสีแดง check box
    – Allow management operating system to share this network adapter เป็นเรื่องของความปลอดภัยและประสิทธิภาพ ถ้าเรามี network card บน physical หลายๆ ใบ เราเลือกกำหนดว่าอันไหนใช้สำหรับ root เท่านั้น แต่ถ้าเครื่องมีเพียง 1 physical network port ก็ต้อง check ไว้เสมอ


รูปที่ 5
Hyper-V Virtual Network Manager

  • เมื่อสร้าง Virtual network หน้าตาของ Network Connection ที่ Root ก็จะเป็นแบบนี้
    ให้สังเกตว่าจากตอนที่เราสร้าง virtual network ได้มีการกำหนด Name ตอนนี้ Name ได้กลายเป็นยี่ห้อของ Network card ไปแล้ว


รูปที่ 6 เมื่อสร้าง Virtual Network

  • ถ้าเราไปดู Property ของ physical network
    card อีกครั้ง ตอนนี้มันได้แปลงร่างเป็น virtual switch ไปเรียบร้อยแล้ว คำเตือน ห้ามแก้ไข setup ในหน้านี้


  • การกำหนด IP ให้กับ Network card ทั้งที่เป็น External หรือ Internal ก็ทำได้เหมือนปกติ และเหมือนเดิม ห้ามแก้ไขเรื่อง virtual switch


การสร้าง Network สำหรับเครื่องที่ 1 และเครื่องที่ 2

  • สร้าง Internal Network
  1. เปิดหน้าที่ Hyper-V Manager เพื่อสร้าง Virtual Network – Internal
  2. สร้างโดยเลือก New Virtual Network จากด้านซ้าย
  3. ให้ชื่อว่า NIC_Internal
    (อาจเป็นชื่ออื่นก็ได้แต่อันนี้ก็จำง่ายดี)
  4. Connection type ให้เลือกเป็น Internal Only
  • สร้าง External Network
  • เปิดหน้าที่ Hyper-V Manager เพื่อสร้าง Virtual Network – Internal
  • สร้างโดยเลือก New Virtual Network จากด้านซ้าย
  • ให้ชื่อว่า NIC_External
  • Connection type ให้เลือกเป็น External และเลือก card ที่ต้องการ
    ถ้ามี card เดียวก็ต้องเลือก Allow management operating system to share this network adapter ด้วย

        เมื่อสร้างเสร็จก็จะมีหน้าตาคล้ายรูปที่ 5
    Virtual Network Manager

  • การกำหนด Network Card ให้กับ virtual machine ทำได้ 2 แบบคือ

    แบบที่ 1
    เลือกตอนสร้างเครื่อง



    แบบที่ 2 ถ้าสร้างไปแล้วอยากแก้ไขก็เลือกได้ตามนี้


  • ด้านล่างเป็นภาพจำลองของการสร้าง Network ที่กล่าวไว้ตั้งแต่ตอนเริ่ม