9

在fnOS上安装 KVM 虚拟化,并使用Cockpit网页管理虚拟机

发表于:2024-9-20 10:44:34 虚拟机(敬请期待) 5537
本帖最后由 kggzs 于 2024-9-20 11:00 编辑
【fnOS飞牛NAS部署KVM虚拟化,并实现在Web界面管理虚拟机,不影响飞牛系统更新。打造拥有虚拟机功能的完美NAS,Debian虚拟化KVM部署OpenWrt】
视频教程:https://www.bilibili.com/video/B ... 00471323001df0dd15f
文档说明
1. 安装 KVM虚拟化组件
安装 KVM 及相关工具软件:
  1. sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
复制代码
如果服务正在运行,KVM 安装成功。

2. 安装 Cockpit管理工具
启动 Cockpit 服务:
  1. sudo systemctl start cockpit
复制代码
使用您的fnOS用户名和密码登录,就可以管理服务器和虚拟机了。

3.关闭Apparmor对Libvirt安全限制
执行完成后reboot重启机器。

4.创建Bridge网络,使虚拟机通过bridge0桥接到物理网络
在Cockpit Web管理界面进行操作(这一步需先创建虚拟机存储池)

6.解决虚拟机网桥不通的问题
1. 允许 bridge0 网桥的流量,在 filter 表的 FORWARD 链中添加规则,以允许通过 bridge0 网桥的流量,这样可以确保来自虚拟机的流量可以通过网桥转发到其他主机:
  1. nft add rule ip filter FORWARD iifname "bridge0" accept
  2. nft add rule ip filter FORWARD oifname "bridge0" accept
复制代码
3.确保 nftables 服务在启动时加载配置:
  1. sudo systemctl enable nftables
复制代码
7.解决虚拟机开机无法自动启动的问题
编辑libvirtd.service文件:
  1. sudo nano /lib/systemd/system/libvirtd.service
复制代码
修改为改为:
  1. ExecStart=/bin/bash -c 'while [ ! -d /vol1/1000/vmdisk ]; do sleep 5; done; /usr/sbin/libvirtd $LIBVIRTD_ARGS'
复制代码
至此,教程结束,虚拟机一切功能正常,fnOS更新不会影响虚拟机的使用,虚拟机的磁盘文件在飞牛的存储池内,也能保证虚拟机数据的安全性。

其他功能(可选)其他1:调整虚拟机关机超时时间(可选)
可以修改 /etc/default/libvirt-guests文件中的相关设置,调整关机超时时间减少等待,配置文件也可以控制虚拟机关机的相关动作,默认的关机时间为300s,即5分钟:
根据自己情况修改,修改完成后,重新启动 libvirt 服务生效:
  1. sudo systemctl restart libvirtd
复制代码
其他2:虚拟机的快照功能(可选)
1.放行bridge0流量:
  1. sudo iptables -A FORWARD -i bridge0 -j ACCEPT
  2. sudo iptables -A FORWARD -o bridge0 -j ACCEPT
复制代码
虚拟机创建好以后,配置文件存放在/etc/libvirt/qemu/ 路径下
可以导入虚拟机的配置文件,快速恢复虚拟机。
重要数据应该存放在带有效验恢复能力的RAID1 RAID5等阵列中,加以保护。

注意事项
  • 按上面做法,在系统盘损坏或者系统损坏重装后,至少不会丢失存储空间的数据。
  • 此操作需要具备一定的Linux和网络基础知识,不建议新手对fnOS底层进行修改操作。
  • 虚拟机内不建议存放重要数据,以免虚拟文件损坏导致数据丢失。
  • 无论如何,重要的数据使用冷备份、网盘备份等多重备份才能确保其安全性。
  • 补充说明:
  • 1、操作前请确认自己希望使用fnOS做底层,并且希望使用虚拟机功能,否则视频将没有意义。
  • 2、fnOS的系统盘建议使用独立的硬盘,不要在系统盘上创建存储空间,当系统盘损坏格式化或者系统重装时,至少不会丢失存储空间目录中的用户数据。
  • 3、存储空间建议使用具有效验恢复能力的RAID1 RAID5等阵列方式,重要数据同时做好冷备份和多重备份。
  • 4、fnOS仍在测试阶段,请勿存放重要数据,有朋友出现全部数据丢失的情况。
  • 5、新手不建议对fnOS的Debian底层进行修改,需要一定的Linux基础和网络基础知识。
  • 6、虚拟机创建好以后可以将配置文件备份一下,有虚拟机配置文件和虚拟磁盘文件,在系统重装后可以快速恢复虚拟机。
  • 7、重度虚拟机用户,需要检查确保虚拟机Balloon驱动正常,并安装GA代理软件。以实现更好的虚拟机体验,更好的动态内存分配和内存回收利用,让fnOS拥有更多的可用内存。win系统guest agent软件在virtio驱动包里,op系统可以opkg安装qemu-ga软件包。
收藏
送赞 9
分享

发表回复

评论列表(24)

感谢分享,已加精
2024-9-21 20:30:02 回复
希望飞牛后续能将该功能集成到系统界面  详情 回复
2024-10-14 21:46
还不错,视频前两天好像看过~知识眼前飘过不入脑··
2024-9-20 16:21:19 回复
厉害的,感谢大佬分享,看啥时候飞牛把这个纳入官方app就好了,这样子不用担心资源冲突了。
2024-9-20 16:28:16 回复
不知名网友  发表于 2024-9-20 16:45:19
66666666666666666666666
2024-9-20 16:45:19 回复
大佬,我按照你的步骤一步一步走,但是点击安装就提示这些
ERROR internal error: qemu unexpectedly closed the monitor: 2024-09-21T12:10:32.293105Z qemu-system-x86_64: -device {"driver":"ide-cd","bus":"ide.0","drive":"libvirt-1-format","id":"sata0-0-0","bootindex":1}: Failed to get shared "write" lock Is another process using the image [/vol1/1000/vmdisk/istoreos.img.gz]? Domain installation does not appear to have been successful. If it was, you can restart your domain by running: virsh --connect qemu:///system start istoreOS otherwise, please restart your installation. Command '['virt-install', '--connect', 'qemu:///system', '--quiet', '--os-variant', 'linux2022', '--reinstall', 'istoreOS', '--wait', '-1', '--noautoconsole', '--cdrom', '/vol1/1000/vmdisk/istoreos.img.gz']' returned non-zero exit status 1.
2024-9-21 20:11:58 回复
同学istoreos.img.gz不是镜像文件吧?istoreos.img才是,你是不是没有解压问题呢?
2024-9-22 10:45:17 回复
hsh
这个好像需要转格式  详情 回复
2024-10-9 15:53
这个包在openwrt上能直接使用,我以为不需要解压呢
2024-9-23 09:19:43 回复
希望支持虚拟机管理,pcie直通和硬盘直通功能
可以参考下 https://www.freevm.com/
虚拟化平台做的还可以,就是社区版限制了,收费版没标价
2024-9-24 23:56:39 回复
虚拟机已经上车,但是配置桥接以后fnos无法识别网络状态,远程无法登录无法连接
2024-9-30 09:06:41 回复
双网口就可以了 桥接一个网口过去  详情 回复
7 天前
123下一页
kggzs

个人博客:www.kggzs.cn

1

主题

3

回帖

6

积分

江湖小虾

积分
6
话题