6

Debian + cockpit-machines(kvm/libvirt) + omv 简易虚拟化 & NAS方案 避坑指南

 3 years ago
source link: https://wusiyu.me/debian-cockpit-machines-omv-homelab-nas-keng/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文基于Debian buster(Debian 10),使用Debian的原因是因为可以叠加安装openmediavault(omv),作为原生NAS使用。

本文编写于2021/2/27,由于cockpit等还在持续更新,请注意时效性。

安装openmediavault

在Debian上安装请参考官方指南(此处略):https://openmediavault.readthedocs.io/en/5.x/installation/on_debian.html

也可以直接使用openmediavault的ISO安装基础系统。

安装完成后访问http://<your_ip>:80使用omv的控制面板,默认用户名:密码admin:openmediavault

安装cockpit和cockpit-machines

请考官方指南:https://cockpit-project.org/running.html#debian

其中添加buster-backports建议使用国内的、和你已有软件源一致的,可以参考清华源的配置指南

然后安装cockpit本体:

sudo apt install -t buster-backports cockpit

记得要使用buster-backports源安装相关软件包(下同),否则版本会比较旧,影响使用。

还需要手动安装cockpit-machinesqemu-kvm软件包,安装虚拟机功能;同时也建议安装cockpit-networkmanagercockpit-storaged等cockpit的其他组件。

安装tuned可以启用主页上的“Performance profile”功能。

安装完成后访问https://<your_ip>: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

请参考官方指南:https://podman.io/getting-started/installation

# 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然后手动安装。

软件包下载:https://packages.debian.org/sid/cockpit-podman

手动安装:

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-pcppcp可以解决(先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了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK