omv安装kvm虚拟windows和istoreos
KVM简介
KVM(Kernel-based Virtual Machine)Linux内核中的一个模块,常用于统称基于Linux内核的虚拟化技术,
它通过与其他组件协同工作,提供了虚拟化的功能,允许在同一物理主机上同时运行多个虚拟机。
KVM虚拟化的组件
- KVM内核模块:一个Linux内核模块,它通过加载到Linux内核中,为虚拟化提供基本支持。这个内核模块包括虚拟CPU、内存管理、设备模拟等功能,允许多个虚拟机在同一物理主机上运行。
- QEMU(Quick Emulator):用户空间的模拟器,与KVM结合使用,为虚拟机提供硬件模拟。KVM负责处理虚拟机的CPU和内存,而QEMU负责模拟其他硬件设备,例如网络适配器、磁盘控制器等。QEMU还提供了用户接口,使得管理员可以通过命令行或图形界面管理虚拟机。
- libvirt:用于管理多种虚拟化技术的工具包,包括KVM。它提供了一个抽象的管理接口,使得管理员可以使用不同的管理工具来配置和监控虚拟机。libvirt支持XML配置文件,这些文件描述了虚拟机的配置和设备信息。
- virt-manager:一个图形用户界面的虚拟机管理工具,基于libvirt。它使得管理员可以方便地创建、配置和监视虚拟机,而无需深入了解命令行工具。
原理及过程
- 启动KVM:就像给计算机装了一个虚拟化的引擎,这个引擎就是KVM。启动KVM就像给计算机装了一个特殊的软件,它会在计算机内核(就是计算机的大脑)里插上一块虚拟化的芯片。
- 创建虚拟机:你可以把虚拟机想象成是一台虚拟的计算机,就像在电脑里开了一个虚拟的窗口。通过一个管理工具(比如virt-manager)告诉KVM,我要创建一个新的虚拟机。
- 分配资源:给虚拟机分配一些“虚拟的”硬件,就像你在游戏里给角色买了一些装备。KVM帮虚拟机分配虚拟的CPU、内存,甚至虚拟的网络和硬盘。
- 硬件支持:KVM利用计算机里的硬件虚拟化功能(例如:Intel VT或AMD-V)
安装OMV-Extras
[start omv-extras.org]
在omv6命令行中执行如下命令:
1 | wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash |
成功执行完成后的提示信息——请在OMV web界面刷新网页
命令执行过程中会从github下载install 脚本和openmediavault-omvextrasorg_latest_all6.deb 安装包,有时因为网络问题无法下载,导致安装失败。
install 脚本下载失败
openmediavault-omvextrasorg 安装包下载失败
两种处理方法:
- 更换网络环境后,重新执行安装命令
- 获取install脚本、openmediavault-omvextrasorg_latest_all6文件上传至omv后手动安装
这里讲解一下方法2
install_免费高速下载|百度网盘-分享无限制 (baidu.com)
openmediavault-omvextrasorg_latest_all6.deb_免费高速下载|百度网盘-分享无限制 (baidu.com)
下载好后使用sftp上传至omv服务器
windows可在cmd中使用sftp 命令行客户端上传,或其他sftp客户端例如winscp 等
使用apt install 安装openmediavault-omvextrasorg 安装包
1 | apt install ./openmediavault-omvextrasorg_latest_all6.deb |
openmediavault-omvextrasorg 安装完成后,就可以在系统中看到omv-extras
勾选Docker repo后,点击保存。此步骤可以理解为向插件库添加了新的可选软件包列表。
安装KVM插件
在系统-插件-中搜索KVM,选中后点击安装按钮
KVM插件安装失败的情况
遇到这种情况,需要在omv-extras中启用向后移植 Enable backports
Unable to install kvm plugin - Plugins - openmediavault
启用向后移植
完成后重新安装KVM插件
完成后,刷新OMV web页面在服务中可以看到KVM功能栏
kvm安装windows10虚拟机
1.创建池
池可以理解为,专供KVM使用的底层文件存储资源池(非严谨理解可以当作KVM的专用文件夹)。
后续使用的ISO镜像、虚拟机磁盘都是放在池中。
创建池
池的类型有很多选择,这里我们使用omv的存储介质,选择路径
存放路径可按需选择,这里我们选择在使用在/opt目录下手动创建的kvm文件夹
池创建好后,默认处于非运行状态。点击状态开始,启用池。
池已启用处于运行状态
2.上传镜像
将系统安装镜像上传至池中,两种方法:
- 使用sftp上传至OMV
- 池目录添加至SMB文件共享,使用共享目录上传
使用sftp上传至OMV,使用windows自带的cmd sftp客户端上传(可参考上文中 安装OMV-Extras部分)
使用第三方 sftp客户端工具:WinSCP,下载地址:Downloading WinSCP-6.1.2-Setup.exe :: WinSCP
WinSCP安装完成后,新建会话SFTP登录OMV
将镜像文件拖拽或拷贝至池的目录
池目录添加至SMB文件共享,使用共享目录上传。可参考DIY NAS OMV6(Opendemiavault)教程(2)共享文件系统配置 - 知乎 (zhihu.com) 此处不再赘述。
上传完成后,可在ISOs中查看到该镜像
3.创建网络
默认存在一个名称为default的nat网络类型
关于网络类型,可以分为两种:
- bridge NAT:OMV上会创建一个网桥,选择该网络的虚拟机会使用该网桥分配的IP
- macvtap:与物理网卡绑定,为虚拟机创建虚拟网卡(MAC地址独立),直接连接至物理网卡所在的网络
两中类型的网络,访问效果是完全不同的:
- bridge NAT的虚机是可以访问OMV主机的,但是外部网络是无法直接访问到该虚机。例如虚机上部署了PT 或影音服务,想在内网访问它的web界面,那就不要用这种模式。
- macvtap由于是直接使用物理网卡的网络,所有外部是可以访问到虚机和上面的服务的,但是需要注意使用mactap网络的虚机跟mactap绑定的物理网卡的网络是隔离的。例如:你的omv只有一个网口,你用该网口创建了macvtap 网络的openwrt虚拟机,想设置omv走openwrt虚拟机网络,这个是不行的,因为隔离无法网络互通。这个需求可以使用其他方案解决,等有机会再聊本文重点在KVM。
这里创建一个macvtap网络,注意创建后要启动网络,这时新网络才能生效和被使用
4.创建卷
卷可以理解为供虚拟机使用的虚拟磁盘,这里以创建一个windows10 虚拟机为例创建一个供其使用的卷。
选择前面创建的池,填写卷名称,创建卷
关于卷大小:
按需填写,建议保守设置。后期偏小可以此web页面扩大,但不支持web操作缩小。一般40G比较适合通用。
关于卷格式:
qcow2:
- 支持写时复制技术,有效利用存储空间。
- 提供内建的快照支持,方便创建和管理虚拟机备份。
- 具备动态调整大小的能力,允许根据需要扩展虚拟磁盘大小。
- 性能较raw格式稍逊,因为涉及一些高级特性和复杂操作。
raw:
- 是一种简单直观的磁盘卷格式,直接映射到磁盘上的数据。
- 通常性能较好,适用于对性能有较高要求的应用场景。
- 是一个静态格式,磁盘空间一旦分配就不能动态调整大小。
- 不天生支持快照功能,适用于一些对数据安全性要求较高的情况。
5.创建虚拟机
创建虚拟机,设置系统、CPU内存、卷、安全镜像、网络
启动完成后,使用VNC客户端连接。进行系统安装
VNC客户端下载:
RealVNC:https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.9.0-Windows.exe
Mobaxterm(free):MobaXterm free Xserver and tabbed SSH client for Window
Mobaxterm VNC客户端连接,后续通过鼠标操作安装windows10系统
kvm安装istore旁路由
家里有台nas,24小时开机,想装个istore虚机做旁路由,让omv走istore的网络。网上搜了很多资料,都没找到合适的教程,特此开贴记录
一、前期环境准备
安装omvextrasorg(略),安装openmediavault-kvm(略)。
这两个教程网上可以找到,不在赘述,有条件的最好在vmware虚机,开个环境安装,可减少安装过程网络方面的问题。
二、第一步,修改omv的网卡(将实体网口改成br0桥接网口)
参考资料:https://wiki.omv-extras.org/doku.php?id=omv7:omv7_plugins:kvm
进入网络>常规>接口,记录好当前网卡的配置,主要是网卡名,ip信息,然后删除当前网卡,不要点应用;
添加网卡,选择桥接,接口设备选择刚才那个网卡名,ip配置和原来一样,然后点应用,稍等片刻就可以重新连接web页面。
eno1
: BIOS 内建的网卡
ens1
: BIOS 内建的 PCI-E 网卡
enp2s0
: PCI-E 独立网卡,可能因此会有多个网卡接口,因此会有s0,s1…的编号
eth0
: 当上述规则不适用时,采用传统命名
三、kvm配置
在omv中创建一个文件夹,存放kvm相关数据;
进入服务>kvm>池,点添加,名称随便起,类型选择路径,路径选择刚才创建的文件夹,点击添加,应用
四、安装istoreos
- 下载istoreos系统,下载地址:https://fw.koolcenter.com/iStoreOS/x86_64/ 选择最新的就行;
- windows下解压,得到img格式文件,上传到kvm的文件夹下,omv中kvm下的卷会自动识别到;
(可选,我操作了)将img转换为qcow2,命令行下执行
1 | qemu-img convert -f raw your_image.img -O qcow2 your_image.qcow2 |
,也可以在卷页面点击转换为qcow2。
- 进入服务>kvm>vms,点击添加,名称随便起,cpu和内存自定义,我设置的1c+1g,够用了,存储卷选择刚才的img或qcow2文件,网络型号选择桥,桥接选择br0,点保存;
- 选择创建的虚机,点击状态,选择开始;
- 使用vnc客户端,连接虚机控制台,ip填omv的ip,端口5900;
- 进入终端页面,参考istore官网配置:https://doc.linkease.com/zh/guide/istoreos/ 配置旁路由。
五、配置虚拟网卡
服务—KVM—网络,添加macvtap网络,起个名称,Network adapter 选 br0
服务—KVM—VMs,网络,添加网络,型号选virtio,网络选上面的名称。
网络接口
要配置虚拟机,系统上必须有一个可以分配给该虚拟机的网络接口。为此,我们有不同的选择,具体取决于我们需要虚拟机在启动和运行后执行的操作。基本上,不同方法之间的区别在于我们是否希望客户虚拟机能够访问主机的共享以及我们是否希望它位于同一网络上。下表说明了这些差异。
访问主机资源 与服务器 在同一局域网内的IP 虚拟接口 默认网络 是的 不 Macvtap 桥 不 是的 OMV 上的 br0 桥接接口 是的 是的 物理接口 系统上有单独的物理接口 是的 是的
六、修改omv网关
控制台—开始—修改VNC主机端口,默认8081改成其他,就可以用自带的控制台进VNC
或者使用VNC客户端连接
VNC客户端下载:
RealVNC:https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.9.0-Windows.exe
Mobaxterm(free):MobaXterm free Xserver and tabbed SSH client for Window
在命令行ping istore的ip,没问题后,将omv网关改为istore的ip,测试网络访问是否正常,完毕。
iStoreOS提供了一个方便的命令行工具快速更改IP,输入quickstart回车,方向键选择Change LAN IP,改成192.168.X.X,子网掩码255.255.255.0,然后使用reboot命令重启虚拟机或者使用命令**/etc/init.d/network restart重启网络。当然你也可以用修改配置文件的方式修改ip地址。vi /etc/config/network**,然后重启虚拟机或者重启网络。
istoreos 账号:root,密码:password