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 / 问题 / 407439
Accepted
The Shurrican
The Shurrican
Asked: 2012-07-14 02:04:51 +0800 CST2012-07-14 02:04:51 +0800 CST 2012-07-14 02:04:51 +0800 CST

如何从多个驱动器创建一个大卷,但如果它失败,只丢失存储在一个磁盘上的文件?

  • 772

我正在运行一个存储系统。容错在应用程序级别处理(文件存储在多个服务器,甚至数据中心)。

因此,我不需要甚至不想在一台服务器内进行冗余(Raid 5 可以,但我运行的是商品预算服务器,因此任何资源密集型或需要昂贵硬件的东西都是不好的)。

目前我正在使用 LVM 从服务器中的所有驱动器创建一个卷组,然后我在上面放了一个大卷。

到目前为止效果很好。

问题是我想在未来使用包含多达 40 多个驱动器的更大的服务器。

一个驱动器发生故障并因此破坏整个卷组的可能性高得令人无法接受。数据存储在别处并且可以由应用程序恢复,但是通过互联网对等恢复 100+ TB 非常昂贵并且需要很长时间。

如果一个驱动器出现故障,我希望只丢失存储在该磁盘上的文件。

如果文件可以作为一个整体存储在磁盘上并稍微均匀地分布在多个磁盘上(出于性能原因并减少一个驱动器发生故障时需要恢复的数据量),那将是完美的。

有什么适合我的需求吗?

我认为这是大型 lvm 卷组中非常普遍的问题。

一个呈现“合并视图”并通过保险丝安装的小程序将是完美的。

不幸的是,我的应用程序不够灵活,无法在一台服务器内处理多个卷。

我知道有 lvm 的恢复方法,但老实说,我真的不想在生产系统中运行它们......

另外:lvm 如何在卷组中的多个设备上“传播”数据?它会添加到第一个直到它满了然后开始第二个吗?或者它更像是随机的某个地方?

编辑:

这怎么不是一个真正的问题???这个问题不是关于“什么也是一个好方法......”这个问题也不是关于容错的冗余。

我的问题很具体。这只是有点不同寻常。这就是为什么我需要问一个问题而不是将其输入谷歌。

我可以使用什么程序将多个驱动器连接到一个大卷中,并且仅在一个驱动器出现故障时才丢失存储在一个驱动器上的文件。

Raid -> 不会那样做。Raid 可以存储冗余信息以防止丢失。Raid 还可以将多个驱动器合二为一。

想象一个拿到文件的小秘书。将其放在有可用空间的驱动器上。如果您请求它,他会搜索它或记住它在哪里,然后从该驱动器将其提供给您。

如果一个驱动器不见了,小秘书会道歉并说他没有那个设备上的文件了,但他可以把其他的都给你。

partition lvm filesystems raid storage
  • 4 4 个回答
  • 1007 Views

4 个回答

  • Voted
  1. ewwhite
    2012-07-14T02:57:35+08:002012-07-14T02:57:35+08:00

    这可能有点牵强,但由于您只关心特定存储单元上文件的完整性,因此请查看此处提到的 ZFS 文件系统副本选项以及此处和此处Oracle 站点上的详细信息(作为“ditto-blocks”)。这非常侧重于文件级保护,但可能与您正在寻找的内容一致。

    如今,ZFS 可用于某些 Linux 发行版,因此 Solaris 派生操作系统不再是严格的要求。

    • 3
  2. Chopper3
    2012-07-14T02:21:11+08:002012-07-14T02:21:11+08:00

    不,如果,不,但是 - 你需要在实际机器上使用某种形式的 RAID,我知道你正在做整个复制,但你不能指望它来处理单个驱动器故障 - 即使你只是有巨大的 R6 阵列总比没有好。

    除此之外,听起来你只需要一个集群文件系统,比如 gluster、hadoop dfs 或类似的东西。

    • 2
  3. Best Answer
    Oliver
    2012-07-14T05:51:29+08:002012-07-14T05:51:29+08:00

    我没有对此进行测试,但我会单独安装每个磁盘并使用UnionFS或mhddfs等文件系统将所有磁盘合并在一起。这样,如果一个磁盘出现故障,只有该磁盘上的文件会丢失,这正是您要寻找的。

    • 2
  4. Agustin Cautin
    2012-07-14T03:07:12+08:002012-07-14T03:07:12+08:00

    如果您在应用程序级别处理容错,我会改用更便宜/更小的服务器。如果应用程序正确分布,这意味着它将运行得更快。

    另一种选择(不确定是否可能)可能是针对每个磁盘运行多个应用程序实例。

    我认为 Raid 阵列不适合您的用例。

    问候。

    • 1

相关问题

  • 主分区与扩展分区

  • 在 Ubuntu 上将 Windows 磁盘分区与 Linux 分区合并

  • 用于 Web 应用服务器的 FreeBSD 磁盘分区(Apache/MySQL/PHP)

  • 调整分区大小通常会扩展文件系统上已用空间的现有大小吗?[关闭]

  • 如何在 Ubuntu 上挂载 LVM 分区?

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