使用cephadm安装ceph octopus

简介: 使用cephadm安装ceph octopus

前提条件


Cephadm使用容器和systemd安装和管理Ceph集群,并与CLI和仪表板GUI紧密集成。


  • cephadm仅支持octopus  v15.2.0和更高版本。
  • cephadm与新的业务流程API完全集成,并完全支持新的CLI和仪表板功能来管理集群部署。
  • cephadm需要容器支持(podman或docker)和Python 3。
  • 时间同步


基础配置


这里我使用的centos8来安装的ceph,已经内置了python3,不再单独安装,centos7需要单独安装python3


配置hosts解析


cat >> /etc/hosts <<EOF
192.168.2.16 node1
192.168.2.19 node2
192.168.2.18 node3
EOF


关闭防火墙和selinux


systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config


分别在三个节点设置主机名


hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3


配置主机时间同步


systemctl restart chronyd.service && systemctl enable chronyd.service


安装docker-ce


dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
dnf -y install docker-ce --nobest
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://s7owcmp8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker


安装cephadm


cephadm命令可以


  1. 引导新集群
  2. 使用有效的Ceph CLI启动容器化的Shell
  3. 帮助调试容器化的Ceph守护进程。


以下操作只在一台节点执行就可以


使用curl获取独立脚本的最新版本。网络不好的话可直接去GitHub复制


curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
chmod +x cephadm


安装cephadmn


./cephadm add-repo --release octopus
./cephadm install


引导新群集


要引导群集,需要先创建一个目录:/etc/ceph


mkdir -p /etc/ceph


然后运行该命令:ceph bootstrap


cephadm bootstrap --mon-ip 192.168.2.16


此命令将会进行以下操作:


  • 为本地主机上的新群集创建monitor和manager守护程序。
  • 为 Ceph 群集生成新的 SSH 密钥,并将其添加到root用户的文件/root/.ssh/authorized_keys
  • 将与新群集通信所需的最小配置文件保存到 /etc/ceph/ceph.conf
  • client.admin管理(特权!)密钥的副本写入/etc/ceph/ceph.client.admin.keyring
  • 将公钥的副本写入/etc/ceph/ceph.pub


安装完成后会有一个dashboard界面


640.png

640.png


执行完成后我们可以查看ceph.conf已经写入了


640.png


启用 CEPH CLI


cephadm shell命令在安装了所有Ceph包的容器中启动bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,则会将它们传递到容器环境中,以便shell完全正常工作。


cephadm shell


640.png


可以在节点上安装包含所有 ceph 命令的包,包括 、(用于安装 CephFS 文件系统)等


cephadm add-repo --release octopus
cephadm install ceph-common


安装过程很慢,可以手动将源改为阿里的


640.png


添加主机到集群


将公钥添加到新主机


ssh-copy-id -f -i /etc/ceph/ceph.pub node2
ssh-copy-id -f -i /etc/ceph/ceph.pub node3


告诉Ceph,新节点是集群的一部分


[root@localhost ~]# ceph orch host add node2
Added host 'node2'
[root@localhost ~]# ceph orch host add node3
Added host 'node3'


添加主机会自动扩展mon和mgr节点


640.png


部署其他监视器(可选)


典型的 Ceph 群集具有三个或五个分布在不同主机的mon守护程序。如果群集中有五个或更多节点,建议部署五个mon。


当Ceph知道mon应该使用什么IP子网时,它可以随着群集的增长(或收缩)自动部署和缩放mon。默认情况下,Ceph假定其他mon使用与第一个mon的IP相同的子网。


在单个子网的情况下,如果向集群中添加主机,默认最多只会添加5个mon 如果有特定的IP子网给mon使用,可以使用CIDR格式配置该子网:


ceph config set mon public_network 10.1.2.0/24


cephadm只会在配置了特定子网IP的主机上部署mon守护程序 如果要调整特定子网mon的默认数量,可以执行以下命令:


ceph orch apply mon *<number-of-monitors>*


如果要在一组特定的主机上部署mon,可以执行以下命令:


ceph orch apply mon *<host1,host2,host3,...>*


如果要查看当前主机和标签,可以执行以下命令:


[root@node1 ~]# ceph orch host ls
HOST   ADDR   LABELS  STATUS  
node1  node1                  
node2  node2                  
node3  node3


如果要禁用自动mon部署,执行以下命令:


ceph orch apply mon --unmanaged


要在不同网络中添加mon执行以下命令:


ceph orch apply mon --unmanaged
ceph orch daemon add mon newhost1:10.1.2.123
ceph orch daemon add mon newhost2:10.1.2.0/24


如果要添加mon到多个主机,也可以用以下命令:


ceph orch apply mon "host1,host2,host3"


部署OSD


可以用以下命令显示集群中的存储设备清单


ceph orch device ls


640.png


如果满足以下所有_条件_,则存储设备被视为可用:


  • 设备必须没有分区。
  • 设备不得具有任何 LVM 状态。
  • 不得安装设备。
  • 设备不能包含文件系统。
  • 设备不得包含 Ceph BlueStore OSD。
  • 设备必须大于 5 GB。


Ceph 拒绝在不可用的设备上预配 OSD。为保证能成功添加osd,我刚才在每个node上新加了一块磁盘 创建新 OSD 的方法有几种方法:


在未使用的设备上自动创建osd


[root@node1 ~]# ceph orch apply osd --all-available-devices
Scheduled osd.all-available-devices update...


可以看到已经在三块磁盘上创建了osd


640.png


从特定主机上的特定设备创建 OSD


ceph orch daemon add osd host1:/dev/sdb


部署MDS


使用 CephFS 文件系统需要一个或多个 MDS 守护程序。如果使用新的ceph fs卷接口来创建新文件系统,则会自动创建这些文件 部署元数据服务器:


ceph orch apply mds *<fs-name>* --placement="*<num-daemons>* [*<host1>* ...]"


CephFS 需要两个 Pools,cephfs-data 和 cephfs-metadata,分别存储文件数据和文件元数据


[root@node1 ~]# ceph osd pool create cephfs_data 64 64
[root@node1 ~]# ceph osd pool create cephfs_metadata 64 64
创建一个 CephFS, 名字为 cephfs
[root@node1 ~]# ceph fs new cephfs cephfs_metadata cephfs_data
[root@node1 ~]# ceph orch apply mds cephfs --placement="3 node1 node2 node3"
Scheduled mds.cephfs update...


640.png


验证至少有一个MDS已经进入active状态,默认情况下,ceph只支持一个活跃的MDS,其他的作为备用MDS


ceph fs status cephfs


640.png


部署RGW


Cephadm将radosgw部署为管理特定领域和区域的守护程序的集合,RGW是Ceph对象存储网关服务RADOS Gateway的简称,是一套基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。


b1c6ecb77d25e9eb9600b50cb4103352.png


使用cephadm时,radosgw守护程序是通过mon配置数据库而不是通过ceph.conf或命令行配置的。如果该配置尚未就绪,则radosgw守护进程将使用默认设置启动(默认绑定到端口80)。要在node1、node2和node3上部署3个服务于myorg领域和us-east-1区域的rgw守护进程,在部署rgw守护进程之前,如果它们不存在,则自动创建提供的域和区域:


ceph orch apply rgw myorg cn-east-1 --placement="3 node1 node2 node3"


或者可以使用radosgw-admin命令手动创建区域、区域组和区域:


radosgw-admin realm create --rgw-realm=myorg --default
radosgw-admin zonegroup create --rgw-zonegroup=default --master --default
radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=cn-east-1 --master --default
radosgw-admin period update --rgw-realm=myorg --c


可以看到RGW已经创建完成


470860dfa24467cd56dc3e939ffee647.png


42f4f9caf6abcadff23a403349afee67.png


并且cephadm会自动安装Prometheus和grafana等组件,grafana默认用户密码为admin/admin,并且已经导入了Prometheus监控ceph的仪表盘


d5060860fe1aebe29f36c5755887291f.png


下篇文章将会介绍使用zabbix监控ceph分布式存储


相关文章
|
存储 算法 关系型数据库
【CEPH-初识篇】ceph详细介绍、搭建集群及使用,带你认识新大陆
你好,我是无名小歌。 今天给大家分享一个分布式存储系统ceph。 什么是ceph? Ceph在一个统一的系统中独特地提供对象、块和文件存储。Ceph 高度可靠、易于管理且免费。Ceph 的强大功能可以改变您公司的 IT 基础架构和管理大量数据的能力。Ceph 提供了非凡的可扩展性——数以千计的客户端访问 PB 到 EB 的数据。ceph存储集群相互通信以动态复制和重新分配数据。
1130 0
【CEPH-初识篇】ceph详细介绍、搭建集群及使用,带你认识新大陆
|
4月前
|
存储 关系型数据库 API
|
6月前
|
存储 缓存 运维
Ceph 是什么
Ceph 是什么
88 0
|
网络协议 应用服务中间件 API
CentOS7.5 手动部署Ceph RGW
目    录 1     设备列表... 1 2     Ceph RGW 部署... 1 2.1     使用civetweb配置... 2 2.2     使用nginx配置... 5   本文主要记录一下手动部署rgw的过程,环境是使用的之前手动部署的ceph环境,之前的环境部署可以参考以下链接https://yq.aliyun.com/articles/604372   Ceph RGW(即RADOS Gateway)是Ceph对象存储网关服务,是基于LIBRADOS接口封装实现的FastCGI服务,对外提供存储和管理对象数据的Restful API。
7651 0
|
存储 算法 Ubuntu
Ceph 心得分享
##Ceph ceph :统一开、分布式的云存储 统一指的是 ceph 在业内同 openstack 、swift 一样可以当作 块存储、文件存储、对象存储来使用。并自带了分布式的特性,保证了生产业务的高可用。其主要核心高频的使用点就是 Ceph 的块存储以及对象存储,我们逐一介绍。 ###块存储特性 * 通过 ceph clients 使用块设备 * 精简配置 * 动态扩容
521 0
Ceph 心得分享
|
存储 测试技术 网络安全
ceph安装配置
简介 ceph是一个开源分布式存储系统,支持PB级别的存储,支持对象存储,块存储和文件存储,高性能,高可用,可扩展。 部署网络建议架构图 部署 部署架构图,本次实验部署jewel版本 实验环境的Vagrantfile lab1节点既作admin节点又作node节点,lab2,.
2592 0
|
开发工具 块存储
Ceph-ansible 部署Ceph
Ceph-ansible 部署Ceph   1、安装notario yum install -y python-pip pip install notario 这个包用yum装的版本是不符合要求的,需要使用pip进行安装   2、下载ceph-ansible的代码到本地 git clone https://github.
5833 0
|
Ubuntu 开发工具 块存储
|
Ubuntu 开发工具 块存储