千家信息网

ceph-ansible 中怎么快速部署 ceph

发表于:2025-02-10 作者:千家信息网编辑
千家信息网最后更新 2025年02月10日,本篇文章给大家分享的是有关ceph-ansible 中怎么快速部署 ceph,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1 准备实验环
千家信息网最后更新 2025年02月10日ceph-ansible 中怎么快速部署 ceph

本篇文章给大家分享的是有关ceph-ansible 中怎么快速部署 ceph,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1 准备实验环境

1.1 基础环境

  • 操作系统:CentOS 7.6, 需要 4 个节点(1 monitor + 3 osd node)或者 6 个节点(3 monitor +3 osd node), 当然 monitor 也可以部署在 osd node 上。

  • ceph版本:Luminous(12.2.11),使用 centos 官方 storage repo 里的版本

  • ansible 版本: 2.6.16 (可使用 virtualenv 和 pip 安装, 版本必须与 ceph-ansible 要求匹配)

  • ceph-ansible 版本: 3.2.15 (直接在 github 上 下载相应的版本)

  • 集群网络(cluster network): 192.168.122.0/24, 用于集群内数据同步及存储管理

  • 服务网络(public network) : 10.0.122.0/24, 用于客户端读写数据

1.2 准备节点

准备 7 ceph个集群节点,3个 monitor 节点,3 个 osd 节点,1 个 admin 节点,每个节点双网卡,ip配置如下

节点         cluster ip       public ip--------------------------------------mon-11                        192.168.122.11  mon-12                        192.168.122.12mon-13                        192.168.122.13osd-21      10.0.122.21       192.168.122.21osd-22      10.0.122.22       192.168.122.22osd-23      10.0.122.23       192.168.122.23admin-node                    192.168.122.100--------------------------------------

monitor 节点是不需要 cluster ip 的,它只需要 public network。因为我们要在线软件源,因此 public network 一定要能访问公网。

admin-node 做部署节点,安装 ansible 和 ceph-ansible

在 admin-node 节点上配置 /etc/hosts

192.168.122.11   mon-11192.168.122.12   mon-12192.168.122.13   mon-13192.168.122.21   osd-21192.168.122.22   osd-22192.168.122.23   osd-23

在 admin-node 配置与 6 个ceph节点的 ssh 免密登录,例如:

# ssh-keygen# ssh-copy-id root@mon-11

禁用 firewalld

# systemctl stop firewalld# systemctl disable firewalld

禁用 selinux,重使其生效

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# reboot

1.3 准备磁盘

以下是一个 osd 节点上的磁盘列表, 其中 vda 是操作系统所在的盘。

sda               8:0    0  100G  0 disk sdb               8:16   0  100G  0 disk sdc               8:32   0  100G  0 disk sdd               8:48   0   20G  0 disk vda             252:0    0   40G  0 disk ├─vda1          252:1    0    1G  0 part /boot└─vda2          252:2    0   39G  0 part   ├─centos-root 253:0    0   35G  0 lvm  /  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]

ceph luminous 已经支持 bluestore 作为后端,但是我们这次还是使用 filestore。 其中 sda、sdb、sdc 作为 osd 盘,每块盘 100G, sdd 做 journal 盘,大小 20G

1.4 获取软件包

所有的集群节点上上,安装如下软件:

# yum install centos-release-luminous-*   epel-release -y

安装完成以后,刷新源索引

# yum repolist

1.5 获取ansible 和 ceph-ansible

在 admin-node 上进行如下操作

安装 anible

$ yum install python-pip -y$ pip install ansible==2.6.16

获取 ceph-ansible 并解压

$ wget https://codeload.github.com/ceph/ceph-ansible/zip/v3.2.15

创建 ansible_hosts 文件, 复制到 ceph-ansible 文件夹

[ceph:children]monsosds[mons]mon-11mon-12mon-13[osds]osd-21osd-22osd-23

2 配置 ceph-ansible

打开解压后的ceph-ansible

# cp   site.yml.sample   site.yml

编辑 site.yml 文件, 更改开头的目标节点组,只保留 mons 和 osds

---# Defines deployment design and assigns role to server groups- hosts:  - mons  - osds#  - mdss#  - agents#  - mgrs#  - rgws#  - nfss#  - restapis#  - rbdmirrors#  - clients#  - iscsigws#  - iscsi-gws # for backward compatibility only!

打开 group_vars 目录, 拷贝模板文件

# cd group_vars# cp all.yml.sample all.yml# cp mons.yml.sample mons.yml# cp osds.yml.sample osds.yml

编辑 all.yml 文件, 我只做了如下更改,也许不用改这么多。另外 monitor 节点必须用 public ip,因为要面向客户端提供服务。

# Inventory host group variablesmon_group_name: monsosd_group_name: osds############# PACKAGES #############centos_package_dependencies:  - python-pycurl  - epel-release  - python-setuptools  - libselinux-pythonupgrade_ceph_packages: False#ceph_use_distro_backports: false # DEBIAN ONLY############ INSTALL #############ceph_repository_type: dummyceph_origin: distro## Monitor optionsmonitor_interface: eth2#monitor_address: 0.0.0.0monitor_address_block: 10.0.122.0/24## OSD optionsjournal_size: 3072 # OSD journal size in MB#block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'.public_network: 10.0.122.0/24cluster_network: 192.168.122.0/24#osd_mkfs_type: xfs#osd_mkfs_options_xfs: -f -i size=2048#osd_mount_options_xfs: noatime,largeio,inode64,swallocosd_objectstore: filestore

编辑 osds.yml 文件,里面有几种情景,我们用的是情景二 non-collocated,也就是日志和数据存放在不同的磁盘上。

---# Variables here are applicable to all host groups NOT rolesosd_scenario: non-collocateddevices:    - /dev/sda    - /dev/sdb    - /dev/sdcdedicated_devices:    - /dev/sdd    - /dev/sdd    - /dev/sdd# 这样配置的后果就是,/dev/sdd 上会新生成三个分区 /dev/sdd1、/dev/sdd2、/dev/sdd3,# 分别作为 /dev/sda, /dev/sdb, /dev/sdc 的journal 分区。

因为我们只是简单的实验集群,所以不需要对 mons.yml 做特殊配置,保持默认就可以了。

3 开始部署

退回到 ceph-ansible 目录,开始部署,等待部署完成。

# ansible-playbook site.yml -u root -i ./ansible_hosts

部署完成后,登录一个 mon节点, 查看集群状态和 osd daemon 分布

# ceph -w # ceph osd tree

以上就是ceph-ansible 中怎么快速部署 ceph,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0