Ubuntu 22.04.1 LTS로 업그레이드 후 오류 발생

Ubuntu 22.04.1 LTS로 방금 업데이트했습니다.

그 후 다음을 실행했습니다:

cd /var/discourse
sudo git pull
sudo ./launcher rebuild app

몇 분 동안 작동하다가 오류(아래 참조)가 발생하여 실패했습니다.

이제 다시 이렇게 실행하면:

sudo ./launcher rebuild app

즉시 동일한 오류가 다시 발생합니다:

$ sudo ./launcher rebuild app
x86_64 arch detected.
docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.
ERRO[0000] error waiting for container: context canceled
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

링크된 기사의 단계를 따랐습니다. 성공적으로 실행되었습니다.

불행히도 그 후 다시

sudo ./launcher rebuild app

을 실행하면 오류가 다시 발생합니다.


업데이트 1

cgroup-tools 설치를 제안하는 의견이 있었습니다:

sudo apt update
sudo apt -y install cgroup-tools

(출처)

불행히도, 제 환경에서는 재부팅 후에도 이것이 작동하지 않았습니다.


업데이트 2

또한 Docker를 19.x에서 20.x로 업그레이드했습니다.

그 후 재부팅을 하고 다시 시도했습니다:

sudo ./launcher rebuild app

이번에는 성공했습니다.

:tada: 이제 제 포럼이 다시 정상적으로 작동합니다 :partying_face:

20.04.x LTS에서 업그레이드하셨다고 가정하겠습니다.

내일 로컬 VM에서 테스트 업그레이드를 진행해 보겠습니다. 핵심은 Set up the repository의 3단계, 즉 /etc/apt/sources.list.d/docker.list 파일을 focal 대신 jammy를 사용하도록 업데이트하는 것이 될 것으로 생각됩니다. 그 후 apt-get update && apt-get upgrade를 실행하여 새 소스 목록에 맞게 패키지를 최신 상태로 가져와야 합니다.

이미 문제를 해결하셨지만, 혹시 다른 분들이 이 곳에 오셨을 때를 대비하여, 제가 예상한 대로 작동하는지 또는 추가적인 단계가 필요한지 나중에 보고드리겠습니다.

참고로, 방금 샌드박스를 20.04에서 22.04.1로 업그레이드했는데, Discourse와 관련된 것들은 모두 정상적으로 작동하는 것 같습니다. (오라클 인스턴스에서 로그아웃이 되긴 했지만, 그건 별개의 이야기입니다 :sweat_smile:).

결국 오늘 밤에 직접 해 보았습니다. 20.04에서 GPG 키가 처리되던 방식은 비추천(deprecated)되었지만, docker apt 저장소를 다시 활성화하고 업그레이드만 하면 되는 문제였습니다.

따라서 Ubuntu 20.04에 설치된 기존 Discourse를 22.04로 업그레이드하는 과정은 다음과 같습니다:

  1. 표준 단계에 따라 20.04에서 릴리스 업그레이드를 수행합니다.
  2. 업그레이드를 완료하기 위해 시스템을 재부팅합니다.
  3. Docker 설치 지침에서 Set up the repository의 2단계와 3단계를 수행합니다.
  4. sudo apt-get update && sudo apt-get upgrade를 실행합니다.

저는 항상 새 VM을 생성해서 정상 작동하는지 확인한 뒤, 거기에 백업을 복원합니다. 이렇게 하면 다운타임도 없고, 문제가 생겨서 막히는 위험도 없습니다. 탄력적 IP(어떤 이름으로 부르는지 DigitalOcean에서 어떻게 불리는지 기억이 안 나네요)를 사용해서 IP를 전환하면 DNS 설정을 바꿀 필요도 없습니다.

같은 물리적 머신을 계속 사용해야 한다면, 머신을 클린 설치로 업그레이드하는 동안 사이트를 잠시 VM으로 옮긴 뒤에 다시 이전하는 방식을 선택할 것 같습니다.

반면, 업그레이드를 하면서도 문제가 없이 잘 작동한다는 보고도 많이 봤습니다. 다운타임만 감수할 수 있다면 괜찮습니다. 하지만 무언가 크게 잘못될 경우에 대비해 새 서버를 빠르게 띄울 수 있도록 반드시 백업을 확보해 두세요.

Floating IPs라고 불러요 :slight_smile:

저는 프로덕션에 있는 모든 것에 대해 정확히 동일한 전략을 사용하지만, 여전히 샌드박스에서 OS 업그레이드 과정을 시도해 봅니다. 이렇게 하면 문제점(pain points)을 정확히 파악할 수 있기 때문이죠. 프로덕션의 같은 VM에서 OS를 업데이트하다가 모든 것을 망가뜨리는(백업 없이) 경우가 실제로 있으므로, 이러한 설치 문제를 트러블슈팅하는 데 도움이 됩니다.

22.04로 업그레이드하려고 할 때 이 오류를 만난 분이 계신가요?

Preparing to unpack .../docker.io_20.10.7-0ubuntu1~20.04.1_amd64.deb ...
The aufs storage-driver is no longer supported.
Please ensure that none of your containers are
using the aufs storage driver, remove the directory
/var/lib/docker/aufs and try again.

예전에는 그렇게 불렀지만, 지금은 "Reserved IP"라고 합니다(개인적으로는 더 나은 이름이라고 생각하지 않습니다): Release Notes | DigitalOcean Documentation

6월 16일

  • 플로팅 IP 제품을 *Reserved IPs*로 이름이 변경되었습니다. Reserved IP 서비스는 이전 서비스와 동일한 기능을 유지합니다.