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를 실행하면, 정상적으로 폴더와 데이터를 인식하게 됩니다.

댓글 달기

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

위로 스크롤