记录一次normal diskgroup添加磁盘组操作

news2024/11/27 23:57:56

客户的一个磁盘组空间快满,需要添加一下磁盘,磁盘组的冗余模式为normal,本来觉得是一件不难的事情,在添加过程中还是遇到了一些问题。

本来为2个500G的磁盘组成的normal模式磁盘组,目前可用空间只剩下170G左右的空间(通过Usable_file_MB查看),本次新增两个500G磁盘,准备添加到磁盘组中

这个磁盘组有2个failgroup,一开始按照我的理解,分别在每个磁盘组的failgroup中添加一个磁盘就行了,这样可用空间Usable_file_MB应该就是增加了500GB,

但是通过我的实际操作之后发现,添加完成之后Usable_file_MB只增加到了345698MB,也就是只增加了170G左右

首先搜索了一些文档,总结一下asmcmd lsdg中空间大小的含义:

FREE_MB:磁盘组中没有被使用的空间。

REQUIRED_MIRROR_FREE_MB:如果ASM磁盘或ASM磁盘组出现故障后,要重新满足冗余度的定义,要求有多少的空闲空间。

USABLE_FILE_MB:在满足冗余度之后,还有多少的剩余空间可以用。

计算公式:USABLE_FILE_MB = (FREE_MB - REQUIRED_MIRROR_FREE_MB) / 磁盘冗余度

a)  在磁盘组为Normal冗余模式下,实际剩余可用空间为FREE_MB / 冗余度,也就是FREE_MB的一半,这是因为根据Normal冗余,数据会存在一份相同的镜像,所以实际占用的空间也会多出一倍。

b) USABLE_FILE_MB可以变为负值,表示ASM并不会强制留出REQUIRED_MIRROR_FREE_MB的空间,但是这意味着如果遭遇了ASM磁盘组故障,有可能会没有足够的剩余空间来重新满足冗余度的要求。如果USABLE_FILE_MB为负数,就应该增加磁盘组的空间或者释放出一些空间来。

验证一下上面的结论,下面是我的实战操作,2个failgroup的情况下:

1.首先创建一个normal磁盘组,空间大小2G,两个failgroup,每个failgroup中一个1G的磁盘:

2.在磁盘组中创建一个表空间,大小设置为100M,创建完成之后查看空间大小

3.在磁盘组中新增一个500M的文件

4.在磁盘组原failgroup中添加两块1G磁盘

alter diskgroup testdg add 

failgroup TESTDG_0001 disk '/dev/asm-diskg'

failgroup TESTDG_0000  disk '/dev/asm-diskh'

rebalance power 10;

添加完成之后查看磁盘组空间:

添加完成之后,实际的usable_file_mb并不是原来想象中的增加了1GB,而是只增加了500M

这是因为当前的冗余度为2,磁盘组为了保证当asm出现故障后,剩下的空间能继续保持normal冗余,需要保留Req_mir_free_MB的空间,但是这个并不是必须的,因此Usable_file_MB可以为负数,当为负数的时候说明当前的磁盘组已经不能满足normal冗余需求了。

5.测试一下,当前还能写多少数据

按照需求,应该还可以再写入1G多的数据,测试一下是否真的如此:

测试发现确实还能继续写入1G多的空间,当写入的空间超过上面的800多M的时候,usable_file_mb变成了负数

因此上面的结论是正确的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1168902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多线程】线程池总结带你详细了解线程池

文章目录 线程池标准库中的线程池Executors 创建线程池的几种方式ThreadPoolExecutor创建线程池 模拟实现线程池 线程池 线程池是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配…

基于单片机的自动感应门设计

博主主页:单片机辅导设计 博主简介:专注单片机技术领域和毕业设计项目。 主要内容:毕业设计、简历模板、学习资料、技术咨询。 文章目录 主要介绍一、自动感应门设计的功能概述二、系统总体方案2.1系统的总体计划2.2元器件的介绍2.2.1单片机的…

全局安装 vue-cli 报错 Error: EPERM: operation not permitted, open

原因:没有权限 解决方法:CMD 点击右键 以管理员身份运行。

IDEA创建Springboot多模块项目

一、创建父模块 File --> New --> Project ,选择 “ Spring Initalizr ” ,点击 Next Next Next --> Finish 二、创建子模块 右键根目录,New --> Module 选择 “ Spring Initializr ”,点击Next 此处注意T…

ubuntu20.04配置解压版mysql5.7

目录 1.创建mysql 用户组和用户2.下载 MySQL 5.7 解压版3.解压 MySQL 文件4.将 MySQL 移动到适当的目录5.更改mysql目录所属的用户组和用户,以及权限6.进入mysql/bin/目录,安装初始化7.编辑/etc/mysql/my.cnf配置文件8.启动 MySQL 服务:9.建立…

【Linux】基本指令-入门级文件操作(三)

目录 基本指令 14 head指令 15 tail指令 管道 16 find指令 17 grep指令 18 zip&unzip指令 19 tar指令 20 su指令 总结 基本指令 14 head指令 功能:在屏幕上显示文件的内容,默认显示前10行,如果加上选项-n,则…

go测试库之apitest

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

万宾科技管网水位监测预警,管网水位的特点有哪些?

以往如果要了解城市地下排水管网的水位变化,需要依靠人工巡检或者排查的方式,这不仅加大了人员的工作量,而且也为市政府带来了更多的工作难题。比如人员监管监测不到位或无法远程监控等情况,都会降低市政府对排水管网的管理能力&a…

react_11

MobX 介绍 需求,组件0 改变了数据,其它组件也想获得改变后的数据,如图所示 这种多个组件之间要共享状态数据,useState 就不够用了,useContext 也不好用了 能够和 react 配合使用的状态管理库有 MobX Redux 其中…

Mac下使用nvm,执行微信小程序自定义处理命令失败

环境 系统:Mac OS 终端:zsh CPU:M1/ARM架构 node环境:nvm,node20 node目录:/Users/laoxu/.nvm/versions/node/v20.1.0/bin/ 问题 在使用微信小程序的自定义处理命令时,启动失败 提示找不…

【算法挑战】常数时间插入、删除和获取随机元素(含解析、源码)

380.常数时间插入、删除和获取随机元素 https://leetcode-cn.com/problems/insert-delete-getrandom-o1/ 题目描述 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。 …

【快速解决】Android Button页面跳转功能

目录 让我们直接开始 第一步:先建立一个新的activity ​编辑 第二步:打开第一个页面的Java文件MainActivity 方法一:直接跳转功能如下: 方法二:输入密码才能进行跳转功能如下: 需要注意的地方 结语 让…

音视频报警可视对讲15.6寸管理机

音视频报警可视对讲15.6寸管理机 一、管理机技术指标: 1、15.6寸原装京东方工业液晶触摸屏,分辨率1920 (H) x 1080 (V); 2、1000M/100M自适应双网口; 4、按键设置:报警/呼叫按键,通话/挂机按键&#xff…

RabbitMQ 消息应答与发布

目录 一、消息应答 1、自动应答(默认) 2、手动消息应答的方法 ​编辑 3、消息重新入队 4、手动应答案列与效果演示 二、RabbitMQ持久化 1、队列持久化 2、消息持久化 三、不公平分发(能者多劳,弱者少劳) 1、…

人工智能师求职面试笔试题及答案汇总

人工智能师求职面试笔试题及答案汇总 1.如何在Python中实现一个生成器? 答:在Python中,生成器是一种特殊类型的迭代器。生成器允许你在需要时才生成值,从而节省内存。生成器函数在Python中是通过关键字yield来实现的。例如&…

Linux 安装node并全局可用

前言 基于:操作系统 CentOS 7.6 工具:Xshell7、Xftp7 1.下载 根目录创建一个 node 文件夹并进入 mkdir /node && cd /node下载压缩包 wget https://nodejs.org/download/release/v16.18.0/node-v16.18.0-linux-x64.tar.gz2.解压并重命名 …

AI:53-基于机器学习的字母识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

字节测试开发面试分享,太难了...

一面 首先,自我介绍,我介绍了自己的技术栈和项目。 技术栈提到过Spring、Redis、Kafka、Docker、K8s、大数据。 项目提到过接口和UI自动化。 我有个大数据平台项目,问了比较多,聊着聊着,提到自己研究过Selenium、T…

MongoDB设置密码

关于为什么要设置密码 公司的测试服务器MongoDB服务对外网开放的,结果这几天发现数据库被每天晚上被人清空的了,还新建了个数据库,说是要支付比特币。查了日志看到有个境外的IP登录且删除了所有的集合。所以为了安全起见,我们给m…