CentOS 上可用的 Jellyfin 存储方案
在 CentOS 上,Jellyfin 的媒体库与缓存可以放在多种后端,常见做法包括本地直连磁盘、对象存储挂载、网络共享目录以及容器化卷挂载。下面按场景给出可选方案与关键要点。
一、本地直连磁盘或阵列
- 适用:单机或直连 DAS/NAS 的场景,追求稳定与高吞吐。
- 做法:将媒体库放在本地目录(如 /media),Jellyfin 直接以本地路径扫描;若使用 RPM 包安装,Jellyfin 以系统服务运行;若使用 Docker,将目录通过 -v 挂载进容器(如 /srv/jellyfin/config:/config、/srv/jellyfin/cache:/cache、/media:/media)。
- 要点:目录权限与所有者需让 Jellyfin 进程可读;建议将 /config 与 /cache 放在 SSD 上以提升元数据与缩略图加载速度。
二、对象存储挂载 S3 兼容
- 适用:海量媒体、需要横向扩展与低成本存储。
- 做法:使用 s3fs-fuse 将 S3/MinIO 桶挂载为本地目录(如 /mnt/oss),Jellyfin 像访问本地一样添加该目录为媒体库。
- 关键步骤:
- 安装依赖并编译/安装 s3fs-fuse;
- 将密钥写入 /etc/passwd-s3fs 并设为 600;
- 挂载:s3fs YOUR_BUCKET /mnt/oss -o passwd_file=/etc/passwd-s3fs -o url=https://YOUR_S3_ENDPOINT -o use_path_request_style;
- 在 Jellyfin 中把 /mnt/oss 加入媒体库。
- 注意:对象存储为“最终一致性”模型,重命名/移动可能延迟生效;大量小文件与频繁元数据操作对性能影响较大,建议结合本地 SSD 缓存 与合理的目录结构。
三、网络共享目录 NFS/SMB
- 适用:已有 NAS/文件服务器,希望集中管理存储。
- 做法:在 CentOS 上挂载 NFS/SMB 共享到本地目录(如 /mnt/nfs 或 /mnt/smb),Jellyfin 直接扫描该目录;Docker 部署时同样通过 -v 挂载到容器内。
- 要点:确保挂载点的 UID/GID 与权限与 Jellyfin 进程匹配;网络抖动可能导致播放中断,建议启用自动重连与本地读缓存。
四、容器化卷与主机路径
- 适用:使用 Docker 部署,强调配置与数据持久化、迁移与升级便利。
- 做法:将 /config(配置与数据库)、/cache(图片与转码缓存)与 /media(媒体库)分别映射到宿主机目录;必要时映射 /dev/dri 以启用 Intel Quick Sync 等硬件加速。
- 要点:分离配置/缓存与媒体库便于备份与迁移;硬件加速需将宿主显卡设备直通到容器。
五、远程访问与网络挂载搭配
- 适用:无公网 IP 或需要外网访问的场景。
- 做法:在本地按上述任一存储方案部署后,结合 内网穿透(如 frp、花生壳)将 8096/8920 暴露到公网域名;远程访问时建议启用 HTTPS 与访问口令,避免直接暴露服务端口。