V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Akiya
V2EX  ›  程序员

分布式系统做磁盘空间检查的坑,有什么技巧吗

  •  
  •   Akiya · 2022-09-07 10:04:57 +08:00 · 1695 次点击
    这是一个创建于 809 天前的主题,其中的信息可能已经有所发展或是发生改变。

    出现这个问题是,有客户使用了 NAS 作为所有节点的数据盘,然后在做某些操作的时候,磁盘空间检查就失效了。

    比如,有 4 个节点,每个节点都需要 10G 的空间,然后 NAS 上剩 20G ,每个节点检查都认为空间足够了,但是实际上总共需要 40G 。

    自从考虑共享磁盘开始,问题的复杂度上升了非常多,需要考虑的内容包括

    • 如何鉴别节点使用的是共享盘
    • 部分节点使用了共享盘,部分节点使用的本地盘
    • 由于需要检查多个路径的空间,所以需要考虑多个路径在同一块盘的情况

    所以想了解一些业界通常的做法

    第 1 条附言  ·  2022-09-07 15:06:27 +08:00
    可能是我的表达不太清楚,我们是卖软件(分布式数据库)的,客户的安装环境不受我们控制,作为乙方我不可能说 NMD 买这么点硬盘的钱都没有吗?你们不会自己去算需要多少空间吗,真是 SB
    15 条回复    2022-09-09 16:58:06 +08:00
    opengps
        1
    opengps  
       2022-09-07 10:11:12 +08:00
    说点可能帮不上的:单盘 nas 依然受制于单盘大小,网络存储类产品的更进一步是对象存储服务,做到自身可扩展,但对外表现成“无限容量”,从而解决这个问题
    gaodq
        2
    gaodq  
       2022-09-07 10:23:22 +08:00
    nas 分区呢,每个节点一个区,是什么分布式系统,没怎么听说过分布式系统跑在 nas 上
    liuxiniszuhi3
        3
    liuxiniszuhi3  
       2022-09-07 10:33:04 +08:00
    通常的做法不是系统管理员评估和增加空间吗?
    xuanbg
        4
    xuanbg  
       2022-09-07 10:33:47 +08:00
    自己算,加定期查询空间使用情况修正自己计算的结果。这样对磁盘空间的使用情况会相对比较准确,往里面写不至于空间不足写不进去。
    yulgang
        5
    yulgang  
       2022-09-07 10:37:03 +08:00
    我还以为要说 ceph ,结果是单点 nas 。。。。。
    sampeng
        6
    sampeng  
       2022-09-07 11:16:07 +08:00
    我还以为要说 ceph ,结果是单点 nas 。。。。。
    sampeng
        7
    sampeng  
       2022-09-07 11:17:42 +08:00
    我现在公司就是用的企业级的 NAS 。。。怎么说呢?在以前那个时代是一个好的产品。。但是,现在看真的是愚蠢到爆炸。可伸缩性等于 0 ,成本巨高,维护成本巨高,超级单点。NAS 挂了,几十台服务器全挂,而且是救不回来那种
    billlee
        8
    billlee  
       2022-09-07 11:56:10 +08:00 via Android
    共享的你就创建文件来来识别嘛
    microxiaoxiao
        9
    microxiaoxiao  
       2022-09-07 12:05:09 +08:00 via Android
    判断是不是网络盘,通过文件系统类型判断。共享盘总计判断,其实核心就在于判断共享盘 /多少客户端。以你那个例子说明,比如 20G ,每个客户端预期 10G ,那么最多允许两个连接,多余的其实就不能连接上了。其实就是预分配了
    kenneth104
        10
    kenneth104  
       2022-09-07 13:12:40 +08:00
    我还以为要说 ceph ,结果是单点 nas 。。。。。
    jim9606
        11
    jim9606  
       2022-09-07 13:52:43 +08:00 via Android
    如果你已经到了要抠这点可用空间的程度,你还是加硬盘吧。废力气去改系统软件实现也只是把加硬盘的时间延后一丢丢,横竖还是得加硬盘。
    imzcg2
        12
    imzcg2  
       2022-09-08 09:20:16 +08:00
    太简单了,节点互相发现就好了,一比对网络主机名等信息一比对就露馅了,也可以在登陆进去的时候"友好的"弹窗:我们发现你用共享盘了,空间可能不足,请即使扩容,和免责条款加上声明即可
    flynaj
        13
    flynaj  
       2022-09-08 14:37:49 +08:00 via Android
    不用检查,过后空间也可能不足,空间不足直接报错就行。
    sbilly
        14
    sbilly  
       2022-09-09 16:55:43 +08:00
    为啥要检查?如果有最小空间要求:
    sbilly
        15
    sbilly  
       2022-09-09 16:58:06 +08:00
    为啥要检查?
    1. 如果有最小空间要求,建议把创建文件把空间占了。
    2. 如果没有最小空间要求,写满了报错即可。

    此处“最小空间要求”,是小于此磁盘空间无法正常运行的意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2947 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.