找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7127|回复: 17

[虚拟机相关] 给孔昊天同学的lxc下安装docker做个延伸:装jellyfin共享集显并挂载NAS

[复制链接]
本帖最后由 中亿数码 于 2022-2-23 20:26 编辑

给孔昊天同学的lxc下安装docker做个延伸:
pve7.0虚拟机lxc下安装docker,实现cpu效能最大化 - 软路由,x86系统,openwrt(x86),Router OS 等 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
H110i+G3900(6代U)据搜一搜了解到只有6代以上的intel-CPU才支持GVT-g支持,可以给多个多个虚拟机共享显卡因为我觉得7*24运行,PVE要的是稳定和低功耗,所以不装WIN10
高性能CPU玩家不在意那点电费的可以这么玩。
如果想给win10启用核显方法自己找或留言问我,我有空会回复的,
这里只谈给LXC导入显卡给jellyfin解码使用:和装DOCKER不冲突
先在PVE的shell查看一下核显(别在PVE下装驱动)
ls -l /dev/dri我的反馈是:

drwxr-xr-x 2 root root         80 Dec 17 00:04 by-path
crw-rw---- 1 root video  226,   0 Dec 17 00:04 card0
crw-rw---- 1 root render 226, 128 Dec 17 00:04 renderD128


例如:lxc-ubuntu 20.10的编号是102
nano /etc/pve/lxc/102.conf
加入


lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm     
lxc.autodev: 1
lxc.hook.autodev: /var/lib/lxc/102/mount_hook.sh


Clrt+X再按Y退出保存
nano /var/lib/lxc/102/mount_hook.sh  #这个文件原来是没有的,相当是新建的

加入
mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128


Clrt+X再按Y退出保存

最后设置文件权限:
chmod 755 /var/lib/lxc/102/mount_hook.sh  


#以上数ID和显卡ID信息和文件名要注意换成自己的,别无脑粘贴。

启动LXC-Ubuntu
ls -l /dev/dri/,可以看到共享的显卡
card0 renderD128

装驱动,#我试过很多方法:lxc.cgroup2.devices.allow  这个cgroup是老版本,现在据说是用cgroup2
#apt install i965-va-driver vainfo(对应cgroup)这条针对老版本的,6代以上的建议用新的

sudo apt-get update  #更新一下

sudo apt install intel-media-va-driver-non-free(对应cgroup2)
sudo apt-get install vainfo

vainfo,验证VA-API( Video Acceleration API即视频加速API)

#以面这条很重要很重要很重要
安装完成后,更改以下配置文件,一般为 .bashrc 如果安装了 zsh,则是 .zshrc
一般在root或home文件夹内:
# 在文件末尾添加
export LIBVA_DRIVER_NAME=iHD

改一下这个文件重启一下,不然装上了也驱动不了。
vainfo
看到那堆能解码的信息了。

如果以上方法不行就得用官网的方法再安装一次:
sudo apt-get update
问题解决:
apt-add-repository: command not found
解决办法
sudo apt-get install software-properties-common

添加包存储库
要安装 repositories.intel.com/graphics 包存储库,请将以下内容添加到 Ubuntu 安装中。
在复制/粘贴到主机之前,您可能需要运行并输入密码,以防止命令被 sudo 密码提示符吞噬:sudo ls

sudo apt-get install -y gpg-agent wget
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key |
  sudo apt-key add -
sudo apt-add-repository \
  'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu bionic main'

安装运行时包

sudo apt-get update
sudo apt-get install \
  intel-opencl \
  intel-level-zero-gpu level-zero

sudo apt-get install libmfx1 libmfx-tools
sudo apt-get install libva-dev libmfx-dev intel-media-va-driver-non-free
sudo apt-get install vainfo

安装完成后,更改以下配置文件,一般为 .bashrc 如果安装了 zsh,则是 .zshrc
一般在root或home文件夹内:
# 在文件末尾添加
export LIBVA_DRIVER_NAME=iHD


ubuntu查看intel GPU使用情况

安装
sudo apt-get install intel-gpu-tools

运行
sudo intel_gpu_top  

#可以查看GPU的运行情况

另附上开启ubuntu开启远程ssh服务的方法:
一般系統不容許以root连接,解决方法为改配置文件,找到PermitRootLogin改成成yes
命令行sudo nano /etc/ssh/sshd_config
在文尾加入以下內容并保存退出
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
(按Ctrl+X退出,按Y保存)
重新启动SSH server
命令行sudo /etc/init.d/ssh restart


先装好显卡驱动后再装一下Jellyfin
apt update

apt upgrade

按官方的安装方法:
sudo apt install apt-transport-https software-properties-common
sudo add-apt-repository universe
wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

sudo apt update

sudo apt install jellyfin

安装完后执行 service jellyfin status,显示状态为 running 说明安装成功
再从网页中ip:8096访问后台:

为了让jellyfin有权限使用显卡解码
chmod 777 /dev/dri/card0
chmod 777 /dev/dri/renderD128
都改成777权限



将Nas目录挂载到pve宿主机上
安装 cifs-utils 包
sudo apt-get install cifs-utils
创建备份目录
sudo mkdir /mydata
运行挂载命令
mount.cifs //192.168.x.x/samba的挂载目录 /mydata / -o user=用户名,pass=密码,vers=2.0
例如:
mount.cifs //192.168.10.10/testdata /mydata / -o user=test,pass=123456,vers=2.0   192.168.10.10/testdadt(是我内网的网盘地址是samba协议的)
/mydate(是PVE下的文件夹)
user=test(test是我samba的登录名)
pass=123456(123456是我的samba登录密码)

挂载完后
df
查看一下PVE挂载的磁盘

将pve宿主机目录挂载到LXC容器内
pct set 102 -mp0  /mydata,mp=/data
重启LXC容器生效。

也可用挂载PVE下的本地硬盘
相关命令
pct set 102 -mp0 /mnt/bindmounts/mydata,mp=/mydata
将宿主机/mnt/bindmounts/sky文件夹挂载到编号102虚拟机/sky目录下

上面命令效果等同于,在宿主机nano /etc/pve/lxc/102.conf内添加一行
mp0: /mydata,mp=/mydata
往后就mp1、mp2、mp3 。。。。

pct set 102 -mp0 thin1:10,mp=/path/in/container
将thin1硬盘中10G空间挂载到编号100虚拟机里container文件夹下


以上内容全来自网络,也忘了到底在那抄来的,如有侵权请联系本人删帖!!


评分

参与人数 4恩山币 +5 收起 理由
ylxc*** + 1 不错
viru*** + 2 风清云淡、飘逸悠然…… 极爽!
极*** + 1 强大的恩山!(以下重复1万次)
孔昊*** + 1 可以可以

查看全部评分

完全看不懂,请问要思考什么才能看懂这个教程?
回复

使用道具 举报

 楼主| | 显示全部楼层
swsyzq 发表于 2022-2-23 20:25
完全看不懂,请问要思考什么才能看懂这个教程?

关键词,PVE,显卡直通,jellyfin解码,LXC挂载硬盘。等,看你的需求。
PVE,装了个爱快,OP后,还能装个DOCKER,DOCKER是装在LXC里的Ubuntu,这个Ubuntu同时也能装Jellyfin
问为什么要这么装?
一,我只学会了这个
二、听说这么装能起到隔离的作用,那个LXC出现问题也不会影响到别PVE宿主机,删了重装就行了。
三、LXC下装Ubuntu有模版,好像是轻量化的。
这就是我了解到的,别的就不知道了。
回复

使用道具 举报

看到帖子    以为被点名了,哈哈。
我的核显直通给黑群晖了,装的也有jellyfin,但是感觉兼容性好差,不如本地播放器解码。
黑群晖里还能做个照片识别,也挺好。
看着帖子不长,真的摸索了才知道,不容易啊,顶贴
回复

使用道具 举报

步骤大体没有错。就是那个mount hook那边一点都不pve7 直接lxc.mount.entry就可以搞定的事情。另外你都没有安装jellyfin-ffmpeg。
回复

使用道具 举报

中亿数码 发表于 2022-2-23 20:32
关键词,PVE,显卡直通,jellyfin解码,LXC挂载硬盘。等,看你的需求。
PVE,装了个爱快,OP后,还能装 ...

jellyfin没有必要跑在docker里面,另外新开一个lxc就可以跑。
回复

使用道具 举报

孔昊天同学 发表于 2022-2-24 13:32
看到帖子    以为被点名了,哈哈。
我的核显直通给黑群晖了,装的也有jellyfin,但是感觉兼容性好差,不如 ...

以前我也这样。后来我核显不给群晖了。群晖人脸识别改成CPU识别了。
把jellyfin从群晖里面直接移出来。让群晖只做nas同时提供nfs和samba服务了,这样跟方便。利旧移动硬盘通过USB3.0转挂载给jellyfin了。
回复

使用道具 举报

非集成显卡也可以通过类似命令挂在到LXC模板下吗?还有,有那个命令可以把整个物理磁盘挂载到LXC模板下吗?
回复

使用道具 举报

 楼主| | 显示全部楼层
极品斌 发表于 2022-2-24 15:47
非集成显卡也可以通过类似命令挂在到LXC模板下吗?还有,有那个命令可以把整个物理磁盘挂载到LXC模板下吗?

非集显没搜过,不知道。
挂载磁盘是可以的,但也是通过PVE宿主机分享的方式挂载下去(这是个人理解不知道对不对)
例如:
pct set 102 -mp0 /mnt/bindmounts/mydata,mp=/mydata #注意你的磁盘是否挂在/mnt/bindmounts/里
将宿主机/mnt/bindmounts/mydata文件夹挂载到编号102虚拟机/mydata目录下
回复

使用道具 举报

中亿数码 发表于 2022-2-24 18:13
非集显没搜过,不知道。
挂载磁盘是可以的,但也是通过PVE宿主机分享的方式挂载下去(这是个人理解不知 ...

谢谢,我查下这些命令和参数各自的意义。好像和我所想的不太一样,我想的是向直通一样,直通给lxc,lxc系统也是把他认成一个物理硬盘,就像PVE里的直通硬盘给群辉(之前有群辉数据),群辉可以在不破坏数据的情况下挂载这个硬盘。
回复

使用道具 举报

dominic 发表于 2022-2-24 15:37
以前我也这样。后来我核显不给群晖了。群晖人脸识别改成CPU识别了。
把jellyfin从群晖里面直接移出来。 ...

我现在也在考虑这样的操作
回复

使用道具 举报

x256的4k视频能播放吗, kodi端可以正常播, jf网页不行
回复

使用道具 举报

中亿数码 发表于 2022-2-24 18:13
非集显没搜过,不知道。
挂载磁盘是可以的,但也是通过PVE宿主机分享的方式挂载下去(这是个人理解不知 ...

用这个命令能把整个硬盘(非某个目录)挂到LXC再到Docker吗?
回复

使用道具 举报

 楼主| | 显示全部楼层
极品斌 发表于 2022-4-26 10:24
用这个命令能把整个硬盘(非某个目录)挂到LXC再到Docker吗?

不用命令,直接挂载就可以了。
在数据中心-存储-添加-SMB/CIFS,
再输入相映的信息
会挂载在mnt/pve/*
例如我的存储节点名字叫sky
挂载点就是mnt/pve/sky
回复

使用道具 举报

中亿数码 发表于 2022-4-27 17:33
不用命令,直接挂载就可以了。
在数据中心-存储-添加-SMB/CIFS,
再输入相映的信息

谢谢,有点儿高深的样子。我自己先通过你这些指点摸索看看,不懂再问。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-22 04:18

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表