linux怎么查看本机内存大小
280
2022-09-14
ceph-ansible5.0部署文档
ceph-ansible 5.0
优势:需要部署的节点数量越多,ceph-ansible的效率就越高
版本信息:
ceph-ansible:5.0.5 ceph 15.2.11
os:centos 7.9.2009
kernel version : 5.4.116-1.el7.elrepo
集群拓扑
ceph-admin | 192.168.200.120 | 192.168.100.120 |
ceph-node01 | 192.168.200.121 | 192.168.100.121 |
ceph-node02 | 192.168.200.122 | 192.168.100.122 |
ceph-node03 | 192.168.200.123 | 192.168.100.123 |
ceph-node04 lb01 | 192.168.200.124 | 192.168.100.124 |
ceph-node05 lb02 | 192.168.200.125 | 192.168.100.125 |
ceph-admin | 192.168.200.126 | 192.168.100.126 |
Prerequisites
本文档适用于创建具有mon、mgr、mds、osds四类进程的Ceph集群,如需启用nfs-ganesha、rgw、rbd-mirror等其他功能的Ceph集群,请参阅ceph-ansible github仓库中的示例文件说明,或在集群创建完成之后,手动进行配置。ceph-ansible项目的版本号与Ceph版本有依赖关系,ceph-ansible 4.0用于创建Ceph N版本的集群,ceph-ansible 5.0用于创建Ceph O版的集群,以此类推。部分Ceph功能依赖于新版内核的特性,在部署之前请将内核升级至最新的Long Term版本,升级内核请参阅另外一篇文档在ceph-admin节点上,配置好对其他所有节点的免密登录,所有节点关闭防火墙和SELinux所有节点配置好EPEL源
在ceph-admin节点上安装ansible,admin节点可以是任意能连接到目标集群的节点,并且按照ansible的要求,需要配置免密登录至目标集群的所有节点。
yum install ansible python-netaddr unzip PyYAMLpython36-six.noarch python36-PyYAML.x86_64 -y# python-netaddr是一个用来处理IP地址的Python模块yum update -y# 在7.7上 ,ceph-volume命令会出错
在所有节点上安装如下Python模块
yum install python3-pip -ypip3 install pecanpip3 install werkzeugpip3 install pyyaml# 在所有mgr节点上安装必须的python 3 模块
在ceph-admin节点上获取ceph-ansible项目文件
wget 可能需要科学上网,或者使用迅雷下载unzip ceph-ansible-5.0.5.zip -d /usr/local/cd
group_vars目录
Ceph集群的配置将通过使用ceph-ansible提供的ansible变量来设置。所有这些选项及其默认值都定义在ceph-ansible项目根部的group_vars/目录中。在group_vars/目录里面有很多Ansible配置文件的样本,通过文件名与每种Ceph守护进程相关。例如,osds.yml.sample包含了OSD守护进程的所有默认配置。all.yml.sample文件是一个特殊的group_vars文件,适用于集群中的所有主机。
all.yml文件中定义的配置,作用于集群中的所有进程类型上,在安装过程中,所有进程的安装步骤都可以使用
其他类似于osd.yml的文件,只适用于特定的进程组,只作用于特定进程的安装过程;例如osd.yml只适用于与osd相关的配置
重点来看all.yml文件中的配置
all.yml文件
cd至group_vars目录
cd
在group_vars目录下创建all.yml文件,内容如下
mon_group_name: mons# 在Inventory文件(ansible的hosts文件),要安装mon组件的主机是在哪个资产组内,上面这个例子指的就是在[mons]组内# 以下同理osd_group_name: osds# rgw_group_name: rgwsmds_group_name: mdss# nfs_group_name: nfss# rbdmirror_group_name: rbdmirrorsclient_group_name: clients# iscsi_gw_group_name: iscsigwsmgr_group_name: mgrs# rgwloadbalancer_group_name: rgwloadbalancersconfigure_firewall: false# 是否自动配置防火墙,如果设置为true,ceph-ansible会自动去配置集群内组件相互通信所需的防火墙规则# 这一步建议手动做ceph_origin: repository# 自动配置源# 设置为distro表示不自动配置源# 设置为local表示从本地计算机——即ceph-admin节点去复制ceph二进制文件分发至其他节点ceph_repository: community# 表示使用ceph社区的版本,ceph-ansible可以安装rhcs等厂家发行的版本# 此处只安装社区的版本,如果指定了此参数,需要设置ceph_stable_release和cepph_mirrorceph_mirror: octopus# yum源如果提示404,编辑下面这个文件定制yum源baseurl的路径# 编辑此文件/usr/local/ceph-ansible-5.0.5/roles/ceph-common/tasks/installs/redhat_community_repository.yml# 删除ceph_stable_release这个变量,将自定义路径输入,效果具体如下:# baseurl: "{{ ceph_mirror }}/rpm-15.2.9/el{{ ansible_distribution_major_version }}/noarch"# # 要部署哪个ceph版本ceph_version_num: 15ceph_stable_repo: "{{ ceph_mirror }}/rpm-{{ ceph_stable_release }}"# 两个{{}}表示使用ansible变量ceph_stable_key: ipv4monitor_interface: ens33public_network: 192.168.200.0/24cluster_network: 192.168.100.0/24monitor_address_block: 192.168.200.0/24cephx: truecopy_admin_key: true# 将'copy_admin_key'设置为'true'会将管理员密钥复制到[clients]主机中的/etc/ceph/目录下# ceph_iscsi_config_dev: true # nfs_ganesha_stable: true # nfs # nfs_file_gw: true# 是否启用通过NFS的形式来访问CephFS的功能,将此项设置为true依赖于mds角色,即必须启用mds安装# nfs_obj_gw: true# 是否启用通过NFS的形式来访问RGW的功能,将此项设置为true依赖于rgws角色,即必须启用rgw安装# 自定义的ceph配置选项可以写在这里# ceph_conf_overrides:# global:# osd_pool_default_size: 3# mon:# mon_allow_pool_delete: true# osd相关的配置osd_objectstore: bluestore# filestore bluestore SeaStore# SeaStore面向全NVMe场景设计# 对象存储引擎,如有必要可以将其更改为filestoreosd_auto_discovery: true# 是否启用OSD设备自动发现,如果这个选项设置为true,将不再需要填写osds.yml中的device设置# 因为ceph-ansible将会使用ansible_devices发现的所有可用的块设备# 不必担心会将系统盘也给做成OSD,ceph-ansible将检测所有块设备,已有分区表的设备将不会被使用# 与之相关的还有另外一个配置项osd_auto_discovery_exclude,用于设置一个规则来排除指定的设备# 例如rbd*表示所有rbd开头的设备将不会被自动创建为osddashboard_enabled: false# 这一步如果不设置为false,默认启动的grafana容器将会到github下载必须的json文件,需科学上网# # rgw相关的配置# radosgw_frontend_type: beast# 使用什么实现来作为RGW的前端,beast表示使用Boost.Beast库来作为前端web服务器,以及使用# Boost.Asio库来进行异步网络i/o,此实现于Mimic版本中引入# 当前共有两个实现,beast和civetweb# 端口默认是8080# radosgw_interface: ens33# radosgw_address_block: 192.168.200.0/24# # radosgw_civetweb_port: 8080# 设置civetweb的端口# cephx,是否启用cephx认证功能# dashboard# dashboard_enabled: false# dashboard_protocol: dashboard_admin_user_ro: false# dashboard_port: 8443# dashboard_admin_user: admin# dashboard_admin_password: 123456# grafana_admin_user: admin# grafana_admin_password: 123456# dashboard_grafana_api_no_ssl_verify: True# dashboard_rgw_api_user_id: ceph-dashboard# dashboard_rgw_api_no_ssl_verify: True# prometheus和grafana# docker_pull_timeout: 600s# grafana_datasource: Dashboard# grafana_dashboards_path: "/etc/grafana/dashboards/ceph-dashboard"# grafana_dashboard_version: nautilus# grafana_dashboard_files:# - ceph-cluster.json# - cephfs-overview.json# - host-details.json# - hosts-overview.json# - osd-device-details.json# - osds-overview.json# - pool-detail.json# - pool-overview.json# - radosgw-detail.json# - radosgw-overview.json# - rbd-overview.json# grafana_plugins:# - vonage-status-panel# - grafana-piechart-panel# node_exporter_container_image: "prom/node-exporter:v0.17.0"# node_exporter_port: 9100# grafana_container_image: "grafana/grafana:5.4.3"# grafana_allow_embedding: True# grafana_port: 3000# prometheus_container_image: "prom/prometheus:v2.7.2"# prometheus_data_dir: /var/lib/prometheus# prometheus_conf_dir: /etc/prometheus# prometheus_port: 9092# alertmanager_container_image: "prom/alertmanager:v0.16.2"# alertmanager_container_memory: 4# alertmanager_data_dir: /var/lib/alertmanager# alertmanager_conf_dir: /etc/alertmanager# alertmanager_port: 9093
复制mon、osd、mgr、mds的yml文件
# 在group_vars目录下执行for i in {mons,osds,mgrs,mdss};do cp $i.yml.sample $i.yml;done
在group_vars的上一级目录,即ceph-ansible项目的根目录下,新建一个hosts文件,作为ansible的资产清单使用
[mons]192.168.200.121192.168.200.122192.168.200.123[mgrs]192.168.200.121192.168.200.122192.168.200.123[mdss]192.168.200.121192.168.200.122192.168.200.123[osds]192.168.200.121192.168.200.122192.168.200.123192.168.200.124192.168.200.125[clients]192.168.200.126
如果不需要单独指明db和wal设备,那么现在已经开始部署了,如果需要,请参照下文的参考。
在ceph-ansible的根目录下,执行如下命令,开始部署过程
cp
单独指明DB和WAL设备
指明block-db设备
编辑group_vars/osds.yml,添加
dedicated_devices:- /dev/sdg# 会自动平均分配这个设备上的所有空间给host上的osd
编辑group_vars/all.yml,添加
osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*|sdg"# 如果有多个设备,在此处全部写上,表示在做osd设备自动发现的时候,将这些设备排除在外。
指明block-wal设备
bluestore_wal_devices:-
编辑group_vars/all.yml,添加
osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*|nvme0n1"# 如果有多个设备,在此处全部写上,表示在做osd设备自动发现的时候,将这些设备排除在外。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~