linux kvm虚拟化 libos,Debian + cockpit-machines(kvm/libvirt) + omv 简易虚拟化 & NAS方案 避坑指南...
本文基于Debian buster(Debian 10),使用Debian的原因是因为可以叠加安装openmediavault(omv),作为原生NAS使用。
本文编写于2021/2/27,由于cockpit等还在持续更新,请注意时效性。
安装openmediavault
也可以直接使用openmediavault的ISO安装基础系统。
安装完成后访问http://:80使用omv的控制面板,默认用户名:密码是admin:openmediavault
安装cockpit和cockpit-machines
其中添加buster-backports建议使用国内的、和你已有软件源一致的,可以参考清华源的配置指南。
然后安装cockpit本体:
sudo apt install -t buster-backports cockpit
记得要使用buster-backports源安装相关软件包(下同),否则版本会比较旧,影响使用。
还需要手动安装cockpit-machines和qemu-kvm软件包,安装虚拟机功能;同时也建议安装cockpit-networkmanager,cockpit-storaged等cockpit的其他组件。
安装tuned可以启用主页上的“Performance profile”功能。
安装完成后访问https://:9090使用cockpit的控制面板,用户名密码同你的UNIX账户
安装virtinst并更新os-info-db
需要安装virtinst来支持cockpit-machines的虚拟机创建功能
sudo apt install -t buster-backports virtinst
此时你可能会发现安装页面的操作系统列表依然不全(比如没有Ubuntu 20.04),这是因为debian的os-info-db包已经两年没有更新了。
请参考官方指南(此处略):https://libosinfo.org/download/ 来更新os-info-db,你可以直接安装debian源里的osinfo-db-import工具来进行导入操作。
安装cockpit-podman容器虚拟化支持
podman是一个兼容docker的容器管理工具,Debian buster还没有官方支持podman,自然也没有官方支持cockpit-podman,这里采用一种折中的方式:
安装podman
# Debian 10
# First enable user namespaces as root user
echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/00-local-userns.conf
systemctl restart procps
# Use buster-backports on Debian 10 for a newer libseccomp2
echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list
echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/Release.key | sudo apt-key add -
sudo apt-get update
sudo apt-get -y -t buster-backports install libseccomp2
sudo apt-get -y install podman
# Restart dbus for rootless podman
systemctl --user restart dbus
安装cockpit-podman
这个包只有testing和sid源中有,在debian中混用源是一件危险的事情,这里直接从sid源中下载deb然后手动安装。
手动安装:
dpkg -i cockpit-podman_28-1_all.deb
由于以及安装了podman,此时应当不会有依赖问题。
可能遇到问题和解决方法
主机名问题
最好保证主机名+域名(比如microserver.lan)小于15个字符,否则omv里有可能无法开启samba功能。
另一个需要注意的点是,openmediavault和cockpit中的主机名设置不互通,应该是omv单独自己存储了主机名导致的,若修改需要在两边同时操作。
网络管理问题
omv和cockpit(如果你装了cockpit-networkmanager)都有自己的网络管理功能,但omv用的是传统方案(/etc/network/interfaces),cockpit使用NetworkManager,由传统方案管理的接口在NetworkManager中会是unmanaged状态。
这里建议全交给NetworkManager管理,否则cockpit的一些功能可能会出现问题(比如软件包更新检查),方法是在omv中网络设置里删除所有项目。
请注意执行这个操作的时候可能会断网,如果你是远程操作,要小心和服务器失联。
cockpit性能数据无历史记录
更改过主机名后可能会出现这个问题,重新安装cockpit-pcp和pcp可以解决(先purge再install)。
cockpit-machines没有快照(snapshot)功能
根据红帽的说法,快照功能需要libvirt-dbus的版本在1.40以上,但debian buster下最新只有1.30,而1.40只在testing或sid源中有。(类似的,这也是在centos 8上安装cockpit-machines同样没有快照功能的原因)
解决方法就是通过一些奇怪的方法把1.40版本装上,可以手动下载(本体+两个依赖),也可以引入sed软件源,但因为debian buster之后libgcc依赖变化的原因,对系统的破坏性都比较大。
目前看来想稳定(aka. 不折腾)地使用快照功能,大概只有去用fedora了。
0