简介
厂长家傻儿子说他有一张 3060 显卡,然后想让我塞满他,所以我想着既然他都这么说了,那么我就搞一个 jellyfin,然后塞满他的硬盘,塞满他的显卡,塞满他的上行带宽,最好还可以塞满他的 cpu 和内存。
创建虚拟机
虚拟机是创建在 pve 上的,为了保证资源不会被厂长儿子共享过去,所以就选择了显卡直通
安装显卡驱动
在下面这个网站找到最新的显卡驱动
https://www.nvidia.com/Download/index.aspx?lang=en-us
下载完成之后
第一次运行可能会提示你禁用Nouveau显卡驱动,跟着向导走可以直接禁用,然后重启服务器
之后运行会提示你gcc make kernel-devel 什么的没有,按照提示一个个安装就好了,在安装的时候还要指定kernel-devel的路径,一般是在/usr/src/kernels/这个路径下面
./NVIDIA-Linux-x86_64-535.104.05.run --kernel-source-path=/usr/src/kernels/4.18.0-477.21.1.el8_8.x86_64/
在运行上面命令的时候可能还会提示你安装下面两个东西
pkg-config
vulkan-loader
为了方便,你可以新打开一个终端,然后安装上面两个依赖
最后使用nvidia-smi
验证下就好了,如果一切正常的话会有下面的输出
Mon Sep 4 06:57:38 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:00:10.0 Off | N/A |
| 38% 47C P0 N/A / 170W | 1MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
安装 docker
如果是 centos 的话可以直接执行下面两个命令
wget get.docker.com
bash index.html --mirror Aliyun
但是我是 almalinux,所以
添加软件源
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
更新软件源
dnf makecache
安装 docker
dnf install docker-ce docker-ce-cli containerd.io
启动 docker
systemctl start docker
配置为开机启动
systemctl enable docker
查看 docker 启动状态
systemctl status docker
安装nvidia-container-toolkit
为了让显卡可以在容器里面使用,你需要安装nvidia-container-toolkit,因为我是 almalinux,所以要强制指定发行版本是 centos8
配置软件源
distribution=centos8
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
启动软件源
yum-config-manager --enable libnvidia-container-experimental
安装nvidia-container-toolkit
dnf install -y nvidia-container-toolkit
配置 Docker 守护进程以识别 NVIDIA 容器运行时
nvidia-ctk runtime configure --runtime=docker
重启 docker
systemctl restart docker
测试容器能不能识别显卡
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
如果正常的话是会输出你的显卡相关信息的
或者使用下面的docker-compose.yaml一键启动
version: '3.9'
services:
cuda:
command: nvidia-smi
image: 'nvidia/cuda:11.6.2-base-ubuntu20.04'
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
然后查看已经关闭了的容器日志
启动 jellyfin
使用下面的docker-compose.yaml启动 jellyfin
version: '3.3'
services:
jellyfin:
image: 'jellyfin/jellyfin:10.8.10'
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- './config:/config'
- './cache:/cache'
- './media:/media'
- './disk1:/disk1'
network_mode: host
配置 jellyfin
启动完成之后你需要配置显卡解码
访问 jellyfin,创建完初始用户之后在控制台,转码这里选择 nvidia nvenc,然后把下面启用硬件编码的格式全部打勾,
还有要启用色调映射,不然在 jellyfin 中你所有的 hdr 视频都会是灰蒙蒙的一片
在国内因为会有各种复杂的网络问题,所以tmdb 的访问是很慢的,所以如果可以的话,你最好安装一下下面这个插件,从豆瓣获取电影的元数据
https://github.com/cxfksword/jellyfin-plugin-metashark
还有启用OpenSubtitles插件,来解决部分视频没有字幕的问题
最后
如果你也想和我一起,塞满厂长家儿子的显卡,那么联系我,我给你开 jellyfin 的账号
目前厂长家傻儿子 jellyfin 服务器的配置信息
- 显卡: 已经锻炼过了的3060
- 硬盘: 16T 目前已经塞了 5T 全是 4k 资源
- cpu: 16c 我偷偷开的,反正空着也是空着
- 内存: 16g
- 上行: 未知
欢迎关注我的博客www.bboy.app
Have Fun