003 ansible部署ceph集群
介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题
一、环境准备
ceph1充当部署节点,ceph2,ceph3,ceph4充当ceph集群节点
IP | 主机名 | 节点 | 系统 |
---|---|---|---|
172.25.250.10 | ceph1 | ceph-ansible | Red Hat release 7.4 |
172.25.250.11 | ceph2 | mon、mgr、osd | Red Hat release 7.4 |
172.25.250.12 | ceph3 | mon、mgr、osd | Red Hat release 7.4 |
172.25.250.10 | ceph4 | mon、mgr、osd | Red Hat release 7.4 |
1.1 ceph1配置hosts
172.25.250.10 ceph1
172.25.250.11 ceph2
172.25.250.12 ceph3
172.25.250.13 ceph4
1.2 配置免密登录
[root@ceph1 ~]# ssh-keygen
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph1
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph2
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph3
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph4
二,部署ceph集群
2.1部署节点安装ansible
注:再部署之前,一般需要配置yum源和时间服务器ntp配置
[root@ceph1 ~]# yum -y install ansible
[root@ceph1 ~]# cd /etc/ansible/
[root@ceph1 ansible]# ll
2.2 定义hosts
[root@ceph1 ansible]# vim hosts
[mons]
ceph2
ceph3
ceph4
[mgrs]
ceph2
ceph3
ceph4
[osds]
ceph2
ceph3
ceph4
[clients]
ceph1
2.3 安装ceph-ansible
[root@ceph1 ansible]# yum -y install ceph-ansible
[root@ceph1 ansible]# cd /usr/share/ceph-ansible/
[root@ceph1 ceph-ansible]# ls
[root@ceph1 ceph-ansible]# ansible all -m ping
[root@ceph1 ceph-ansible]# cd /usr/share/ceph-ansible/group_vars/
[root@ceph1 group_vars]# cp mons.yml.sample mons.yml
[root@ceph1 group_vars]# cp mgrs.yml.sample mgrs.yml
[root@ceph1 group_vars]# cp osds.yml.sample osds.yml
[root@ceph1 group_vars]# cp clients.yml.sample clients.yml
[root@ceph1 group_vars]# cp all.yml.sample all.yml
[root@ceph1 group_vars]# vim all.yml
fetch_directory: ~/ceph-ansible-keys
ceph_repository_type: "cdn"
ceph_origin: repository
ceph_repository: rhcs
ceph_rhcs_version: 3
monitor_interface: eth0
journal_size: 5120
public_network: 172.25.250.0/24
cluster_network: "{{ public_network }}"
2.4 定义OSD
[root@ceph1 group_vars]# vim osds.yml
devices:
- /dev/vdb
- /dev/vdc
- /dev/vdd
osd_scenario: collocated
[root@ceph1 group_vars]# grep -Ev "^$|^\s*#" *.yml
2.5 定义ansible的入口文件
[root@ceph1 group_vars]# cd ..
[root@ceph1 ceph-ansible]# cp site.yml.sample site.yml
[root@ceph1 ceph-ansible]# vim site.yml
- hosts:
- mons
# - agents
- osds
# - mdss
# - rgws
# - nfss
# - restapis
# - rbdmirrors
- clients
- mgrs
# - iscsi-gws
2.6 安装
[root@ceph1 ceph-ansible]# ansible-playbook site.yml
安装如果有问题,会有报错,根据报错信息去修改yml文件,然后重新执行,出现下面的结果表示已经安装完成
PLAY RECAP ****************************************************************
ceph1 : ok= changed= unreachable= failed=
ceph2 : ok= changed= unreachable= failed=
ceph3 : ok= changed= unreachable= failed=
ceph4 : ok= changed= unreachable= failed=
2.7 检测验证
[root@ceph2 ~]# ceph -s
[root@ceph2 ~]# ceph osd tree
所有的文件都存放在/etc/ceph下
[root@ceph2 ~]# cd /etc/ceph/
[root@ceph2 ceph]# ll
ceph.conf是配置文件的名字,是因为没有指定集群的名字默认为ceph,配置文件的名字应为:cluster_name.conf
[root@ceph2 ceph]# cat ceph.conf
[global]
fsid = 35a91e48--4e96-a7ee-980ab989d20d
mon initial members = ceph2,ceph3,ceph4
mon host = 172.25.250.11,172.25.250.12,172.25.250.13
public network = 172.25.250.0/
cluster network = 172.25.250.0/
[osd]
osd mkfs type = xfs
osd mkfs options xfs = -f -i size=
osd mount options xfs = noatime,largeio,inode64,swalloc
osd journal size =
查看磁盘,有一个日志分区和数据分区
[root@ceph2 ceph]# fdisk -l
查看ceph进程
[root@ceph2 ceph]# ps aux|grep ceph
2.8 节点扩充
如果需要扩充节点,可以直接在部署节点的hosts文件,添加上主机名,执行部署,就会自己在原来的基础上继续扩充
如,把ceph1的三个磁盘扩充到osd,则配置如下:
[root@ceph1 ansible]# vim hosts
[mons]
ceph2
ceph3
ceph4 [mgrs]
ceph2
ceph3
ceph4 [osds]
ceph2
ceph3
ceph4
ceph1 [clients]
ceph1
再执行部署
[root@ceph1 ceph-ansible]# ansible-playbook site.yml
如果部署错误,删除需要下面这个yml文件
[root@ceph1 ceph-ansible]# vim infrastructure-playbooks/purge-cluster.yml
部分注释内容:
# This playbook purges Ceph
# It removes: packages, configuration files and ALL THE DATA
#
# Use it like this:
# ansible-playbook purge-cluster.yml
# Prompts for confirmation to purge, defaults to no and
# doesn't purge the cluster. yes purges the cluster.
#
# ansible-playbook -e ireallymeanit=yes|no purge-cluster.yml
# Overrides the prompt using -e option. Can be used in
# automation scripts to avoid interactive prompt.
执行删除:
[root@ceph1 ceph-ansible]# ansible-playbook infrastructure-playbooks/purge-cluster.yml
另一个环境安装
一、环境准备,
每个虚拟机只有一块多余的磁盘做osd
IP | 主机名 | 节点 | 系统 | 硬盘 |
---|---|---|---|---|
172.25.254.130 |
ceph1 | ceph-ansible | CentOS Linux release 7.4.1708 (Core) | /dev/sdb,dev/sdc,dev/sdd |
172.25.254.131 |
ceph2 | mon、mgr、osd | CentOS Linux release 7.4.1708 (Core) | /dev/sdb,dev/sdc,dev/sdd |
172.25.254.132 |
ceph3 | mon、mgr、osd | CentOS Linux release 7.4.1708 (Core) | /dev/sdb,dev/sdc,dev/sdd |
172.25.254.133 | ceph4 | mon、mgr、osd | CentOS Linux release 7.4.1708 (Core) | /dev/sdb,dev/sdc,dev/sdd |
1.1 配置hosts
172.25.254.130 ceph1
172.25.254.131 ceph2
172.25.254.132 ceph3
172.25.254.133 ceph4
1.2 配置免密登录
root@ceph1 ~]# ssh-keygen
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph1
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph2
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph3
[root@ceph1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ceph4
1.3 内核进行升级
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
awk -F\' '$=="menuentry " {print $}' /etc/grub2.cfg
grub2-set-default
reboot
rpm -qa|grep kernel|grep 3.10|xargs yum remove -y
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
rpm -qa|grep kernel
systemctl stop firewalld
systemctl disable firewalld
二、部署
2.1 下载包
[root@ceph1 ~]# wget -c https://github.com/ceph/ceph-ansible/archive/v3.1.7.tar.gz
[root@ceph1 ~]# tar xf v3.1.7.tar.gz
[root@ceph1 ~]# cd ceph-ansible-3.1.7
2.3 修改inventory,添加主机信息
[root@ceph1 ceph-ansible-3.1.7]# vim hosts
[mons]
ceph2
ceph3
ceph4 [osds]
ceph2
ceph3
ceph4 [mgrs]
ceph2
ceph3
ceph4 [mdss]
ceph2
ceph3
ceph4 [clients]
ceph1
ceph2
ceph3
ceph4
[root@ceph1 ceph-ansible-3.1.7]# ansible all -m ping -i hosts
2.4 修改all.yml写入如下内容
[root@ceph1 ceph-ansible-3.1.7]# cp group_vars/all.yml.sample group_vars/all.yml
[root@ceph1 ceph-ansible-3.1.7]# cp group_vars/osds.yml.sample group_vars/osds.yml
[root@ceph1 ceph-ansible-3.1.7]# cp site.yml.sample site.yml
[root@ceph1 ceph-ansible-3.1.7]# vim group_vars/all.yml
ceph_origin: repository
ceph_repository: community
ceph_mirror: http://mirrors.aliyun.com/ceph
ceph_stable_key: http://mirrors.aliyun.com/ceph/keys/release.asc
ceph_stable_release: luminous
ceph_stable_repo: "{{ ceph_mirror }}/rpm-{{ ceph_stable_release }}" fsid: 54d55c64-d458---36ce881cbcb7 ##通过uuidgen生成
generate_fsid: false cephx: true public_network: 172.25.254.0/
cluster_network: 172.25.254.0/
monitor_interface: ens33 ceph_conf_overrides:
global:
rbd_default_features:
auth cluster required: cephx
auth service required: cephx
auth client required: cephx
osd journal size:
osd pool default size:
osd pool default min size:
mon_pg_warn_max_per_osd:
osd pool default pg num:
osd pool default pgp num:
max open files:
osd_deep_scrub_randomize_ratio: 0.01 mgr:
mgr modules: dashboard mon:
mon_allow_pool_delete: true client:
rbd_cache: true
rbd_cache_size:
rbd_cache_max_dirty:
rbd_cache_max_dirty_age: osd:
osd mkfs type: xfs
ms_bind_port_max:
osd_client_message_size_cap:
osd_crush_update_on_start: true
osd_deep_scrub_stride:
osd_disk_threads:
osd_map_cache_bl_size:
osd_max_object_name_len:
osd_max_object_namespace_len:
osd_max_write_size:
osd_op_threads: osd_recovery_op_priority:
osd_recovery_max_active:
osd_recovery_max_single_start:
osd_recovery_max_chunk:
osd_recovery_threads:
osd_max_backfills:
osd_scrub_begin_hour:
osd_scrub_end_hour:
[root@ceph1 ceph-ansible-3.1.7]# vim group_vars/osds.yml
devices:
- /dev/sdb
- /dev/sdc
- /dev/sdd
osd_scenario: collocated
osd_objectstore: bluestore
[root@ceph1 ceph-ansible-3.1.7]# vim site.yml
# Defines deployment design and assigns role to server groups
- hosts:
- mons
# - agents
- osds
- mdss
# - rgws
# - nfss
# - rbdmirrors
- clients
- mgrs
2.5 执行部署
[root@ceph1 ceph-ansible-3.1.7]# ansible-playbook site.yml -i hosts
-bash: ansible-playbook: command not found
[root@ceph1 ceph-ansible-3.1.7]# yum install ansible -y
[root@ceph1 ceph-ansible-3.1.7]# ansible-playbook site.yml -i hosts
成功安装
注:如果是不会过程出错,先清空集群,在进行部署
cp infrastructure-playbooks/purge-cluster.yml purge-cluster.yml # 必须copy到项目根目录下
ansible-playbook -i hosts purge-cluster.yml
不升级内核,也可以安装成功,但是没有测试集群的其他性能!
参考链接:https://yq.aliyun.com/articles/624202
003 ansible部署ceph集群的更多相关文章
- [自动化]基于kolla-ceph的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
- ceph-deploy离线部署ceph集群及报错解决FAQ
ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...
- [自动化]基于kolla的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
- 使用虚拟机CentOS7部署CEPH集群
第1章 CEPH部署 1.1 简单介绍 Ceph的部署模式下主要包含以下几个类型的节点 Ø CephOSDs: A Ceph OSD 进程主要用来存储数据,处理数据的replication,恢复 ...
- 二十八. Ceph概述 部署Ceph集群 Ceph块存储
client :192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13 1.实验环境 准备四台KVM虚 ...
- 1、ceph-deploy之部署ceph集群
环境说明 server:3台虚拟机,挂载卷/dev/vdb 10G 系统:centos7.2 ceph版本:luminous repo: 公网-http://download.ceph.com,htt ...
- Ubuntu 16.04下使用docker部署ceph集群
ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...
- 手把手教你使用rpm部署ceph集群
环境准备 1.在运行 Ceph 守护进程的节点上创建一个普通用户,ceph-deploy 会在节点安装软件包,所以你创建的用户需要无密码 sudo 权限.如果使用root可以忽略. 为赋予用户所有权限 ...
- 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。
1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释 CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...
随机推荐
- 洛谷 2149 [SDOI2009]Elaxia的路线
题目描述 最近,Elaxia和w的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w每天都要奔波于宿舍和实验室之间,他们 希望在节约时间的 ...
- LeetCode70 Climbing Stairs
题目: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either cl ...
- php 位运算 3<<2;
- laravel5.6之发送邮件
https://blog.csdn.net/weixin_41767780/article/details/80918143 在注册的时候可以增加一个邮箱激活的功能,为防止自己忘记,记录一下实现邮箱激 ...
- Vue点击事件失效
在做项目时给button添加click事件,发现没反应,但另外写了一个button添加同样的事件,却能触发.原因是使用了better-scroll,默认它会阻止touch事件.所以在配置中需要加上cl ...
- pytorch中查看gpu信息
其他:windows使用nvidia-smi查看gpu信息 为什么将数据转移至GPU的方法叫做.cuda而不是.gpu,就像将数据转移至CPU调用的方法是.cpu?这是因为GPU的编程接口采用CUDA ...
- angularJS $q
1.$q $q是Angular的一种内置服务,它可以使你异步地执行函数,并且当函数执行完成时它允许你使用函数的返回值(或异常). 2.defer defer的字面意思是延迟, $q.defer() ...
- [Err] 1062 - Duplicate entry '0' for key 'PRIMARY'
问题描述: sql语句执行的时候,插入语句无法正确执行 问题原因: 主键 重复 出现 0 解决方案: 将主键设置为自增 然而,设置自增后还是可能会出现下面的问题 #1062 – Duplicate e ...
- RBF神经网络的matlab简单实现
径向基神经网络 1.径向基函数 (Radial Basis Function,RBF) 神经网络是一种性能良好的前向网络,具有最佳逼近.训练简洁.学习收敛速度快以及克服局部最小值问题的性能,目前已经证 ...
- vue样式加scoped后不能覆盖组件的原有样式解决方法
<style scoped> </style> 为了vue页面样式模块化,不对全局造成污染,建议每个页面的style标签加上scoped,表示他的样式只属于当前的页面,父组件的 ...