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 / 问题 / 1161611
Accepted
JDev
JDev
Asked: 2024-06-27 15:44:59 +0800 CST2024-06-27 15:44:59 +0800 CST 2024-06-27 15:44:59 +0800 CST

Ceph Rook存储与MySQL空间极大区别

  • 772

有人能告诉我造成这种情况的原因是什么吗?

我有一个 Rook Ceph 集群,其中存储了具有 3x 副本的 MySQL 数据库。我也使用该数据库进行开发,也就是说,删除、更改了大量数据等等。

BinaryLogs 也已启用。

数据库总共占用 27GB,其中 22-24GB 是 BinaryLogs。我可以禁用 BinaryLogs,但 20GB 的作用不大,它们每 3 天清除一次。

如果我从容器/主机(df -h)查看大小,我会看到相同的大小(27GB)。

但是Rook Ceph将此Block Image定义为241GB。

而且我不明白如果块图像应该小 9 倍,为什么这个尺寸会这么大?

有什么想法或提示吗?我可以尝试什么或从哪个方向寻找才能了解原因。

mysql
  • 3 3 个回答
  • 59 Views

3 个回答

  • Voted
  1. Best Answer
    symcbean
    2024-06-27T23:40:02+08:002024-06-27T23:40:02+08:00

    我不熟悉 Ceph,但我认为你测量的内容存在混淆。你从 3 个不同的角度描述了大小,但没有给出获取大小的明确方法(命令行)。

    虽然 Ceph 可以存储单个文件,但通过此接口运行 MySQL 数据库会相当奇怪 - 我猜存储是配置为 Ceph 块设备的。在这种情况下,在配置时定义的大小有一个固定的上限,并在您在卷上创建的文件系统中配置。大多数(所有?)存储提供商将实施精简配置- 存储上卷的占用空间只是在卷生命周期中写入的块。Ceph 默认这样做。也就是说,只要您只添加数据,那么占用空间就会反映存储在文件系统中的文件的大小。

    但是存储提供商并不了解文件系统 - 它不知道文件何时从文件系统中删除,因此当文件被删除时,底层存储的块仍处于分配状态。使用存储的主机必须告诉 Ceph 块何时不再使用 - 只有在使用 discard 选项挂载文件系统或运行显式 fstrim 命令时,它才会这样做。

    另一个考虑因素是,您的存储应设置冗余 - 即当节点发生故障时能够继续提供服务。ceph 集群拥有每个数据块的 3 个(有时甚至更多)副本并不罕见。您的方法可能报告的是物理存储中使用的空间,而不是逻辑占用空间。

    • 2
  2. JDev
    2024-06-28T11:19:50+08:002024-06-28T11:19:50+08:00

    非常感谢您的回答。

    我想你给了我我所寻找的东西。

    是的,我们正在谈论 CephBlockStorage。

    我假设 Ceph 会逐步添加但不会删除。我无法用其他方式解释这种大小差异。

    我只是不知道如何以及要寻找什么。

    关于 3 个副本,我指示的是正确的。因为 3 个副本分别占用 720GB,这在集群中显示出来。

    因此,有两个关键字指明了方向:“ discard ”和“ fstrim ”

    StorageClass 文档中也描述了有关 discard 的信息 https://kubernetes.io/docs/concepts/storage/storage-classes/#storageclass-objects https://docs.ceph.com/en/latest/rbd/rbd-kubernetes/#create-a-storageclass

    但这种解决方案并不是最优的,可能会存在性能问题。

    为此,Rook Ceph 建议使用特殊的插件定期执行这项工作。

    这是一个相同的问题:https://github.com/rook/rook/issues/10391

    以下是解决方案:https://rook.io/docs/rook/v1.14/Storage-Configuration/Ceph-CSI/ceph-csi-drivers/#csi-addons-operations

    我认为问题已经解决了,因为我已经了解了需要配置什么等等。它是否能正常工作是另一个问题。但它应该可以工作。

    • 1
  3. justin Lake
    2024-06-28T19:28:05+08:002024-06-28T19:28:05+08:00

    您的 Rook Ceph 集群中 27GB 的 MySQL 数据库大小与 241GB 的块映像大小之间的差异可能源于 Ceph 管理存储的方式。Ceph 采用精简配置,分配的存储可能看起来比实际存储的数据更大。此外,数据冗余、快照预留和元数据开销等因素也会影响块映像的大小。要进行故障排除,请查看 Ceph 的配置设置,使用 ceph df 等工具监控存储使用情况,并了解精简配置如何影响存储分配。调整设置和监控实践可以帮助优化设置中的存储效率。

    • 0

相关问题

  • 开源与专有关系 db mgt 系统的优缺点是什么?

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

  • 如何移动 MySQL 的数据目录?

  • 通过 VPN 连接什么是远程服务器 IP?

  • mysql崩溃

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