AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 114434
In Process
user11350
user11350
Asked: 2010-02-19 14:05:12 +0800 CST2010-02-19 14:05:12 +0800 CST 2010-02-19 14:05:12 +0800 CST

如何存储数 TB 的随机访问的大型文件?

  • 772

假设我有几千个大文件(每个 1-800mb),它们都是随机访问的,新上传的文件访问非常频繁,随着时间的推移,访问时间以反平方的方式下降,但是可能是旧文件使用率的随机峰值。

总吞吐量在 2-4Gbit 范围内。

我正在寻找一个自托管的解决方案,而不是亚马逊的产品,因为它们太贵了。

我大致想到的是这样的:

带有几个 15k rpm SAS 驱动器(或 SSD)的昂贵的“主”服务器,它们将托管刚刚上传到站点的新文件。一旦下载速率下降(或文件达到一定年龄),它就会移动到更便宜的存档节点之一。

编辑: 文件将通过 HTTP 提供给各种各样的用户。服务器正在运行 FC5。主要需要读取权限,但写入也很重要。

现在我有一个简单的 2 台服务器设置,最大 1 gbit,我得到了疯狂的 IO。该框使用 4K 块进行格式化。增加它会说.... 1024K 会产生巨大的影响吗?

storage file-hosting
  • 8 8 个回答
  • 860 Views

8 个回答

  • Voted
  1. b0fh
    2010-02-19T14:32:39+08:002010-02-19T14:32:39+08:00

    如果您只在本地提供这些数据,您可以使用现成的组件轻松组装具有几 TB 存储的单个服务器。组合几个千兆网卡可以为您提供网络吞吐量。

    如果必须在更远的距离上提供内容,最好跨多个盒子复制数据。如果你能负担得起,你可以完全复制数据,如果文件永远不会被覆盖,那么基于时间戳的原始复制脚本就可以工作。

    否则,您可以查看并行文件系统实现;如果你想要一个免费的,你可以看看 Lustre (for linux) 或 Hadoop (multiplatform)。

    • 1
  2. Chris Thorpe
    2010-02-19T14:50:41+08:002010-02-19T14:50:41+08:00

    您提出的是一种自动化的分层存储解决方案。这不是一个微不足道的成就。EMC 等一些高端存储供应商正在兜售自动分层解决方案,但它们面向的是高端企业 LAN 解决方案,并带有相应的价格标签。

    你会想看看 Sun 的 ZFS 存储系统,因为它吹捧你所追求的那种功能,而且可能也更接近价格点。

    http://blogs.oracle.com/studler/entry/zfs_and_the_hybrid_storage

    • 1
  3. Gnudiff
    2010-02-20T06:55:17+08:002010-02-20T06:55:17+08:00

    所有这些都很重要:

    1) 大量内存

    2) 多个网卡和/或前端以减少瓶颈

    3) 反向代理服务器,例如 Squid(参见例如http://www.visolve.com/squid/whitepapers/reverseproxy.php)或 Varnish

    4) 磁盘的 RAID 设置(可能是条带或条带/镜像组合)

    5)选择正确的文件系统,是的,块大小。XFS 曾经在处理大量数据时表现出色,现在 ZFS 可能更好。

    这些都应该有所帮助。您应该能够根据您的目标要求(即您想要使用的总净带宽、单卡的吞吐量、未袭击和袭击的磁盘的最大吞吐量等)计算出需要实施多少和哪些内容。

    • 1
  4. Jim B
    2010-02-19T18:16:57+08:002010-02-19T18:16:57+08:00

    如果您不想要 DIY 分层存储选项(如果必须,我可能会使用 Windows 2008 r2 中的文件系统管理任务),我强烈建议您查看 Compellent 的解决方案。您不需要任何额外的节点(本身)来实现低成本存储,因为您只需通过您选择的操作系统从 san 安装一些快速磁盘和一些便宜的慢速磁盘。 Compellent 的OOB 功能集是基于访问的 HSM。该解决方案还提供可扩展性。目前这种方法可能很昂贵(并且您没有提供未来展望),但从长远来看,它可能比尝试管理和维护您自己的解决方案更具成本效益。

    • 0
  5. jeffatrackaid
    2010-02-19T20:26:14+08:002010-02-19T20:26:14+08:00

    不清楚您正在使用什么操作系统?或者,如果您打算自动移动这些文件或编写一个脚本来为您处理这些文件?当您说访问时,您是指通过网络 (HTTP) 还是其他方法?

    我在一个社交网站上工作,该网站有一个文件“锁箱”。随着网站的发展,我们每天消耗大约 200GB 的存储空间。

    我们使用每晚运行的网络统计信息来跟踪繁忙的文件。如果文件列在顶部文件列表中,则脚本将更新数据库并将文件设置为“高优先级”。这告诉 Web 应用程序使用高优先级 URL 并复制确保文件在快速存储系统上。

    在他们能够负担得起可扩展的 SAN 解决方案之前,这种方法运行得相当好。

    • 0
  6. cagenut
    2010-02-19T20:39:20+08:002010-02-19T20:39:20+08:00

    还没有真正听到足够的细节,但知道我知道我会研究一个基本的 1U 服务器(或两个用于 HA),有很多 RAM 运行您选择的操作系统/存储软件,连接到 Xiotech Emprise 5000。假设您可以在内存中安装一个良好的工作集,那么通过主轴的 IOPS 将是相当广泛的随机 i/o,这就是该盒子最擅长的。您可能可以使用一台服务器(64GB)/一台阵列(2.4TB)的组合来实现 20K 以下的触摸。

    • 0
  7. Chopper3
    2010-02-19T20:48:28+08:002010-02-19T20:48:28+08:00

    我们用我们的 VoD 服务器做同样的事情,我们使用许多具有大量内存的非集群服务器作为本地磁盘的缓存,这些本地磁盘又是多个 SAS 连接的 25 x 2.5" 15krpm 磁盘,然后通过多个1Gb NIC 或双 10Gb NIC。我们花了很长时间来正确设置 PCIe 插槽/SAS-HBA 位置以及 RAID 集群和磁盘块大小等设置。

    • 0
  8. lorenzog
    2010-02-19T23:53:50+08:002010-02-19T23:53:50+08:00

    有趣的问题。看起来你正在主持一堆盗版电影:P

    撇开玩笑不谈,我认为您的解决方案可能是一个很好的起点。在制定一个过于昂贵或过于有限的解决方案之前,您需要熟悉这类问题。

    我会做这样的事情:

    • (假设或进行性能测试)瓶颈很可能是用户同时访问同一文件的不同部分——因为人们将有不同的下载速度并且会在不同的时间登录;
    • 因此,为了获得最佳吞吐量,您应该将请求最多的文件加载到 RAM 或并行存储中(即在许多磁盘上复制它们并分配用户的访问权限 a-la round robin);
    • 因此,您可能希望拥有几台每台拥有大量 RAM 的前线服务器,以及一台拥有大量磁盘空间的后线服务器。
    • 还放置一个反向代理或类似的东西来将重定向用户分发到正确的服务器(即服务器 A 保存电影 #1-#20,服务器 B 保存 #21-40,依此类推)
    • 最后,放置一个管理节点,根据下载频率、一年中的时间、名人的生日等将电影从后端存储移动到前端

    (如果可行,我可以在你完成服务器后拥有服务器吗?我有几个我想运行的尖峰神经网络实验)

    • 0

相关问题

  • 初学者 SAS 和服务器问题

  • Amazon S3 存储如何计费?[关闭]

  • 轻松的网络存储和文件访问灵魂[关闭]

  • 无限存储

  • 在托管环境中,用户 PC 是否应该有本地外部 HD 备份?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve