Articles of 分布式文件系统

为什么GlusterFS在这里很慢?

我们build立了一对镜像对GlusterFS服务器。 GlusterFS-3.5.1在官方的RHEL6 RPM中没有任何特别的调整,这些都是“开箱即用”,这就是我们所拥有的。 集群有效,但性能非常糟糕。 例如,通过本地主机上的GlusterFS提取一个大的压缩包( firefox-31.0.source.tar.bz2 )需要大概44分钟。 直接提取同一个文件 – 在同一个磁盘上 – less于2个。在删除创build的树(通过gluster需要10分钟)时有类似的不一致… 当然,这是可以预料的,镜像需要发生,etcaetera,一个使用networking的文件系统会慢一些,但速度要慢30倍 ? 简单地复制大文件是很快的 – 所以它不是我们缺乏的带宽。 在开始运行的同时,我发现glusterfs (客户端)和glusterfsd (服务器)进程消耗了大量的CPU(每个都占用大约10%),但是系统仍然保持约70%的空闲状态 – 这两个gluster进程都是比提取bzip2和焦油更繁忙…他们在做什么? 我可以做一些调整来显着提高性能吗? 或者我应该尝试ceph (或gfarm ?)而不是gluster? 还是他们都有大量的小文件可怕? 谢谢!

如何安全地在DigitalOcean上的Kubernetes(或类似的)上存储数据和数据库

归结起来就是在数字海洋(Digital Oceans)和另一个托pipe解决scheme(如GCE或AWS)之间build立私有云。 后者具有可安全用作卷的冗余数据存储,而前者提供更大的每个实例存储。 那么问题是,如何在像DigitalOcean这样的主机上build立一个冗余的分布式存储系统呢? 是否有与K8s相似的方式? 或者,人们不得不使用GlusterFS之类的东西,然后将其绑定到K8s上? 这样的解决scheme将如何与谷歌和亚马逊提供的? 奖金问题:这些types的讨论有什么好的论坛?

Glusterd死了,但集群仍在运行

我们目前正在运行Gluster 3.6.4上的三节点群集。 在我们的一个节点上,我们注意到glusterd守护进程已经死了。 但glusterfsd守护进程仍在运行,我们认为客户端正在连接和检索数据 我们注意到守护进程已经死了一个星期了,我们没有看到它。 NFS分布式安装继续正常工作 我们想知道我们是否安全继续开始再次启动glusterd服务? 如果是的话,这会触发所有卷的自我修复? 因为这会导致性能问题。 这个节点的日志如下: [2016-08-19 18:01:52.804453] E [rpc-clnt.c:362:saved_frames_unwind] (–> /usr/lib64/libglusterfs.so.0(_gf_log_callingfn+0x1e0)[0x7f4f3ffca550] (–> /usr/lib64/libgfrpc.so.0(saved_frames_unwind+0x1e7)[0x7f4f3fd9f787] (–> /usr/lib64/libgfrpc.so.0(saved_frames_destroy+0xe)[0x7f4f3fd9f89e] (–> /usr/lib64/libgfrpc.so.0(rpc_clnt_connection_cleanup+0x91)[0x7f4f3fd9f951] (–> /usr/lib64/libgfrpc.so.0(rpc_clnt_notify+0x15f)[0x7f4f3fd9ff1f] ))))) 0-DAOS-client-4: forced unwinding frame type(GF-DUMP) op(DUMP(1)) called at 2016-08-19 18:01:51.886737 (xid=0x144a1d) [2016-08-19 18:01:52.804480] W [client-handshake.c:1588:client_dump_version_cbk] 0-DAOS-client-4: received RPC status error [2016-08-19 18:01:52.804504] W [socket.c:620:__socket_rwv] 0-glusterfs: readv on 127.0.0.1:24007 failed (No […]

如何使GlusterFS挂载点高度可用?

的确,可以在任何砖块上安装GlusterFS卷,FUSE客户端将自动发现其他砖块并连接到它们。 如果最初的砖块失败,则客户端将故障转移到其他砖块之一。 所以,在初始引导之后,文件系统是高度可用的。 但是,当你重新启动一个客户端主机,并且你将它设置为bootstrap(例如在/etc/fstab )的块被closures的时候,客户端根本不会连接,直到你手动指向另一个块来引导它。 在“主”块closures的情况下,客户端重新引导或添加时,这可能是一个问题。 例如,在亚马逊AWS中,假设您在不同的可用区域中有两个复制GlusterFS砖块。 当包含您的“主”的AZ失败或失去连接时,您很可能会自动调整其他AZ中的其他服务器,以应付增加的负载。 由于“主”无法访问,所以这些服务器无法挂载文件系统,除非将其configuration为挂载其他块。 我如何确保客户端(新的或重新启动)将尝试连接到任何可用的砖? 我们使用Puppet来pipe理所有节点,包括/etc/fstab的内容,并使用GlusterFS 3.9。

DFS命名空间在login时不可用

背景 我们在环境中更改了我们的环境configuration后,遇到了DFS命名空间方面的一些问题,并且在与Microsoft进行支持电话联系之前,我希望了解如何排除故障。 我们使用干净path的DFS命名空间,但不使用DFS复制。 在更改之前,我们有一个名称空间,我们称之为\\my.domain.com\main 。 这个领域工作的很好,但是我们支持5个部门,所以我们决定为每个部门创build命名空间。 \\my.domain.com\Div1 , \\my.domain.com\Div2等 在更改之前,每个人都映射了一个类似于Q: \\my.domain.com\main\Div1Dept的驱动器,并在更改之后映射了类似于Q: \\my.domain.com\Div1\Folders的驱动器。 \\my.domain.com\main\Div1Dept将与\\my.domain.com\Div1\Folders位置相同。 唯一的区别是名字空间。 问题 “Standard_DriveMaps_Divisional {5559ca2b-79af-4a37-82d8-451d2fb71543}”中的用户“Q: 组策略对象不适用,因为它失败,错误代码0x80070035networkingpath未find。 这个错误被压制了。 我们有各种各样的场合(我们支持2000个用户,每周接听几个电话),当用户login的位置不可用,驱动器无法映射。 我们可以确认有一个高质量的networking连接,可以到达域控制器和命名空间服务器。 当我们使用main名称空间时,这个问题永远不会出现。 当用户手动导航到path时,它变为可用。 解决方法是运行gpupdate来重新映射驱动器,但是我们不能要求用户每次都这样做。 我们确实有一个非DFS驱动器,每当这些DFS相关映射失败时都能成功映射。 这导致我相信它不完全是networking连接。 执行故障排除 我远离DFS专业版,但是我知道如何制作文件夹目标等。 使用DFSpipe理,我查看了高速caching持续时间和名称空间之间的其他设置,它们都匹配。 他们也使用相同的命名空间服务器。 使用DFSDiag命令,我们对所有的命名空间都有正确的testing结果。 题 鉴于提供的信息,任何人都可以想到一些具体的事情,我可能会过度看? DFSpipe理GUI之外是否有可能影响非main命名空间可用性的设置,因为main总是可用的。

文件系统 – 理论

我有一些我不清楚的理论问题,所以如果有人能解释我会非常感激,这与文件系统有关。 在分布式系统中,我想问的是,如果我们有一个由目录服务和一个平面文件服务构成的文件服务,然后我们有一些客户端模块通过它们导出的接口(通过RPC)访问它们。 因此,客户端模块实现了像UNIX一样的function,但是平面文件和目录服务没有类UNIX的“打开”或“closures”操作? 但是可以通过引用UFID立即获取文件? (我想是这样,要求确认,为什么它是这样的。) 而在谈到分布式文件系统时,是什么使得AFS比NFS更具扩展性呢?

带有RAID-1的GlusterFS

是否有可能使用GlusterFS更灵活的FS和支持更高的容量+ RAID-1有冗余,以避免在失败的情况下数据丢失? 我需要获得一个镜像FS,它具有很高的缩放灵活性(增加更多的HD和/或增加更多的机器)。

为小文件集群文件系统

我正在寻找一个分布式文件系统,我可以用它来存储大量的小文件(通常<1MB)。 我想得到的是: 2台服务器,它们自己安装并镜像数据 locking支持(在可达节点之间) 一个节点掉下来再回来之后的某种尽力而为的自动再同步 我的意思是重新同步,即使他们脑子有裂痕,我也可以对两台服务器进行读/写操作。 如果一个本地进程获得一个锁,如果另一个主机不可达,我也可以。 从重新同步开始,我只希望在一段时间之后获得一个文件级别的一致性视图 – 也就是说,如果在裂脑期间在两个节点上修改了文件x ,那么我们并不在乎他们再次join哪一个可用,只要因为它是完整文件,所以不是来自node1另一个块和来自node2另一个块。 有没有这样的解决scheme? 我看到,gluster有一些文件locking问题(即使在3.1)。 我也注意到,如果两个节点裂脑,OCFS2会惊慌失措。 还有什么其他的文件系统可以让我做我想要的?

是否可以设置保险丝和/或sshfs的caching大小?

我似乎无法find文件中的东西。 是否可以设置保险丝和/或sshfs的caching大小,如果是这样,如何?

DFS – 已经被删除的大文件夹的停止同步

我们在Windows Server 2008 R2上有一个站点DFSR,它已经在站点A和站点B之间完美运行,直到有人倾倒了一个20GB的文件夹。 这使上传不堪重负,并使得网站在网站A几乎没有用处(分公司的上传量很低)。 我们已经从网站A的DFS共享中删除了这个文件夹,但互联网仍然非常慢。 有什么办法可以取消这个同步或其他方式来让DFSR恢复到一个愉快的状态吗?