“Docker 설치에 지원되는 스토리지 드라이버가 사용되지 않았습니다.”

여러분, 안녕하세요. 업데이트 시 다음과 같은 메시지가 뜨는 문제가 있습니다:

기존에 사용 중인 지원되지 않는 스토리지 드라이버를 계속 사용하려면,
런처의 소스 코드를 읽고 이 확인을 우회하는 방법을 찾아보세요.
root@sendy:/var/docker/discourse# git pull
Already up-to-date.
root@****:/var/docker/discourse# ./launcher rebuild app
Your Docker installation is not using a supported storage driver.  If we were t.
overlay2 is the recommended storage driver, although zfs and aufs may work as w.
Other storage drivers are known to be problematic.
You can tell what filesystem you are using by running "docker info" and looking.

기존에 사용 중인 지원되지 않는 스토리지 드라이버를 계속 사용하려면,
런처의 소스 코드를 읽고 이 확인을 우회하는 방법을 찾아보세요.
root@****:/var/docker/discourse# docker info
Containers: 5
Images: 74
Storage Driver: devicemapper
 Pool Name: docker-8:0-1970634-pool
 Pool Blocksize: 65.54 kB
 Data file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 34.15 GB
 Data Space Total: 107.4 GB
 Metadata Space Used: 41.37 MB
 Metadata Space Total: 2.147 GB
 Library Version: 1.02.82-git (2013-10-04)
Execution Driver: native-0.2
Kernel Version: 5.6.14-x86_64-linode135
Operating System: Debian GNU/Linux

@pauln 님 안녕하세요

호스트가 Discourse를 지원하기 위해 Docker만 실행 중이고, Linux 커널이 OverlayFS를 지원하는 경우 Docker를 (신중하게) overlay2 스토리지 드라이버를 사용하도록 재구성하는 것을 권장합니다.

도움이 되길 바랍니다.

어떻게 해야 하는지 알려주실 수 있나요?

저는 Linode(Debian 7.5)를 사용하고 있습니다.

Docker를 다시 구성하는 방법을 알려주실 수 있나요?

공식 Docker 문서에 따르면:

Docker Engine를 설치하려면 다음 Debian 또는 Raspbian 버전 중 하나인 64비트 버전을 사용해야 합니다:

  • Debian Buster 10 (stable)
  • Debian Stretch 9 / Raspbian Stretch

업데이트된 VPS 사용을 권장합니다.

@pauln

안녕하세요, 이제 부팅이 완료되어 준비되었습니다.

어떤 방식으로 진행하시길 원하시나요?

더 최신 버전의 Debian으로 업그레이드하시길 원하시나요, 아니면 먼저 7.5 버전이 정상적으로 작동하도록 설정해볼까요?

7.5 버전이 작동하도록 설정해달라고 하신다면, 다음 사항을 알려주시기 바랍니다:

  • Docker에서 다른 작업이 실행 중인가요?

문제는 Docker 설정 파일에서 Docker 스토리지 드라이버를 변경하면 기존 컨테이너에 더 이상 접근할 수 없게 된다는 점입니다. 따라서 다음과 같은 단계를 거쳐야 합니다:

  • Discourse의 전체 백업이 있는지 확인 (항상 수행)

  • Docker를 종료합니다.

  • Docker 설정을 편집하여 스토리지 드라이버를 변경합니다.

  • Docker를 다시 시작합니다.

  • Discourse를 다시 빌드합니다

Debian 커널이 OverlayFS를 지원한다면 이 과정은 순조롭게 진행될 것입니다. 지원하지 않는다면 실패하겠지만, 아무런 피해도 없으므로 devicemapper로 되돌릴 수 있습니다.

어떤 방식으로 진행할지 알려주세요.

감사합니다.

네, 먼저 7.5에서 작동하게 하는 것이 좋습니다. Docker에는 Discourse만 실행 중입니다.

감사합니다. 해 보겠습니다 :slight_smile:

네… 제가 예상한 바로는 그렇습니다 :slight_smile:

실제로, 해당 단계는 여기에서 설명되어 있습니다:

잠깐 살펴보시고, 설명된 단계에 동의하시는지 또는 질문이 있는지 알려주세요.

감사합니다.

네, 이 단계들을 시도해 보고 다시 알려드릴게요. 비슷한 방법을 시도해 봤는데 작동하지 않았어요. 진행 상황 알려드릴게요.

리눅스 커널이 OverlayFS를 지원하지 않으면 실패합니다.

걱정 마세요.

되돌릴 수 있습니다 :slight_smile:

실패하지 않으면, 저는 다시 잠을 잘 수 있습니다 :slight_smile:

지원 여부를 어떻게 테스트할 수 있을까요?

Docker가 다시 시작되지 않습니다.

즉, Docker 설명서(위)의 5단계가 실패합니다:

5. Docker 시작.

$ sudo systemctl start docker

이 명령은 실패하거나 성공할 수 있습니다…

(systemctl 대신 다른 명령이 필요할 수 있지만, 개념은 동일합니다)

네, 시도해볼게요. 여기서 업데이트를 올릴게요.

즐거우세요.

커피는 마시지 않겠습니다. 기적이 일어나서, (어떤 이상한 이유로) 구형 Linux 커널이 실제로 OverlayFS를 지원하길 바랄 뿐이죠.

솔직히 말하면, 이 문제에 대해 제가 빠르게 “구글” 해본 결과는 낙관적이지 않았습니다. 하지만 저는 낙관적으로 보려 노력하고 있습니다.

:slight_smile:

작동하지 않았습니다. :frowning: 사용자 데이터를 모두 잃지 않고 포럼을 새 VPS로 이전하려면 어떻게 해야 하나요?

app.yml 파일과 최신 백업 파일을 다운로드하세요.

app.yml 파일은 보통 /var/discourse/containers 디렉토리에 있습니다.

백업 파일은 /var/discourse/shared/CONTAINERNAME/backups 디렉토리에 위치합니다.

Discourse 사이트에 접근할 수 없는 경우에도 SFTP나 SCP를 사용하여 다운로드할 수 있습니다.

안녕하세요 @pauln

불편하셨다니 죄송합니다. 이전 커널이 OverlayFS를 지원하지 않는다고 짐작했지만, 시도해 보는 것이 나쁘지 않고 그 과정에서 배우는 것도 있으니 괜찮습니다.

새로운 환경에서 Debian을 계속 사용하시겠습니까, 아니면 Ubuntu로 전환하시겠습니까?

저는 “영원히” Ubuntu를 사용해 왔고, Discourse에서도 공식적으로 지원되므로 제 추천은 Ubuntu입니다. 물론 선택은 전적으로 당신에게 달려 있습니다. Debian도 좋은 선택입니다 :slight_smile:

@pauln 님, 안녕하세요.

새 VPS를 설정하고 Discourse를 처음부터 설치한 후 사이트를 복구하는 과정을 도와줄 수 있는 분들이 많습니다. 그래서 저는 이제 잠을 자러 가겠습니다.

함께 일하게 되어 좋았습니다. 마무리하며, 다음과 같이 추천드립니다:

  • 이미 Linode 사용자이신 점(저도 마찬가지입니다)을 고려하여, 새로운 Linode Ubuntu VPS를 설정하세요.
  • Discourse를 처음부터 설치하세요 (문서가 잘 정리되어 있습니다).
  • 백업에서 Discourse를 복구하세요 (문서가 잘 정리되어 있습니다).

이 여정을 안내해 줄 수 있는 유능한 분들이 많으므로, 저는 여기서 물러나겠습니다.

행복하세요.

좋은 아침입니다 (제 시간대로) @pauln

오늘 아침에 확인해 봤는데, 지금 새로운 VPS로 전환하고 싶지 않다면, 그 이유가 무엇이든, 같은 방법을 시도해 볼 수 있습니다. 다만 overlay2 대신 aufs를 사용해 보세요.

Discourse 런처 스크립트에 따르면:

  # 2. running an approved storage driver?
  if ! $docker_path info 2> /dev/null | egrep -q 'Storage Driver: (aufs|zfs|overlay2)$'; then

이는 일부 구형 Debian 버전이 aufs를 지원하고, Discourse도 aufs를 지원하는 것 같기 때문에 (런처 코드를 읽어본 결과) 이 방법을 시도해 볼 수 있다는 의미입니다.

Debian 7.5는 2년 전부터 EOL(지원 종료) 상태이므로, 가능하면 EOL 코드에서 벗어나는 것이 항상 최선입니다. 따라서 저는 확실히 새 Linux 배포판과 커널로 업그레이드하여 overlay2 스토리지 드라이버(강력히 권장)로 전환하는 것을 추천합니다. 하지만 결국 선택은 당신에게 달려 있으며, 재미로 aufs를 시도하고 싶다면 그렇게 하셔도 됩니다. 새로운 것을 배우는 것은 항상 재미있고 보람 있는 일입니다.

참고:

도움이 되길 바랍니다.


테스트베드 노트:

@pauln

도움을 드리기 위해 저는 방금 Linode Ubuntu VPS를 새로 하나 받아 Docker를 설치하고 스토리지 드라이버를 aufs로 변경했습니다:

# docker info | grep aufs
 Storage Driver: aufs
  Root Dir: /var/lib/docker/aufs

그리고 표준 Docker 설치 지침을 따랐습니다:

https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

그 결과 aufs 스토리지 드라이버를 사용하는 Docker 위에서 Discourse가 아무 문제 없이 설치되었습니다.

따라서 원하신다면 재미와 지식을 위해 Debian 7.5 VPS에서 이 방법을 시도해 볼 수 있을 것입니다.

물론, 이전에 언급했듯이 공식적으로도 비공식적으로도 새로운 지원되는 VPS로 이전하는 것이 권장됩니다. 결정 사항과 진행 상황을 다시 게시하여 알려주시면 감사하겠습니다.

launcher에서 코드 블록을 주석 처리해 놨어. 가끔은 한계를 넘나들어야 하니까 :smiling_face_with_sunglasses:!