玩转神龙服务器的Hyper-V虚拟化网络之 配置直通网卡

简介: 在上一篇 **玩转神龙服务器的Hyper-V虚拟化网络之 配置NAT网络** 的文章中我们使用NAT的方式使Hyper-V VM可以访问公网。在这一篇里,我们会使用直通网卡的特性来使VM有对外提供服务的功能。 ## 前置条件 神龙服务器,一块主网卡。 另外,需要创建额外的辅助网卡,并创建EIP绑定到此辅助网卡。需要创建多少VM,就要创建多少辅助网卡和EIP。 ![image.p

在上一篇 玩转神龙服务器的Hyper-V虚拟化网络之 配置NAT网络 的文章中我们使用NAT的方式使Hyper-V VM可以访问公网。在这一篇里,我们会使用直通网卡的特性来使VM有对外提供服务的功能。

前置条件

神龙服务器,一块主网卡。
另外,需要创建额外的辅助网卡,并创建EIP绑定到此辅助网卡。需要创建多少VM,就要创建多少辅助网卡和EIP。

image.png

image.png

安装Hyper-V

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

运行完后会自动重启两次。

创建虚拟机

这里我预先Copy了阿里云的镜像VHD文件win2016_64_dtc_1607_en-us_40G_noxen_20180801.vhd放在了D盘。我会为每一个虚拟机新建一个基于此VHD的差异磁盘。

$PathVHD = "D:\win2016_64_dtc_1607_en-us_40G_noxen_20180801.vhd"
$VMName = "VM1"
$HyperVRootPath = "D:\Hyper-V"
$VMMeorySize = 4GB
$VMVHD = "${HyperVRootPath}\${VMName}\Virtual Hard Disks\${VMName}.vhd"

New-VHD -ParentPath $PathVHD -Path $VMVHD -Differencing
New-VM -Name $VMName -MemoryStartupBytes $VMMeorySize -BootDevice VHD -VHDPath $VMVHD -Path $HyperVRootPath -Generation 1

在Hyper-V Server上直通网卡到VM

  • 假定需要给VM使用的网卡的IP是192.168.88.20, 使用以下Powershell禁用此网卡,在神龙服务器,此网卡会消失并在设备管理器里不可见。

    $AttachNicIP = "192.168.88.20" # 替换为真实IP
    
    $pnpDeviceID = $null
    Get-WmiObject Win32_NetworkAdapter  | % {
        $config = $_.GetRelated('Win32_NetworkAdapterConfiguration') 
        $IP = $config | Select-Object -expand IPAddress
        if($IP -like "*${AttachNicIP}*")
        {
        $pnpDeviceID = $_.PNPDeviceID
        }
    }
    if ($pnpDeviceID -eq $null) {throw "no device matches."}
    
    $dev = (Get-PnpDevice -PresentOnly).Where{ $_.PNPDeviceID -like $pnpDeviceID }
    
    Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false
    $locationPath = (Get-PnpDeviceProperty -KeyName DEVPKEY_Device_LocationPaths -InstanceId $dev.InstanceId).Data[0]
    Dismount-VmHostAssignableDevice -LocationPath $locationPath -Force –Verbose
  • 在分配直通网卡给VM时,VM要满足两个条件,一是VM的 自动停止操作关闭电源。二是如果VM使用了动态内存,最小内存和启动内存要一致(我们这里用的是固定大小内存)。在我们前一步创建的VM,第二个条件已经满足。现在配置第一个条件并添加网卡。

    $VM = Get-VM -Name $VMName
    Set-VM -VM $VM -AutomaticStopAction TurnOff
    Add-VMAssignableDevice -VM $vm -LocationPath $locationPath –Verbose
    Start-VM -Name $VMName

image.png

为VM安装网卡驱动

如果镜像中已经有最新的网卡设备,这时我们应该可以通过EIP访问VM。
没有带最新的网卡驱动,虚拟机网卡设备可能不能工作。这时需要给虚拟机安装网卡驱动。
驱动位于Hyper-V Server的 "C:ProgramDataaliyunvminitkvmwin10amd64"里。

  • 将网卡驱动Copy到Guest VM里。方法有很多,你可以使用你所想到的方法。这里提供一个创建VHD,把驱动放进去,然后Attach 到VM里。

    $DriverVHD = "${evn:Temp}\DriverData.vhdx"
    New-VHD -Path $DriverVHD -Dynamic -Size 1GB
    Mount-VHD -Path $DriverVHD
    $vhdobj = (Get-DiskImage -ImagePath $DriverVHD)
    
    $DataDrive  = (Get-Disk -Number $vhdobj.Number) | Initialize-Disk -PartitionStyle MBR -PassThru |  New-Partition -UseMaximumSize -AssignDriveLetter | Format-Volume -Confirm:$false -FileSystem NTFS -Force 
    
    $DestPath = "{0}:\Drivers" -f $DataDrive.DriveLetter
    Copy-Item -Path "C:\ProgramData\aliyun\vminit\kvm\win10\amd64" -Filter net*.* -Destination $DestPath –Recurse
    
    Dismount-VHD -Path $DriverVHD
    
    Add-VMHardDiskDrive -VMName $VMName -Path $DriverVHD -ControllerType SCSI
  • 在VM里安装驱动。在命令行或PowerShell里执行以下命令。这里的D盘是我们上一步Attach的虚拟磁盘。

    pnputil -i -a D:\drivers\*.inf

当然,这个时候可以做一些清理工作像删除临时磁盘等,这里就不多说了。

到此,大功告成。可以通过EIP RDP到这个VM里了。感觉是不是多了一台ECS实例?当然你还可以创建很多台。。。

参考:

https://blogs.technet.microsoft.com/heyscriptingguy/2016/07/14/passing-through-devices-to-hyper-v-vms-by-using-discrete-device-assignment/

相关文章
|
3月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
117 2
|
1月前
|
缓存 负载均衡 监控
HTTP代理服务器在网络安全中的重要性
随着科技和互联网的发展,HTTP代理IP中的代理服务器在企业业务中扮演重要角色。其主要作用包括:保护用户信息、访问控制、缓存内容、负载均衡、日志记录和协议转换,从而在网络管理、性能优化和安全性方面发挥关键作用。
74 2
|
2月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
74 5
|
3月前
|
存储 安全 数据可视化
提升网络安全防御有效性,服务器DDoS防御软件解读
提升网络安全防御有效性,服务器DDoS防御软件解读
88 1
提升网络安全防御有效性,服务器DDoS防御软件解读
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
1115 2
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
77 17
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
60 10
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
68 10
|
1月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。