判断我的VPS是否需要升级(一般来说)

继续讨论 升级失败

在执行 Discourse 更新之前,检查我的 VPS 是否需要任何升级的最佳方法是什么?谢谢。

3 个赞

凭我的直觉,我想你可以在你的操作系统版本过时时,或者 Docker 过时时进行升级?

1 个赞

如果您运行的是 Ubuntu LTS(通常是 Discourse 推荐的发行版)。据我所知,每个免费版本都有 5 年的支持周期。

来源

因此,根据我对列表的理解,如果您运行的是 18.04 或 20.04,您应该考虑升级操作系统。如果确定是 18.04,并且 20.04 的支持将于 4 月结束,也应该考虑升级。

另一个方面是查看 Docker 版本兼容性。这部分我老实说不确定。不过猜测一下,我认为 Ubuntu 22.04 LTS 可能支持 Discourse 所需的最新 Docker 版本,但这需要更有知识的人来评论。不过,也许在这里的 Meta 上搜索一下也能找到这些信息。

1 个赞

Discourse 3.4 需要 Docker 24.0.7 或更高版本

从 Google 搜索来看,Ubuntu 22.04 LTS 支持该版本。

当然,最新的 Ubuntu 24 LTS 也支持该版本。它看起来也支持 Ubuntu 20.04 LTS,但我个人认为应该考虑升级,因为该 LTS 版本将于 2025 年 4 月结束支持;但是理论上,如果你在升级操作系统之前需要更多时间,应该是安全的。

你知道你的操作系统是什么版本吗?我猜你运行的是 Ubuntu LTS。

我的 Docker 版本 (20.10.21) 低于此要求,而我的 Discourse 版本是 3.4.0.beta4-dev。Discourse 提示我立即升级到 3.4.0.beta4 ——“有关键更新可用。请更新!”

两个问题:

  1. 发布说明中是否有任何地方说明了这些要求?我一直浏览公告帖子,但没有注意到 Docker 或 Ubuntu 的要求说明。

  2. 我猜我应该先升级到 Ubuntu 24.04 和它自带的 Docker 版本,然后再升级 Discourse。听起来对吗?

谢谢。

你的意思是“不能”吗?我猜是的。

你的意思是,如果需求不满足,升级脚本会正常结束,而不会搞乱我的论坛吗?

我刚在 discourse_docker/launcher at main · discourse/discourse_docker · GitHub 上注意到:

docker_min_version='20.10.0'
docker_rec_version='24.0.7'

所以也许我现在还可以。我希望你关于 24.0.7 的说法是错的——但也许是我自己看错了地方。你能检查并确认一下吗?我将不胜感激。谢谢。

1 个赞

Discourse 3.4 的 Docker 要求,我从一个失败的命令行升级主题中提取的。我记得 Jay 在你引用的主题或另一个主题中提到过。他提到基于提供的日志,Docker 需要升级。日志显示 Docker 需要达到我提到的最低版本。

它们很可能在那里,但说实话,我并不总是擅长完整阅读它们。我会在这里搜索一下看看。

如果你的 Ubuntu LTS 是 18.04 版本,那肯定是的。如果它是 Ubuntu 20.04 LTS,如上所述。我相信你可以通过命令行手动升级它。据我回忆,有一个关于升级 Docker 的主题。我链接的 Docker 文档应该有如何升级的说明。但建议先看看是否有相关主题,以防有推荐的步骤需要先遵循。

请记住,我也在学习 Discourse 的很多东西。像 Jay、Robert(Merrifield) 这样的人,他们在这类主题上拥有更丰富的经验和理解。

不过,最重要的一步是确保你进行了备份。我认为制作服务器快照和 Discourse 备份是很好的。有计划停机的服务器备份是好的,因为你可以在升级前加载快照。我想即使是 Discourse 备份也可能效果很好。

1 个赞

不确定。我只是根据分享了日志的帖子来判断。

但这里有一份来自 Documentation 的指南,也许会有帮助。

如果我画一个流程图来回答,第一个问题会是这样的:

是否满足以下所有条件?如果满足,请根据您的经验进行操作。如果不满足,请确保您使用的是最新的 LTS 版本,只要它至少有一个月的使用时间。

  • 我是一名经验丰富的系统管理员
  • 我有一个最近的备份放在安全的地方,并且我非常有信心能够恢复它
  • 我知道如何执行命令行升级
  • 我知道如何在 meta 上报告问题时找到并引用日志的相关部分

通过读取 /etc/lsb-release 来检查您当前的操作系统版本

root# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.4 LTS"

它应该是最近更新的,应该是 LTS 版本,并且使用时间不应超过 2 年。前两位数字是年份。但不要相信使用时间不到一个月的新 LTS 版本。

3 个赞

我建议启动一个新的虚拟机并将其迁移到新虚拟机,如将 Discourse 站点迁移到另一台 VPS 并使用 rsync中所述。如果您不介意大量的停机时间以及可能破坏系统的风险,可以尝试进行多次发行版升级。如果这样做,您应该创建一个快照(这也需要停机时间),以便您可以恢复到该快照。

1 个赞

我认为我是在同一台服务器上从 18.04 升级到 20.04 的。可能遵循了类似 How to upgrade your Ubuntu release - Ubuntu Server documentation 的步骤。我不是 100% 确定。您对此有什么看法?

迁移而非原地升级的一个潜在的好处是:你可能会获得更好的价值。以我为例,从 x86 切换到 ARM,在同一家托管服务商那里,我用相同的价格获得了更多的存储空间。还有更换到不同托管服务商的可能性,我之前也这样做过,又获得了一个更好的交易。

2 个赞

在 Hetzner,ARM 服务器的相同规格(vCPU、RAM、存储)比 x86 略便宜。

值得注意的是,它们似乎更快(Discourse 重建速度和页面加载)。

遗憾的是,没有针对 Discourse 的基准测试,但我最近进行了一次构建时间比较:

提供商 价格 磁盘 CPU GB RAM 构建时间 数据中心
Hetzner CX22 (x86) €3.95 40GB 2 4 9m56s DE、FI、SG、US (2)
Hetzner CAX11 (arm64) €3.95 40GB 2 4 5m45s DE、FI

请注意,没有官方 ARM 兼容的 mail-receiver 镜像。

参见:

4 个赞

5分钟就能重建?哇,我需要大约2-3个小时。

我使用的是 Digital Ocean 最低配置的 Droplet,拥有 2GB 内存,我认为大约需要 10 分钟。

1 个赞

那不是“谷歌搜索”。那是 Gemini。我建议谨慎对待那些谈论特定版本号和兼容版本的人工智能输出,因为大型语言模型在处理这些细节方面并不那么出色。但如果你能找到任何确切的来源,那将会有帮助。

这是我看到的结果,有所不同:

:man_shrugging:

2 个赞

离题了,但在欧盟生活有一些好处 :joy:

4 个赞

谢谢,抓得好。虽然我之前发布的 Docker 文档链接也证实了 Gemini 的输出似乎是正确的。不过还是谢谢你的提示。以后我一定会小心人工智能的输出。

:clinking_beer_mugs::smiling_face_with_sunglasses::+1::sparkles:

2 个赞

[引用=“Jay Pfaffman,第11帖,主题:351398,用户名:pfaffman”]
如果你不介意大量的停机时间,以及它可能会损坏你的系统,你可以尝试进行多次发行版升级(dist-upgrades)。如果你这样做,应该先创建一个快照(这也会导致停机),以便你可以恢复到那个状态。
[/引用]

我之前觉得我无法跟上rsync的主题,因为有太多的问题和建议的变化。所以我做了这个,结果一切似乎都正常!

1 个赞