调整ceph的pg数(pg_num, pgp_num)
PG全称是placement groups,它是ceph的逻辑存储单元。在数据存储到cesh时,先打散成一系列对象,再结合基于对象名的哈希操作、复制级别、PG数量,产生目标PG号。根据复制级别的不同,每个PG在不同的OSD上进行复制和分发。可以把PG想象成存储了多个对象的逻辑容器,这个容器映射到多个具体的OSD。PG存在的意义是提高ceph存储系统的性能和扩展性。
PG全称是placement groups,它是ceph的逻辑存储单元。在数据存储到cesh时,先打散成一系列对象,再结合基于对象名的哈希操作、复制级别、PG数量,产生目标PG号。根据复制级别的不同,每个PG在不同的OSD上进行复制和分发。可以把PG想象成存储了多个对象的逻辑容器,这个容器映射到多个具体的OSD。PG存在的意义是提高ceph存储系统的性能和扩展性。
1 ceph-deploy安装(如以安装跳过此步骤)
yum install ceph-deploy -y
部署Ceph-deploy部署过程中会生成一些集群初始化配置文件和key,后续扩容的时候也需要使用到,因此,建议在admin-node上创建一个单独的目录,后续操作都进入到该目录中进行操作,以创建的ceph-admin-node为例。
查看硬盘信息
lsblk
到所有节点配置阿里云centos7软件源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
实验参考步骤
路由器 A的配置:
RouterA(config)#interface ethernet0
RouterA(config-if)#ip address 192.1.1.1 255.255.255.0
RouterA(config-if)#ip policy route-map lab1 //在接口上应用名字是 lab1 的Router Map 表
RouterA(config)#ip local policy route-map lab1 //要求路由器接受策略路由的管理
RouterA(config)#route-map lab1 permit 10 //小于等于 100 字节的数据包经过 S0 接口发送
RouterA(config-route-map)# match length 64 100
RouterA(config-route-map)# set ip next-hop 150.1.1.2
RouterA(config)#route-map lab1 permit 20 //大于100字节小于等于1000字节的数据包经过S1 接口发送
RouterA(config-route-map)# match length 100 1000
RouterA(config-route-map)# set ip next-hop 151.1.1.2
RouterA#debug ip policy //监视策略路由
偶然间看到个高三学生博客,看了些他的生活琐碎,暑期兼职拿80元工资/天的过程、对要点赞的身边现象的吐槽、对即将高中毕业进入大学的憧憬与对过往的怀念、对久未谋面的朋友的友谊的坚定、对代码的折腾等等…… 像极以前的自己。
一直以为独立博客已经没有人去写了,在这浮躁的社会,微博、微信的短文会是更多人的选择。认真找了下,原来圈子一直都在,还是有人会静下心来写写生活、记录琐事,还是会有初中生、高中生前仆后继。
DELL R720 机器组RAID10,其中一个盘故障,换了个不同品牌同容量的新硬盘后状态为 Unconfigured(good), Spun Up。
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL -NoLog|grep "Firmware state"
Firmware state: Unconfigured(good), Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
公司有台10个盘组的RAID10的服务器列阵挂了,坏了3个盘,超过了RAID10的容错,已经无法通过列阵恢复数据了。同时挂3个是很小几率的,所以也有一定可能刚开始挂了1-2个不知道,直到第3个挂了down机了才发现。
因为机器很多,人工每天检查一次会比较耗时,每周检查也许又会太长。所以写了个py小脚本,可以定时1小时检查次,出现故障可以立即通知到技术立即去进一步检查、换盘,避免悲剧发生。
1、安装MegaCLI
# wget https://raw.githubusercontent.com/crazy-zhangcong/tools/master/MegaCli8.07.10.tar.gz && tar -zxf MegaCli8.07.10.tar.gz && cd MegaCli8.07.10/Linux/ && rpm -ivh Lib_Utils-1.00-09.noarch.rpm MegaCli-8.02.21-1.noarch.rpm && ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/local/bin/MegaCli && MegaCli -v
body {
padding-right: 0px !important;
}
*.modal-open {
overflow-y: scroll;
padding-right: 0 !important;
}
in_array 函数只针对一维数组,经过简单的构造,就可以查询多维数组。
$arr = array(
array('a', 'b'),
array('c', 'd')
);
in_array('a', $arr); // 此时返回的永远都是 false
deep_in_array('a', $arr); // 此时返回 true 值
function deep_in_array($value, $array) {
foreach($array as $item) {
if(!is_array($item)) {
if ($item == $value) {
return true;
} else {
continue;
}
}
if(in_array($value, $item)) {
return true;
} else if(deep_in_array($value, $item)) {
return true;
}
}
return false;
}
PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想要跳出本次循环继续执行下次循环,或者满足某个条件的时候,终止foreach()循环,分别会用到:continue 与 break
$arr= array('le','yang','jun','code','life','a','b','c');
$html= '';
foreach($arr as $key => $value){
if($value == 'a'){
$html.= $value;
}
if($value =='b'){
$html.= $value;
continue;// 当 $value为b时,跳出本次循环
}
if($value =='c'){
$html.= $value;
break;// 当 $value为c时,终止循环
}
//$html.= $value;
}
echo $html; // 输出: abc
由于 CentOS 7 内置的 curl 和 libcurl 源为较旧的 7.29.0,不支持一些新特性且有安全性问题,所以需要更新一下。
在这里使用 city-fan 的更新源来更新。
一、 更新 ca-bundle
首先备份一下:
cp /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-bundle.crt.bak
系统没有安装python-devel包导致
yum install python-devel.x86_64