Hor*_*cio 28 video streaming microsoft-distributed-file-system
这么多的选项和很少的时间来测试它们......我想知道是否有人有分布式文件系统的视频流和存储/编码经验.
我有很多巨大的视频文件(50GB到250GB),我需要存储在某个地方,能够将它们编码为mp4并从几个Adobe FMS服务器流式传输.处理所有这一切的唯一方法是使用分布式文件系统,但现在的问题是哪个?
到目前为止我的研究告诉我:
到目前为止,Lustre似乎是赢家,但我希望听到我所拥有的特定应用的真实体验.
此外,Hadoop,Redhat GFS,Coda和Windows DFS也可作为选项,因此欢迎任何体验.如果有人有基准,请分享.
经过一些实际经验后,这就是我所学到的:
定论:
不幸的是,结论是"没有单一的银弹".
目前,我们将Gluster3.2中的媒体文件放在复制卷中以进行存储和转码.只要您没有很多服务器,就可以避免地理复制和条带卷工作正常.
当我们要传输媒体文件时,我们将它们复制到通过DR:DB复制到第二个光泽卷的光泽卷.然后,wowza服务器从光泽卷中读取媒体文件.
最后,我们使用MogileFS来提供Web应用程序服务器中的缩略图.
到目前为止,GlusterFS已经进行了很多改进.他们现在为大文件提供"粒度锁定".请参阅此处:http://www.gluster.org/community/documentation/index.php/WhatsNew3.3 此外,您应该依赖视频帧速率.如果你不能达到4K的速率,Gluster可以解决存储问题.如果对速度有巨大需求,那么Infiniband可以参与其中.
小智 1
从指定的系统来看,最合适的是 MoglieFS。
但也许你根本不需要任何特殊的系统就可以过得去。假设您有 4 个 AdobeFMS 服务器:
{video0.exmple.com,video1.exmple.com,video2.exmple.com,video3.exmple.com}.
Run Code Online (Sandbox Code Playgroud)
您可以使用简单的方案在这 4 个服务器之间分发所有视频,例如
/*
* pseudo code
*/
$server_id = get_server_id(filename);
...
...
int function get_server_id(filename)
{
return hash(filename) mod 4;
}
Run Code Online (Sandbox Code Playgroud)
对视频进行编码后,您的应用程序将
$server_id = get_server_id(file_name)
copy file_name to /mnt/$server_id/
Run Code Online (Sandbox Code Playgroud)
客户端将使用http://videoN.example.com/filename.mp4等方式访问视频,其中 N 是使用get_server_id().
Lustre/Gluster 确实不是您应该寻找的。Lustre FS 更成熟,但开发人员要求您将此类 FS 上的文件视为“缓存”,即它们随时可能丢失。
Lustre/Gluster 的目标是在 HPC 中使用,以允许快速访问大量数据,而无需单个存储服务器成为性能瓶颈。这些系统的另一点是它们符合 POSIX 标准。在 HPC/科学研究环境中,您通常没有时间重写您的应用程序,因为您安装了新的酷且快速的 FS。
| 归档时间: |
|
| 查看次数: |
17472 次 |
| 最近记录: |