본문 바로가기
AndroidOverLinux

U5PVR 구글 드라이브 마운트 + 알파 (plexdrive + rclone + unionfs)

by ㅋㅋ잠자 2017. 8. 23.
반응형

안녕하세요. 도정진입니다.


이번에 모 대학교의 이메일을 통해 구글 드라이브를 사용해 보면서 직접 X86 시스템 4350U 제품에 설치를 하여 쓸만한 상황이 되었다고 생각하여 U5PVR 에도 적용을 해 보겠습니다. 




0. 개념


먼저 구글 드라이브를 알차게 사용하는 방법에 대해서 말씀 드리겠습니다. 


읽기 전용으로 plexdrive 를 사용하고 파일 쓰기용으로 union-fs 를 그리고 업로드용으로 rclone 을 사용합니다.

(노바님의 도움이 컸습니다.)


unionfs-fuse 패키지를 통해서 아래처럼 2개 스토리지를 합쳐서 하나처럼 보이는 방법을 사용합니다.


1. PlexDrive (RO)

2. U5PVR 의 하드디스크 (RW)


위의 1번과 2번을 합쳐서 다른 통합된 디렉터리(3) 하나를 생성합니다. 


결론적으로는 이렇습니다. 2번 하드디스크에 파일이 없어도 1번에 파일이 존재하면 3번 디렉터리에 보이게 됩니다. 물론 2번에 파일이 있고 1번에 없더라도 3번 디렉터리에 보입니다.


그러나 구글 드라이브는 용량이 무제한이고 U5PVR 에 달린 하드디스크는 커야 8TB 정도 이기 때문에 용량 감당이 힘듭니다. 이를 해결하기 위해서 rclone 을 사용하여 새벽 시간대에 정해서 업로드를 하고 2번 하드디스크에서 삭제를 하는 방식으로 운영이 됩니다.


업로드가 다 되면 이미 1번 구글 드라이브에 들어있는 상태가 되기 때문에 2번에 없어도 상관이 없습니다. 결론적으로는 2번 하드디스크는 일종의 캐쉬 역할이라고 보시면됩니다.


실제로 이전 글에서는 아래와 같이 rclone mount 를 통해서 구글 드라이브를 fuse 마운트로 직접 마운트를 진행했지만 그렇게 하면 파일 리스팅과 반응성이 매우 좋지 않음으로 plex drive 로 마운트를 진행합니다.


http://cafe.naver.com/mk802/20554


부가적으로 현 리눅스 버전은 아래와 같습니다.


root@u5pvr-debian:~# version


U5PVR Linux Firmware / ATV 7

VERSION : 17.08.21-EddyLab

BASE    : GNU/Linux Debian 8 jessie


root@u5pvr-debian:~#



1. rclone 에 구글 드라이브 마운트 등록하기


아래의 글은 이전에 작성해 놓은 글을 그대로 붙여 넣었습니다.





먼저 rclone 은 파일 시스템을 마운트 할 때, fuse 파일 시스템을 사용합니다. 따라서 fuse 패키지를 설치해야합니다.


추가적으로 zip 파일의 압축을 풀기 위해서 unzip 패키지도 설치합니다.


apt-get install fuse unzip


다음으로 rclone 바이너리를 홈페이지에서 받습니다.




wget http://downloads.rclone.org/rclone-v1.35-linux-arm.zip


받은 파일의 압축을 풀기 위해서 아래의 명령을 입력합니다.


# unzip rclone 입력하시고 TAB 키로 자동완성하시면 편리합니다.

unzip rclone-v1.35-linux-arm.zip

cd  rclone-v1.35-linux-arm


압축을 풀고 해당 폴더로 이동하셨으면 바이너리 파일을 편리하게 실행할 수 있게 PATH 환경변수에 포함된 디렉터리로 이동시킵니다. 저는 /usr/bin 에 옮기도록 하겠습니다.


cp rclone /usr/bin


# 실행 권한이 필요하기 때문에 아래의 퍼미션 설정을 합니다.

chmod a+x /usr/bin/rclone


다음으로 rclone 이 정상적으로 실행이 되는지 체크합니다.


아래처럼 뜨면 정상적으로 설치가 된 상태입니다.


root@u5pvr-debian:~# rclone version

2017/03/17 22:29:22 Config file "/root/.rclone.conf" not found - using defaults

rclone v1.35



마운트 폴더를 하나 만들기 위해서 /mnt/gdrive 라는 폴더를 만듭니다.


mkdir /mnt/gdrive


아래 명령을 통해서 구글 드라이브를 연동합니다.


root@u5pvr-debian:~# rclone config

2017/03/17 22:32:17 Config file "/root/.rclone.conf" not found - using defaults

No remotes found - make a new one

n) New remote

s) Set configuration password

q) Quit config

n/s/q> n

# 새로운 리모트를  생성해야 함으로 n 을 입력합니다.


name> djj9405

# 마음에 드는 이름을 하나 입력하십시오.


Type of storage to configure.

Choose a number from below, or type in your own value

 1 / Amazon Drive

   \ "amazon cloud drive"

 2 / Amazon S3 (also Dreamhost, Ceph, Minio)

   \ "s3"

 3 / Backblaze B2

   \ "b2"

 4 / Dropbox

   \ "dropbox"

 5 / Encrypt/Decrypt a remote

   \ "crypt"

 6 / Google Cloud Storage (this is not Google Drive)

   \ "google cloud storage"

 7 / Google Drive

   \ "drive"

 8 / Hubic

   \ "hubic"

 9 / Local Disk

   \ "local"

10 / Microsoft OneDrive

   \ "onedrive"

11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)

   \ "swift"

12 / Yandex Disk

   \ "yandex"

Storage> 7

Google Application Client Id - leave blank normally.

client_id> 

Google Application Client Secret - leave blank normally.

client_secret> 

# 정확하게 모르겠지만 보통 필요가 없습니다. 그래서 아무것도 입력하지 않고 엔터를 누릅니다.


Remote config

Use auto config?

 * Say Y if not sure

 * Say N if you are working on a remote or headless machine or Y didn't work

y) Yes

n) No

y/n> n

# 쉘에서 작업을 하기 때문에 자동 설정이 되지 않습니다. 따라서 n 을 입력하여 수동설정으로 넘어갑니다.


If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=b02c34056754881ab1b1d15b4e5bf67d

Log in and authorize rclone for access

Enter verification code>

# 이부분은 구글 계정과 연동하기 위한 부분입니다. 작업하실 때 나오는 링크를 복사하시고, 미리 브라우저에서는 연결할 구글 계정으로 로그인을 해 둡니다. 그 상태에서 위 주소를 붙여넣어 코드를 받으시면 됩니다.

각기 주소가 다르기 때문에 위 주소를 복사하지 마시고 작업중인 장비에서 나온 주소를 복사하여 작업하시길 바랍니다.


저의 경우 위 주소로 이동해 보면 아래와 같이 권한 허용창이 뜹니다.


아래에 나온 코드를 복사하여 붙여 넣습니다.



If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=b02c34056754881ab1b1d15b4e5bf67d

Log in and authorize rclone for access

Enter verification code> ----------------------------------------------

# 브라우저에서 복사한 코드를 붙여넣습니다.


--------------------

[djj9405]

client_id = 

client_secret = 

token = {"access_token":"---------------------------------------------------------------------------------------------------------------------------------------------------------------","token_type":"Bearer","refresh_token":"----------------------------------------------","expiry":"2017-03-17T23:39:37.623176291+09:00"}

--------------------

y) Yes this is OK

e) Edit this remote

d) Delete this remote

y/e/d> y

# 설정이 맞느냐고 물어보는데 맞으니 y 를 눌러줍니다.


Current remotes:


Name                 Type

====                 ====

djj9405              drive


e) Edit existing remote

n) New remote

d) Delete remote

s) Set configuration password

q) Quit config

e/n/d/s/q> q

# 설정이 끝났음으로 q 를 눌러서 종료해 줍니다.


root@u5pvr-debian:~# 



이렇게 구글드라이브 등록이 끝났습니다.




이번 글에서는 마운트를 하지 않을 예정이기 때문에 등록하는 부분까지만 진행을 합니다.




2. unionfs-fuse 설치하기


아래의 명령어로 설치를 진행합니다.


root@u5pvr-debian:~# apt-get install unionfs-fuse

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  fuse libfuse2

The following NEW packages will be installed:

  fuse libfuse2 unionfs-fuse

0 upgraded, 3 newly installed, 0 to remove and 53 not upgraded.

Need to get 219 kB of archives.

After this operation, 406 kB of additional disk space will be used.

Do you want to continue? [Y/n]

Get:1 http://httpredir.debian.org/debian/ jessie/main libfuse2 armhf 2.9.3-15+deb8u2 [125 kB]

Get:2 http://httpredir.debian.org/debian/ jessie/main fuse armhf 2.9.3-15+deb8u2 [69.1 kB]

Get:3 http://httpredir.debian.org/debian/ jessie/main unionfs-fuse armhf 0.24-2.2 [25.8 kB]

Fetched 219 kB in 2s (88.0 kB/s)

Selecting previously unselected package libfuse2:armhf.

(Reading database ... 23858 files and directories currently installed.)

Preparing to unpack .../libfuse2_2.9.3-15+deb8u2_armhf.deb ...

Unpacking libfuse2:armhf (2.9.3-15+deb8u2) ...

Selecting previously unselected package fuse.

Preparing to unpack .../fuse_2.9.3-15+deb8u2_armhf.deb ...

Unpacking fuse (2.9.3-15+deb8u2) ...

Selecting previously unselected package unionfs-fuse.

Preparing to unpack .../unionfs-fuse_0.24-2.2_armhf.deb ...

Unpacking unionfs-fuse (0.24-2.2) ...

Processing triggers for man-db (2.7.0.2-5) ...

Setting up libfuse2:armhf (2.9.3-15+deb8u2) ...

Setting up fuse (2.9.3-15+deb8u2) ...

Setting up unionfs-fuse (0.24-2.2) ...

Processing triggers for libc-bin (2.19-18+deb8u7) ...

root@u5pvr-debian:~#




3. plexdrive 설치하기


아래의 명령으로 바이너리를 받습니다.


업데이트 된 버전이 있을 수 있으니 아래의 릴리즈 깃을 확인해 주시길 바랍니다.


https://github.com/dweidenfeld/plexdrive/releases



root@u5pvr-debian:~# wget https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-arm7

--2017-08-23 22:43:09--  https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-arm7

Resolving github.com (github.com)... 192.30.255.112, 192.30.255.113

Connecting to github.com (github.com)|192.30.255.112|:443... connected.

HTTP request sent, awaiting response... 302 Found

Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/89668997/e6d60690-76f6-11e7-8d2d-1b692c92aa64?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170823%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170823T134308Z&X-Amz-Expires=300&X-Amz-Signature=78996305285acc7f3f55ad9c20552aed75e6a9f26812c6b8e3aa5c663f131cca&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dplexdrive-linux-arm7&response-content-type=application%2Foctet-stream [following]

--2017-08-23 22:43:11--  https://github-production-release-asset-2e65be.s3.amazonaws.com/89668997/e6d60690-76f6-11e7-8d2d-1b692c92aa64?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170823%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170823T134308Z&X-Amz-Expires=300&X-Amz-Signature=78996305285acc7f3f55ad9c20552aed75e6a9f26812c6b8e3aa5c663f131cca&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dplexdrive-linux-arm7&response-content-type=application%2Foctet-stream

Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.1.248

Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.1.248|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 5220208 (5.0M) [application/octet-stream]

Saving to: ‘plexdrive-linux-arm7’


plexdrive-linux-arm7           100%[=====================================================>]   4.98M  46.9KB/s   in 1m 45s


2017-08-23 22:44:57 (48.7 KB/s) - ‘plexdrive-linux-arm7’ saved [5220208/5220208]


# plexdrive 로 이름을 바꿉니다.

root@u5pvr-debian:~# mv plexdrive-linux-arm7 plexdrive


# 실행권한을 부여합니다.

root@u5pvr-debian:~# chmod a+x plexdrive


# /usr/bin 폴더로 바이너리를 이동시킵니다.

root@u5pvr-debian:~# mv plexdrive /usr/bin


# 뭔가 실행은 되지요? ㅎㅎ

root@u5pvr-debian:~# plexdrive

[PLEXDRIVE] [2017-08-23 22:45] ERROR  : Command  not found

root@u5pvr-debian:~#


설치가 완료 되었습니다.




4. plexdrive 연동하기 (구글 클라우드 플랫폼)


플렉스 드라이브를 사용하기 위해서 구글 클라우드 콘솔로 이동합니다.


https://console.cloud.google.com/


저는 이미 한번 생성해서 클라우드 플랫폼을 처음 사용할 때 동의하는 화면이 없습니다. 참고하시길 바랍니다.


상기 프로젝트를 누르면 아래의 선택하는 창이 듭니다. 거기서 + 버튼을 누릅니다.



프로젝트 이름을 마음에 드는 것으로 하나 해줍니다.




만들기를 하셨다고 해서 바로 접근이 가능한것은 아닙니다. 알림 아이콘에서 만들어 졌는지 확인을 하시고 진행하시길 바랍니다.



다시 프로젝트 선택 버튼을 누르고 방금 만든 것을 선택합니다.



그럼 방금 만든 프로젝트에 대한 대시보드가 열립니다. 여기서 API 개요로 이동을 누릅니다.



그리고 검색창에 drive 라고 검색을 해 봅니다.



그럼 google drive api 가 뜰것입니다. 해당을 눌러줍니다.



사용설정을 누릅니다.



다음으로 사용자 인증정보 탭으로 이동합니다.



사용자 인증 정보 만들기를 누릅니다.



OAuth 클라이언트 ID 를 선택합니다.


동의 화면 구성을 누르고 동의해 줍니다.



이름을 마음에 드는것으로 입력하고 저장을 누릅니다.



그러면 어플리케이션 유형이 선택이 가능하게 바뀌고 기타를 누른 다음에 또 마음에 드는 이름으로 입력을 합니다. 그 후 생성을 누릅니다.



그러면 팝업이 뜨면서 클라이언트ID 와 클라이언트 보안 비밀 값이 뜹니다.



U5PVR 에서 아래의 작업을 진행합니다.


root@u5pvr-debian:~# mkdir /etc/plexdrive

root@u5pvr-debian:~# nano /etc/plexdrive/config.json


{

"clientId": "클라이언트ID",

"clientSecret": "클라이언트 보안 비밀"

}



root@u5pvr-debian:~#


다음으로 plex 드라이브를 아래와 같은 명령으로 실행합니다.


# 플렉스 드라이브용 디렉터리를 생성합니다.

root@u5pvr-debian:~# mkdir /mnt/plexdrive


root@u5pvr-debian:~# plexdrive mount -c /etc/plexdrive --cache-file=/var/cache/plexdrive --uid=1023 --gid=1023 -o allow_other,read_only /mnt/plexdrive

Go to the following link in your browser https://accounts.google.com/-----------------------------------------------state-token

Paste the authorization code:

# 상기 링크로 가서 나오는 값을 복사하여 넣어줍니다.



root@u5pvr-debian:~# plexdrive mount -c /etc/plexdrive --cache-file=/var/cache/plexdrive --uid=1023 --gid=1023 -o allow_other,read_only /mnt/plexdrive

Go to the following link in your browser https://accounts.google.com/--------------------------------state-token

Paste the authorization code: 


입력을 완료하면 plexdrive 가 바로 동작이 되는 상태입니다. 


Ctrl + C 버튼으로 강제 종료합니다.


nohup + & 으로 완벽히 백그라운드로 돌려줍니다.


root@u5pvr-debian:~# nohup /usr/bin/plexdrive mount -c /etc/plexdrive --cache-file=/var/cache/plexdrive --uid=1023 --gid=1023 -o allow_other,read_only /mnt/plexdrive &

[1] 6520

root@u5pvr-debian:~# nohup: ignoring input and appending output to ‘nohup.out’


다음으로 /mnt/plexdrive 로 이동하여 파일이 정상적으로 있는지 확인합니다.

(바로 파일이 보이지 않습니다. 일정 시간 3분 가량 지나면 파일이 보이기 시작합니다.)


root@u5pvr-debian:/mnt/plexdrive# ls

100.djjproject  101.nightmoving  ismounted




5. unionfs-fuse 설정하기


통합할 폴더를 하나 생성합니다. 


그리고 U5PVR 하드디스크와 plexdrive 를 하나로 합칩니다.


# 통합하여 상용하는 폴더 생성 (3번 디렉터리)

root@u5pvr-debian:~# mkdir /mnt/gdrive


# U5PVR 내부 하드디스크에 캐쉬로 쓸 경로 생성 (2번 디렉터리)

root@u5pvr-debian:~# mkdir /mnt/media_rw/sda1/gdrive


# 1번 디렉터리 (plexdrive) 와 2번 디렉터리를 합친 3번 디렉터리 마운트

root@u5pvr-debian:~# unionfs-fuse -o allow_other,cow,uid=1023,gid=1023,umask=0 /mnt/media_rw/sda1/gdrive/=RW:/mnt/plexdrive/100.djjproject/=RO /mnt/gdrive

root@u5pvr-debian:~#


unionfs-fuse -o allow_other,cow,uid=1023,gid=1023,umask=0  --> 마운트 옵션

/mnt/media_rw/sda1/gdrive/=RW  --> 읽고 쓸 수 있는 2번 디렉터리

:/mnt/plexdrive/100.djjproject/=RO  --> plexdrive 로 마운트된 구글 드라이브 경로 지정

/mnt/gdrive  --> 짬뽕할 위치 지정


그럼 합치기는 끝났습니다.


실제로 U5PVR 의 /mnt/media_rw/sda1/gdrive 에는 파일이 존재하지 않지만 /mnt/plexdrive/100.djjproject/ 에 파일이 존재함으로 /mnt/gdrive 에는 파일이 있는 것처럼 뜹니다.


# /mnt/media_rw/sda1/gdrive 에는 파일이 존재하지 않으나

root@u5pvr-debian:~# ls /mnt/media_rw/sda1/gdrive/

root@u5pvr-debian:~#


# /mnt/gdrive 에는 파일이 보임

root@u5pvr-debian:~# ls /mnt/gdrive

music  video

root@u5pvr-debian:~# ls /mnt/gdrive/video/

애니  영화  드라마  뮤직비디오  UHD 컨텐츠

root@u5pvr-debian:~# ls /mnt/gdrive/music/

Album   Favorite   Favorite3  Favorite5  Favorite7  Instrument  OST     Others2    Pop   TOP100

Artist  Favorite2  Favorite4  Favorite6  Favorite8  Night       Others  playlists  temp


예를 들어서 test 라는 파일을 써 보겠습니다.


# 통합한 3번 디렉터리에 test 파일 생성

root@u5pvr-debian:/mnt/gdrive# touch test


# 통합한 3번 디렉터리에 정상적으로 test 파일 생성됨

root@u5pvr-debian:/mnt/gdrive# ls

music  test  video


# 그러나 1번 plexdrive 경로에는 test 파일이 없음

root@u5pvr-debian:/mnt/gdrive# ls /mnt/plexdrive/100.djjproject/

music  video


# 하지만 2번 U5PVR 하드디스크 경로에 test 파일 존재

root@u5pvr-debian:/mnt/gdrive# ls /mnt/media_rw/sda1/gdrive/

test

root@u5pvr-debian:/mnt/gdrive#





6. cron 을 통해 자동 업로드 설정하기


/mnt/media_rw/sda1/gdrive 에 존재하는 아직 구글 드라이브에 올려지지 않은 파일을 올려야합니다. 이를 위해서 rclone move 명령어를 사용합니다.


하기 스크립트는 노바님의 글을 참고하였습니다.


http://cafe.naver.com/mk802/20709


root@u5pvr-debian:~# nano /etc/plexdrive/upload.cron


#!/bin/bash

# RCLONE UPLOAD CRON TAB SCRIPT


if pidof -o %PPID -x "upload.cron"; then

   exit 1

fi


LOGFILE="/var/log/rclone-upload.log"

FROM="/mnt/media_rw/sda1/gdrive"

TO="gdrive:/100.djjproject"


# CHECK FOR FILES OLDER THEN 60MIN FOLDER

if find $FROM/* -type f -mmin +60 | read

  then

  echo "$(date "+%d.%m.%Y %T") RCLONE MUSIC UPLOAD STARTED" | tee -a $LOGFILE

  /usr/bin/rclone move $FROM/ $TO/ -c \

        --no-traverse \

        --transfers=4 \

        --checkers=4 \

        --delete-after \

        --min-age 15m \

        --bwlimit 8M \

        --log-file=$LOGFILE

  echo "$(date "+%d.%m.%Y %T") RCLONE MUSIC UPLOAD ENDED" | tee -a $LOGFILE

fi


exit


다음으로 crontab 에 등록합니다.


root@u5pvr-debian:~# crontab -e

no crontab for root - using an empty one


/usr/bin/select-editor: 1: /usr/bin/select-editor: gettext: not found

 'select-editor'.

/usr/bin/select-editor: 1: /usr/bin/select-editor: gettext: not found

  1. /bin/nano        <----

  2. /usr/bin/mcedit

  3. /usr/bin/vim.tiny


/usr/bin/select-editor: 32: /usr/bin/select-editor: gettext: not found

 1-3 [1]: 1


# Edit this file to introduce tasks to be run by cron.

#

# Each task to run has to be defined through a single line

# indicating with different fields when the task will be run

# and what command to run for the task

#

# To define the time you can provide concrete values for

# minute (m), hour (h), day of month (dom), month (mon),

# and day of week (dow) or use '*' in these fields (for 'any').#

# Notice that tasks will be started based on the cron's system

# daemon's notion of time and timezones.

#

# Output of the crontab jobs (including errors) is sent through

# email to the user the crontab file belongs to (unless redirected).

#

# For example, you can run a backup of all your user accounts

# at 5 a.m every week with:

# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

#

# For more information see the manual pages of crontab(5) and cron(8)

#

# m h  dom mon dow   command

0 1 * * * /etc/plexdrive/upload.cron > /dev/null



crontab: installing new crontab


상기 crontab 은 정상적으로 작동하는지 테스트를 못해봤습니다 ㅎㅎ... (may the sapzil be with you... - nova 님 -)




7. 부팅시 자동 마운트 하기


rc.local 에 등록해도 장기간 문제가 없음을 확인했습니다. 아래와 같이 해주시면 됩니다.


root@u5pvr-debian:~# nano /etc/rc.local



#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.


/etc/init.d/hostname.sh start


# plexdrive mount

mkdir /mnt/plexdrive

nohup /usr/bin/plexdrive mount -c /etc/plexdrive --cache-file=/var/cache/plexdrive --uid=1023 --gid=1023 -o allow_other,read_only /mnt/plexdrive &


# union-fs

sleep 10

mkdir /mnt/gdrive

unionfs-fuse -o allow_other,cow,uid=1023,gid=1023,umask=0 /mnt/media_rw/sda1/gdrive/=RW:/mnt/plexdrive/100.djjproject/=RO /mnt/gdrive


exit 0




8. U5PVR 에서 재생해보기


아래처럼 ES 파일 탐색기를 통해 재생을 합니다. 재생은 무난하게 잘 되었으며 비트브레이트 80mbps 영상도 무난하게 재생이 됩니다. (다만, 사용하시고 계시는 인터넷이 해외망이 느리거나 하면 재대로 재생이 되지 않습니다. 현재 LG U+ 인터넷이 매우 느립니다.) 


/mnt/gdrive/ 쪽의 영상을 Video Player 를 통해 재생을 시도합니다.



같이 있는 자막도 잘 올라옵니다. 



한편 ES 파일 탐색기 에서는 썸네일을 불러오는 기능이 있는데 해당이 켜져 있으면 썸네일이 다 불러와지기 전 까지 영상이 한번씩 버퍼링이 걸리는 문제가 생기기 때문에 축소판 그림을 해제해 줍니다.



소녀시대 영상도 재생이 잘 되는 부분입니다.






9. PC 에서 U5PVR 의 SAMBA 를 연결해 재생해보기


PC 에서 U5PVR 의 SAMBA 를 연결하여 재생을 해 보았습니다. 아래와 같이 무난하게 재생이 됩니다.







10. 리소스 사용량


리소스 사용량은 아래와 같습니다. 동시에 plexdrive 작업을 걸지 않는다면 문제는 없어 보입니다. 생각보다 CPU 사용량이 높습니다.


먼저 네트워크 사용량 부분입니다.



다음은 CPU 사용량입니다. 메모리 사용량도 많이 증가하였습니다.



딱히 사용하는 데에는 문제가 없으며 rclone 대비 반응속도가 매우 빠르고 디렉터리 리스팅이 매우 빠릅니다. 그냥 로컬에 붙어있는 느낌입니다. 


따로 크게 영상 재생하는데에 딜레이가 3초 5초 정도 걸리는 부분이지만 사용하는 데에는 문제가 없습니다.



여기서 글 마치도록 하겠습니다.


감사합니다.

반응형

댓글