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 / 问题

问题[distributed-filesystems](server)

Martin Hope
Thorsten Schöning
Asked: 2021-07-17 07:48:45 +0800 CST

如何使用 Windows DFS 复制严格序列化一个文件夹的复制?

  • 0

我有两个位置 A+B,需要使用 Windows DFS 复制以下列方式处理这些分支之间的一个特殊目录:所有写入 A 目录的内容都需要由 B 拉取。B 的那个目录中的所有删除都需要再次推到A。最后,它只是简单地将所有内容从 A 拉到 B,并在某个时刻在 A 和 B 处清空。

重要的是目录是一些特殊应用程序的文件系统接口。该应用程序仅在主机 B 上运行,而主机 A 为该应用程序创建数据。DFS 用于将数据从 A 可靠地传输到 B。

因为它是一个文件系统接口,所以它需要遵循一些约定,以便 B 处的应用程序知道它何时可以访问所有文件。该约定很简单,在创建所有数据之前创建一个特殊的锁定文件,并在创建所有数据后删除锁定文件。删除锁定文件意味着主机 B 上的应用程序可以随意处理数据。当然,与传输的其他数据相比,该锁定文件非常非常小,而所有其他数据理论上可能有数百 MiB 大小。因此,为了可靠地使用 DFS,复制时需要考虑文件系统操作的顺序。

从我目前所读到的关于 DFS 的内容来看,它可能会乱序传输文件:

DFS 复制是否按时间顺序复制文件?

不可以。文件可能会乱序复制。

OTOH,它已经通过 ID 跟踪文件,并且锁定文件的 ID 将低于其他文件的 ID。

如果我重命名文件会怎样?

DFS 复制在下一次复制期间重命名复制组的所有其他成员上的文件。使用唯一 ID 跟踪文件,因此重命名文件和在副本中移动文件不会影响 DFS 复制复制文件的能力。

此外,似乎还有一些关于并发下载的设置,在最坏的情况下可能会降低到 1。不过,这当然不能保证像我需要的那样严格的文件操作顺序。锁定文件可以在传输两个其他大文件之间简单地删除。

如何处理同时复制?

每个复制文件夹有一个更新管理器。更新管理器彼此独立工作。

使用Windows 更改日志并遵循要复制的源文件夹中的事件顺序,具有某种操作模式或类似的 DFS 会很棒。这应该保证 DFS 在第一个和最后一个操作中创建和删除锁定文件,就像在源文件夹中所做的那样。

那么,有什么方法可以让 DFS 中的文件操作严格排序,以便与基于文件系统的接口一起使用?

谢谢!

windows dfs distributed-filesystems
  • 1 个回答
  • 37 Views
Martin Hope
Ben
Asked: 2020-07-25 10:44:44 +0800 CST

AWS EFS - 在 25 到 30 秒内未以编程方式检测到文件删除和重新创建

  • 1

我观察到 EFS 检测到文件已被重新创建(即删除然后再次创建)的延迟非常大。

在这个简单的测试示例中,我有一个文件在大约 5 秒后被删除并重新创建。我有两个 EC2 实例安装到同一个 EFS:

EC2-1:负责读取文件

EC2-2:负责删除和创建文件。

我看到的问题是,当 EC2-2 删除该文件时,EC2-1 正确更新说它不再存在。EC2-2 大约 5 秒后重新创建该文件。EC2-1 未检测到文件已返回另外 25 到 30 秒。

现在,如果我在重新创建后(例如和 LS 命令)在 EC2-1 上的文件系统上运行某种查询,它会立即更新以说明文件已创建。

需要明确的是,我可以直观地看到文件在创建后立即在 EC2-1 FS 上创建,只需运行 LS。它以编程方式阅读它失败了。在我的测试用例中,我有一个 Node.js 脚本,它实际上只是每秒调用一次 readFileSync()。我还在 Python 中进行了相同的测试,以得出这是一个 EFS 问题。

如果我在 EC2-2 上运行相同的脚本,会看到预期的结果,即文件丢失一秒钟,然后在重新创建后立即可用。因此,在执行删除和创建的实例上阅读此内容可以按预期工作。

好像 EFS 根本没有检测到文件删除/重新创建。

两个 EC2 虚拟机上的操作系统都是 Ubuntu Server 18.04。在“通用”和“高 I/O”类型的新 EFS 上进行了测试。

filesystems distributed-filesystems amazon-web-services node.js
  • 1 个回答
  • 555 Views
Martin Hope
Jarmund
Asked: 2020-04-15 09:29:32 +0800 CST

多个磁盘充当一个文件系统,同时仍允许单独访问每个磁盘

  • 1

我有一个相当大的数据集(~160TB),需要经常交付给客户。该数据集由相当大的文件组成,通常每个文件在 2Gb 到 20Gb 之间。它们存在于在总容量为 1.1Tb 的 RAID 集群上运行的 BeeGFS 文件系统上。目前,当需要交付数据时,它是通过以下方式完成的:

  1. 创建文件及其大小的主索引
  2. 统计文件大小直到 4Tb,并从主索引中创建所述文件的子索引
  3. 将文件复制到 4Tb USB 驱动器
  4. 重复步骤 2 和 3,直到复制整个数据集
  5. 给客户一个装有 U 盘的纸板箱

我想做的只是将其同步到已安装的文件系统,所以我想知道是否有可用的文件系统可以将存储空间分布在多个磁盘上?显而易见的候选者是 LVM 和 RAID,但问题是客户端需要能够自行读取每个磁盘,这排除了这一点(至少据我所知)。有没有办法模拟 LVM 或类似的东西,但允许以相当标准的方式读取单个磁盘?实际上,允许我运行单个 rsync 操作,将数据分布在多个单独的磁盘/文件系统上

数据来自一台redhat机器,所以到目前为止我只是在USB驱动器上使用了ext4。但是,如果可能的话,如果我可以使用与 Windows10 完美配合的文件系统,这对每个人来说都是非常有益的(尽管不是绝对必要的)。

PS:我对同时连接的USB驱动器的数量没有限制。我唯一真正的限制是数据必须一次可以访问一个磁盘/文件系统。

filesystems cluster distributed-filesystems large-data
  • 1 个回答
  • 174 Views
Martin Hope
Tim
Asked: 2020-03-25 15:28:36 +0800 CST

分布式文件系统是否跨节点对文件进行分区?

  • 1

在 HDFS 中,文件被分割成块,这些块分布在多个节点上。

我想知道在以下分布式文件系统中是否也是如此:NFS、Andrew 文件系统(以及 Bayou、Coda,如果你碰巧知道的话)?

谢谢。

nfs distributed-filesystems
  • 2 个回答
  • 111 Views
Martin Hope
Martijn Heemels
Asked: 2017-01-27 03:47:26 +0800 CST

如何让 GlusterFS 挂载点高可用?

  • 2

确实可以在任何块上安装 GlusterFS 卷,FUSE 客户端会自动发现其他块并连接到它们。如果初始砖失败,客户端将故障转移到其他砖之一。因此,在初始引导之后,文件系统是高度可用的。

但是,当您重新启动客户端主机并且您将其设置为引导的砖块(例如 in /etc/fstab)关闭时,客户端将根本无法连接,直到您手动将其指向另一个砖块以引导它。

在“主”砖关闭时重新启动或添加客户端的情况下,这可能是一个问题。例如,在 Amazon AWS 中,假设您在不同的可用区中有两个复制的 GlusterFS 块。当包含您的“主要”的 AZ 发生故障或失去连接时,您很有可能会在另一个 AZ 中自动扩展其他服务器以应对那里增加的负载。由于“主服务器”无法访问,因此这些服务器无法挂载文件系统,直到您将它们配置为挂载另一个砖块。

如何确保客户端(新的或重新启动的)将尝试连接到任何可用的砖?

我们使用 Puppet 来管理所有节点,包括 的内容/etc/fstab,并且使用的是 GlusterFS 3.9。

high-availability distributed-filesystems amazon-web-services glusterfs
  • 1 个回答
  • 922 Views
Martin Hope
xangr
Asked: 2016-10-26 07:04:16 +0800 CST

GlusterFS 服务器逻辑

  • 0

我完全不了解 GlusterFS 探针。看,我将所有服务器添加到 /etc/hosts 文件,我为每台服务器执行此操作。假设我有 100 台服务器,后来我又增加了 100 台。我无法想象更新所有 200 个服务器的主机文件以供查看。

我在这里错过了什么吗?如何在不修改每个服务器主机文件的情况下轻松添加更多服务器?

我应该使用私有 LAN 并使用 IP 地址而不是主机名吗?这行得通吗?

卡在这一点...

nfs filesystems distributed-filesystems glusterfs
  • 1 个回答
  • 52 Views
Martin Hope
Alex Dumitru
Asked: 2016-09-20 14:31:33 +0800 CST

GlusterFS 替代文件上传网站

  • 4

我有几个文件上传网站,文件从数百千字节到几千兆字节不等。

目前,我在几台服务器上的分布式复制 Gluster 卷中拥有所有文件。

Gluster 最大的问题是速度。

例如,我有一个包含约 80,000 张图像的文件夹,每个图像平均 500KB,我花了几个小时来更改图像的所有者。

目前一切都相当不错,但我担心有更多的文件以及处理它们所需的时间。

我有什么选择?我对 Gluster 做错了吗?

这是我的 gluster 配置:

performance.cache-size: 1GB
performance.cache-refresh-timeout: 60
performance.cache-max-file-size: 100KB
cluster.choose-local: true
performance.readdir-ahead: on
performance.io-thread-count: 16
client.event-threads: 3
server.event-threads: 3
filesystems storage distributed-filesystems glusterfs
  • 2 个回答
  • 799 Views
Martin Hope
Vorsprung
Asked: 2016-08-27 01:35:42 +0800 CST

Glusterd 已死,但集群仍在运行

  • 2

我们目前在 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 data available)
[2016-08-19 18:02:02.900863] E [socket.c:2276:socket_connect_finish] 0-glusterfs: connection to 127.0.0.1:24007 failed (Connection refused)

如果我们这样做不安全,我们还应该做些什么来解决这个问题

(有用信息:这篇博文讨论了 glusterfsd 和 glusterd http://blog.nixpanic.net/2013/12/gluster-and-not-restarting-brick.html之间的区别)

centos distributed-filesystems glusterfs
  • 1 个回答
  • 317 Views
Martin Hope
Sarke
Asked: 2016-05-27 23:47:40 +0800 CST

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

  • 1

它归结为在 Digital Oceans 之类的东西上设置私有云,而不是 GCE 或 AWS 等其他托管解决方案。后者具有冗余数据存储,可以安全地用作卷,而前者提供更大的每个实例存储。

那么问题来了,如何在像 DigitalOcean 这样的主机上建立一个冗余的分布式存储系统?

有什么东西可以与 K8s 并驾齐驱,或者以类似的方式工作吗?还是必须使用 GlusterFS 之类的东西,然后将其绑定到 K8s?

这样的解决方案与谷歌和亚马逊提供的相比如何?

额外的问题:这些类型的讨论有哪些好的论坛?

distributed-filesystems redundancy kubernetes
  • 1 个回答
  • 309 Views
Martin Hope
Nick Coons
Asked: 2014-12-06 17:10:59 +0800 CST

LizardFS/MooseFS——多存储卷

  • 2

我正在使用新的 LizardFS,它很棒!总的来说,我是 LizardFS/MooseFS 的新手,但看起来很简单。

我想知道两件事:

首先,有没有办法设置单独的存储池?例如,我可以有五台服务器,每台服务器都有两个 HDD。每台服务器的一个硬盘属于一个存储池,另一个硬盘属于另一个。存储池将是独立的,因为它们将单独安装,并且它们将单独维护块。

想要这样做的原因是因为我的第二个问题:

我想要一个快速存储池和一个慢速存储池。我的服务器有 10Gbe 和 SSD,所以 LFS 的一切都非常快。但是有些项目(尤其是按文件类型)不需要很快,例如音频和视频文件,而 HDD 显然更便宜。

最终,我想做的是让 LFS 识别条件(例如文件类型或其他用户定义的条件),以便在将文件写入文件系统时,将其存储在快速存储或慢速存储中,但它对最终用户显示为单个存储卷。我相当肯定这对于开箱即用的 LFS 是不可能的。但是,如果可以有多个存储卷,我可以构建一个系统来使用符号链接来伪造它的其余部分。

distributed-filesystems
  • 3 个回答
  • 3213 Views

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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