添加OSD

1 格式化盘
如果添加的盘上面有分区,可以通过如下命令清除(分区上的数据也会被清除)

ceph-deploy disk zap {osd-server-name} {disk-name}

2 添加OSD

ceph-deploy osd create {osd-server-name} --data /dev/{disk-name} {osd-server-name}

如果出现类似错误:

ceph-node-1 write cluster configuration to
/etc/ceph/{cluster}.conf ceph_deploy.osd RuntimeError:
config file /etc/ceph/ceph.conf exists with different content; use
--overwrite-conf to overwrite ceph_deploy GenericError: Failed to create 1 OSDs

同步配置文件到其他节点

ceph-deploy --overwrite-conf config push {ceph-node-hostname}

或mv后再次启动服务

mv /etc/ceph/ceph.conf /etc/ceph/ceph.conf.bak

- 阅读剩余部分 -

PG全称是placement groups,它是ceph的逻辑存储单元。在数据存储到cesh时,先打散成一系列对象,再结合基于对象名的哈希操作、复制级别、PG数量,产生目标PG号。根据复制级别的不同,每个PG在不同的OSD上进行复制和分发。可以把PG想象成存储了多个对象的逻辑容器,这个容器映射到多个具体的OSD。PG存在的意义是提高ceph存储系统的性能和扩展性。

- 阅读剩余部分 -

cephfs部署

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 //监视策略路由

学习自 https://www.sohu.com/a/230266514_100152782

偶然间看到个高三学生博客,看了些他的生活琐碎,暑期兼职拿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 

- 阅读剩余部分 -

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;   
}

转自:http://www.phpfensi.com/php/20140710/3731.html

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

- 阅读剩余部分 -