标签: distributed-filesystem

FileSystemWatcher vs polling监视文件更改

我需要设置一个应用程序来监视在本地或网络驱动器上的目录中创建的文件.

请问FileSystemWatcher一个计时器或投票将是最好的选择.我过去曾使用过这两种方法,但并不广泛.

两种方法都存在哪些问题(性能,可靠性等)?

c# file-io filesystemwatcher distributed-filesystem

145
推荐指数
8
解决办法
7万
查看次数

Sharding vs DFS

据我所知,分片(例如在MongoDB中)和分布式文件系统(例如HBase或HyperTable中的HDFS)是数据库用于横向扩展的不同机制,但是我想知道它们如何比较?

sharding distributed-computing nosql hdfs distributed-filesystem

6
推荐指数
1
解决办法
4240
查看次数

分布式键值存储,总数据大小为80TB

TL; DR:

我想建议分布式键值存储,平均值.入口大小最多50KB,安装在Linux环境(专用服务器)上.
文件系统解决方案可以.
我找到了一些解决方案:Ceph,Cassandra,Riak等等.

细节

我正在为我们的一个组件寻找存储解决方案,它应该是一个键值存储,平面命名空间.

脚本

读/写模式非常简单:

写入键值后,在接下来的几个小时内会有一些读数.

在那之后,没有任何东西触及给定的键值.我们希望将数据保留用于将来的目的,"存储模式".

其他用法方面

  • 操作系统:Linux
  • Python客户端/连接器
  • 总大小:高达80TB(此值也代表未来需求).
  • 平均条目大小(对于kv对中的单个值):10到50 KB,未压缩,主要是文本数据
  • 压缩:内置或外置.
  • 加密:不需要
  • 网络带宽:1Gb,单个LAN
  • 服务器:专用(不在云端)

最重要的要求

"基础"要求是:

  • 操作系统:Linux
  • Python客户端/连接器或通过HTTP的RESTful API
  • 可轻松存储高达80TB(此值也代表未来需求).
  • 最大读取延迟:首次读取时为几秒,"存储模式"为30秒(参见上文中的说明)
  • 内置复制(以便将数据存储在多个节点上)

很高兴有

  • RESTful网关
  • 后台数据备份到另一个存储(用于灾难时的数据恢复).
  • 易于配置

到目前为止我发现了什么

  • 头孢
  • HDFS
  • HBase在HDFS之上
  • 光泽
  • GlusterFS
  • Mongo的GridFS - 但我能相信Mongo的基础设施吗?
  • Cassandra - 不是一个选项,因为合并过程会消耗双倍的磁盘大小
  • Riak - 看起来像Cassandra一样有问题,需要更多的研究
  • Swift + OpenStack(实际存储可以在Amazon S3上)
  • 伏地魔
  • 有许多其他工具,但我不会在这里写,因为其中一些有专有许可,其他工具似乎不成熟.

我对以上提到的任何工具(总容量超过50TB)或者您认为足够的工具的任何建议表示感谢.

key-value-store distributed-filesystem

6
推荐指数
1
解决办法
957
查看次数

Web应用程序的对象存储

我目前正在开发一个网站,其中应该向其用户提供大约4000万份文档和图像.我需要建议哪种方法最适合存储符合这些要求的内容.

  • 系统应具有高可用性,可扩展性和耐用性.
  • 文件必须永久存储,用户应该能够修改它们.
  • 由于客户端的限制,第三方对象存储提供商(如Amazon S3和CDN)不适合.
  • 内容的文件大小可以从1 MB到30 MB不等.(但是大约90%的文件小于2 MB)
  • 内容检索延迟不是什么大问题.因此索引或缓存不是很重要.

我做了一些研究,发现了以下解决方案;

  • 将内容存储为数据库中的BLOB.
  • 使用GridFS来分块和存储内容.
  • 使用散列将内容存储在目录中的文件服务器中,并将元数据存储在数据库中.
  • 使用分布式文件系统(如GlusterFS或HDFS)并将文件元数据存储在数据库中.

该网站使用PHP开发,Couchbase Community Edition用作数据库.

我真的很感激任何输入.

谢谢.

blob gridfs distributed-filesystem glusterfs object-storage

5
推荐指数
1
解决办法
233
查看次数

让人们在AWS负载平衡环境中上传文件的最佳方法是什么?

假设您在AWS中运行了instance1,instance2和instance3.

它们都运行Apache,您运行的Web应用程序需要允许用户上传图像,这在许多项目中都是如此.

此外,当您显示图像时,需要将其裁剪为正确的大小,因此您基本上需要确保所有实例始终可以访问相同的文件.

因此,假设用户将图像上传到instance1,而另一个用户正在访问其中相同图像以100x100大小显示的页面,并且他点击了instance2.另一个用户试图在instance3上看到300x300大小的相同图像.还有许多其他不容易预测的尺寸.

所以你基本上需要一个分布式文件系统,我正在使用Gluster FS.所以所有实例都可以访问相同的文件,当看到图像的请求时,我有一个PHP脚本,检查该图像是否已经调整到给定的尺寸,如果是,它将显示它们,如果不是它将调整大小它然后再显示.

Gluster FS工作非常顺利,我对它非常满意,除了我认为我正在重新发明轮子,AWS应该有一些解决方案.使用top命令,我可以看到glusterfs总是使用我的一些CPU.

我还使用CloutFront来缓存调整大小脚本的输出,这可以将服务器负载降低到很好的程度,但Gluster FS的运行成本仍然很高.

您可以使用rsync和某种类型的cron作业来完成同样的操作而不需要Gluster FS,但这需要很多工作并且不太可靠,因为您需要知道何时触发rsyncing过程,并且您仍然无法获得巨大的好处Gluster FS提供的.我也试过s3fs,我只是想说这绝对是一场噩梦.

与Gluster FS相比,NFS驱动器似乎也非常原始,我认为它们使用UDP,因此它们会对您的数据进行处理无关紧要.

那么做这样的事情最好的方法是什么?我试图找到AWS提供的分布式文件系统,因为我认为许多开发人员会有相同或类似的问题,但没有.

您可以说只是上传到s3,但s3对我没有帮助,我需要知道图像是否已经调整大小,然后调整大小并提供服务或者只是服务,所以我需要一些我可以编写脚本的东西.

您也可以说好,为什么不首先调整所有图像的大小,然后将它们全部上传到s3,我不能这样做的原因是

  1. 大约有100万张图片和100种尺寸,因此我们正在寻找大量要转换的文件
  2. 可能每天都会添加新尺寸,因此调整第一个策略不起作用

amazon-s3 amazon-web-services distributed-filesystem glusterfs

5
推荐指数
1
解决办法
411
查看次数

什么是内容交付网络和分布式文件系统?

我正在努力扩大我在分布式系统和系统设计方面的知识。我遇到过诸如内容交付网络和分布式文件系统之类的术语,用于存储/处理音乐、视频、图片、GIF 等媒体数据。

我知道 DFS 只是我们笔记本电脑中的一个文件系统,它被复制到其他服务器(分布式)以使其 99.9% 可用。CDN是一个可以存储包括javascript、图像、视频等资产的网络。

现在,我对理解两者之间的差异以及哪一个在不同的用例下效果更好有很大的困惑?如果我对CDN和DFS本身的基本理解有误,请指正。提前致谢!

distributed-system content-delivery-network system-design distributed-filesystem

5
推荐指数
1
解决办法
842
查看次数

CoreOS和HDFS - 在Linux Containers/Docker中运行分布式文件系统

我需要某种在CoreOS集群上运行的分布式文件系统.

因此,我想在CoreOS节点上运行HDFS.这可能吗?

我可以看到两个选项;

  1. 扩展CoreOS - 将HDFS直接安装到CoreOS上 - 不理想,因为它打破了CoreOS集装箱的整体概念,并意味着安装了许多其他组件
  2. 以某种方式在CoreOS上的Docker容器中运行HDFS并设置亲和力

选项2似乎是最好的方法,但是,有一些潜在的阻碍者;

  • 如何可靠地将物理磁盘暴露给运行HDFS的Docker容器?
  • 你如何扩展容器亲和力?
  • 这如何工作Name节点等?

干杯.

hadoop hdfs distributed-filesystem docker coreos

4
推荐指数
1
解决办法
3029
查看次数

Azure网站上的文件系统是否已分发?

我知道其他存储解决方案几乎适用于任何非静态数据.

但是,我仍然看到一些人使用Azure网站服务中提供的文件系统,该服务目前占用10GB空间,特别是对于顽固的App_Data使用.

  • 它是真正的分布式,还是根本不扩展?我真的很难找到明确的答案.

出于好奇,如果不是:

  • 它是否至少被复制了?
  • 如果是这样,它是在实例之间复制,还是完全专用的服务?

如果它没有复制,

  • 是否有一个我们希望永远不会死的主实例,或者它是一个完全与应用程序实例隔离的专用服务?

谢谢.

cloud performance azure azure-web-sites distributed-filesystem

2
推荐指数
1
解决办法
566
查看次数

IPFS 搜索文件机制

我正在使用 IPFS(星际文件系统)以分散的方式存储文档/文件。

  • 为了从网络中搜索文件,是否有网络上所有哈希的记录(如水蛭)?
  • 我的请求如何通过网络传播?

search distributed-computing distributed-filesystem ipfs decentralized-applications

2
推荐指数
1
解决办法
1969
查看次数

Alluxio有/无HDFS

我有一个HDFS集群作为底层存储分布式文件系统,但我刚刚读到了关于alluxio的快速而灵活的内容.所以,我的问题是:我应该将Alluxio与HDFS一起使用,还是Alluxio可以替代HDFS?(我在他们的网站上看到,存储文件系统下的共享存储可以是网络文件系统(NFS).所以,我认为不需要HDFS.如果我犯了错误,请纠正我).

在哪种模式下性能更好:使用Alluxio或Alluxio stanalone的HDFS(我的意思是单独使用的术语是在群集中单独使用而不是在本地使用).

hadoop hdfs distributed-filesystem alluxio

1
推荐指数
1
解决办法
384
查看次数

为什么小文件会在 Google 文件系统中产生热点?

我从Google 文件系统论文中不明白这一点

一个小文件由少量块组成,也许只有一个。如果许多客户端访问同一个文件,存储这些块的块服务器可能会成为热点。

小文件有什么区别?许多客户端访问的大文件是否同样有可能导致问题?

我想过/阅读以下内容:-

  • 我假设(如果我错了,请纠正我)大文件块存储在不同的块服务器上,从而分配负载。在这种情况下,假设 1000 个客户端从每个块服务器访问文件的 1/100。所以每个 chunkserver 最终都会不可避免地收到 1000 个请求。(这与 1000 个客户端访问单个小文件不同。服务器收到 1000 个小文件请求或 1000 个大文件部分请求)
  • 我读了一些关于稀疏文件的内容。小文件根据文件填满一个块或几个块。因此,据我所知,不会重建小文件,因此我已将其排除为热点的可能原因。

distributed-computing gfs distributed-filesystem

1
推荐指数
1
解决办法
615
查看次数