새 파일시스템 마운트 관련 도움

안녕하세요!

업로드를 위한 새로운 공간을 마운트하는 데 문제가 발생하고 있습니다. 대시보드를 확인하면 아래 메시지가 표시되고, 특정 사용자의 프로필에 접근할 때 프로필 사진이 많이 표시되지 않습니다.

또한 앱 컨테이너에 들어가서 uploads 폴더가 있는지 확인해 보았는데, 폴더는 존재하고 있었습니다.

생각할 수 있는 모든 방법을 시도해 보았어요. 제가 무언가 실수를 한 것 같은데, /var/discourse/shared에 MOUNTING ONTO를 시도했을 때 문제가 생긴 것 같아요… 계속

이런 에러가 뜨는데, 어떻게 해결해야 할지 정말 모르겠어요. 이전 백업으로 복원해 보았지만 그래도 해결되지 않았어요. 제발 도와주세요!

@Headless 안녕하세요.

이런 문제가 발생해서 죄송합니다.

아래 명령을 실행해 주시겠어요?

# ls -l /var/discourse/shared 

그리고 결과를 게시해 주시면 해당 디렉토리에 있는 마운트 포인트를 확인할 수 있을 것 같습니다.

말씀하신 실제 "마운트"를 확인할 수 있으면 조언해 드리기 쉬울 것입니다.

안녕하세요! 답변해 주셔서 감사합니다. 사실 이 문제를 처음 겪었을 때 이미 마운트를 해제했지만, 그래도 보여드리겠습니다.
image

결국 image 위치에 마운트했습니다.

@Headless 님 안녕하세요.

제가 지금 이해한 바로는, 마운트된 디스크 파티션을 업로드 디렉터리로 사용하려는 것이 맞나요?

이렇게 이해한 것이 맞습니까?

네, 맞습니다. 말씀하신 대로 해보았고 정상적으로 작동합니다. 그런데 새 볼륨을 사용하지 않고 원래대로 되돌려 보기도 했는데, 여전히 해당 오류가 발생하고 프로필 사진 로딩에도 문제가 생기고 있습니다. 무언가를 제대로 망가뜨린 것 같고, 정확히 어떤 작업을 했는지는 저도 잘 모르겠습니다.

아래에서 확인할 수 있듯이, 프로필 사진이 이렇게 표시됩니다.

괜찮습니다. 지금 모든 업로드 파일은 어디에 있나요?

무슨 일이 일어나고 있는지 확인해 보겠습니다:

먼저 이 명령어를 실행해 주세요:

# find  /var/discourse/shared/standalone/uploads | wc -l

그리고 결과를 게시해 주세요.

그 다음 이 명령어도 실행해 주세요:

# find  /mnt/volume-fsn1-1/uploads | wc -l

그 출력 결과도 게시해 주시겠어요?

감사합니다.

네, 현재 업로드 파일을 다시 볼륨으로 옮겼습니다. 업로드 파일을 메인 디스크로 되돌려 놓았지만 아무 문제가 해결되지 않았기 때문입니다.

첫 번째 명령의 출력 결과는 image 입니다.

두 번째 명령의 출력 결과는
image 입니다.

도움 주셔서 감사합니다!

문제가 아닙니다…

조금만 기다려 주세요…

두 가지 문제를 다뤄야 한다고 생각합니다.

첫째, 기존 업로드 디렉터리를 (일단 임시로) 이동한 다음, 새 디렉터리를 가리키는 심볼릭 링크를 다음과 같이 만들어야 한다고 생각합니다:

cd /var/discourse/shared/standalone
mv uploads uploads.orig
ln -sf /mnt/volume-fsn1-1/uploads ./uploads

그 작업이 완료된 후, 원래대로 yml 파일을 변경하고 심볼릭 링크가 마법을 부리게 하겠습니다.

하지만 그 전에 /mnt 파티션의 파일 권한도 확인해야 하지만, 우선순위에 따라 하나씩 진행하겠습니다.

/var/discourse/shared/standalone 안의 uploads 폴더는 앱 빌드 시 생성되기 때문에 항상 비어 있습니다. 그럼에도 불구하고 말씀하신 대로 그대로 진행하겠습니다.

이제 심볼릭 링크가 생성되었습니다. image

/mnt 디렉터리에서 ls -l 명령을 실행한 결과는 다음과 같습니다. image

조금만 기다려 주세요…

먼저 이것을 확인해 보겠습니다:

ls -l /var/discourse/shared/standalone

심볼릭 링크를 볼 수 없으므로 확실하게 확인하기 위해서입니다…

네, 물론이죠

좋아요, 이렇게 상세하게 물어봐서 죄송합니다…

자, 이제 앱에 들어가서 확인해 보겠습니다.

다음 내용을 보여줄 수 있을까요:

(수정됨)

# cd /var/discourse/
./launcher enter app
# ls -l /shared/*

감사합니다

네, 이렇게 나옵니다.
image

런처로 앱을 실행하면 표시되긴 합니다.
image

여기서 모든 것을 맞히려 하고 있습니다.

고맙습니다. 죄송합니다, 네, docker exec를 잘못 입력했습니다…

이렇게 하면 어떨까요 (컨테이너 내부에서)

ls -l /shared/uploads/*

여기 있습니다!

자, 꽤 괜찮아 보이는데… 100% 확실하게 하기 위해(조금만 참아 주세요) 이걸 한 번 더 실행해 봅시다:

find /shared/uploads | wc -l

그리고 준비가 되었는지 확인합시다.

image

이것입니다!

음.

미안, 이렇게 해보자…

find /shared/uploads/* | wc -l

심볼릭 링크이기 때문에…

image

그렇게 보이는 것 같습니다