ceph作业01-02

1.为集群创建纠删码erasure-code-profile 其中k4 m2
2.由于客户集群只有三节点,而ec4+2需要至少6节点,因此要求配置ec4+2:1,以满足每个节点上分布两个纠删码块

[root@node01 ceph-deploy]# ceph osd erasure-code-profile set   erasure-code-profile  k=4 m=2
[root@node01 ceph-deploy]# ceph osd erasure-code-profile get erasure-code-profile
crush-device-class=
crush-failure-domain=host
crush-root=default
jerasure-per-chunk-alignment=false
k=4
m=2
plugin=jerasure
technique=reed_sol_van
w=8



#通过纠纠偏码创建pool
[root@node01 ceph-deploy]# ceph osd pool create ecpool 64 64 erasure erasure-code-profile
pool 'ecpool' created


#查看当前crushmap的id
ceph osd getcrushmap -o crushmap


#导出
crushtool -d crushmap -o crushmap.txt


#编辑自己的一部分
vim crushmap.txt


#先查看默认配置
rule ecpool {
        id 1
        type erasure   #类型是纠偏码
        min_size 3    #最少需要3个OSD
        max_size 6    #最多多少osd可被用作纠偏码
        step set_chooseleaf_tries 5     #在一个节点上可以选择最多尝试多少次osd
        step set_choose_tries 100       #在所有节点上做多尝试多少次选择合适的OSD
        step take default      #从default的bucket开始选择
        step chooseleaf indep 0 type host   #indep 0,独立选择
        step emit   #规则完成后开始分配数据
}



#修改配置为2:1.精简的EC结构
rule ecpool {
        id 1
        type erasure
        min_size 3
        max_size 6
        step set_chooseleaf_tries 5     #在一个节点上可以选择最多尝试多少次osd
        step set_choose_tries 100       #在所有节点上做多尝试多少次选择合适的OSD
        step take default
        step choose indep 3 type host   # 注意这里的类型是host   独立选择3个host类型的bucket,也就是选三个不同的节点节点作
        step chooseleaf indep 2 type osd   #注意这里的类型是OSD chooseleaf(选择分片)  在每个主机上(这里一共是3个主机),每个主机上选择2个OSD来存储数据碎片,也就是说通过3个主机,每个主机两个碎片的方式
}

#通过上面修改后的crushmap.txt来生成新的crushmap规则
crushtool -c crushmap.txt -o newcrushmap2

ls



#修改好后,重新应用到集群
[root@node01 ~]# ceph osd setcrushmap -i newcrushmap2
28


#查看已经应用的规则,是否被修改
[root@node01 ~]# ceph osd crush rule dump ecpool
[root@node01 ~]# ceph osd crush rule dump ecpool
{
    "rule_id": 1,
    "rule_name": "ecpool",
    "ruleset": 1,
    "type": 3,
    "min_size": 3,
    "max_size": 6,
    "steps": [
        {
            "op": "set_chooseleaf_tries",
            "num": 5
        },
        {
            "op": "set_choose_tries",
            "num": 100
        },
        {
            "op": "take",
            "item": -1,
            "item_name": "default"
        },
        {
            "op": "choose_indep",
            "num": 3,    #看到已经修改了
            "type": "host"
        },
        {
            "op": "chooseleaf_indep",
            "num": 2,    看到已经被修改了
            "type": "osd"
        },
        {
            "op": "emit"
        }
    ]
}



#测试
停掉两块不同节点上的OSD,集群应该正常工作
停掉三块不同节点上的OSD,集群工作异常
模拟一整节点宕机,集群工作异常
正在测试中

### OpenStack Pike版本与Ceph集成配置 #### 安装Kolla-Ansible部署工具 为了简化OpenStack的安装过程并实现自动化部署,可以采用`kolla-ansible`作为部署工具。具体操作如下所示[^1]: ```bash git clone http://git.trystack.cn/openstack/kolla-ansible`项目到本地环境。 #### 创建Ceph存储池 对于希望同OpenStack对接使用的Ceph集群而言,在正式提供服务之前需预先创建若干个用于不同目的的数据池。这些数据池分别服务于镜像、虚拟机实例以及卷等资源对象。执行下列指令来完成相应的工作[^4]: ```bash [root@ct ceph]# ceph osd pool create volumes 64 pool 'volumes' created [root@ct ceph]# ceph osd pool create vms 64 pool 'vms' created [root@ct ceph]# ceph osd pool create images 64 pool 'images' created ``` 上述命令中的参数`64`代表放置组的数量,可以根据实际需求调整该数值大小。 #### 配置Nova计算节点 当完成了基础架构层面准备工作之后,则可进一步针对各个组件实施必要的设置工作以便能够顺利接入已有的Ceph环境中去。其中就包括了对负责运行VM实例的Compute Node进行适当修改以支持来自外部RBD设备挂载请求的操作[^3]. #### 发放管理密钥文件给各节点 为了让每一个参与构成整个分布式系统的成员都能够正常访问共享存储空间内的各项资产资料,还需要借助专门设计用来分发管理员权限凭证的小型实用程序——即`ceph-deploy`来进行批量处理作业活动[^2]: ```bash ceph-deploy admin ceph_node1 ceph_node2 ceph_node3 ``` 这条语句的作用在于向指定主机发送一份包含了认证所需信息在内的压缩包档案,从而允许它们之间相互识别对方身份合法性的同时也确保通信链路的安全可靠程度得到充分保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值