Определение необходимости апгрейда моего VPS (общий вопрос)

Продолжение обсуждения из Upgrade failed spectacularily:

Какой лучший способ проверить, нужны ли обновления для моего VPS, перед выполнением обновления Discourse? Спасибо.

По памяти, я думаю, что вы можете обновить его, когда ваша версия ОС устарела или когда Docker устарел?

Если вы используете Ubuntu LTS (обычно это рекомендуемый дистрибутив для Discourse). На сколько я понимаю, каждое бесплатное издание имеет цикл поддержки в 5 лет.

Источник

Исходя из моего понимания списка, если вы используете версии 18.04 или 20.04, вам стоит рассмотреть возможность обновления операционной системы. Если вы точно используете 18.04, а поддержка 20.04 заканчивается в апреле, то также следует подумать об обновлении.

Другим важным аспектом является проверка совместимости версий Docker. В этом вопросе я, честно говоря, не уверен. Однако, по моему предположению, Ubuntu 22.04 LTS возможно поддерживает последнюю версию Docker, требуемую для Discourse, но для подтверждения этого потребуется мнение специалиста с более глубокими знаниями. Впрочем, возможно, нужная информация уже есть в результатах поиска по Meta здесь.

Discourse 3.4 требует Docker 24.0.7 и выше.

Согласно результатам поиска в Google, Ubuntu 22.04 LTS поддерживает эту версию.

Конечно, она также поддерживается в новейшей Ubuntu 24 LTS. Похоже, что поддержка есть и в Ubuntu 20.04 LTS, но, на мой взгляд, стоит рассмотреть возможность обновления, так как поддержка этой LTS-версии заканчивается в апреле 2025 года. Однако теоретически это должно быть безопасно, если вам нужно больше времени перед обновлением операционной системы.

Вы знаете, какая у вас версия ОС? Я предполагаю, что вы используете 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 — но, возможно, я сам смотрю не туда. Не могли бы вы проверить и подтвердить? Буду очень признателен. Спасибо.

Требования к Docker для Discourse 3.4 я взял из темы, где была неудачная попытка обновления через командную строку. Там, как я помню, Джей из упомянутой вами темы (или в другой теме) отметил, что Docker необходимо обновить на основе предоставленного лога. В логе указано, что Docker должен быть не ниже указанной мной минимальной версии.

Скорее всего, они указаны, но если честно, я не всегда внимательно их читаю. Попробую поискать здесь.

Если ваша LTS-версия Ubuntu — 18.04, то да, обязательно. Если же это Ubuntu 20.04 LTS, как упоминалось, то, думаю, её можно обновить вручную через командную строку. Насколько я помню, есть тема об обновлении Docker. В документации Docker, на которую я дал ссылку, должны быть инструкции по обновлению. Но рекомендую сначала поискать тему, чтобы убедиться, есть ли рекомендуемые шаги, которые стоит выполнить заранее.

Имейте в виду, что я тоже ещё многому учусь в работе с Discourse. Такие люди, как Джей и Роберт (Merrifield), — лишь несколько примеров пользователей с гораздо большим опытом и пониманием подобных тем.

Главный шаг — обязательно сделать резервную копию. На мой взгляд, стоит создать снимок сервера и резервную копию Discourse. Снимок сервера с заранее объявленным временем простоя — это хорошо, так как вы сможете откатиться к состоянию до обновления. Думаю, что резервная копия Discourse тоже должна сработать.

Не уверен. Я ориентировался только на сообщения с опубликованными логами.

Но вот руководство из раздела 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-версией и не быть старше двух лет. Первые две цифры обозначают год выпуска. Однако не доверяйте LTS-версии, которой меньше месяца.

Я бы создал новую виртуальную машину и перенёс на неё сайт, как описано в статье Перенос сайта Discourse на другой VPS с помощью rsync. Если вас не смущает значительное время простоя и риск повреждения системы, можно попробовать выполнить несколько последовательных обновлений дистрибутива. В таком случае обязательно сделайте снимок системы (что также потребует простоя), чтобы иметь возможность откатиться к нему.

Я думаю, что при переходе с 18.04 на 20.04 я делал это на том же сервере. Вероятно, следуя чему-то вроде How to upgrade your Ubuntu release - Ubuntu Server documentation. Я не на 100% уверен. Как вы смотрите на это?

При миграции вместо обновления на месте может быть и побочная выгода: вы, возможно, сможете получить более выгодное предложение. В моём случае переход с архитектуры x86 на ARM позволил получить конфигурацию с большим объёмом хранилища по той же цене, даже при использовании того же хостинг-провайдера. Также есть возможность сменить хостинг-провайдера, что я и сделал в другом случае, снова получив более выгодные условия.

У Hetzner ARM-серверы немного дешевле x86 при одинаковых характеристиках (vCPU, RAM, хранилище).

Заметно, что они кажутся быстрее (скорость пересборки Discourse и загрузки страниц).

К сожалению, официальных бенчмарков для Discourse нет, но недавно я сравнил время сборки:

Поставщик Цена Диск CPU ОЗУ (ГБ) Время сборки ЦОДы
Hetzner CX22 (x86) €3.95 40 ГБ 2 4 9 м 56 с DE, FI, SG, US (2)
Hetzner CAX11 (arm64) €3.95 40 ГБ 2 4 5 м 45 с DE, FI

Обратите внимание, что официального образа mail-receiver, совместимого с ARM, нет.

См.:

5 минут на пересборку? Вау, у меня это занимает около 2–3 часов.

Я использую самый дешевый Droplet DigitalOcean с 2 ГБ оперативной памяти, и, по моим оценкам, это занимает около 10 минут.

Это не «Поиск Google». Это Gemini. Я бы настороженно относился к выводам ИИ, которые касаются конкретных номеров версий и совместимых версий, так как большие языковые модели не очень хорошо справляются с такими деталями. Но если вы сможете найти какой-либо авторитетный источник, это было бы полезно.

Вот что я получил, это другое:

:man_shrugging:

Не по теме, но это имеет некоторые преимущества при жизни в ЕС :joy:

Спасибо, хорошая находка. Хотя ссылка на документацию Docker, которую я тоже опубликовал, подтвердила, что вывод Gemini, похоже, был верным. Однако спасибо за совет. С этого момента я буду definitely осторожен с выводами ИИ.

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

Я не думал, что смогу следовать теме про rsync, так как там было слишком много вопросов и предложенных вариантов. Поэтому я поступил иначе, и всё, похоже, работает!