• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
Proxmox

Proxmox 에서 AMD H/W 트랜스코딩 Plex LXC설치하기.

달소 달소 1847

2

9

 

안녕하세요 달소입니다.

 

앞서 Proxmox 의 Plex 트랜스코딩과 관련하여 히쓰 님께서 좋은 정보를 주셔서 글로 기록할겸 남겨봅니다.

Proxmox의 LXC에서 AMD APU의 내장그래픽을 이용한 트랜스코딩을 진행하는방법입니다.

 

약간의 삽질이 있었지만.. 결국 해냈습니다!.

불편하던 docker 실행방법도 나름대로 수정해서 docker-compose.yml 파일로 변경했습니다.

 

image.png.jpg

 

사전 준비사항 및 환경

CPU : AMD Ryzen 5700G
OS : Proxmox 7.2
LXC : Ubuntu 22.04 LTS

 

Proxmox에서 hw 트랜스코딩 드라이버가있는지 확인.(ls -al /dev/dri)

image.png.jpg

plex.tv/claim 에서 키 받기(키를 통해 서버의 소유 및 계정인증)

claim-xxxxxxxxxxxxxx

 

image.png.jpg

 

LXC 설치하기

https://svrforum.com/os/146425

안녕하세요. 달소입니다.   이번편은 Proxmox의 또하나의 특징인 LXC에 대해서 소개해드리고 테스트로 하나 설치해보도록하겠습니다.   ...
달소 | 2022.01.25

 

local에서 CT 템플릿 - 원하는 템플릿 다운로드(OS)

image.png.jpg

 

우측상단 CT 생성

 

image.png.jpg

여기서 중요한건  권한 없는 컨테이너의 체크를 해제해주셔야합니다.

보안상 좋지는 않지만 host의 파일의 드라이버를 매핑하기때문에 어쩔수없습니다 ㅠ

image.png.jpg

image.png.jpg

 

대충 원하는 스펙으로 생성( 생성 후 시작 선택 X)

 

image.png.jpg

 

생성후에 옵션 -> 특징 편집 -> 중첩을 체크해주세요.

image.png.jpg

이제 쉘에서 Proxmox에서의 드라이버를 LXC에 매핑시켜주겠습니다.

 

쉘로 가서 생성한 LXC의 config 파일로 진입합니다.

 

vi /etc/pve/lxc/<CONTAINER ID>.conf

 

맨아래로 내려가서 아래내용을 복붙해주세요.

 

lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/renderD128 none bind,optional,create=file

image.png.jpg

 

그리고 :wq로 저장.

 

이제 컨테이너를 실행해줍니다.

실행 후 ls -al /dev/dri를 했을때 매핑이 제대로 되있으면 아래처럼 나오게됩니다.

image.png.jpg

 

 

이제 도커를 설치해주고 다음단계로 넘어가겠습니다.

apt update && apt upgrade -y 실행 후 apt install docker docker.io docker-compose로 도커를 설치해줍니다.
저는 편의를 위해 vim도 설치해줬습니다.(apt install vim)

 

image.png.jpg

 

설치가 완료되면 아래 명령어로 docker 서비스를 활성화 시켜주세요.

systemctl enable docker

 

image.png.jpg

 

그리고 컨테이너를 생성하기전에 docker를 설치하면서 같이 설치된 apparmor를 제거해주셔야 실행에 문제가 없습니다.

apt remove apparmor

image.png.jpg

PLEX 컨테이너 생성하기

컨테이너 생성전에 볼륨매핑할 디렉터리 먼저 만들어주겠습니다.
실사용시에는 NFS를 통해서 시놀/헤놀에 있는 데이터를 사용할 것이지만.. 여기서는 테스트를 위함이므로 대충만들어주겠습니다.


transcode쪽음 트랜스코더 임시 디렉토리로 램디스크를 사용하면 좋습니다.

 

mkdir -p /data/plex/config
mkdir -p /data/plex/transcode
mkdir -p /data/plex/media

image.png.jpg

저는 편의성을 위해 docker-compose로 커맨드를 변경해서 만들었습니다.

 

cd /data/plex && ll

vi docker-compose.yml

 

 

내용은 아래와 같습니다.

수정할 부분은 hostname과 claim key 정도입니다.

 

version: '3'
services:
  plex:
    image: mauimauer/spritsail-plex
    container_name: plex
    hostname: DS-Plex
    restart: always
    environment:
      - PLEX_CLAIM=claim-xxxxx
      - TZ=Asia/Seoul
    ports:
      - "32400:32400"
    volumes:
      - /data/plex/config:/config
      - /data/plex/transcode:/transcode
      - /data/plex/media:/media
    devices:
      - /dev/dri:/dev/dri

 

그리고 docker-compose up -d 명령어로 컨테이너를 생성해주세요.

 

image.png.jpg

 

생성이 완료되었으면 ip:32400으로 접속하신뒤에 claim key를 발급받은 계정으로 로그인해주세요.

 

image.png.jpg

 

이제 서버설정을 하시고 이용하시면됩니다.

 

image.png.jpg

 

트랜스코딩도 잘되네요 ㅎㅎ

아직 NFS마운트를 안해서 간단한 FHD 영상만 트랜스코딩해보았는데

hw 트랜스코딩 전에는 20%정도 사용되던 CPU가 3~6% 사용으로 줄었습니다

 

추후에 다른기기들도 마운트후에 테스트해보겠습니다~

 

image.png.jpg

 

사용한 이미지 :

https://hub.docker.com/r/mauimauer/spritsail-plex

 

신고공유스크랩
9
2명이 추천
profile image 1등
히쓰 2022.05.10. 19:10

벌써 테스트 하시는군요ㅎ

잠깐보니 도커 plex에도 /dev/dri 디바이스 매핑이 빠져있고

mauimauer 이분께서 spritsail/plex-media-server를 포크한 mauimauer/spritsail-plex로 사용해야합니다

profile image
달소 글쓴이 2022.05.11. 13:52
히쓰

드라이버 매핑은 제가 추가로했는데 이미지가 달랐었군요.,..ㅎ 어쩐지안된다했습니다 ㅠ

profile image
달소 글쓴이 2022.05.11. 14:28
히쓰

오우 됐습니다 ㅎㅎ docker-compose.yml 파일로 만들어봐야겠네요 device 매핑이 익숙치않ㅅ습니다..

profile image 2등
펜타네스트 2022.05.11. 09:10

으아니 amd 트랜스코딩을 리눅스에서 어케 한다는거지 하고 한참을 봤네요.

이미지가 다른거군요..오호라

3등
매력우C 2023.02.09. 22:36
달소님 글 보고 따라하다가 저 같은 분들이 계실까봐 남깁니다.
제가 구상했던 방법은 헤놀에 모든 데이터를 밀어넣고 거기서 파일을 관리하듯 관리하고 싶어서

volumes:
- /data/plex/config:/config
- /data/plex/transcode:/transcode
- /data/plex/media:/media

해당 부분을 모두 NFS 폴더로 설정했으나, docker-compose 이후 무한 재시작 되는 현상을 겪었습니다.
(restart=always 니까 당연하지....)
로그를 까보니 permission denied...

애초 헤놀에서 NFS 설정 시, admin에 root 권한으로 설정..... 했다는 것도 모르고 폴더 권한만 만지작 거리고 있었어요.

즉, 헤놀 nfs 폴더에 container 파일을 구축하고자 하시면
environment:
- SUID=0
- SGID=0
이렇게 추가해주시면 됩니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기
분류 제목 글쓴이 날짜 조회 추천
공지 서버OS(ESXi/Linux/Router 등) 게시판 이용안내. 달소 21.11.16.17:43 581 +1
ESXi 공지 ESXi 관련 추천글 모음 5 달소 21.04.23.12:19 3691 +6
ESXi USB LAN으로 ESXi8 설치하기.(Feat. Realtek LAN) 15 달소 23.01.01.18:51 2114 +2
Assistant OS 당신이 알아야할 새로운 스탠다드 Matter란 무엇인가 5 DarkAcid 22.12.30.02:38 722 +1
Proxmox 인텔 igpu는 gvt-g를 이용해 두개 이상의 가상머신에 패스스루 해줄 수 있네요. 13 니즛 22.12.23.02:19 1342 +1
질문
normal
초코코알라 23.05.06.18:14 632 0
Proxmox
image
굿럭 23.01.05.12:59 1380 0
Linux
image
달소 23.01.05.10:23 355 0
질문
image
swift89 23.01.04.14:05 372 0
질문
image
DarkAcid 23.01.04.12:34 430 0
Linux
image
콜라 23.01.03.23:07 595 0
질문
normal
ENTJ도플랜 23.01.03.13:15 302 0
Proxmox
image
eyeball 23.01.02.14:42 1191 0
ESXi
image
달소 23.01.01.18:51 2114 +2
질문
normal
누구냐 23.01.01.00:06 443 0