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