Contents
개요
얼마 전 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 업데이트 시 ‘명령줄 업데이터를 사용하세요.’ 대처법