前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用腾讯云CVM挂载COS作为Emby媒体服务器

使用腾讯云CVM挂载COS作为Emby媒体服务器

原创
作者头像
4O4
修改2023-07-05 22:27:35
9170
修改2023-07-05 22:27:35
举报
文章被收录于专栏:404

多款腾讯云产品免费体验:https://cloud.tencent.com/act/free?from=20863

最近收集了一些4k杜比视界的资源,于是想搭建自己的媒体服务器,考虑到NAS维护麻烦、网盘容量过小且限速,我决定在腾讯云上使用Emby搭建一套媒体服务器。首先我们需要一台云服务器,这里我选择使用竞价实例进行测试,待服务稳定后再利用镜像进行构建生产环境。

使用腾讯云CVM+COS搭建Emby服务器给我的整体感觉非常不错。在CVM上通过配置挂载点,将COS作为本地磁盘来使用,实现了高效的存储和计算,并且极大提高了性能和可靠性,同时也降低了成本。得益于腾讯云cvm强大的性能和优质的bgp网络,实际操作中在线播放4kHDR视频可以做到秒开,并且拖动进度条缓冲也很快。AMD EPYC系列处理器拥有更多核心、线程数量的优势,在解码10bit时并没有让我失望,相对于英特尔至强处理器依然有明显性能提升,总之嘎嘎香!

COS

目录和文件已经遵从emby命名规则准备好了。

服务器

【地域】地域选择与COS同一个地域,腾讯云针对部分同地域产品解析会优先走内网,省掉了公网流量费用,请求次数依然按实际计费。

【实例】随意,SA2老机型最便宜,这里我发现1c1g、1c2g、2c2g折后都是0.03¥/h于是选了2c2g。

【镜像】选Ubuntu20 x64,听我的少走弯路。

【网络】带宽太贵了我们按使用流量,带宽拉满4k秒开,个人流媒体服务器按流量相对更划算。

【安全组】全部放通,或者是放开22(ssh)、8096(emby)、8920(emby https)。

等待服务器创建完成。

SSH连接服务器设置root密码。

代码语言:javascript
复制
sudo passwd root

流量包

因为我们的服务器是按量计费,可以购买流量包,和手机的流量包一样,用来抵扣CVM产生的流量费用,根据自己实际情况按需购买。

COSFS

功能说明

COSFS 工具支持将对象存储(Cloud Object Storage,COS)存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象, COSFS 提供的主要功能包括:

  • 支持 POSIX 文件系统的大部分功能,如:文件读写、目录操作、链接操作、权限管理、uid/gid 管理等功能。
  • 大文件分块传输功能。
  • MD5 数据校验功能。
  • 将本机数据上传至 COS,建议使用 COS Migration 工具COSCMD 工具

局限性

COSFS 基于 S3FS 构建,读取和写入操作都经过磁盘中转,仅适合挂载后对文件进行简单的管理,不支持本地 POSIX 协议文件系统的一些功能用法;相比于 COSFS,更建议您使用 GooseFS-Lite工具访问 COS,GooseFS-Lite 是一个轻量级单机 COS Fuse 工具,具有更好的读写性能和稳定性;此外,您也可以选择使用 腾讯云存储网关访问 COS,腾讯云存储网关可以将 COS 存储桶,以网络文件系统挂载到多个服务器上,用户可以使用 POSIX 文件协议,通过挂载点读写 COS 上的对象; COSFS 的使用,需注意以下不适用的场景,例如:

  • 随机或者追加写文件会导致整个文件的下载以及重新上传,您可以使用与 Bucket 在同一个地域的 CVM 加速文件的上传下载。
  • 多个客户端挂载同一个 COS 存储桶时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等。
  • 文件/文件夹的 rename 操作不是原子的。
  • 元数据操作,例如 list directory,性能较差,因为需要远程访问 COS 服务器。
  • 不支持 hard link,不适合高并发读/写的场景。
  • 不可以同时在一个挂载点上挂载、和卸载文件。您可以先使用 cd 命令切换到其他目录,再对挂载点进行挂载、卸载操作。

看起来GooseFS-Lite更符合我的需求,但我为什么用COSFS而不用GooseFS-Lite呢?因为GooseFS-Lite安装过程复杂,碰到过很多问题,下次闲下来再尝试。有问题多看文档,还不行就提工单。

下载

下载COSFS,根据系统版本选择对应的安装包,github慢的可以通过cdn下载。

代码语言:javascript
复制
#Ubuntu14.04
sudo wget https://github.com/tencentyun/cosfs/releases/download/v1.0.20/cosfs_1.0.20-ubuntu14.04_amd64.deb
#Ubuntu16.04
sudo wget https://github.com/tencentyun/cosfs/releases/download/v1.0.20/cosfs_1.0.20-ubuntu16.04_amd64.deb
#Ubuntu18.04
sudo wget https://github.com/tencentyun/cosfs/releases/download/v1.0.20/cosfs_1.0.20-ubuntu18.04_amd64.deb
#Ubuntu20.04
sudo wget https://github.com/tencentyun/cosfs/releases/download/v1.0.20/cosfs_1.0.20-ubuntu20.04_amd64.deb

安装

安装COSFS,以 Ubuntu20.04 为例。

代码语言:javascript
复制
sudo dpkg -i cosfs_1.0.20-ubuntu20.04_amd64.deb

使用

配置密钥文件

在文件 /etc/passwd-cosfs 中,写入您的存储桶名称(格式为 BucketName-APPID),以及该存储桶对应的<SecretId> 和 <SecretKey>,三项之间使用半角冒号隔开。

代码语言:javascript
复制
sudo su  # 切换到 root 身份,以修改 /etc/passwd-cosfs 文件;如果已经为 root 用户,无需执行该条命令。
echo <BucketName-APPID>:<SecretId>:<SecretKey> > /etc/passwd-cosfs

如果没有passwd-cosfs就自己新建。

代码语言:javascript
复制
touch /etc/passwd-cosfs

为了防止密钥泄露,COSFS 要求您将密钥文件的权限值设置为640。

代码语言:javascript
复制
chmod 640 /etc/passwd-cosfs
示例
代码语言:javascript
复制
echo examplebucket-1250000000:AKIDHTVVaVR6e3****:PdkhT9e2rZCfy6**** > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs

运行

将密钥文件中配置的存储桶挂载到指定目录,可以使用如下命令行。

代码语言:javascript
复制
cosfs <BucketName-APPID> <MountPoint> -ourl=http://cos.<Region>.myqcloud.com -odbglevel=info -oallow_other

其中:

  • <MountPoint> 为本地挂载目录(例如/mnt)。
  • <Region> 为地域简称, 例如 ap-guangzhou 、 eu-frankfurt 等。更多地域简称信息,请参见 可用地域
  • -odbglevel 指定日志级别,默认为crit,可选值为crit、error、warn、info、debug。
  • -oallow_other 允许非挂载用户访问挂载文件夹。
示例
代码语言:javascript
复制
mkdir -p /mnt/cosfs
cosfs examplebucket-1250000000 /mnt/cosfs -ourl=http://cos.ap-guangzhou.myqcloud.com -odbglevel=info -onoxattr -oallow_other

可以看到我们已经挂载成功了。

卸载

卸载存储桶示例:

代码语言:javascript
复制
方式1:fusermount -u /mnt, fusermount 命令专用于卸载 FUSE 文件系统 
方式2:umount -l /mnt, 当有程序引用文件系统中文件时,进行卸载不会报错,并在没程序引用时完成卸载
方式3:umount /mnt, 当有程序引用文件系统中的文件时,进行卸载会报错

常见问题

如果您在使用 COSFS 工具过程中有相关的疑问,请参见 COSFS 工具类常见问题

Emby

下载

安装

代码语言:javascript
复制
dpkg -i emby-server-deb_4.7.11.0_amd64.deb

访问

选择语言

创建用户

新建资源库

尽量选中文,不懂的默认就行。

添加目录

就是映射cos到本地的那个目录。

目录添加完成。

一路配置完成。

进入首页

第一次进来是没有元数据的,需要等待emby进行搜刮。

域名解析

等待的时间里我们可以做点别的,比如通过域名来访问emby,我们可以把域名解析到服务器,但如果COS和CVM都是用的境外地区那你就可以跳过这一步了,只有国内需要备案。

HTTPS访问

端口号视情况自行修改,外部域填写你的域名,证书路径填写你的证书路径,注意格式为 .pfx,这是tomcat常用的格式,证书密码如实填写。最后保存配置。

最后重启emby服务器。

好了,搜刮好之后是这样的。

国内网络环境对搜刮不是很友,如果一直没有元数据可以修改服务器的hosts文件,添加如下记录后保存退出。

代码语言:javascript
复制
vi /etc/hosts

13.226.225.52 api.themoviedb.org
13.224.161.90 api.themoviedb.org

最后就可以愉快的观影了。

一段时间后查看COS资源使用情况,可以看到产生了请求数和内网下行流量。

云服务器通过内网访问对象存储的请求数是要计费的,但是腾讯云cos给我们提供了一定额度的免费资源包。

云服务器通过内网访问对象存储的下行流量是免费的。详见链接

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • COS
  • 服务器
  • 流量包
  • COSFS
    • 功能说明
      • 局限性
        • 下载
          • 安装
            • 使用
              • 配置密钥文件
              • 示例
            • 运行
              • 示例
            • 卸载
              • 常见问题
              • Emby
                • 下载
                  • 安装
                    • 访问
                      • 选择语言
                    • 创建用户
                      • 新建资源库
                        • 添加目录
                          • 进入首页
                            • 域名解析
                              • HTTPS访问
                              相关产品与服务
                              云服务器
                              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档