TrueNAS에 Nextcloud 29버전 업데이트 시 Dataset 재설정하기

개요

얼마 전 Nextcloud Hub 8 (29.0.0)이 발표되면서, TrueNAS 공식 카탈로그 앱 이미지도 계속해서 마이너 업데이트 중입니다.

이 중 변경점으로 userdata를 분리하면서, Storage구성 시 변경점이 발생하여 짧게 글을 작성합니다.

이 외의 부분은, 기존 글과 동일하게 설치를 진행하면 됩니다.

Data와 Userdata분리

Hub 7 (28.x 버전)까지는 기본적으로 3개의 dataset을 요구했습니다.

  • Nextcloud의 Data 저장용
  • Nextcloud의 DB(Postgresql) 저장용
  • nextcloud의 DB 백업 저장용

원래는, Data가 저장되는 곳에 각 user가 업로드한 데이터도 같이 저장이 되는 구조였습니다.

Nextcloud data 루트폴더 상에 ‘data’폴더를 하나 만들고 그 안에 각 유저id로 폴더가 만들어지는 식이죠.

예시) admin유저의 개인 파일

사실 이 구조는 Nextcloud의 웹 프론트엔드 부분과 설정 파일 등이 userdata와 한데 뒤섞여, 별로 좋지 않은 구조였던 만큼,

이번 변경점은 환영할 만한 일이긴 하지만, 이로 인해 dataset 설정도 바꾸어 주어야 할 필요가 있게 되었습니다.

신규 설치의 경우

4개의 dataset을 준비해서 Host Path로 넘겨주면 됩니다. 필요한 dataset은 각각 아래와 같습니다.

필수적으로 필요한 4개의 dataset외에 Additional Storage에서 추가적으로 dataset을 설정하여 Nextcloud에서 사용할 수 있습니다.

제 경우는 Syncthing으로 동기화받는 폴더를 연결하여 Nextcloud에서 외부 저장소로 사용중입니다.

기타 그 외, 신규 설치 시에는 Storage Configuration에서 Pre v2 Storage Structure라는 체크박스를  체크해제하고 설치하세요.

기존 버전에서 업데이트 시

기존 버전에서 업데이트를 했다면, 아래처럼 Pre v2 Stage Structure에 체크가 되어 있고, AppData Storage와 User Data Storage에 같은 경로가 설정되어 있습니다.

이 상태로 사용해도 별 문제는 없지만, 설정을 통해 신규 이미지에 맞게 폴더를 분리해 보겠습니다.

우선, 별도의 dataset을 하나 생성해 줍니다. 저는 nextcloud-userdata라는 dataset을 생성했습니다.

이후 SMB Share를 설정하여 윈도우로 작업하거나 쉘로 작업을 이어가야 합니다. 크게 어려울 건 없고, 단순히 기존 폴더 속 내용물을 복사해서 이어주면 됩니다.

우선, 폴더 내용물을 변경하기 전 Nextcloud를 중지시켜주세요.

쉘로 파일 복사하기

기존 Nextcloud data폴더의 내용물을 보면 아래와 같습니다(저는 이미 변동이 있어 Snapshot을 활용했습니다).

root@fentanas[...loud-data-auto-2024-05-14_00-00-clone]# ls -lah
total 62K
drwxrwx---  9 root     root      9 Apr 23 09:13 .
drwxrwx---  8 root     root      8 May 14 22:28 ..
drwxrwx---  2 root     root     15 May  5 20:54 config
drwxrwx---  5 root     root      5 May 13 11:42 custom_apps
drwxrwx---  7 root     root     11 Apr 26 13:58 data
drwxrwx--- 14 www-data www-data 33 May  5 19:39 html
drwxrwx---  4 root     root      5 Apr 23 12:30 root
drwxrwx---  3 root     root      4 Apr 11 15:54 themes
drwxrwx---  2 root     root      2 Apr 11 15:54 tmp

data폴더를 들어가보면, 아래처럼 유저명으로 생성된 폴더들과 userdata루트임을 알려주는 .ocdata파일들을 확인할 수 있습니다.

root@fentanas[...loud-data-auto-2024-05-14_00-00-clone]# cd data
root@fentanas[...data-auto-2024-05-14_00-00-clone/data]# ls -lah
total 23M
drwxrwx---  7 root root  11 Apr 26 13:58 .
drwxrwx---  9 root root   9 Apr 23 09:13 ..
-rwxrwx---  1 root root 542 May  5 20:07 .htaccess
-rwxrwx---  1 root root   0 May  5 20:07 .ocdata
drwxrwx--- 11 root root  11 May 13 11:39 appdata_ockamf9z41fw
drwxrwx---  2 root root   3 May  5 19:40 files_external
-rwxrwx---  1 root root   0 May  5 20:07 index.html
-rw-r-----  1 root root 51M May 13 11:36 nextcloud.log
drwxrwx---  6 root root   6 Apr 23 12:34 user001
drwxrwx---  6 root root   6 Apr 12 08:23 user002
drwxrwx---  2 root root   2 Apr 26 13:58 user003

이 파일들을 새로 만든 Nextcloud-userdata dataset으로 복사하면 됩니다.

기존 Nextcloud-data dataset의 경로가 /mnt/path/to/nextdata라면 복사할 대상 파일들은 /mnt/path/to/nextdata/data/*가 되는 겁니다.

이후, 새로 만든 dataset의 경로가 /mnt/path/to/userdata라면 아래와 같이 입력하면 됩니다.

cp -rfa /mnt/path/to/nextdata/data/* /mnt/path/to/userdata

복사대상 파일들을 하나씩 확인하려면 뒤에 –verbose를 붙이면 됩니다.

윈도우 파일 탐색기로 복사

새로 만든 userdata와 기존 Nextcloud의 data 모두 SMB Share로 설정했다면, 네트워크 공유로 쉽게 접근할 수 있습니다.

보이는 파일을 모두 복사해서 새 루트로 붙여넣어주면 됩니다.

Nextcloud 설정 변경 및 시작

Nextcloud앱 설정에서 Pre v2 Storage Structure 체크박스를 해제하고, 새로 생성한 userdata dataset을 Nextcloud User Data Storage에 매칭시켜줍니다.

이후 Nextcloud를 실행하면, 정상적으로 폴더와 데이터를 인식하게 됩니다.


관련 글

TrueNAS에 Nextcloud 사용하기

Redis로 Nextcloud 성능 끌어올리기

Nextcloud에서 Office문서 편집하기

TrueNAS + Nextcloud 업데이트 시 ‘명령줄 업데이터를 사용하세요.’ 대처법

Cloudflare Tunnel 환경에서 Nextcloud 구성 시 오류 해결하기

Nextcloud 계정 생성 시 초기 파일 수정하기

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤