Backup VPS

前不久因 CloudCone VPS 故障1,导致我的 VPS 无法使用。万幸的是我一直有设置备份,恢复一下数据都还在。看来数据备份的确很重要,按照 3-2-1 原则2,我再增加一个备份方式,增加一层保险。

Imagine

新年听一曲约翰·列侬(John Lennon)的 Imagine, 愿一起都能如想象中的那般美好。

InfluxDB and Grafana over Proxmox

Proxmox 虽然自带系统性能监控,但没法长期保存,故此我采用了 InfluxDB 和 Grafana 的组合来监控 VM 和 LXC。

首先我创建了一台 LXC 来作为基座,使用的是 Alpine Linux,它占用资源非常少,1核+512M 内存足够,实占 3%CPU,60%MEM。

Quadlet

在上一篇遗留了一个问题,查了一些资料后,发现可以用 Quadlet 来处理。

Quadlet 是 Podman 4.4 版本引入的扩展,它用简单的文本文件来定义和启动容器、Pod(容器组)或其他资源。它支持四种主要文件类型:.container、.pod、.volume 和 .network。

Podman

Podman 是一个开源的容器引擎工具,由 Red Hat 开发,主要用于在 Linux 系统上构建、运行和管理容器镜像。它是 Docker 的一个轻量级替代品,支持 OCI(Open Container Initiative)标准容器格式。

它有以下特点:

  • 无守护进程:不像 Docker 需要一个后台 daemon 进程,Podman 以用户级进程运行,减少了复杂性和安全风险。
  • Rootless 支持:可以以非 root 用户身份运行容器,提高安全性,避免特权容器带来的潜在问题。
  • 兼容 Docker:Podman 的命令行接口(CLI)与 Docker 高度兼容,许多 docker 命令可以直接用 podman 替换(如 podman run、podman build)。
  • Pod 支持:受 Kubernetes 启发,可以管理多个容器的“Pod”,便于编排。
  • 其他功能:支持容器镜像构建、推送、拉取;集成 systemd 用于容器服务管理;适用于开发、测试和生产环境。


可以看到:

  • docker 需要开启 dockerd 的守护进程,与高级容器进行时 containerd 通信,再调用低级容器进行时 runc。
  • podman 没有守护进程,直接调用 runc,从而与内核交互,管理容器。
  • k8s 可以与支持 CRI 标准接口的进程通信,如既可以 containerd 通信,也可以与最新的 CRIO 通信。

podman 的大部分命令和 docker 一致1,甚至可以直接用 alias docker=podman 创建别名。本文记录一些与 docker 不同的特性。

三分损益法

三分损益法是中国古代音乐理论中用于确定音律的一种数学方法,主要用于生成十二律(十二平均律的基础)和其他音阶音高,是中国传统音乐调律的核心技术之一。其基本原理是通过弦长或管长的三分损益(即增加或减少三分之一)来推算音阶中的音高关系。这种方法最早见于《管子》《吕氏春秋》等文献,战国时期已有系统论述,后在《乐书》《汉书·律历志》等文献中进一步完善。