🍀简介

Hyper-V是微软开发的一种虚拟化技术,是Windows操作系统中的一个组件,允许在一台物理计算机上创建和运行多个虚拟机。每个虚拟机都可以运行其自己的操作系统和应用程序,就像在独立的硬件上运行一样。

Hyper-V主要特点:

  1. 虚拟化硬件:Hyper-V为每个虚拟机提供虚拟化的硬件资源,包括处理器、内存、硬盘和网络适配器。

  2. 快照和恢复:Hyper-V支持创建虚拟机的快照(检查点),用于备份和恢复虚拟机的状态。

  3. 实时迁移:Hyper-V支持在物理主机之间实时迁移虚拟机,无需中断服务。

  4. 集群支持:Hyper-V支持创建虚拟机集群,以提高可用性和可扩展性。

  5. 性能优化:Hyper-V使用硬件辅助虚拟化技术,如Intel VT-x和AMD-V,以提高虚拟机的性能。

  6. 多操作系统支持:Hyper-V支持多种操作系统作为来宾操作系统,包括Windows、Linux和其他Unix-like系统。

Hyper-V广泛应用于数据中心、云计算环境和开发测试场景中,可以帮助企业提高硬件利用率、简化管理和提高业务连续性。

🍀前置操作(BIOS)

在使用Hyper-V之前,需要在BIOS中开启虚拟化技术支持。

重启电脑,在开机过程中,通常是F2、F10、Delete或Esc,建议优先使用Delete,一般会直接进入BIOS界面!

在BIOS设置界面中,用方向键切换到Advanced(高级)或者 Configuration(配置)菜单下。

因为制造商和BIOS版本的不同,需要找到下面与你BIOS相关的选项,:

  • Intel VT-x 或者 Intel Virtualization Technology (VT)
  • AMD-V 或者 SVM (Secure Virtual Machine)
  • Virtualization Technology (VT-x)
  • Vanderpool Technology (for older Intel systems)

找到后按回车键,然后用方向键将设置改为 "Enabled"(启用)状态。

按下F10键保存后重启电脑!

 🍀1、打开控制面板

找到程序-启用或关闭Windows功能-勾选Hyper-V
顺便把Telnet客户端选项也勾选上
点击确定后等进度条走完,点击重启电脑

🍀2、找到Hyper-V管理器

右键开始菜单,选择搜索功能

🍀3、系统选择

这里有两种选择,一种是选择在线系统(选择后会当场下载系统)、一种是选择本地镜像

🍀4、虚拟机创建

本文使用本地镜像安装

开始创建使用本地镜像的虚拟机

这里要选择第一代,因为我的镜像年份不是最新的

根据需要配置其他设置,如内存、网络等

选择本地镜像文件

向导流程走完开始启动虚拟机,双击下面的虚拟机名称ubuntu01会打开虚拟机界面,点击启动

系统安装步骤这里不做教学,自行搜索搞定

系统安装完成后只能宿主机访问当前的虚拟机,想让宿主机之外的局域网机器也能访问,这里要做一下端口映射

🍀5、端口映射

在宿主机打开命令窗口使用以下命令配置端口映射

# 查询端口映射
netsh interface portproxy show v4tov4

# 查询指定IP端口映射
netsh interface portproxy show v4tov4|findstr "172.28.250.72"

# 增加一个端口映射
例:
netsh interface portproxy add v4tov4 listenport=宿主机端口 listenaddress=宿主机IP connectaddress=虚拟机IP connectport=虚拟机端口

实例:
netsh interface portproxy add v4tov4 listenport=8022 listenaddress=172.16.10.236 connectaddress=172.28.250.72 connectport=22

# 删除一个端口映射
例:
netsh interface portproxy delete v4tov4 listenaddress=宿主机IP listenport=宿主机端口

实例:
netsh interface portproxy delete v4tov4  listenaddress=172.16.10.236 listenport=8022

端口映射配置搞定后,可以在局域网其他机器上使用cmd telnet虚拟机端口运行状况:

例:telnet 宿主机IP 宿主机端口
实例: telnet 172.16.10.236 8022

如果能通,那么现在就可以使用172.16.10.236 8022来远程登录新建的虚拟机了!

🍀6、检查点(快照)

Hyper-V里的创建检查点就是创建快照的意思。

检查点功能允许管理员捕捉虚拟机在一个特定时间点的完整状态,包括系统文件、应用程序数据和内存状态。

这相当于为虚拟机拍摄一张快照,可以在以后的时间点恢复或回滚到该状态。

在早期的Hyper-V版本中,这个功能被称为“虚拟机快照”,从Windows Server 2012 R2开始,微软将其更名为“检查点”。

🍀7、克隆虚拟机

🍀方法一:导入/导出

选择虚拟机-选择检查点-导出

导出到指定文件夹

再点击hyper-v右侧的新建,继续走一遍新建虚拟机流程,在连接虚拟硬盘菜单找到刚刚导出的ubuntu01的目录(\ubuntu01\Virtual Hard Disks\ubuntu01.vhdx),选择ubuntu01.vhdx,继续下一步,完成后即可获得一个克隆后的新虚拟机

注意:在克隆虚拟机后,可能需要更新网络设置、计算机名和SID以避免与源虚拟机或网络中的其他计算机产生冲突。此外,如果源虚拟机正在运行特定服务或应用,这些服务或应用可能需要进行额外的配置或授权才能在克隆的虚拟机上正常工作。

🍀方法二:复制VHD文件并创建新的虚拟机

呃!?!

重复 “方法一” ...

🍀8、虚拟交换机问题

🍒问题:重启宿主机虚拟机没网了

在使用hyper-v两天后发现了一个问题,vEthernet (Default Switch)网卡在每次宿主机重启后内部的IP都会更新,这样就导致我在虚拟机里面设置的固定IP完全成了摆设!

解释:如果你的虚拟机仅使用了vEthernet (Default Switch)并设置了固定IP,那么重启宿主机会发现虚拟机没有网络了!

这是因为vEthernet (Default Switch)是设计为自动获取IP地址的,不支持直接设置固定的IP地址(即使你手动修改了IP,在重启后仍然会变化)。这是因为Default Switch是与主机系统的网络连接共享的,其IP地址和网络配置由主机系统的网络设置决定。

🍒解决办法:

🍉hyper-v设置

创建一个新的内部虚拟交换机

配置自定义IP地址

回到hyper-v管理器界面,把虚拟机关机,关机后选择虚拟机,选择虚拟机的设置,添加硬件,添加网络适配器,找到刚刚创建的虚拟交换机,添加进去。

原来的vEthernet (Default Switch)虚拟交换机不用拿掉!

保存后启动虚拟机,进入虚拟机设置IP

🍉虚拟机设置

这里进入虚拟机网卡目录,把网卡文件ifcfg-eth0复制一份为ifcfg-eth1

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-eth1
🪭ifcfg-eth0设置

修改ifcfg-eth0文件为以下内容,这个文件对应vEthernet (Default Switch)虚拟交换机

这里设置自动获取IP(dhcp)

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=d29bbc23-b6b7-5598-befc-6fb29fbc4156
DEVICE=eth0
ONBOOT=yes
🪭ifcfg-eth1设置

修改ifcfg-eth1文件为以下内容,这个文件对应新建的虚拟交换机

这里设置静态IP模式 BOOTPROTO=static

重要点:UUID要删除掉或者注释掉,以免和eth0冲突

下面设置里的网关项 GATEWAY=192.168.48.1 这个IP是上面新建的虚拟交换机的IP地址,这块别设置错了,否则无法联网

注意将下面的eth0修改为eth1,ONBOOT=yes

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth1
# UUID=d29bbc23-b6b7-5598-befc-6fb29fbc4156
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.48.51
NETMASK=255.255.240.0
NETWORK=192.168.48.0
GATEWAY=192.168.48.1
DNS1=8.8.8.8
DNS2=144.144.144.144

重启虚拟机网络

systemctl restart network

ping下百度看看能不能通,可以通就说明配置好了!

🍀9、使用命令创建虚拟交换机

创建完成后在【控制面板\网络和 Internet\网络连接】查看是否创建成功

#创建虚拟交换机NAT-VM
New-VMSwitch -SwitchName "NAT-VM" -SwitchType Internal   
#获取接口索引
Get-NetAdapter  
#网桥配置ip,指定接口索引,这里6就是前面获取到的索引
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 6   
#创建nat网络 
New-NetNat -Name NAT-VM -InternalIPInterfaceAddressPrefix 192.168.0.0/24  

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐