在Ubuntu20.04下基于ceph-deploy部署ceph 16.2.10

Ubuntu22.04搭建ceph 集群 Ceph是一个开源的、提供软件定义的、统一的分布式存储系统,设计初衷是提供较好的性能、 可靠性和可扩展性。(open-source,distributed,reliable,scalable,unified) “统一的”意味着一套存储系统同时提供块存储、文件存储、对象存储三种功能。 “分布式”意味着Ceph实现了无中心结构和没有理论上限的系统规模可扩展性 阅读详情

一、ceph介绍

Ceph 是一个开源的分布式存储系统, 同时支持对象存储、 块设备、 文件系统。ceph 支持 EB(1EB=1,000,000,000GB)级别的数据存储, ceph 把每一个待管理的数据流(文件等数据)切分为一到多个固定大小(默认 4 兆)的对象数据, 并以其为原子单元(原子是构成元素的最小单元)完成数据的读写。ceph 的底层存储服务是由多个存储主机(host)组成的存储集群, 该集群也被称之为RADOS(reliable automatic distributed object store)存储集群, 即可靠的、 自动化的、 分布式的对象存储系统。 ​ librados 是 RADOS 存储集群的 API, 支持 C/C++/JAVA/python/ruby/php/go等编程语言客户端。

ceph角色定义

img

LIBRADOS、 RADOSGW、 RBD 和 Ceph FS 统称为 Ceph 客户端接口。 RADOSGW、RBD、 Ceph FS 是基于 LIBRADOS 提供的多编程语言接口开发的。 一个 ceph 集群的组成部分:

  • 若干的 Ceph OSD(对象存储守护程序)

  • 至少需要一个 Ceph Monitors 监视器(1,3,5,7...)

  • 两个或以上的 Ceph 管理器 managers, 运行 Ceph 文件系统客户端时

  • 还需要高可用的 Ceph Metadata Server(文件系统元数据服务器)。

  • RADOS cluster:由多台 host 存储服务器组成的 ceph 集群

  • OSD(Object Storage Daemon): 每台存储服务器的磁盘组成的存储空间

  • Mon(Monitor): ceph 的监视器,维护 OSD 和 PG 的集群状态, 一个 ceph 集群至少要有一个mon, 可以是一三五七等等这样的奇数个。

  • Mgr(Manager): 负责跟踪运行时指标和 Ceph 集群的当前状态, 包括存储利用率, 当前性能指标和系统负载等。

Monitor(ceph-mon) ceph 监视器 在一个主机上运行的一个守护进程,用于维护集群状态映射(maintains maps of thecluster state),比如 ceph 集群中有多少存储池、每个存储池有多少PG以及存储池和 PG的映射关系等,monitor map, manager map, the OSD map, the MDS map, and theCRUSH map,这些映射是 Ceph 守护程序相互协调所需的关键群集状态, 此外监视器还负责管理守护程序和客户端之间的身份验证(认证使用 cephX 协议)。 通常至少需要三个监视器才能实现冗余和高可用性。

Managers(ceph-mgr)的功能: 在一个主机上运行的一个守护进程,Ceph Manager守护程序(ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。CephManager守护程序还托管基于python的模块来管理和公开Ceph集群信息,包括基于Web的Ceph仪表板和REST API。高可用性通常至少需要两个管理器。

Ceph OSDs(对象存储守护程序 ceph-osd): 提供存储数据,操作系统上的一个磁盘就是一个OSD守护程序,OSD用于处理ceph集群数据复制、恢复、重新平衡,并通过检查其他Ceph OSD守护程序的心跳来向Ceph监视器和管理器提供一些监视信息。通常至少需要3个Ceph OSD才能实现冗余和高可用性。

MDS(ceph 元数据服务器 ceph-mds): 代表ceph文件系统(NFS/CIFS)存储元数据,(即Ceph块设备和Ceph对象存储不使用MDS)

Ceph 的管理节点: 1.ceph 的常用管理接口是一组命令行工具程序,例如rados、ceph、rbd等命令,ceph 管理员可以从某个特定的ceph-mon节点执行管理操作 2.推荐使用部署专用的管理节点对ceph进行配置管理、升级与后期维护,方便后期权限管理,管理节点的权限只对管理人员开放,可以避免一些不必要的误操作的发生。

ceph 逻辑组织架构

  • Pool: 存储池、分区,存储池的大小取决于底层的存储空间。

  • PG(placement group):一个 pool 内部可以有多个PG存在, pool和PG都是抽象的逻辑概念,一个pool中有多少个PG可以通过公式计算。

  • OSD(Object Storage Daemon,对象存储设备):每一块磁盘都是一个 osd, 一个主机由一个或多个 osd 组成.

  • ceph 集群部署好之后,要先创建存储池才能向ceph写入数据,文件在向ceph保存之前要先进行一致性hash计算,计算后会把文件保存在某个对应的PG的,此文件一定属于某个pool的一个PG,在通过PG保存在OSD上。数据对象在写到主 OSD 之后再同步对从OSD以实现数据的高可用。

img

ceph存储适用场景

复制代码

块存储:
块存储在使用的时候需要格式化为指定的文件系统, 然后挂载使用, 其对操作系统的兼容性相对比较好(可以格式化为操作系统支持的文件系统), 挂载的时候通常是每个服务单独分配独立的块存储, 即各服务的块存储是独立且不共享使用的, 如 Redis 的 master 和 slave 的块存储是独立的、 zookeeper 各节点的快存储是独立的、 MySQL 的 master 和 slave 的块存储是独立的、 也可以用于私有云与公有云的虚拟机的系统盘和云盘等场景, 此类场景适合使用块存储。
​
cephFS:
对于需要在多个主机实现数据共享的场景,比如多个nginx读取由多个tomcat写入到存储的数据,可以使用cephFS。
​
对象存储:
而对于数据不会经常变化、删除和修改的场景,如短视频、APP下载等,可以使用对象存储

复制代码

ceph特性对比

img

二、环境准备

2.1、机器环境条件

复制代码

172.16.88.100/192.168.122.100 ceph-deploy.example.local ceph-deploy   2vcpu 4G 50G 
172.16.88.101/192.168.122.101 ceph-mon1.example.local   ceph-mon1    2vcpu 4G 50G 
172.16.88.102/192.168.122.102 ceph-mon2.example.local   ceph-mon2    2vcpu 4G 50G 
172.16.88.103/192.168.122.103 ceph-mon3.example.local   ceph-mon3    2vcpu 4G 50G 
172.16.88.111/192.168.122.111 ceph-mgr1.example.local   ceph-mgr1    2vcpu 4G 50G 
172.16.88.112/192.168.122.112 ceph-mgr2.example.local   ceph-mgr2    2vcpu 4G 50G 
172.16.88.121/192.168.122.121 ceph-node1.example.local  ceph-node1   2vcpu 4G 50G 3*100G 
172.16.88.122/192.168.122.122 ceph-node2.example.local  ceph-node2   2vcpu 4G 50G 3*100G
172.16.88.123/192.168.122.123 ceph-node3.example.local  ceph-node3   2vcpu 4G 50G 3*100G
​
ceph管理网(ceph公共网):172.16.88.0/24
ceph集群网:           192.168.122.0/24

复制代码

2.2、安装ceph-deploy-2.1.0

[root@ceph-deploy ~]# apt-get update

[root@ceph-deploy ~]# apt install python3-pip sshpass ansible -y

[root@ceph-deploy ~]# pip3 install git+GitHub - ceph/ceph-deploy: Deploy Ceph with minimal infrastructure, using just SSH access

复制代码

Collecting git+https://github.com/ceph/ceph-deploy.git
  Cloning https://github.com/ceph/ceph-deploy.git to /tmp/pip-req-build-7dsj_uqq
  Running command git clone -q https://github.com/ceph/ceph-deploy.git /tmp/pip-req-build-7dsj_uqq
Collecting remoto>=1.1.4
  Downloading remoto-1.2.1.tar.gz (18 kB)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from ceph-deploy==2.1.0) (45.2.0)
Collecting execnet
  Downloading execnet-1.9.0-py2.py3-none-any.whl (39 kB)
Building wheels for collected packages: ceph-deploy, remoto
  Building wheel for ceph-deploy (setup.py) ... done
  Created wheel for ceph-deploy: filename=ceph_deploy-2.1.0-py3-none-any.whl size=120100 sha256=a40ee5c39c529b8a83aaf8ee45411e7686dd33c4aaa98201396be089ccf79b7a
  Stored in directory: /tmp/pip-ephem-wheel-cache-bx3ucslp/wheels/c5/71/d4/95e790facb9f85aebcd09443a8a1ea69cda23237cf1ca74de0
  Building wheel for remoto (setup.py) ... done
  Created wheel for remoto: filename=remoto-1.2.1-py3-none-any.whl size=20056 sha256=b8966bc6801e3bd0d9c80dd5c13049eadd1840136cadf7284222c26981875570
  Stored in directory: /root/.cache/pip/wheels/2e/40/7d/b2e089ff5311103963afb8d33695f0e0a88f4aace228ec5ae2
Successfully built ceph-deploy remoto
Installing collected packages: execnet, remoto, ceph-deploy
  Attempting uninstall: ceph-deploy
    Found existing installation: ceph-deploy 2.0.1
    Uninstalling ceph-deploy-2.0.1:
      Successfully uninstalled ceph-deploy-2.0.1
Successfully installed ceph-deploy-2.1.0 execnet-1.9.0 remoto-1.2.1

复制代码

如果网络卡,可以参考:https://www.cnblogs.com/valeb/p/16131422.html 克隆源码包单独升级安装

git clone https://github.com/ceph/ceph-deploy.git  
cd ceph-deploy
python3 setup.py install
2.3、添加ceph apt源

[root@ceph-deploy ~]# vi /etc/ansible/hosts [root@ceph-deploy ~]# cat /etc/ansible/hosts

复制代码

[vm]
172.16.88.100
172.16.88.101
172.16.88.102
172.16.88.103
172.16.88.111
172.16.88.112
172.16.88.121
172.16.88.122
172.16.88.123

复制代码

[root@ceph-deploy ~]# ansible 'vm' -m shell -a "apt install -y apt-transport-https ca-certificates curl software-properties-common" [root@ceph-deploy ~]# ansible 'vm' -m shell -a "wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | apt-key add -" [root@ceph-deploy ~]# ansible 'vm' -m shell -a "apt-add-repository 'deb Index of /ceph/debian-pacific/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror focal main'"

验证新增的源 [root@ceph-deploy ~]# cat /etc/apt/sources.list

复制代码

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
​
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific/ focal main
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific/ focal main

复制代码

2.4、创建cephadmin用户

[root@ceph-deploy ~]# ansible 'vm' -m shell -a "groupadd -r -g 2088 cephadmin && useradd -r -m -s /bin/bash -u 2088 -g 2088 cephadmin && echo cephadmin:123456 | chpasswd"

img

img

设置cephadmin 具备sudo权限

[root@ceph-deploy ~]# ansible 'vm' -m shell -a "echo 'cephadmin ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers"

验证cephadmin是否具备sudo 权限

复制代码

[root@ceph-deploy ~]# cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
​
# Host alias specification
​
# User alias specification
​
# Cmnd alias specification
​
# User privilege specification
root    ALL=(ALL:ALL) ALL
​
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
​
# Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) ALL
​
# See sudoers(5) for more information on "#include" directives:
​
#includedir /etc/sudoers.d
cephadmin ALL=(ALL) NOPASSWD: ALL
[root@ceph-deploy ~]# su cephadmin
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ sudo su -
[root@ceph-deploy ~]# 
[root@ceph-deploy ~]# 

复制代码

2.5、创建cephadmin密钥并推送

复制代码

[root@ceph-deploy ~]# su cephadmin
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cephadmin/.ssh/id_rsa): 
Created directory '/home/cephadmin/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/cephadmin/.ssh/id_rsa
Your public key has been saved in /home/cephadmin/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tsn/qkbMI0gZhyphFWodg7j5ixM/dpunmbf8o47rMYo cephadmin@ceph-deploy.example.local
The key's randomart image is:
+---[RSA 3072]----+
|. o=..           |
|ooo = .          |
|.* o +           |
|= . o            |
| o . . oS        |
|. . . .o=o       |
| + .o  o+.       |
|o.=..Oo o.       |
|Eo.+XB==oooo.    |
+----[SHA256]-----+
cephadmin@ceph-deploy:/root$ 
cephadmin@ceph-deploy:/root$ 

复制代码

cephadmin@ceph-deploy:~$ vi ssh-key-push.sh cephadmin@ceph-deploy:~$ cat ssh-key-push.sh

#!/bin/bash
for i in {100..123};
do
      sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no -i /home/cephadmin/.ssh/id_rsa -p 22 cephadmin@172.16.88.$i;
done

三、部署ceph集群

3.1、在管理节点初始化 mon 节点

cephadmin@ceph-deploy:~$ mkdir ceph-cluster cephadmin@ceph-deploy:~/ceph-cluster$ sudo apt-get install python2.7 -y cephadmin@ceph-deploy:~/ceph-cluster$ sudo ln -sv /usr/bin/python2.7 /usr/bin/python2

img

3.2、创建ceph-mon1节点

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy new --cluster-network 192.168.122.0/24 --public-network 172.16.88.0/24 ceph-mon1.example.local

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy new --cluster-network 192.168.122.0/24 --public-network 172.16.88.0/24 ceph-mon1.example.local
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  mon                           : ['ceph-mon1.example.local']
[ceph_deploy.cli][INFO  ]  ssh_copykey                   : True
[ceph_deploy.cli][INFO  ]  fsid                          : None
[ceph_deploy.cli][INFO  ]  cluster_network               : 192.168.122.0/24
[ceph_deploy.cli][INFO  ]  public_network                : 172.16.88.0/24
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f092bd5d6a0>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function new at 0x7f092bd488b0>
[ceph_deploy.new][DEBUG ] Creating new cluster named ceph
[ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds
[ceph-mon1.example.local][DEBUG ] connected to host: ceph-deploy.example.local 
[ceph-mon1.example.local][INFO  ] Running command: ssh -CT -o BatchMode=yes ceph-mon1.example.local true
[ceph-mon1.example.local][DEBUG ] connection detected need for sudo
[ceph-mon1.example.local][DEBUG ] connected to host: ceph-mon1.example.local 
[ceph-mon1.example.local][INFO  ] Running command: sudo /bin/ip link show
[ceph-mon1.example.local][INFO  ] Running command: sudo /bin/ip addr show
[ceph-mon1.example.local][DEBUG ] IP addresses found: ['172.16.88.101', '192.168.122.101']
[ceph_deploy.new][DEBUG ] Resolving host ceph-mon1.example.local
[ceph_deploy.new][DEBUG ] Monitor ceph-mon1 at 172.16.88.101
[ceph_deploy.new][DEBUG ] Monitor initial members are ['ceph-mon1']
[ceph_deploy.new][DEBUG ] Monitor addrs are ['172.16.88.101']
[ceph_deploy.new][DEBUG ] Creating a random mon key...
[ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...
[ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf...

复制代码

img

3.3、初始ceph-node节点

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy install --no-adjust-repos --nogpgcheck ceph-node1 ceph-node2 ceph-node3 此过程会在指定的ceph-node节点按照串行的方式逐个服务器安装ceph-base、ceph-common等组件包:

img

img

3.4、安装ceph-mon节点

复制代码

[root@ceph-mon1 ~]# apt-cache madison ceph-mon
  ceph-mon | 16.2.10-1focal | https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific focal/main amd64 Packages
  ceph-mon | 15.2.16-0ubuntu0.20.04.1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main amd64 Packages
  ceph-mon | 15.2.12-0ubuntu0.20.04.1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main amd64 Packages
  ceph-mon | 15.2.1-0ubuntu1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main amd64 Packages
[root@ceph-mon1 ~]# 

复制代码

[root@ceph-mon1 ~]# apt install ceph-mon -y [root@ceph-mon2 ~]# apt install ceph-mon -y [root@ceph-mon3 ~]# apt install ceph-mon -y ceph集群添加ceph-mon cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy mon create-initial

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy mon create-initial
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  subcommand                    : create-initial
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f85985253d0>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function mon at 0x7f8598507040>
[ceph_deploy.cli][INFO  ]  keyrings                      : None
[ceph_deploy.mon][DEBUG ] Deploying mon, cluster ceph hosts ceph-mon1
[ceph_deploy.mon][DEBUG ] detecting platform for host ceph-mon1 ...
[ceph-mon1][DEBUG ] connection detected need for sudo
[ceph-mon1][DEBUG ] connected to host: ceph-mon1 
[ceph_deploy.mon][INFO  ] distro info: ubuntu 20.04 focal
[ceph-mon1][DEBUG ] determining if provided host has same hostname in remote
[ceph-mon1][DEBUG ] deploying mon to ceph-mon1
[ceph-mon1][DEBUG ] remote hostname: ceph-mon1
[ceph-mon1][DEBUG ] checking for done path: /var/lib/ceph/mon/ceph-ceph-mon1/done
[ceph-mon1][DEBUG ] done path does not exist: /var/lib/ceph/mon/ceph-ceph-mon1/done
[ceph-mon1][INFO  ] creating keyring file: /var/lib/ceph/tmp/ceph-ceph-mon1.mon.keyring
[ceph-mon1][INFO  ] Running command: sudo ceph-mon --cluster ceph --mkfs -i ceph-mon1 --keyring /var/lib/ceph/tmp/ceph-ceph-mon1.mon.keyring --setuser 64045 --setgroup 64045
[ceph-mon1][INFO  ] unlinking keyring file /var/lib/ceph/tmp/ceph-ceph-mon1.mon.keyring
[ceph-mon1][INFO  ] Running command: sudo systemctl enable ceph.target
[ceph-mon1][INFO  ] Running command: sudo systemctl enable ceph-mon@ceph-mon1
[ceph-mon1][WARNIN] Created symlink /etc/systemd/system/ceph-mon.target.wants/ceph-mon@ceph-mon1.service → /lib/systemd/system/ceph-mon@.service.
[ceph-mon1][INFO  ] Running command: sudo systemctl start ceph-mon@ceph-mon1
[ceph-mon1][INFO  ] Running command: sudo ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-mon1.asok mon_status
[ceph-mon1][DEBUG ] ********************************************************************************
[ceph-mon1][DEBUG ] status for monitor: mon.ceph-mon1
[ceph-mon1][DEBUG ] {
[ceph-mon1][DEBUG ]   "election_epoch": 3,
[ceph-mon1][DEBUG ]   "extra_probe_peers": [],
[ceph-mon1][DEBUG ]   "feature_map": {
[ceph-mon1][DEBUG ]     "mon": [
[ceph-mon1][DEBUG ]       {
[ceph-mon1][DEBUG ]         "features": "0x3f01cfb9fffdffff",
[ceph-mon1][DEBUG ]         "num": 1,
[ceph-mon1][DEBUG ]         "release": "luminous"
[ceph-mon1][DEBUG ]       }
[ceph-mon1][DEBUG ]     ]
[ceph-mon1][DEBUG ]   },
[ceph-mon1][DEBUG ]   "features": {
[ceph-mon1][DEBUG ]     "quorum_con": "4540138297136906239",
[ceph-mon1][DEBUG ]     "quorum_mon": [
[ceph-mon1][DEBUG ]       "kraken",
[ceph-mon1][DEBUG ]       "luminous",
[ceph-mon1][DEBUG ]       "mimic",
[ceph-mon1][DEBUG ]       "osdmap-prune",
[ceph-mon1][DEBUG ]       "nautilus",
[ceph-mon1][DEBUG ]       "octopus",
[ceph-mon1][DEBUG ]       "pacific",
[ceph-mon1][DEBUG ]       "elector-pinging"
[ceph-mon1][DEBUG ]     ],
[ceph-mon1][DEBUG ]     "required_con": "2449958747317026820",
[ceph-mon1][DEBUG ]     "required_mon": [
[ceph-mon1][DEBUG ]       "kraken",
[ceph-mon1][DEBUG ]       "luminous",
[ceph-mon1][DEBUG ]       "mimic",
[ceph-mon1][DEBUG ]       "osdmap-prune",
[ceph-mon1][DEBUG ]       "nautilus",
[ceph-mon1][DEBUG ]       "octopus",
[ceph-mon1][DEBUG ]       "pacific",
[ceph-mon1][DEBUG ]       "elector-pinging"
[ceph-mon1][DEBUG ]     ]
[ceph-mon1][DEBUG ]   },
[ceph-mon1][DEBUG ]   "monmap": {
[ceph-mon1][DEBUG ]     "created": "2022-10-04T14:24:27.817567Z",
[ceph-mon1][DEBUG ]     "disallowed_leaders: ": "",
[ceph-mon1][DEBUG ]     "election_strategy": 1,
[ceph-mon1][DEBUG ]     "epoch": 1,
[ceph-mon1][DEBUG ]     "features": {
[ceph-mon1][DEBUG ]       "optional": [],
[ceph-mon1][DEBUG ]       "persistent": [
[ceph-mon1][DEBUG ]         "kraken",
[ceph-mon1][DEBUG ]         "luminous",
[ceph-mon1][DEBUG ]         "mimic",
[ceph-mon1][DEBUG ]         "osdmap-prune",
[ceph-mon1][DEBUG ]         "nautilus",
[ceph-mon1][DEBUG ]         "octopus",
[ceph-mon1][DEBUG ]         "pacific",
[ceph-mon1][DEBUG ]         "elector-pinging"
[ceph-mon1][DEBUG ]       ]
[ceph-mon1][DEBUG ]     },
[ceph-mon1][DEBUG ]     "fsid": "8dc32c41-121c-49df-9554-dfb7deb8c975",
[ceph-mon1][DEBUG ]     "min_mon_release": 16,
[ceph-mon1][DEBUG ]     "min_mon_release_name": "pacific",
[ceph-mon1][DEBUG ]     "modified": "2022-10-04T14:24:27.817567Z",
[ceph-mon1][DEBUG ]     "mons": [
[ceph-mon1][DEBUG ]       {
[ceph-mon1][DEBUG ]         "addr": "172.16.88.101:6789/0",
[ceph-mon1][DEBUG ]         "crush_location": "{}",
[ceph-mon1][DEBUG ]         "name": "ceph-mon1",
[ceph-mon1][DEBUG ]         "priority": 0,
[ceph-mon1][DEBUG ]         "public_addr": "172.16.88.101:6789/0",
[ceph-mon1][DEBUG ]         "public_addrs": {
[ceph-mon1][DEBUG ]           "addrvec": [
[ceph-mon1][DEBUG ]             {
[ceph-mon1][DEBUG ]               "addr": "172.16.88.101:3300",
[ceph-mon1][DEBUG ]               "nonce": 0,
[ceph-mon1][DEBUG ]               "type": "v2"
[ceph-mon1][DEBUG ]             },
[ceph-mon1][DEBUG ]             {
[ceph-mon1][DEBUG ]               "addr": "172.16.88.101:6789",
[ceph-mon1][DEBUG ]               "nonce": 0,
[ceph-mon1][DEBUG ]               "type": "v1"
[ceph-mon1][DEBUG ]             }
[ceph-mon1][DEBUG ]           ]
[ceph-mon1][DEBUG ]         },
[ceph-mon1][DEBUG ]         "rank": 0,
[ceph-mon1][DEBUG ]         "weight": 0
[ceph-mon1][DEBUG ]       }
[ceph-mon1][DEBUG ]     ],
[ceph-mon1][DEBUG ]     "stretch_mode": false,
[ceph-mon1][DEBUG ]     "tiebreaker_mon": ""
[ceph-mon1][DEBUG ]   },
[ceph-mon1][DEBUG ]   "name": "ceph-mon1",
[ceph-mon1][DEBUG ]   "outside_quorum": [],
[ceph-mon1][DEBUG ]   "quorum": [
[ceph-mon1][DEBUG ]     0
[ceph-mon1][DEBUG ]   ],
[ceph-mon1][DEBUG ]   "quorum_age": 2,
[ceph-mon1][DEBUG ]   "rank": 0,
[ceph-mon1][DEBUG ]   "state": "leader",
[ceph-mon1][DEBUG ]   "stretch_mode": false,
[ceph-mon1][DEBUG ]   "sync_provider": []
[ceph-mon1][DEBUG ] }
[ceph-mon1][DEBUG ] ********************************************************************************
[ceph-mon1][INFO  ] monitor: mon.ceph-mon1 is running
[ceph-mon1][INFO  ] Running command: sudo ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-mon1.asok mon_status
[ceph_deploy.mon][INFO  ] processing monitor mon.ceph-mon1
[ceph-mon1][DEBUG ] connection detected need for sudo
[ceph-mon1][DEBUG ] connected to host: ceph-mon1 
[ceph-mon1][INFO  ] Running command: sudo ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-mon1.asok mon_status
[ceph_deploy.mon][INFO  ] mon.ceph-mon1 monitor has reached quorum!
[ceph_deploy.mon][INFO  ] all initial monitors are running and have formed quorum
[ceph_deploy.mon][INFO  ] Running gatherkeys...
[ceph_deploy.gatherkeys][INFO  ] Storing keys in temp directory /tmp/tmpzsxa8eq8
[ceph-mon1][DEBUG ] connection detected need for sudo
[ceph-mon1][DEBUG ] connected to host: ceph-mon1 
[ceph-mon1][INFO  ] Running command: sudo /usr/bin/ceph --connect-timeout=25 --cluster=ceph --admin-daemon=/var/run/ceph/ceph-mon.ceph-mon1.asok mon_status
[ceph-mon1][INFO  ] Running command: sudo /usr/bin/ceph --connect-timeout=25 --cluster=ceph --name mon. --keyring=/var/lib/ceph/mon/ceph-ceph-mon1/keyring auth get client.admin
[ceph-mon1][INFO  ] Running command: sudo /usr/bin/ceph --connect-timeout=25 --cluster=ceph --name mon. --keyring=/var/lib/ceph/mon/ceph-ceph-mon1/keyring auth get client.bootstrap-mds
[ceph-mon1][INFO  ] Running command: sudo /usr/bin/ceph --connect-timeout=25 --cluster=ceph --name mon. --keyring=/var/lib/ceph/mon/ceph-ceph-mon1/keyring auth get client.bootstrap-mgr
[ceph-mon1][INFO  ] Running command: sudo /usr/bin/ceph --connect-timeout=25 --cluster=ceph --name mon. --keyring=/var/lib/ceph/mon/ceph-ceph-mon1/keyring auth get client.bootstrap-osd
[ceph-mon1][INFO  ] Running command: sudo /usr/bin/ceph --connect-timeout=25 --cluster=ceph --name mon. --keyring=/var/lib/ceph/mon/ceph-ceph-mon1/keyring auth get client.bootstrap-rgw
[ceph_deploy.gatherkeys][INFO  ] Storing ceph.client.admin.keyring
[ceph_deploy.gatherkeys][INFO  ] Storing ceph.bootstrap-mds.keyring
[ceph_deploy.gatherkeys][INFO  ] Storing ceph.bootstrap-mgr.keyring
[ceph_deploy.gatherkeys][INFO  ] keyring 'ceph.mon.keyring' already exists
[ceph_deploy.gatherkeys][INFO  ] Storing ceph.bootstrap-osd.keyring
[ceph_deploy.gatherkeys][INFO  ] Storing ceph.bootstrap-rgw.keyring
[ceph_deploy.gatherkeys][INFO  ] Destroy temp directory /tmp/tmpzsxa8eq8

复制代码

验证ceph-mon

img

验证在mon定节点已经自动安装并启动了ceph-mon服务,并且后期在ceph-deploy节点初始化目录会生成一些bootstrap、ceph、mds、mgr、osd、rgw 等服务的keyring认证文件,这些初始化文件拥有对 ceph 集群的最高权限, 所以一定要保存好

img

3.5、分发admin密钥到node节点

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy admin ceph-node1 ceph-node2 ceph-node3

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy admin ceph-node1 ceph-node2 ceph-node3
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  client                        : ['ceph-node1', 'ceph-node2', 'ceph-node3']
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7faf34cbd070>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function admin at 0x7faf352a7310>
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-node1
[ceph-node1][DEBUG ] connection detected need for sudo
[ceph-node1][DEBUG ] connected to host: ceph-node1 
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-node2
[ceph-node2][DEBUG ] connection detected need for sudo
[ceph-node2][DEBUG ] connected to host: ceph-node2 
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-node3
[ceph-node3][DEBUG ] connection detected need for sudo
[ceph-node3][DEBUG ] connected to host: ceph-node3 

复制代码

验证node节点密钥

img

认证文件的属主和属组为了安全考虑,默认设置为了root 用户和root组,如果需要ceph用户也能执行ceph 命令,那么就需要对ceph 用户进行授权

[root@ceph-node1 ~]# apt-get install acl -y [root@ceph-node1 ~]# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring

[root@ceph-node2 ~]# apt-get install acl -y [root@ceph-node2 ~]# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring

[root@ceph-node3 ~]# apt-get install acl -y [root@ceph-node3 ~]# setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring

3.6、部署ceph-mgr节点

[root@ceph-mgr1 ~]# apt install ceph-mgr -y [root@ceph-mgr2 ~]# apt install ceph-mgr -y cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy mgr create ceph-mgr1

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy mgr create ceph-mgr1
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  subcommand                    : create
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f07e50a4640>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function mgr at 0x7f07e50df700>
[ceph_deploy.cli][INFO  ]  mgr                           : [('ceph-mgr1', 'ceph-mgr1')]
[ceph_deploy.mgr][DEBUG ] Deploying mgr, cluster ceph hosts ceph-mgr1:ceph-mgr1
[ceph-mgr1][DEBUG ] connection detected need for sudo
[ceph-mgr1][DEBUG ] connected to host: ceph-mgr1 
[ceph_deploy.mgr][INFO  ] Distro info: ubuntu 20.04 focal
[ceph_deploy.mgr][DEBUG ] remote host will use systemd
[ceph_deploy.mgr][DEBUG ] deploying mgr bootstrap to ceph-mgr1
[ceph-mgr1][WARNIN] mgr keyring does not exist yet, creating one
[ceph-mgr1][INFO  ] Running command: sudo ceph --cluster ceph --name client.bootstrap-mgr --keyring /var/lib/ceph/bootstrap-mgr/ceph.keyring auth get-or-create mgr.ceph-mgr1 mon allow profile mgr osd allow * mds allow * -o /var/lib/ceph/mgr/ceph-ceph-mgr1/keyring
[ceph-mgr1][INFO  ] Running command: sudo systemctl enable ceph-mgr@ceph-mgr1
[ceph-mgr1][WARNIN] Created symlink /etc/systemd/system/ceph-mgr.target.wants/ceph-mgr@ceph-mgr1.service → /lib/systemd/system/ceph-mgr@.service.
[ceph-mgr1][INFO  ] Running command: sudo systemctl start ceph-mgr@ceph-mgr1
[ceph-mgr1][INFO  ] Running command: sudo systemctl enable ceph.target

复制代码

验证ceph-mgr

img

img

3.7、配置ceph-deploy管理ceph集群

cephadmin@ceph-deploy:~/ceph-cluster$ sudo apt install acl -y cephadmin@ceph-deploy:~/ceph-cluster$ sudo apt install ceph-common cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy admin ceph-deploy #给自己推送一份admin密钥

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy admin ceph-deploy
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  client                        : ['ceph-deploy']
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7fee28a06fd0>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function admin at 0x7fee28ffd310>
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-deploy
[ceph-deploy][DEBUG ] connection detected need for sudo
[ceph-deploy][DEBUG ] connected to host: ceph-deploy 

复制代码

img

cephadmin@ceph-deploy:~/ceph-cluster$ sudo setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring

复制代码

cephadmin@ceph-deploy:~/ceph-cluster$ sudo setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s
  cluster:
    id:     8dc32c41-121c-49df-9554-dfb7deb8c975
    health: HEALTH_WARN
            
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph-mon1 (age 38m)
    mgr: ceph-mgr1(active, since 13m)
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     
 
cephadmin@ceph-deploy:~/ceph-cluster$ 

复制代码

"mon is allowing insecure global_id reclaim"报错解决: cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mon auth_allow_insecure_global_id_reclaim false

复制代码

cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mon auth_allow_insecure_global_id_reclaim false
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s
  cluster:
    id:     8dc32c41-121c-49df-9554-dfb7deb8c975
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph-mon1 (age 40m)
    mgr: ceph-mgr1(active, since 14m)
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     
 
cephadmin@ceph-deploy:~/ceph-cluster$ 

复制代码

3.8、初始化存储节点

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy install --release pacific ceph-node1 ##擦除磁盘之前通过deploy节点对node节点执行安装ceph基本运行环境

复制代码

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy install --release pacific ceph-node1
[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy install --release pacific ceph-node1
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  stable                        : None
[ceph_deploy.cli][INFO  ]  release                       : pacific
[ceph_deploy.cli][INFO  ]  testing                       : None
[ceph_deploy.cli][INFO  ]  dev                           : master
[ceph_deploy.cli][INFO  ]  dev_commit                    : None
[ceph_deploy.cli][INFO  ]  install_mon                   : False
[ceph_deploy.cli][INFO  ]  install_mgr                   : False
[ceph_deploy.cli][INFO  ]  install_mds                   : False
[ceph_deploy.cli][INFO  ]  install_rgw                   : False
[ceph_deploy.cli][INFO  ]  install_osd                   : False
[ceph_deploy.cli][INFO  ]  install_tests                 : False
[ceph_deploy.cli][INFO  ]  install_common                : False
[ceph_deploy.cli][INFO  ]  install_all                   : False
[ceph_deploy.cli][INFO  ]  adjust_repos                  : True
[ceph_deploy.cli][INFO  ]  repo                          : False
[ceph_deploy.cli][INFO  ]  host                          : ['ceph-node1']
[ceph_deploy.cli][INFO  ]  local_mirror                  : None
[ceph_deploy.cli][INFO  ]  repo_url                      : None
[ceph_deploy.cli][INFO  ]  gpg_url                       : None
[ceph_deploy.cli][INFO  ]  nogpgcheck                    : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7ff822a91190>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  version_kind                  : stable
[ceph_deploy.cli][INFO  ]  func                          : <function install at 0x7ff822aca5e0>
[ceph_deploy.install][DEBUG ] Installing stable version pacific on cluster ceph hosts ceph-node1
[ceph_deploy.install][DEBUG ] Detecting platform for host ceph-node1 ...
[ceph-node1][DEBUG ] connection detected need for sudo
[ceph-node1][DEBUG ] connected to host: ceph-node1 
[ceph_deploy.install][INFO  ] Distro info: ubuntu 20.04 focal
[ceph-node1][INFO  ] installing Ceph on ceph-node1
[ceph-node1][INFO  ] Running command: sudo env DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get --assume-yes -q update
[ceph-node1][DEBUG ] Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease
[ceph-node1][DEBUG ] Hit:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease
[ceph-node1][DEBUG ] Hit:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease
[ceph-node1][DEBUG ] Hit:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security InRelease
[ceph-node1][DEBUG ] Hit:5 https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific focal InRelease
[ceph-node1][DEBUG ] Reading package lists...
[ceph-node1][INFO  ] Running command: sudo env DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get --assume-yes -q --no-install-recommends install ca-certificates apt-transport-https
[ceph-node1][DEBUG ] Reading package lists...
[ceph-node1][DEBUG ] Building dependency tree...
[ceph-node1][DEBUG ] Reading state information...
[ceph-node1][DEBUG ] ca-certificates is already the newest version (20211016~20.04.1).
[ceph-node1][DEBUG ] apt-transport-https is already the newest version (2.0.9).
[ceph-node1][DEBUG ] 0 upgraded, 0 newly installed, 0 to remove and 69 not upgraded.
[ceph-node1][INFO  ] Running command: sudo wget -O release.asc https://download.ceph.com/keys/release.asc
[ceph-node1][WARNIN] --2022-10-04 23:08:19--  https://download.ceph.com/keys/release.asc
[ceph-node1][WARNIN] Resolving download.ceph.com (download.ceph.com)... 158.69.68.124
[ceph-node1][WARNIN] Connecting to download.ceph.com (download.ceph.com)|158.69.68.124|:443... connected.
[ceph-node1][WARNIN] HTTP request sent, awaiting response... 200 OK
[ceph-node1][WARNIN] Length: 1645 (1.6K) [application/octet-stream]
[ceph-node1][WARNIN] Saving to: 'release.asc'
[ceph-node1][WARNIN] 
[ceph-node1][WARNIN]      0K .                                                     100% 81.3M=0s
[ceph-node1][WARNIN] 
[ceph-node1][WARNIN] 2022-10-04 23:08:21 (81.3 MB/s) - 'release.asc' saved [1645/1645]
[ceph-node1][WARNIN] 
[ceph-node1][INFO  ] Running command: sudo apt-key add release.asc
[ceph-node1][WARNIN] Warning: apt-key output should not be parsed (stdout is not a terminal)
[ceph-node1][DEBUG ] OK
[ceph-node1][INFO  ] Running command: sudo env DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get --assume-yes -q update
[ceph-node1][DEBUG ] Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease
[ceph-node1][DEBUG ] Hit:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease
[ceph-node1][DEBUG ] Hit:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease
[ceph-node1][DEBUG ] Hit:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security InRelease
[ceph-node1][DEBUG ] Hit:5 https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific focal InRelease
[ceph-node1][DEBUG ] Get:6 https://download.ceph.com/debian-pacific focal InRelease [8571 B]
[ceph-node1][DEBUG ] Get:7 https://download.ceph.com/debian-pacific focal/main amd64 Packages [17.0 kB]
[ceph-node1][DEBUG ] Fetched 25.6 kB in 4s (6622 B/s)
[ceph-node1][DEBUG ] Reading package lists...
[ceph-node1][INFO  ] Running command: sudo env DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get --assume-yes -q --no-install-recommends install -o Dpkg::Options::=--force-confnew ceph ceph-osd ceph-mds ceph-mon radosgw
[ceph-node1][DEBUG ] Reading package lists...
[ceph-node1][DEBUG ] Building dependency tree...
[ceph-node1][DEBUG ] Reading state information...
[ceph-node1][DEBUG ] ceph is already the newest version (16.2.10-1focal).
[ceph-node1][DEBUG ] ceph-mds is already the newest version (16.2.10-1focal).
[ceph-node1][DEBUG ] ceph-mon is already the newest version (16.2.10-1focal).
[ceph-node1][DEBUG ] ceph-osd is already the newest version (16.2.10-1focal).
[ceph-node1][DEBUG ] radosgw is already the newest version (16.2.10-1focal).
[ceph-node1][DEBUG ] 0 upgraded, 0 newly installed, 0 to remove and 69 not upgraded.
[ceph-node1][INFO  ] Running command: sudo ceph --version
[ceph-node1][DEBUG ] ceph version 16.2.10 (45fa1a083152e41a408d15505f594ec5f1b4fe17) pacific (stable)
cephadmin@ceph-deploy:~/ceph-cluster$ 

复制代码

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy install --release pacific ceph-node2 cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy install --release pacific ceph-node3

添加osd

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy osd create ceph-node1 --data /dev/vdb

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy osd create ceph-node1 --data /dev/vdb
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  subcommand                    : create
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f216c3135b0>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function osd at 0x7f216c3413a0>
[ceph_deploy.cli][INFO  ]  data                          : /dev/vdb
[ceph_deploy.cli][INFO  ]  journal                       : None
[ceph_deploy.cli][INFO  ]  zap_disk                      : False
[ceph_deploy.cli][INFO  ]  fs_type                       : xfs
[ceph_deploy.cli][INFO  ]  dmcrypt                       : False
[ceph_deploy.cli][INFO  ]  dmcrypt_key_dir               : /etc/ceph/dmcrypt-keys
[ceph_deploy.cli][INFO  ]  filestore                     : None
[ceph_deploy.cli][INFO  ]  bluestore                     : None
[ceph_deploy.cli][INFO  ]  block_db                      : None
[ceph_deploy.cli][INFO  ]  block_wal                     : None
[ceph_deploy.cli][INFO  ]  host                          : ceph-node1
[ceph_deploy.cli][INFO  ]  debug                         : False
[ceph_deploy.osd][DEBUG ] Creating OSD on cluster ceph with data device /dev/vdb
[ceph-node1][DEBUG ] connection detected need for sudo
[ceph-node1][DEBUG ] connected to host: ceph-node1 
[ceph_deploy.osd][INFO  ] Distro info: ubuntu 20.04 focal
[ceph_deploy.osd][DEBUG ] Deploying osd to ceph-node1
[ceph-node1][WARNIN] osd keyring does not exist yet, creating one
[ceph-node1][INFO  ] Running command: sudo /usr/sbin/ceph-volume --cluster ceph lvm create --bluestore --data /dev/vdb
[ceph-node1][WARNIN] Running command: /usr/bin/ceph-authtool --gen-print-key
[ceph-node1][WARNIN] Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring -i - osd new 1664c48e-0fdc-4166-b2b4-a4bbed39e758
[ceph-node1][WARNIN] Running command: vgcreate --force --yes ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6 /dev/vdb
[ceph-node1][WARNIN]  stdout: Physical volume "/dev/vdb" successfully created.
[ceph-node1][WARNIN]  stdout: Volume group "ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6" successfully created
[ceph-node1][WARNIN] Running command: lvcreate --yes -l 25599 -n osd-block-1664c48e-0fdc-4166-b2b4-a4bbed39e758 ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6
[ceph-node1][WARNIN]  stdout: Logical volume "osd-block-1664c48e-0fdc-4166-b2b4-a4bbed39e758" created.
[ceph-node1][WARNIN] Running command: /usr/bin/ceph-authtool --gen-print-key
[ceph-node1][WARNIN] Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0
[ceph-node1][WARNIN] --> Executable selinuxenabled not in PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
[ceph-node1][WARNIN] Running command: /usr/bin/chown -h ceph:ceph /dev/ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6/osd-block-1664c48e-0fdc-4166-b2b4-a4bbed39e758
[ceph-node1][WARNIN] Running command: /usr/bin/chown -R ceph:ceph /dev/dm-1
[ceph-node1][WARNIN] Running command: /usr/bin/ln -s /dev/ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6/osd-block-1664c48e-0fdc-4166-b2b4-a4bbed39e758 /var/lib/ceph/osd/ceph-0/block
[ceph-node1][WARNIN] Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring mon getmap -o /var/lib/ceph/osd/ceph-0/activate.monmap
[ceph-node1][WARNIN]  stderr: 2022-10-04T23:18:25.099+0800 7f2d87b9d700 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.bootstrap-osd.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: (2) No such file or directory
[ceph-node1][WARNIN] 2022-10-04T23:18:25.099+0800 7f2d87b9d700 -1 AuthRegistry(0x7f2d8005b868) no keyring found at /etc/ceph/ceph.client.bootstrap-osd.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,, disabling cephx
[ceph-node1][WARNIN]  stderr: got monmap epoch 1
[ceph-node1][WARNIN] Running command: /usr/bin/ceph-authtool /var/lib/ceph/osd/ceph-0/keyring --create-keyring --name osd.0 --add-key AQC/TjxjKuoSDhAAtMJyExZqbJWoTuTpU1dtYw==
[ceph-node1][WARNIN]  stdout: creating /var/lib/ceph/osd/ceph-0/keyring
[ceph-node1][WARNIN] added entity osd.0 auth(key=AQC/TjxjKuoSDhAAtMJyExZqbJWoTuTpU1dtYw==)
[ceph-node1][WARNIN] Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0/keyring
[ceph-node1][WARNIN] Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0/
[ceph-node1][WARNIN] Running command: /usr/bin/ceph-osd --cluster ceph --osd-objectstore bluestore --mkfs -i 0 --monmap /var/lib/ceph/osd/ceph-0/activate.monmap --keyfile - --osd-data /var/lib/ceph/osd/ceph-0/ --osd-uuid 1664c48e-0fdc-4166-b2b4-a4bbed39e758 --setuser ceph --setgroup ceph
[ceph-node1][WARNIN]  stderr: 2022-10-04T23:18:25.947+0800 7fb2821d7080 -1 bluestore(/var/lib/ceph/osd/ceph-0/) _read_fsid unparsable uuid
[ceph-node1][WARNIN] --> ceph-volume lvm prepare successful for: /dev/vdb
[ceph-node1][WARNIN] Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0
[ceph-node1][WARNIN] Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6/osd-block-1664c48e-0fdc-4166-b2b4-a4bbed39e758 --path /var/lib/ceph/osd/ceph-0 --no-mon-config
[ceph-node1][WARNIN] Running command: /usr/bin/ln -snf /dev/ceph-d6691ee3-0f71-416b-bc97-188c3718b2c6/osd-block-1664c48e-0fdc-4166-b2b4-a4bbed39e758 /var/lib/ceph/osd/ceph-0/block
[ceph-node1][WARNIN] Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block
[ceph-node1][WARNIN] Running command: /usr/bin/chown -R ceph:ceph /dev/dm-1
[ceph-node1][WARNIN] Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0
[ceph-node1][WARNIN] Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-1664c48e-0fdc-4166-b2b4-a4bbed39e758
[ceph-node1][WARNIN]  stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-1664c48e-0fdc-4166-b2b4-a4bbed39e758.service → /lib/systemd/system/ceph-volume@.service.
[ceph-node1][WARNIN] Running command: /usr/bin/systemctl enable --runtime ceph-osd@0
[ceph-node1][WARNIN]  stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph-osd@0.service → /lib/systemd/system/ceph-osd@.service.
[ceph-node1][WARNIN] Running command: /usr/bin/systemctl start ceph-osd@0
[ceph-node1][WARNIN] --> ceph-volume lvm activate successful for osd ID: 0
[ceph-node1][WARNIN] --> ceph-volume lvm create successful for: /dev/vdb
[ceph-node1][INFO  ] checking OSD status...
[ceph-node1][INFO  ] Running command: sudo /bin/ceph --cluster=ceph osd stat --format=json
[ceph_deploy.osd][DEBUG ] Host ceph-node1 is now ready for osd use.

复制代码

img

继续添加其他节点osd

复制代码

ceph-deploy osd create ceph-node1 --data /dev/vdb
ceph-deploy osd create ceph-node1 --data /dev/vdc
ceph-deploy osd create ceph-node1 --data /dev/vdd
​
ceph-deploy osd create ceph-node2 --data /dev/vdb
ceph-deploy osd create ceph-node2 --data /dev/vdc
ceph-deploy osd create ceph-node2 --data /dev/vdd
​
ceph-deploy osd create ceph-node3 --data /dev/vdb
ceph-deploy osd create ceph-node3 --data /dev/vdc
ceph-deploy osd create ceph-node3 --data /dev/vdd

复制代码

img

四、扩容ceph-mon、ceph-mgr

4.1、扩容ceph-mon

[root@ceph-mon2 ~]# apt install ceph-mon

[root@ceph-mon3 ~]# apt install ceph-mon

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy mon add ceph-mon2

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy mon add ceph-mon2
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  subcommand                    : add
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f23fe8fc850>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function mon at 0x7f23fe8e3040>
[ceph_deploy.cli][INFO  ]  address                       : None
[ceph_deploy.cli][INFO  ]  mon                           : ['ceph-mon2']
[ceph_deploy.mon][INFO  ] ensuring configuration of new mon host: ceph-mon2
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-mon2
[ceph-mon2][DEBUG ] connection detected need for sudo
[ceph-mon2][DEBUG ] connected to host: ceph-mon2 
[ceph_deploy.mon][DEBUG ] Adding mon to cluster ceph, host ceph-mon2
[ceph_deploy.mon][DEBUG ] using mon address by resolving host: 172.16.88.102
[ceph_deploy.mon][DEBUG ] detecting platform for host ceph-mon2 ...
[ceph-mon2][DEBUG ] connection detected need for sudo
[ceph-mon2][DEBUG ] connected to host: ceph-mon2 
[ceph_deploy.mon][INFO  ] distro info: ubuntu 20.04 focal
[ceph-mon2][DEBUG ] determining if provided host has same hostname in remote
[ceph-mon2][DEBUG ] adding mon to ceph-mon2
[ceph-mon2][DEBUG ] checking for done path: /var/lib/ceph/mon/ceph-ceph-mon2/done
[ceph-mon2][DEBUG ] done path does not exist: /var/lib/ceph/mon/ceph-ceph-mon2/done
[ceph-mon2][INFO  ] creating keyring file: /var/lib/ceph/tmp/ceph-ceph-mon2.mon.keyring
[ceph-mon2][INFO  ] Running command: sudo ceph --cluster ceph mon getmap -o /var/lib/ceph/tmp/ceph.ceph-mon2.monmap
[ceph-mon2][WARNIN] got monmap epoch 1
[ceph-mon2][INFO  ] Running command: sudo ceph-mon --cluster ceph --mkfs -i ceph-mon2 --monmap /var/lib/ceph/tmp/ceph.ceph-mon2.monmap --keyring /var/lib/ceph/tmp/ceph-ceph-mon2.mon.keyring --setuser 64045 --setgroup 64045
[ceph-mon2][INFO  ] unlinking keyring file /var/lib/ceph/tmp/ceph-ceph-mon2.mon.keyring
[ceph-mon2][INFO  ] Running command: sudo systemctl enable ceph.target
[ceph-mon2][INFO  ] Running command: sudo systemctl enable ceph-mon@ceph-mon2
[ceph-mon2][WARNIN] Created symlink /etc/systemd/system/ceph-mon.target.wants/ceph-mon@ceph-mon2.service → /lib/systemd/system/ceph-mon@.service.
[ceph-mon2][INFO  ] Running command: sudo systemctl start ceph-mon@ceph-mon2
[ceph-mon2][INFO  ] Running command: sudo ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-mon2.asok mon_status
[ceph-mon2][WARNIN] ceph-mon2 is not defined in `mon initial members`
[ceph-mon2][WARNIN] monitor ceph-mon2 does not exist in monmap
[ceph-mon2][INFO  ] Running command: sudo ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-mon2.asok mon_status
[ceph-mon2][DEBUG ] ********************************************************************************
[ceph-mon2][DEBUG ] status for monitor: mon.ceph-mon2
[ceph-mon2][DEBUG ] {
[ceph-mon2][DEBUG ]   "election_epoch": 0,
[ceph-mon2][DEBUG ]   "extra_probe_peers": [],
[ceph-mon2][DEBUG ]   "feature_map": {
[ceph-mon2][DEBUG ]     "mon": [
[ceph-mon2][DEBUG ]       {
[ceph-mon2][DEBUG ]         "features": "0x3f01cfb9fffdffff",
[ceph-mon2][DEBUG ]         "num": 1,
[ceph-mon2][DEBUG ]         "release": "luminous"
[ceph-mon2][DEBUG ]       }
[ceph-mon2][DEBUG ]     ]
[ceph-mon2][DEBUG ]   },
[ceph-mon2][DEBUG ]   "features": {
[ceph-mon2][DEBUG ]     "quorum_con": "0",
[ceph-mon2][DEBUG ]     "quorum_mon": [],
[ceph-mon2][DEBUG ]     "required_con": "2449958197560098820",
[ceph-mon2][DEBUG ]     "required_mon": [
[ceph-mon2][DEBUG ]       "kraken",
[ceph-mon2][DEBUG ]       "luminous",
[ceph-mon2][DEBUG ]       "mimic",
[ceph-mon2][DEBUG ]       "osdmap-prune",
[ceph-mon2][DEBUG ]       "nautilus",
[ceph-mon2][DEBUG ]       "octopus",
[ceph-mon2][DEBUG ]       "pacific",
[ceph-mon2][DEBUG ]       "elector-pinging"
[ceph-mon2][DEBUG ]     ]
[ceph-mon2][DEBUG ]   },
[ceph-mon2][DEBUG ]   "monmap": {
[ceph-mon2][DEBUG ]     "created": "2022-10-04T14:24:27.817567Z",
[ceph-mon2][DEBUG ]     "disallowed_leaders: ": "",
[ceph-mon2][DEBUG ]     "election_strategy": 1,
[ceph-mon2][DEBUG ]     "epoch": 1,
[ceph-mon2][DEBUG ]     "features": {
[ceph-mon2][DEBUG ]       "optional": [],
[ceph-mon2][DEBUG ]       "persistent": [
[ceph-mon2][DEBUG ]         "kraken",
[ceph-mon2][DEBUG ]         "luminous",
[ceph-mon2][DEBUG ]         "mimic",
[ceph-mon2][DEBUG ]         "osdmap-prune",
[ceph-mon2][DEBUG ]         "nautilus",
[ceph-mon2][DEBUG ]         "octopus",
[ceph-mon2][DEBUG ]         "pacific",
[ceph-mon2][DEBUG ]         "elector-pinging"
[ceph-mon2][DEBUG ]       ]
[ceph-mon2][DEBUG ]     },
[ceph-mon2][DEBUG ]     "fsid": "8dc32c41-121c-49df-9554-dfb7deb8c975",
[ceph-mon2][DEBUG ]     "min_mon_release": 16,
[ceph-mon2][DEBUG ]     "min_mon_release_name": "pacific",
[ceph-mon2][DEBUG ]     "modified": "2022-10-04T14:24:27.817567Z",
[ceph-mon2][DEBUG ]     "mons": [
[ceph-mon2][DEBUG ]       {
[ceph-mon2][DEBUG ]         "addr": "172.16.88.101:6789/0",
[ceph-mon2][DEBUG ]         "crush_location": "{}",
[ceph-mon2][DEBUG ]         "name": "ceph-mon1",
[ceph-mon2][DEBUG ]         "priority": 0,
[ceph-mon2][DEBUG ]         "public_addr": "172.16.88.101:6789/0",
[ceph-mon2][DEBUG ]         "public_addrs": {
[ceph-mon2][DEBUG ]           "addrvec": [
[ceph-mon2][DEBUG ]             {
[ceph-mon2][DEBUG ]               "addr": "172.16.88.101:3300",
[ceph-mon2][DEBUG ]               "nonce": 0,
[ceph-mon2][DEBUG ]               "type": "v2"
[ceph-mon2][DEBUG ]             },
[ceph-mon2][DEBUG ]             {
[ceph-mon2][DEBUG ]               "addr": "172.16.88.101:6789",
[ceph-mon2][DEBUG ]               "nonce": 0,
[ceph-mon2][DEBUG ]               "type": "v1"
[ceph-mon2][DEBUG ]             }
[ceph-mon2][DEBUG ]           ]
[ceph-mon2][DEBUG ]         },
[ceph-mon2][DEBUG ]         "rank": 0,
[ceph-mon2][DEBUG ]         "weight": 0
[ceph-mon2][DEBUG ]       }
[ceph-mon2][DEBUG ]     ],
[ceph-mon2][DEBUG ]     "stretch_mode": false,
[ceph-mon2][DEBUG ]     "tiebreaker_mon": ""
[ceph-mon2][DEBUG ]   },
[ceph-mon2][DEBUG ]   "name": "ceph-mon2",
[ceph-mon2][DEBUG ]   "outside_quorum": [],
[ceph-mon2][DEBUG ]   "quorum": [],
[ceph-mon2][DEBUG ]   "rank": -1,
[ceph-mon2][DEBUG ]   "state": "probing",
[ceph-mon2][DEBUG ]   "stretch_mode": false,
[ceph-mon2][DEBUG ]   "sync_provider": []
[ceph-mon2][DEBUG ] }
[ceph-mon2][DEBUG ] ********************************************************************************
[ceph-mon2][INFO  ] monitor: mon.ceph-mon2 is currently at the state of probing

复制代码

验证是否添加成功

img

img

继续添加ceph-mon3

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy mon add ceph-mon3

img

img

验证ceph-mon状态

cephadmin@ceph-deploy:~/ceph-cluster$ ceph quorum_status --format json-pretty

复制代码

{
    "election_epoch": 12,
    "quorum": [
        0,
        1,
        2
    ],
    "quorum_names": [
        "ceph-mon1",
        "ceph-mon2",
        "ceph-mon3"
    ],
    "quorum_leader_name": "ceph-mon1",  #当前的leader节点
    "quorum_age": 194,
    "features": {
        "quorum_con": "4540138297136906239",
        "quorum_mon": [
            "kraken",
            "luminous",
            "mimic",
            "osdmap-prune",
            "nautilus",
            "octopus",
            "pacific",
            "elector-pinging"
        ]
    },
    "monmap": {
        "epoch": 3,
        "fsid": "8dc32c41-121c-49df-9554-dfb7deb8c975",
        "modified": "2022-10-05T13:06:49.042131Z",
        "created": "2022-10-04T14:24:27.817567Z",
        "min_mon_release": 16,
        "min_mon_release_name": "pacific",
        "election_strategy": 1,
        "disallowed_leaders: ": "",
        "stretch_mode": false,
        "tiebreaker_mon": "",
        "features": {
            "persistent": [
                "kraken",
                "luminous",
                "mimic",
                "osdmap-prune",
                "nautilus",
                "octopus",
                "pacific",
                "elector-pinging"
            ],
            "optional": []
        },
        "mons": [
            {
                "rank": 0,
                "name": "ceph-mon1",
                "public_addrs": {
                    "addrvec": [
                        {
                            "type": "v2",
                            "addr": "172.16.88.101:3300",
                            "nonce": 0
                        },
                        {
                            "type": "v1",
                            "addr": "172.16.88.101:6789",
                            "nonce": 0
                        }
                    ]
                },
                "addr": "172.16.88.101:6789/0",
                "public_addr": "172.16.88.101:6789/0",
                "priority": 0,
                "weight": 0,
                "crush_location": "{}"
            },
            {
                "rank": 1,
                "name": "ceph-mon2",
                "public_addrs": {
                    "addrvec": [
                        {
                            "type": "v2",
                            "addr": "172.16.88.102:3300",
                            "nonce": 0
                        },
                        {
                            "type": "v1",
                            "addr": "172.16.88.102:6789",
                            "nonce": 0
                        }
                    ]
                },
                "addr": "172.16.88.102:6789/0",
                "public_addr": "172.16.88.102:6789/0",
                "priority": 0,
                "weight": 0,
                "crush_location": "{}"
            },
            {
                "rank": 2,
                "name": "ceph-mon3",
                "public_addrs": {
                    "addrvec": [
                        {
                            "type": "v2",
                            "addr": "172.16.88.103:3300",
                            "nonce": 0
                        },
                        {
                            "type": "v1",
                            "addr": "172.16.88.103:6789",
                            "nonce": 0
                        }
                    ]
                },
                "addr": "172.16.88.103:6789/0",
                "public_addr": "172.16.88.103:6789/0",
                "priority": 0,
                "weight": 0,
                "crush_location": "{}"
            }
        ]
    }
}

复制代码

4.2、扩容ceph-mgr

[root@ceph-mgr2 ~]# apt install ceph-mgr

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy mgr create ceph-mgr2

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy mgr create ceph-mgr2
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  subcommand                    : create
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f79b4b986a0>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function mgr at 0x7f79b4bd0700>
[ceph_deploy.cli][INFO  ]  mgr                           : [('ceph-mgr2', 'ceph-mgr2')]
[ceph_deploy.mgr][DEBUG ] Deploying mgr, cluster ceph hosts ceph-mgr2:ceph-mgr2
[ceph-mgr2][DEBUG ] connection detected need for sudo
[ceph-mgr2][DEBUG ] connected to host: ceph-mgr2 
[ceph_deploy.mgr][INFO  ] Distro info: ubuntu 20.04 focal
[ceph_deploy.mgr][DEBUG ] remote host will use systemd
[ceph_deploy.mgr][DEBUG ] deploying mgr bootstrap to ceph-mgr2
[ceph-mgr2][INFO  ] Running command: sudo ceph --cluster ceph --name client.bootstrap-mgr --keyring /var/lib/ceph/bootstrap-mgr/ceph.keyring auth get-or-create mgr.ceph-mgr2 mon allow profile mgr osd allow * mds allow * -o /var/lib/ceph/mgr/ceph-ceph-mgr2/keyring
[ceph-mgr2][INFO  ] Running command: sudo systemctl enable ceph-mgr@ceph-mgr2
[ceph-mgr2][WARNIN] Created symlink /etc/systemd/system/ceph-mgr.target.wants/ceph-mgr@ceph-mgr2.service → /lib/systemd/system/ceph-mgr@.service.
[ceph-mgr2][INFO  ] Running command: sudo systemctl start ceph-mgr@ceph-mgr2
[ceph-mgr2][INFO  ] Running command: sudo systemctl enable ceph.target

复制代码

同步配置文件到ceph-mgr2

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy admin ceph-mgr2

复制代码

[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy admin ceph-mgr2
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  client                        : ['ceph-mgr2']
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7fab8d716130>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function admin at 0x7fab8dd01310>
[ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph-mgr2
[ceph-mgr2][DEBUG ] connection detected need for sudo
[ceph-mgr2][DEBUG ] connected to host: ceph-mgr2 

复制代码

img

4.3、同步ceph-mon扩容节点信息到ceph.conf

修改ceph.conf

cephadmin@ceph-deploy:~/ceph-cluster$ vi ceph.conf cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.conf

复制代码

[global]
fsid = 8dc32c41-121c-49df-9554-dfb7deb8c975
public_network = 172.16.88.0/24
cluster_network = 192.168.122.0/24
mon_initial_members = ceph-mon1,ceph-mon2,ceph-mon3
mon_host = 172.16.88.101,172.16.88.102,172.16.88.103
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

复制代码

同步配置文件到/etc/ceph/ceph.conf

cephadmin@ceph-deploy:~/ceph-cluster$ ceph-deploy --overwrite-conf config push ceph-deploy ceph-mon{1,2,3} ceph-mgr{1,2} ceph-node{1,2,3}

复制代码

[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadmin/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.1.0): /usr/local/bin/ceph-deploy --overwrite-conf config push ceph-deploy ceph-mon1 ceph-mon2 ceph-mon3 ceph-mgr1 ceph-mgr2 ceph-node1 ceph-node2 ceph-node3
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  overwrite_conf                : True
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  subcommand                    : push
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf object at 0x7f428a56f400>
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  func                          : <function config at 0x7f428a5f3790>
[ceph_deploy.cli][INFO  ]  client                        : ['ceph-deploy', 'ceph-mon1', 'ceph-mon2', 'ceph-mon3', 'ceph-mgr1', 'ceph-mgr2', 'ceph-node1', 'ceph-node2', 'ceph-node3']
[ceph_deploy.config][DEBUG ] Pushing config to ceph-deploy
[ceph-deploy][DEBUG ] connection detected need for sudo
[ceph-deploy][DEBUG ] connected to host: ceph-deploy 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-mon1
[ceph-mon1][DEBUG ] connection detected need for sudo
[ceph-mon1][DEBUG ] connected to host: ceph-mon1 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-mon2
[ceph-mon2][DEBUG ] connection detected need for sudo
[ceph-mon2][DEBUG ] connected to host: ceph-mon2 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-mon3
[ceph-mon3][DEBUG ] connection detected need for sudo
[ceph-mon3][DEBUG ] connected to host: ceph-mon3 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-mgr1
[ceph-mgr1][DEBUG ] connection detected need for sudo
[ceph-mgr1][DEBUG ] connected to host: ceph-mgr1 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-mgr2
[ceph-mgr2][DEBUG ] connection detected need for sudo
[ceph-mgr2][DEBUG ] connected to host: ceph-mgr2 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-node1
[ceph-node1][DEBUG ] connection detected need for sudo
[ceph-node1][DEBUG ] connected to host: ceph-node1 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-node2
[ceph-node2][DEBUG ] connection detected need for sudo
[ceph-node2][DEBUG ] connected to host: ceph-node2 
[ceph_deploy.config][DEBUG ] Pushing config to ceph-node3
[ceph-node3][DEBUG ] connection detected need for sudo
[ceph-node3][DEBUG ] connected to host: ceph-node3 

复制代码

img

img

ubuntu ceph部署 参考文档:http://docs.ceph.org.cn/start/ 阅读详情

相关推荐

Ubuntu20.04使用cephadm部署ceph集群

Cephadm通过在单个主机上创建一个Ceph单机集群,然后向集群中添加主机以扩展集群,进而部署其他服务。

优快云博客 3361

Ubuntu部署Ceph

ubuntu部署ceph流程

jkjgj的博客 4912

Ubuntu20.04部署ceph16(pacific)集群 - 傻瓜式教程

Ubuntu20.04部署ceph16 pacific1 环境介绍与配置1.1 ceph介绍1.2 环境介绍1.3 基础环境准备1.3.1 关闭selinux、防火墙1.3.2 设置主机名,每台设置1.3.3 设置网卡对应网卡IP(自行更改IP)1.3.4 在hosts里添加对应的ceph节点信息1.3.5 添加Ceph pacific版本源1.3.6 时间同步2 ceph安装与配置2.1 ceph-deploy工具部署2.2 创建并配置ceph集群2.2.1 创建ceph配置目录和集群2.2.2 ceph

盲盒岛 2428

Ubuntu20.04LTS环境docker+cephadm方式部署Ceph 17.2.5

Ubuntu20.04LTS环境docker+cephadm方式部署Ceph 17.2.5

weixin_42397937的博客 3526

银河麒麟(ky10)x86与arm双架构下编译zlmediakit的实战指南

本文提供了在银河麒麟(ky10)操作系统上,针对x86与arm双架构编译部署流媒体服务器zlmediakit的完整实战指南。文章详细阐述了从环境准备、依赖安装、代码获取到编译构建与测试的全过程,重点解析了两种CPU架构下的关键差异与注意事项,帮助开发者高效完成国产化平台上的流媒体服务搭建。

weixin_29306875的博客 101

硬件电路(22)-TTL和232切换电路

工作中会遇到TTL和232电平的通信的状态,为了实现一种便捷的切换方式,参考了一些文章,提供一种电路方便大家使用。

剑藏锋的博客 1865

使用ceph-deploy部署Ceph集群

初次入门,使用ceph-deploy工具快速安装(相比于手工安装)一套三节点的Ceph集群,并最终创建对象存储服务进行系统验证。 预先了解两个基本概念: mon:osd监视器,osd的守护进程,通常一个osd对应一个mon osd:实际存储数据,通常直接对应一块硬盘 三台机器(Ubuntu 16.04):172.31.0.5,172.31.0.13,172.31.0.22,分别命名为ceph0...

半斤米粉闯天下的博客 8778

手把手教你用GD32F407VET6的EXMC驱动外部SRAM,搞定大内存需求

本文详细介绍了如何使用GD32F407VET6的EXMC外设驱动外部SRAM,解决嵌入式开发中的大内存需求问题。通过硬件连接方案、EXMC时序配置与初始化步骤,以及软件集成与内存管理技巧,帮助开发者快速实现内存扩展。特别适合需要处理图形显示缓冲、音频处理等大内存场景的GD32F407开发者。

weixin_30752699的博客 346

ceph-deploy 部署 Ceph

本文介绍了在Ubuntu 16.04系统上搭建Ceph分布式存储集群的详细过程。测试环境采用VMware虚拟机,包含1个admin管理节点、1个monitor监控节点和2个OSD存储节点。首先完成了NTP时间同步、创建专用用户、配置SSH免密登录等基础环境准备;然后通过修改hosts文件解决主机名解析问题,并配置了Ceph软件源。文章详细记录了从系统配置到集群部署的完整步骤,包括Python环境准备、密钥分发验证等关键环节,为后续Ceph集群的安装和配置奠定了基础。

博客 922

GPU加速的容器化AI开发:AnolisOS/CentOS8中的NVIDIA驱动与CUDA最佳实践

本文详细介绍了在AnolisOS/CentOS8系统中配置NVIDIA驱动与CUDA的最佳实践,涵盖驱动安装、CUDA工具链配置、容器运行时设置及性能优化等关键步骤。特别针对容器化AI开发场景,提供了GPU透传和资源管理的实用方案,帮助开发者构建高效的GPU加速开发环境。

weixin_27791839的博客 341

Linux系统安装AutoDockTools、AutoGrid和AutoDock并实现分子对接(详细讲解)

linux系统为centos7.0 按照下面操作安装AutoDockTools(MGLTools) 1. 下载安装包,链接(https://ccsb.scripps.edu/mgltools/downloads/),我的linux系统是64位,下载红色标记源代码,拷贝入linux目标文件夹下。 2. shell终端进行安装: 1. 终端进入安装包所在文件夹,并获取root权限;赋予代码安装权限; cd /home/... #目标文件夹,根据目标程序文件位置进行更改 su #获

carlos_zhao的博客 1万+

ubuntu 搭建 ceph

ubuntu 搭建 ceph 首先理解三个概念: 文件存储系统,快存储系统,对象存储系统 准备工作: 虚拟机三台: ip: 192.168.87.132 ceph-admin ip: 192.168.87.133 node0 ip: 192.168.87.134 node1 系统: ubuntu 16.04 1.配置节点host 为了方便后边安装,以及 ssh 方式连接各个节点,我们...

qq_43019193的博客 1663

记录一次PowerJob使用达梦数据库的配置

记录一次PowerJob使用达梦数据库的配置

早晨阳光一般暖的博客 2160

Ubuntu16.04上搭建ceph Luminous版本集群

ubuntu16.04搭建ceph集群一、集群状况概述二、部署集群2.1 安装集群前的准备工作2.2 ceph-deploy部署ceph集群三、扩展和使用集群3.1 扩展集群3.2 修改集群布局3.3 ceph数据管理3.4 RADOS块设备的创建与使用3.5 cephFS3.6 ceph RADOS网关的对象存储rgw四、结语 一、集群状况概述 本文旨在基于Ubuntu16.04版本搭建ceph...

turou3442的博客 1087

【自适应滤波】自适应UKF,基于新息自适应调节Q和R,场景为雷达跟踪与滤波、MATLAB实现

本文提出了一种基于新息协方差匹配的自适应UKF(CM-AUKF)算法,用于解决噪声统计未知或时变场景下的目标跟踪问题。通过实时调整过程噪声协方差Q和观测噪声协方差R,CM-AUKF显著提升了跟踪精度和稳定性。仿真结果表明,相比传统UKF,CM-AUKF在位置和速度估计误差上分别降低了约50%和30%,且无需人工调参。该算法适用于无人机导航、雷达跟踪等动态环境,MATLAB代码可直接运行复现结果。自适应曲线显示算法能有效收敛到真实噪声参数,验证了其自适应能力。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 330

某智能物流无人值守系统 ExportReport SQL注入漏洞复现

某智能物流无人值守系统 ExportReport存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

0xSec 819

CEPH 分布式存储部署手册 (Ubuntu 14.04)

CEPH 分布式存储部署手册 (Ubuntu 14.04)Skyrim Date:2016/12/16 CEPH 分布式存储部署手册 Ubuntu 1404 环境准备 1 环境架构图 2 环境准备 21所有节点操作设置root免密码登录 22 所有节点操作修改host文件 23 ADMIN节点操作安装pssh工具 24 所有节点操作创建ssh信任 25 ADMIN操作修改ububtu apt源

SKYRIM BLOG 2539

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ceph-deploy 添加/删除 mon节点

1、简介 mon 操作 我还真是比较少,关于 mon 添加删除 操作 我反正 从来 没有 在线上环境执行过;哈哈哈,为了以备 不时之需,还是 练练手 了解下(有备无患 嘛);本文先 基于 ceph-deploy 工具 操作(手动的 反正 我也试过了 -- 没难度,有兴趣的 可以 自己 手动 尝试下,需要的话 留言 后期 补上 手动 操作文档) 1.1 操作系统 ## 本文操作系统 ...

weixin_33908217的博客 1788

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Ceph14.2.22:如何使用ceph-deploy部署多节点集群

本文介绍如何使用ceph-deploy工具在ubuntu 18.04系统上部署ceph 14.2.22集群。

分布式存储随笔 1272

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ceph-16.2.10P版分布式存储部署以及块存储、文件存储、对象存储的具体使用方式介绍

ceph部署以及使用介绍

张军伟的技术博客 2220

ceph安装搭建总结

* 版本选择 * 集群架构 * 免密登录 * 安装ceph-deploy * 部署ceph集群 * 安装mgr * 安装ceph-dashboard

liuyij3430448的博客 1901

ceph学习笔记之十二 Ubuntu安装部署Ceph J版本

https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html 安装Ubuntu系统安装步骤略过 拓扑连接: 一、安装前准备工作 1、修改主机名;将主机名更改为上图中对应的主机名。 [root@localhost ~]# vim /etc/hostname 2、更新主...

weixin_30716141的博客 319

Ubuntu16.04LTS部署CEPH文件存储集群

基础环境安装 添加硬盘 步骤1集群安装需要三台及以上服务器,此处以3台作为示例,此处直接使用每台主机第二块硬盘空间作为存储空间方案,每台服务器须添加一块硬盘。 //查看每台硬盘情况 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:16 0 223.6G 0...

Skywin88的博客 620

Ceph v12.2 Luminous基于ubuntu16.04集群部署

1. Ceph介绍 Ceph 是一个高性能、可靠、可扩展的开源存储平台。它是一个自由的分布式存储系统,提供了对象、块和文件级存储的接口,并可以不受单点故障的影响而运行。 Ceph集群结构: (1)Ceph Admin-管理节点,用来安装ceph-deploy 进行ceph部署使用,基本上大部分操作都在这台机器上。 (2)Ceph OSD (ceph-osd) - 控制数据存储,...

weixin_30746117的博客 205

在linux Ubuntu16上搭建ceph分布式文件系统(四节点)实测有效!

特别注意:如果命令直接复制粘贴出现错误,则手动输入可解决 参考教程:https://blog.csdn.net/qq_24916117/article/details/47909697第一步~~~.准备  4个Ubuntu 16.04 Server 虚拟机(可以使用VMware或者VirtualBox)配置好每个虚拟机的IP 以及hostname (很重要!)我的四台虚拟机配置如下:(ip根据个人...

云潇洒 3396
上一篇: 问题: Could not index event to Elasticsearch. {:status=>400, :action=>[“index“, {:_id=>nil, :_index=>
下一篇: ceph PG和PGP区别
米利都
博客等级 码龄5年 601粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米利都

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值