介绍
基本信息
作者:朱明宇
名称:实时监控内存
作用:实时监控内存,并每 3 秒钟更新 1 次状态信息,总过进行 100 次
使用方法
1. 给此脚本添加执行权限
2. 执行此脚本
脚本
#!/bin/bash
i=1
free -m | head -1
while [ $i -le 100 ]
do
let i=i+1
free -m | grep Mem
sleep 3
done
作者:朱明宇
名称:实时监控内存
作用:实时监控内存,并每 3 秒钟更新 1 次状态信息,总过进行 100 次
1. 给此脚本添加执行权限
2. 执行此脚本
#!/bin/bash
i=1
free -m | head -1
while [ $i -le 100 ]
do
let i=i+1
free -m | grep Mem
sleep 3
done
什么样的触动和沉寂,会让人们因为生活在这个时代而感到幸运?
什么样的微笑和眼神,会让人们坚定化解相互仇视的决心?
死板的思维会因包容非我族类的异己而变得梦幻多彩
死寂的社会会因无数不同的团队怀揣相同的梦想而充满奇迹
开启黄金时代的钥匙,从来都在每个人自己的手中
如果,勇气将是深思熟虑后的选择,而不是会后怕的一时逞能或法律的强迫
如果,智慧将是为了个体与集体的共同受益,而不是为了个体先破坏集体,再因集体的被破坏牵连个体
如果,会带着勇气和智慧在自己有限的人生中去自我成就,并能享受和沉寂在这份自我成就中
AMD CPU 在使用 KVM 开启虚拟机时可能会出现此类报错:
failed to set MSR 0xe1 to 0x0
# echo Y > /sys/module/kvm/parameters/ignore_msrs
# /etc/init.d/vmware start
# vmplayer
将数据进行切片,对每份切片进行 Hash 取值,并对获取的 Hash 值除以存储节点的数量以取余,余数是多少就将此切片存在第几个 OSD 节点里,主要是 Swift 在使用。
如果要增加存或减少存储节点,需要对所有已存储数据切片的 Hash 值重新取余,大概 90% 的数据需要重新均衡数据(rebalance)。
1) 给电脑也计算 Hash 值(可以是给电脑名计算 Hash 值,也可以给 IP 地址计算 Hash 值)
2) 再给数据也计算 Hash 值,将数据存到比它的 Hash 值大,且与它的差值最小的电脑上,如果没有 Hash 值比它大的电脑就直接将数据存在 Hash 值最小的电脑上
3) 整个架构类似一个环
1) 电脑太少时切换数据也会有较大的数据量,但是可以多设置几个虚拟节点,给以后新增加的节点使用,虚拟节点里的数据会影射到对应的物理节点里面去
2) 电脑太少时,两台电脑的 Hash 值比较接近导致,数据分配极度不平均
(注意:在开始创建数据架构时,要评估未来数据的规模,如果最后要添加的电脑数量超过了虚拟节点数量,那么这个架构就不能使用了。此时只能备份数据,然后新建 1 个架构出来)
CRUSH(Controlled Replication Under Scalable Hashing)算法,在可扩展 Hash 算法下的可控制复制,主要是 Ceph 在使用。
由 Ceph 的 OSD(Object Storage Deivces)组成。
由 Ceph 的 PG(Placement Group)归置组组成。
在 OSD 节点上虚拟出多个 PG,每个 PG 默认会被指定对应 3 个 OSD 节点(每个 OSD 节点同时可以属于多个 PG),其中第一个 OSD 节点为主要(primary)的硬盘,其他两 OSD 节点为从(second)硬盘,PG 会对应几个 OSD 节点取决于 Ceph 的存储副本被设置了几份。
1) 给每个 OSD 节点设置一个权重值,OSD 节点的容量越大则其权重值越大
2) 主要(primary)硬盘的 OSD 节点:将 PG 的 ID 值和 OSD 的 ID 值组合在一起并计算 Hash 值,将得到的 Hash 值乘以此 OSD 节点的权重,当最终获得的值最大时,此 PG 就和此 OSD 绑定在一起
3) 第 1 个从(second)硬盘的 OSD 节点:将 PG 的 ID 值逐一和 OSD 的 ID 值和 1 个随机的常数组合在一起并计算 Hash 值(这个值在 Ceph 的代码里被叫做 draw),将得到的 Hash 值乘以此 OSD 节点的权重,当最终获得的值最大时(这个值在 Ceph 的源代码里叫做 straw)则此 PG 就和此 OSD 绑定在一起
4) 第 2 个从(second)硬盘的 OSD 节点:将 PG 的 ID 值逐一和 OSD 的 ID 值和上 1 个随机常数加 1 的和组合在一起并计算 Hash 值(这个值在 Ceph 的代码里被叫做 draw),将得到的 Hash 值乘以此 OSD 节点的权重,当最终获得的值最大时(这个值在 Ceph 的源代码里叫做 straw),则此 PG 就和此 OSD 绑定在一起(如果找到的 OSD 节点和前面的 OSD 节点重复,则将这个随机常数再加 1 并进行重复操作,最终获得和前面不通的 OSD 节点为止)
……
由池组成。
1) 在 PG 上虚拟出多个池,每个池对应多个 PG,数据可以存储到指定的池里
2) 总硬盘容量有多大,每个池最大可以使用的容量就有多大,但是如果如果 1 个池使用了一部分容量,其他的池就要少使用一部分容量
由数据组成。
1) 对要放入某个池里的数据进行切片,默认每片 4M
2) 对每份切片进行 Hash 取值,并对获取的 Hash 值除以这个池里 PG 节点的数量以取余,余数是多少就存在第几个 OSD 节点里