개인 자료란 (JE)

  서버 커뮤니티

Profile 와우님 대표칭호 없음
Profile

질문하기 맵(건축)

Spigot에서 생성된 서버 맵 파일을 Paper엔진에서 여는것 도와주세요 ㅠ

2021.09.03 조회 수 699 추천 수 1
게임버전 (JE) 1.17, 1.17.1 

안녕하세요. 저는 친구들과 즐기기 위해서 서버를 여는 사람입니다.

평소에는 PC에서 Spigot을 이용하여 친구들이 열어달라고 할때만, 서버를 열었습니다.

그런데 사람이 많아지고, 저도 바빠지면서 그러기 힘들어졌습니다.

이를 해결하기위해서 개인적으로 가지고 있는 Synology Nas의 Docker을 활용하여 24시간 서버를 열어놓으려 기획하였습니다.


Nas를 사용하기 때문에 CPU점유율이 높은 Spigot을 사용했을때 오버로드 이슈가 있었고, 이로 인해 자주 서버가 다운되어서 Paper엔진을 테스트하게 되었고, Spigot보다는 Paper엔진이 훨씬 안정적이었기에 Paper엔진으로 서버를 열게 되었습니다.  


서버 여는 것, 접속 테스트, 플러그인 호환 테스트 등 모든 것들은 마친 상태입니다.

그러나 맵 파일을 가지고 왔을 때 문제점이 발생하였고, 오랜 시간 찾아보았지만, 해결하지 못하여 글을 작성해봅니다.


개인적으로 생각하는 문제점은


1번 문제점

Spigot 엔진에서 생성된 맵파일을 Paper엔진으로 가져와서 열려고 하는데에서 오는 오류?


2번 문제점

1.17버전의 맵을 1.17.1의 Paper엔진으로 열려고 하는 점.


이를 해결하기 위해서 해본 시도는


2번 문제점을 해결하기 위해서

마인크래프트를 1.17.1로 실행시켜서 싱글 플레이 맵에 적용시킨 후

세계를 선택하고 편집을 통해서 세계 최적화를 실행시켜 1.17.1로 업그레이드를 시켰다는 점.


1번 문제를 해결하기 위해서 

session.lock파일과 datapacks 폴더는 paper엔진을 실행시켜 생성된 파일을 유지한 채 다른 맵 파일들만 옮겨서 적용해본 점.


아래에는 관련 오류 로그들을 첨부해보겠습니다!


session.lock파일을 유지하지 않았을 때 오류 로그

[11:46:30] [main/INFO]: [STDERR]: You have used the Spigot command line EULA agreement flag.

[11:46:30] [main/INFO]: [STDERR]: By using this setting you are indicating your agreement to Mojang's EULA (https://account.mojang.com/documents/minecraft_eula).

[11:46:30] [main/INFO]: [STDERR]: If you do not agree to the above EULA please stop your server and remove this flag immediately.

[11:46:30] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'

[11:46:30] [main/FATAL]: Failed to start the minecraft server

java.nio.file.AccessDeniedException: ./world/session.lock

    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) ~[?:?]

    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[?:?]

    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]

    at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:182) ~[?:?]

    at java.nio.channels.FileChannel.open(FileChannel.java:292) ~[?:?]

    at java.nio.channels.FileChannel.open(FileChannel.java:345) ~[?:?]

    at net.minecraft.util.SessionLock.a(SessionLock.java:37) ~[paperspigot.jar:git-Paper-218]

    at net.minecraft.world.level.storage.Convertable$ConversionSession.(Convertable.java:338) ~[paperspigot.jar:git-Paper-218]

    at net.minecraft.world.level.storage.Convertable.c(Convertable.java:308) ~[paperspigot.jar:git-Paper-218]

    at net.minecraft.server.Main.main(Main.java:151) [paperspigot.jar:git-Paper-218]

    at org.bukkit.craftbukkit.Main.main(Main.java:293) [paperspigot.jar:git-Paper-218]


session.lock과 datapack폴더를 수정 한 후 오류 로그2021-09-03-17.txt 

는 무한히 생성되었기에 서버를 강제로 중단하였고,  너무 많은 글자수로 인해서 첨부파일을 통해서 올려놓겠습니다.


제가 원하는 것은 친구들끼리 했던 맵파일 자체만 살려서 서버에 적용하고 싶습니다. 경험치나 인벤토리 상태등 날라가도 상관없습니다. 아무래도 건축서버다 보니 친구들의 노력이 많이 들어가 있습니다. 직접적인 해결방법도 좋고, 다른 프로그램을 통해 적용시키는 방법도 괜찮습니다. 어떻게든 적용할 수 있도록 도와주세요!

7개의 댓글

허두
2021.09.03

우선 깔끔한 질문 감사드립니다 bb 이렇게 상황이 잘 제시된 질문도 오랜만이네요


일단 간단한 이야기 하나만 하겠습니다. 아마 아실테지만, 페이퍼는 스피곳의 개선판입니다.

그러므로 둘의 체계가 달라 일어나는 오류일 확률은 극히 낮습니다.


AccessDeniedException 오류가 뜨는 것으로 보아 해당 파일에 접근할 권리가 현재 사용자에게 없거나(확률 희박),

이미 무언가 프로세스에서 해당 파일을 점유하고 있는 것으로 보입니다. (서버 구동 중 맵 파일을 변경하려고 할 때 자주 발생)


그런데 글을 읽다가 난 생각인데,

1. 페이퍼 서버 구동을 중지한다

2. world 폴더를 지운다

3. 원래 즐기던 건축맵을 zip 파일 등으로 압축하여 서버컴(nas)의 페이퍼 서버 폴더 안으로 가져온 뒤 압축을 푼다

4. 이름을 world로 바꾼다

5. 페이퍼 서버를 다시 구동한다

같은 형식으로 하면 안되려나요? 맵 파일 안의 구성 요소만 바꾸셨다는 얘기를 보고 떠올랐습니다.


추가로 sessions.lock 파일은 거의 중요하지 않으며 그 부분에서 충돌이 나면 해당 파일만 뺀 채로 복사하거나 그냥 지워버리셔도 무방합니다.

와우님
2021.09.03
@허두

답변 감사합니다.

처음에 저도 역시 제시해준 방법과 같이 폴더채로 바꿨고, 그랬을 때 글 속 첫번재 오류 로그가 발생하였습니다.

또한 서버 파일들을 수정할 때는 항상 서버구동을 종료하고, 파일 수정 후 서버 가동의 순서를 원칙으로 테스트를 진행하였습니다.

 

해결이 되진 않았지만, 관심과 댓글 감사합니다!

허두
2021.09.04
@와우님

혹시 서버가 구동되고 있지 않은 상태에서 sessions.lock 파일을 점유하고 있는 프로세스가 있는지를 확인하는 방법은 어려울지요?

와우님
2021.09.04
@허두

또 다른 답변 감사합니다!

혹시나 해서 NAS 프로세스를 꼼꼼히 살펴보았는데, 점유하고 있는 프로세스는 없는 것으로 보여집니다. 혹시나 제가 못찾았을 가능성이 있기에 NAS를 재부팅 한 상태에서 맵파일을 수정하고 다시 실행시켰는데, 역시나 글 속 첫번째 오류로그가 뜨면서, 서버가 종료된다는 점 말씀드립니다.

 

역시 해결이 되진 않았지만, 관심과 댓글 감사합니다!

허두
2021.09.04
@와우님

거참 이상하네요, 점유하고 있는 프로세스도 없는데 접근이 불가능하다니...

혹시 nas 시스템에 리눅스 명령어 등으로 접근할 수 있는 기능이 있나요? 이제 파일 권한 문제라고밖에 말할게 없어서 말이죠..

혹시 잘 모르시겠다면 무슨 nas 사용중이신지 말씀해주셔도 좋을듯 합니다!

@허두

말씀 감사드립니다. 우선 NAS에 접근한 권한은 개인 어드민 계정입니다.어드민.png

그리고 Docker는 리눅스 기반이기에 직접적인 높은 권한에 대해서는 잘 모릅니다. 그래서 Docker자체에 있는 높은 권한 사용하기 기능을 통해서 실행하고 있습니다.

높은 권한.png


그리고 현재 사용하고 있는 Nas모델은 Synology Nas 218+ 모델입니다. 그리고 렘 같은 경우는 16GB로 업그레이드 했습니다.


처음에는 Java기반의 컨테이너로 직접 만들었으나 CPU 오버로드 이슈(Spigot)의 문제로 누군가가 만들어놓은 이미지 컨테이너를 가져와서 사용합니다.  만들때 참고했던 관련 자료를 링크 해 놓겠습니다.


Java기반 Spigot컨테이너 제작 참고(https://iteastory.com/162)(*1편, 2편, 3편)

MarcTV이미지 컨테이너 제작 참고(https://youtu.be/LtAQiTwLgak)


또한 Java기반으로 만들었을때는 플러그인 폴더와 맵 파일 자체가 폴더 디렉토리에 생성되지 않았습니다. 그래서 MarcTV에서 만든 이미지 컨테이너를 활용하기로 한 것 입니다.

허두
2021.09.04
@와우님

자료 공유 감사드립니다 :)

공유해주신 자료들 중 Java 컨테이너 구축쪽에서, 리눅스 터미널에 관리자 권한으로 접근할 수 있다는 사실을 알아냈습니다.



fa7467c7815afef362bd085841f72df6.png올려주신 자바 컨테이너 게시글에서 찾은 터미널 화면

* 모든 명령어 대상으로, 권한 부족으로 인해 명령어를 실행할 수 없다고 뜨는 경우 명령어 앞에 sudo를 붙여 시도해보시기 바랍니다. *

이곳에서 cd 폴더경로 명령어를 통해 서버폴더로 들어간 뒤

(MarcTV 영상 기준, 아마 /vdsm/docker/mcserver/data 이려나요? ls -l 명령어로 현재 폴더 안의 파일들을 찾아 cd 폴더이름 명령어로 폴더에 들어갈 수 있습니다)

ls -l 명령어로 서버폴더 내의 구성 요소들을 살펴볼 수 있습니다.

아마 MarcTV 컨테이너를 사용하면 서버폴더 내에 월드 파일이 생성된다고 하였으니, 이름이 world일 확률이 높겠지요? cd 폴더이름 명령어로 월드 폴더 안에 들어가면

ls -l 명령어 입력 시 sessions.lock 파일이 보일겁니다.

그러면 chmod a+rwe sessions.lock 명령어를 입력하여 파일의 모든 권한을 모두에게 해제해주세요.


그런 다음 서버를 다시 실행해보시기 바랍니다. 이번에는 다른 오류가 뜨거나, 같은 오류가 뜨면서 해결되지 않으면 다시 한번 증상과 함께 댓글 달아주세요!

뉴스 및 창작물
/files/thumbnails/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견

학교가기싫다

2024-05-08

0

/files/thumbnails/384/778/003/262x150.crop.jpg?20240507003327

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1

/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240428135129

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0