配置块存储中的区块大小
在此页面上
基于块存储的备份的性能会有所不同,具体取决于块存储的 FCV 。
将部署备份到块存储时,会执行以下操作:
MongoDB Agent 会发送分成数据段的文件副本。
备份服务将这些区块写入块存储。
不同的块存储具有不同的块默认大小和大小范围。
块存储类型 | 区块大小范围 | 默认大小 |
---|---|---|
MongoDB | 64 KB 至 15 MB | 1 MB |
S3 | 64 KB 至 16 MB | 16 MB |
默认MongoDB块块存储区块大小为1 MB。 这可提高快照性能。
如果您的块存储包含的备份文件大于100 GB,请考虑使用2 MB 或更大的区块大小。 如果您在选择区块大小时需要帮助,请联系MongoDB支持部门。
Considerations
更改区块大小后的完整快照
如果更改块大小,则下一个快照将作为完整快照而不是增量快照运行。
增加区块大小可提高性能和磁盘使用率
一般来说,增加块大小可以加快快照和恢复速度,但需要更多磁盘空间。 在确定是否应调整区块大小时,请考虑这些相互竞争的因素。
在这两种例外情况下,性能随着区块大小的增加而提高,而无需额外的磁盘空间:
工作负载 | 影响 |
---|---|
更新和删除密集型 | 无论将区块大小设置得多小,整个区块文件都会被重写。 由于始终会重写整个文件,因此即使更改块大小,存储空间也不会改变。 |
仅插入 | 现有区块永远不会改变。 区块大小越大,区块管理就越简单。 这样可以在快照和恢复方面实现最佳性能。 |
更改块大小之前检查磁盘容量
在更改块大小之前,请检查 MongoDB 块存储是否可以容纳更改后的当前磁盘空间。 更改后的快照无法对早期快照的数据段进行去重。 区块大小不匹配。 这会导致每个块存储的磁盘使用量随着其备份的部署的大小而增加。
无法存储新区块的块存储会崩溃。 这会阻止备份。 清除磁盘空间以使块存储恢复正常工作状态。
要检查是否有足够的磁盘空间来更改给定作业的块大小,请完成以下过程:
发现运行块存储的主机上的可用磁盘空间量。
估计在添加下一个快照的压缩字节时块存储存储使用量增加的量。 查看备份作业的最新快照的压缩字节以做出估计。
要查看压缩字节,请运行以下查询:
1 db.getSiblingDB("backupjobs").snapshots.findOne( 2 { 3 rsId : <rsId>, 4 groupId : <groupId>, 5 completed: true 6 }, { 7 compressedSize: 1 8 }, { 9 sort: { 10 startTime: -1 11 } 12 } 13 ) 扩大找到的值以留出一些缓冲空间。
增加区块大小后拍摄的第一个快照时,块存储的存储使用量会激增。 使用该新区块大小的后续快照也会增大块存储。 并非所有区块都会使用第一个快照进行去重。
如果 Ops Manager 使用一个块存储回收空间(块存储内修饰作业),则该块存储需要更大的缓冲区空间。 在块存储内groom作业期间,块存储会临时为以下内容分配空间:
之前已过期快照中的死字节
所有先前完成的快照的活动字节的两个副本
新快照中字节的两个副本
比较在步骤 1 和步骤 3 中找到的磁盘空间。 第 3 步中计算出的磁盘空间应适合第 1 步中找到的磁盘空间。
如果您的主机没有足够的磁盘空间来更改给定作业的区块大小,请尝试以下解决方案之一:
为块存储添加更多磁盘空间。
终止并重新启动备份作业。 这将清除所有现有快照。
从groom 优先级 管理页面运行一个或多个 groom 作业,以清除一些死字节。要查看每个作业实际可以清理多少数据,请检查“资源使用情况”管理页面。
添加新的块存储,然后为某些备份作业安排块存储间整理作业。
保持区块大小不变。
MongoDB Ops Manager如果您从未为使用 FCV4.2 或更高版本和 块存储的一个或多个备份配置区块大小,MongoDB 块存储MongoDB 会显示增加区块大小的横幅。要关闭横幅,请为所有备份作业设立任意区块大小。 您可以设立旧的默认区块大小64 KB。
如需帮助,请联系MongoDB支持部门
注意
更改区块大小后,块存储存储使用量会出现峰值并逐渐增加。 随着使用旧区块大小拍摄的快照过期,此使用量会减少。由于 Ops Manager 会将每月快照保留一到七年,因此这种使用量可能需要很长时间才能恢复到区块大小更改前的水平。