12. ClustrixDB 为容错和可用性分配磁盘空间
集群必须包含足够的空闲磁盘空间,以便从节点或区域故障中自动恢复。要计算在发生故障后仍然允许ClustrixDB完全重新保护数据的情况下可以使用的最大磁盘空间量,可以使用以下公式:
最大磁盘利用率% = (总节点- k) * / 总节点
在上式中,k表示下列任意一种(以较大的为准):
- max_failure全局变量的值(默认值为1)
- 区域中的节点总数(如果整个区域失败)。有关ClustrixDB如何在专区中工作的更多信息,请参阅专区。
如果在节点或区域发生故障后,集群中没有足够的空闲空间来重新保护数据,那么如果另一个节点或区域发生故障,集群将面临数据丢失或集群故障的风险。
80是databasefull_user_warn_percentage阈值的默认值。如果您的应用程序以一个充满集群的速率写入数据,那么在您的计算中使用一个小于80%的值。这将确保在等待替换节点加入集群并完成数据重分发时,可以继续写入数据
要配置databasefull_user_warn_percentage阈值和其他与数据库空间利用率相关的阈值,请参阅管理文件空间和数据库容量。
例子
使用这个预计算阈值的示例图,max_failure = 1的9节点集群(未部署在区域中)将要求数据库不超过71.11%的容量,以确保在节点故障时成功完成重新保护操作。
一个类似的9节点集群被部署在3个区域(每个区域有3个节点),需要不超过53.33%的集群空间来确保在区域故障时成功完成重新保护操作。
|
k |
Total Cluster Nodes |
||||
|---|---|---|---|---|---|
|
3 |
6 |
9 |
16 |
32 |
|
|
1 |
53.33% |
66.67% |
71.11% |
75.00% |
77.50% |
|
2 |
* |
53.33% |
62.22% |
70.00% |
75.00% |
|
3 |
* | * |
53.33% |
65.00% |
72.50% |
| 4 | * | * | 44.44% | 60.00% | 70.00% |
| 5 | * | * | * | 55.00% | 67.50% |
* = 不适用,因为剩余的节点数不构成仲裁。
空间的警报
如果集群中的空闲空间低于在节点或区域故障时完全重新保护它所需的空间量,ClustrixDB将向数据库警报中配置的用户列表发送电子邮件警报。电子邮件将包括[警告]没有足够的空间进行重新保护,并提供所需空间的详细信息。
在clustrix.log中,同样的消息也会作为错误出现。
ERROR (HY000): [] Not enough space to reprotect if another node is lost: 94.4255% usage (without softfailed nodes) is greater than max 80.0000%
您还可能在软故障或删除节点时遇到此消息。
12. ClustrixDB 为容错和可用性分配磁盘空间的更多相关文章
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(三)重新分配磁盘空间(可选)
一.查看文件系统 [root@master ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_master-lv_ ...
- 无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。
无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满.请删除不需要的文件.删除文件组中的对象.将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘 ...
- win7/win10 未分配磁盘怎样创建扩展分区 也就是逻辑分区(转截)
我们有时候用windows7的磁盘管理工具对windows7系统分区管理的时候,我们可能会不小心把我们的电脑硬盘扩展分区都删除了,扩展分区变为了未分配的空间,这时候如果我们新建分区的话,建立的都是主分 ...
- 2019.12.04 Java中的内存分配
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般 ...
- C++ primer plus读书笔记——第12章 类和动态内存分配
第12章 类和动态内存分配 1. 静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域运算符来指出静态成员所属的类.但如果静态成员是整形或枚举型const,则可以在类声明中初始化 ...
- SQL Server 磁盘空间告急(磁盘扩容)转载
一.背景 在线上系统中,如果我们发现存放数据库文件的磁盘空间不够,我们应该怎么办呢?新买一个硬盘挂载上去可以嘛?(linux下可以直接挂载硬盘进行扩容),但是我们的SQL Server是运行在Wind ...
- VMware扩展Linux根目录磁盘空间(Centos版本)
1.Centos 关机,选择编辑虚拟机设置,硬盘,在实用工具那里选择“扩展”,指定你需要的存储大小 2.启动客户机操作系统Centos,查看磁盘情况 输入指令 fdisk -l 显示结果如下 Disk ...
- Centos7扩展磁盘空间(LVM管理)
vmware或hyperv,扩容磁盘,本例中使用的是vmware,关闭系统,在vmware—>设置—>硬盘—>扩展—>输入数字大于当前系统内存—>点击扩展,如图: 1. ...
- Centos7 调整磁盘空间
1. 查看磁盘空间占用情况: df -h 可以看到 /home 有很多剩余空间, 而节点较少. 2. 备份 /home 下的内容: cp -r /home/ homebak/ 3. 关闭home进程 ...
随机推荐
- python学习之模块-模块(五)
5.10 包 5.10.1 包的概念 [官网解释] Packages are a way of structuring Python's module namespace by using " ...
- 网格UV展开
原文链接 UV展开是什么 参数曲面的参数域变量一般用UV字母来表达,比如参数曲面F(u,v).所以一般叫的三维曲面本质上是二维的,它所嵌入的空间是三维的.凡是能通过F(u,v)来表达的曲面都是参数曲面 ...
- 服务器上安装并使用tensorboard
需求: 在ubunu16.0的服务器上使用Pytorch内嵌的tensorboard 安装 pip install tensorflow pip install tensorboardX 如果嫌慢可以 ...
- python 并发编程 多线程 Thread对象的其他属性或方法
介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. threading模块提供的一些方法: ...
- 修改python pip3镜像源
方法一: pip3 install 包名 -i 镜像源url 主要的镜像源: pip3 install tornado -i https://pypi.douban.com/simple/ pip ...
- 小记---------Hadoop的MapReduce基础知识
MapReduce是一种分布式计算模型,主要用于搜索领域,解决海量数据的计算问题 MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算. 两 ...
- 【洛谷p1781】宇宙总统
宇宙总统[题目链接] 关于题目算法,其实就是考排序,那我们直接sort不就好啦,显然不能. 这个题让我重新认识了cmp函数: 以下是我的心路历程: 看到这个题,嗯?这么简单的吗,我直接sort不就好啦 ...
- 用C#取个中文名字
*注意:此方法获得的名字很可能出现生僻字,若要get一个好记/常见的名字,还请另作操作. 以百家姓(444个单姓,60个复姓)作为姓氏,再添加两个随机的中文,You can get a chinese ...
- linux服务器之间互传文件
1.传递单个文件 linux A 服务器 上的文件(假设文件为a.php) 复制到 linux B 服务器上(假设复制后的文件名为b.php) 格式为 scp 文件a的绝对路径 B服务器用户名@B ...
- 记一次神奇的codeforces
今天有一场codeforces的div3,时间挺合适,于是就想打.结果发现rating超过1600就不能报名.虽然shzr好久不打CF了而且很菜,但是毕竟还是到了1600的,于是和ZUTTER_一起用 ...