수동으로 discourse를 업데이트할 때 커널 버전 업그레이드가 필요합니다

여기에서 언급된 대로 업데이트를 실행하면 다음 오류가 발생합니다: Manually update Discourse and Docker image to latest
“Kernel version 4.4.0-210-generic not supported, please upgrade to at least 4.14.0”

여기서 무엇을 해야 할까요? 커널 버전을 업그레이드하는 방법에 대한 지원 토픽을 찾을 수 없습니다.

어떤 버전의 Ubuntu를 사용 중이신가요? 업그레이드하거나 새 OS가 설치된 새로운 서버로 이전해야 할 가능성이 높습니다.

지난주에 Ubuntu 14.04에서 Discourse 실행에 실패했다는 지원 요청이 많이 들어와서 이 체크를 추가했습니다.

현재 사용 중인 Ubuntu 버전은 무엇인가요? 이미 Discourse 3+를 성공적으로 실행하고 계신가요?

저는 Ubuntu 16.04.3 x64를 사용하고 있습니다.

Digital Ocean의 드롭렛(Droplet)을 사용 중이며, 사양은 1GB 메모리 / 25GB 디스크입니다.

Digital Ocean에서 여기서 설명한 대로 커널을 직접 업그레이드할 수 있는 옵션이 있습니다:

하지만 궁금한 점이 있습니다:

  1. 서버에서 다른 문제가 발생하지 않을까 걱정해야 하나요?
  2. “모든 패키지 업그레이드” 옵션을 선택해야 할까요, 아니면 “커널만 업그레이드” 옵션을 선택해야 할까요?

이미 수명(EOL)이 종료된 상태입니다. 새로운 드롭렛을 생성하고 처음부터 시작하는 것을 권장합니다.

좋은 체크입니다. 하지만 운영체제가 오래되었다는 가능성도 언급할 수 있지 않을까요? 문제가 되는 것은 커널이지만, 대부분의 사용자에게는 이것이 특정 OS 버전의 일부로 제공됩니다.

Discourse가 점점 더 인기를 얻고 있으므로, 커널 기능이 없어서 문제가 되는 경우가 발생할 때마다 영향을 받는 사람의 수가 훨씬 더 많을 것으로 예상됩니다.

Ubuntu 위키에 따르면 sudo apt-get -s install --install-recommends linux-generic-hwe-16.04 명령을 실행하면 재부팅 후 최신 지원 커널(4.15)을 사용할 수 있다고 합니다. 백업을 만들어 로컬로 다운로드한 후 시도해 보세요.

https://askubuntu.com/questions/248914/what-is-hardware-enablement-hwe

표준 지원이 종료(EOL)된다는 뜻인지, 아니면 실제 버전이 종료된다는 뜻인가요? 여기의 버전 확인 결과에 따르면 EOL은 2026년입니다: Releases - Ubuntu Wiki

Canonical 구독이 있으면 2026년이고, 없으면 2021년입니다. 하지만 이건 주제에서 벗어난 이야기예요 :grinning_face_with_smiling_eyes:

제안해 주셔서 감사합니다. 뒤로 돌아가서 이 방법을 시도해 보겠습니다.

제안으로, 여기의 표준 업데이트 지침에 커널의 검사/최신 업데이트에 대한 지침을 추가하는 것이 좋을 것 같습니다: Manually update Discourse and Docker image to latest. 제안하신 대로, 커널이 최신이 아닌 문제에 대한 지원 요청을 많이 받고 있는 것 같습니다.

정리해 주셔서 감사합니다.

오늘 아침 업데이트를 시도할 때 정확히 동일한 문제에 부딪혔습니다. 오류 메시지에 표시된 버전 번호도 동일했습니다.

저희도 Digital Ocean에서 동일한 Ubuntu 14.04를 사용하고 있습니다.

앞으로 며칠 안에 시간을 내서 서버를 종료하고, Falco가 제안한 대로 전체 스냅샷을 찍은 다음 다음을 시도해 볼 예정입니다:

하지만 이것이 다음 장애물에 부딪히기까지 얼마나 많은 시간을 벌어줄지 궁금합니다.

그냥 sudo apt-get dist-upgrade를 실행해서 일괄 업그레이드하는 것이 나을 이유가 있을까요?

제 서버에는 Discourse만 설치되어 있습니다.

저희의 경우, 네, 현재 3.1.0.beta1을 사용 중입니다 - Commits · discourse/discourse · GitHub . 두 주마다 최신 버전으로 업데이트하고 있습니다.

현재 커널 4.4 환경에서 3.1.0.beta를 사용 중이신가요? 그렇다면 커널 확인 조건을 완화하겠습니다.

uname -r 명령을 실행하면 다음 결과가 표시됩니다:

4.4.0-210-generic

그리고 Discourse 3.1.0.beta에 대해 확인했습니다 :slight_smile:

하지만 내일에는 여전히 기반이 되는 Ubuntu를 업그레이드할 계획입니다 :slight_smile:

Ubuntu 업그레이드는 거의 항상 성공하지만, 과정이 빠르지는 않으며, 대부분의 시간 동안 인스턴스가 중단될 수 있습니다. 스냅샷은 최악의 경우 롤백할 수 있는 수단을 제공하지만, 동시에 가동 중단 시간을 늘리기도 합니다.

더 최신 릴리스로 새 서버를 만들고 백업을 복원하는 방식을 고려해 보셨나요? TTL이 상대적으로 짧은 DNS를 사용하고 있다면 가동 중단 시간은 상당히 짧을 수 있으며, 이는 주로 데이터베이스 크기와 업로드 파일이 로컬에 저장되어 있는지 여부에 따라 달라집니다.

저는 개인적으로 그렇게 하지 않았습니다(@AMK 는 모르겠네요). 필요한 모든 작업을 수행하는 데 걸리는 시간이 콘솔에 단일 업데이트 명령어를 입력하는 것보다 더 오래 걸릴 것 같아서요. :blush:

사실 새 서버를 만들어본 적은 없습니다.
@Richie 님과 마찬가지로, 제 서버에 설치된 것은 Discourse뿐입니다. 그리고 당연히 새 서버로 완전히 이전하는 것보다는 업데이트를 위해 명령어를 실행하는 방식을 선호합니다.

또한 설치 버전을 확인해 보니 제 사이트는 3.0.0.beta16 버전이었습니다. 업그레이드를 클릭하면 "Discourse 이미지의 오래된 버전을 실행 중입니다"라는 메시지가 표시되고, 업데이트를 시도할 때 커널 버전이 지원되지 않는다는 오류가 발생합니다.

@AMK (그리고 관심 있는 다른 분들!)

Digital Ocean 드롭렛을 종료하고 전체 스냅샷을 생성했습니다(약 30분 소요).

이후 do-release-upgrade를 실행하여 Ubuntu “16.04.7 LTS”에서 “18.04.6 LTS”로 업그레이드했습니다.

재부팅 후 Discourse를 확인했는데 모두 정상 작동했습니다.

이어서 Ubuntu 18 이상으로 업그레이드하기 위해 또 다른 릴리스 업그레이드를 수행했습니다. 어느 버전으로 업그레이드될지 정확히 모르겠는데, v20이었을까요?

그 다음 재부팅 후 서버가 다시 온라인으로 돌아오지 않았습니다 :pensive:

결국 스냅샷을 복원해야 했습니다(15분 소요), 그리고 다시 “16.04.7 LTS”에서 “18.04.6 LTS”로 업그레이드한 뒤 Discourse를 업데이트했습니다.

총 소요 시간: 1시간 50분.

그래서 저는 이렇게 제안했습니다:

조금 더 “복잡할” 수 있지만, 거의 제로 다운타임으로 수행할 수 있습니다(새 서버를 기존 서버와 동일한 데이터 센터에 생성하고 정적 IP를 사용한다면 제로 다운타임도 가능합니다). 또한 문제가 발생하면 기존 서버로 바로 되돌릴 수 있습니다.

아마도 그렇고, 실제로는 2022.04 버전을 사용해야 합니다.