简述
什么是ecph
ceph是一个开放、自我修复和自我管理的统一分布式存储系统。具有高扩展性、高新能、高可靠性的优点。
ceph分布式存储优势
高扩展性:使用普通X86服务器,支持10~1000台服务器,支持TB到EB级的扩展。
高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
高性能:数据分布均衡
ceph支持三种调用接口: 块存储、文件系统存储、对象存储。三种方式可以一同使用。
ceph的三个主要进程
Monitor监控整个集群的状态,维护集群的cluster MAP数据分布图(二进制表),保证集群数据的一致性。
OSD用于集群中所有数据与对象的存储,处理集群数据的复制、恢复、回填、在均衡,并向其他osd守护进程发送心跳,然后向Monitor提供监控信息。
MDS(可选)为Ceph文件系统提供元数据计算、缓存与同步。MDS进程并不是必须的进程,只有需要使用CephFS时,才需要配置MDS节点。
部署时注意事项
ceph生产环境推荐:
1、存储集群采用全万兆网络(条件允许使用光纤网络)
2、集群网络与公共网络分立
3、mon、mds与osd分离部署在不通机器上
4、OSD使用SATA亦可
5、根据容量规划集群
6、志强E5 2620 V3或以上的cpu,64GB或更高内存
7、集群主机分散部署,避免机柜故障(电源、网络)
1、环境准备
1.1主机信息
主机名 | IP | 角色 | 备注 | 磁盘 | hosts |
node1 | 192.168.10.101 | admin,osd,mon,mar | sda/60G | IP 主机名 | |
node2 | 192.168.10.102 | osd,mds | sdb/20G | IP 主机名 | |
node3 | 192.168.10.103 | osd,mds | sdb/20G | IP 主机名 | |
node4 | 192.168.10.104 | client | 客户端,访问存储 | sdb/60G | IP 主机名 |
1.2修改主机名
node1/node2/node3
hostnamectl set-hostname node1/node2/node3
1.3修改hosts文件,加入主机信息
vi /etc/hosts
192.168.10.101 node1 192.168.10.102 node2 192.168.10.103 node31.4NTP时间同步
1.4.1在node1上,从阿里云的NTP服务器上同步时间。
apt -y install chrony # 备份NTP服务的原始配置文件 mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak # 编写一个空的配置文件,文件只有两行配置 vim /etc/chrony/chrony.conf -------------------- server ntp.aliyun.com iburst allow 192.168.10.101/24 # 保存退出 #重启系统的ntp服务 service chrony restart
1.4.2再配置ceph0002和ceph0003的NTP服务,从ceph0001上拉去时间。
apt -y install chrony # 备份NTP服务的原始配置文件 mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak # 编写一个空的配置文件,文件只有一行配置 vim /etc/chrony/chrony.conf -------------------- server ceph0001 iburst #重启系统的ntp服务 service chrony restart
1.4.3三台节点执行以下命令。
chronyc sources
1.5 关闭 iptable 和 firewalld
systemctl stop iptables systemctl stop firewalld systemctl disable iptables systemctl disable firewalld
1.6关闭 SElinux
vi /etc/selinux/config
SELINUX=disabled
1.7生成SSH证书,并分发到其他节点
ssh-keygen -t rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub [email protected] ssh-copy-id -i .ssh/id_rsa.pub [email protected]
1.8依赖安装
cephadm 部署 ceph 集群时,需要如下依赖:- python3
- Docker或Podman
- systemd
- lvm2
运行以下命令即可安装Docker:
wget -qO- get.docker.com | sh
查看Docker版本
docker -v
使用以下命令 启动docker后台服务、使Docker在开机时自动启动:
sudo service docker start
systemctl enable docker
2. 安装部署Ceph17.2.5
2.1安装cephadm,拉取ceph镜像
以下命令在controller节点执行
# 下面的命令会自动安装 docker 等依赖 apt install -y cephadm # 拉取ceph镜像 docker pull quay.io/ceph/ceph:v17.2 # 查看cpeh版本 $ cephadm version ceph version 17.2.5 (98318ae89f1a893a6ded3a640405cdbb33e08757) quincy (stable) # 查看docker镜像 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/ceph/ceph v17.2 cc65afd6173a 2 months ago 1.36GB
通过运行以下命令确认cephadm
:
which cephadm
成功的命令将返回以下内容:/usr/sbin/cephadm
2.2创建集群
使用 cephadm 创建 Ceph 集群的流程为:
- 初始化第一个 mon 节点
- 配置 ceph 命令行
- 扩展集群 osd 节点
2.2.1. 初始化 mon 节点
cephadm bootstrap --mon-ip 192.168.10.101 --allow-overwrite
显示出 Bootstrap complete. 表示部署成功。使用:
–image quay.io/ceph/ceph:v17.2 指定镜像地址
–registry-url 指定仓库 https://hub.docker.com/u/quayioceph
–single-host-defaults
可以登陆输出的地址输入账号密码进入dashboard界面查看ceph运行情况如下图所示。
启用 CEPH CLI
安装该ceph-common
软件包,其中包含所有 ceph 命令
cephadm add-repo --release pacific cephadm install ceph-common
添加主机
1分发 SSH 公钥
我们在 2.1 引导第一台机器的时候,SSH 生成了一个公钥文件(默认位置是 /etc/ceph/ceph.pub
)。
Cephadm 通过 SSH 免密实现对集群中各个机器的操作(私钥藏起来了),所以我们得把这个 SSH 公钥,分发到每个集群的主机上。
命令:ssh-copy-id -f -i /etc/ceph/ceph.pub root@<new-host>把引导机上的 SSH 公钥副本/etc/ceph/ceph.pub
的内容,
写入root@<new-host>
的/root/.ssh/authorized_keys
中,从而实现免密(引导机的/root/.ssh/authorized_keys
在引导阶段就已经写入了)。
ssh-copy-id -f -i /etc/ceph/ceph.pub root@node2 ssh-copy-id -f -i /etc/ceph/ceph.pub root@host3
2添加主机
ceph orch host add node2 192.168.10.102 ceph orch host add node3 192.168.10.103
若不能添加主机,请检查主机的4个依赖(python3、Docker或Podman、systemd、lvm2),未安装的须安装,所有主机的docker需要启动
添加额外的监视器 MON
添加OSD
CEPH-MGR 管理员
apt install ceph-mgr
创建一个身份验证密钥:
ceph auth get-or-create mgr.$name mon 'allow profile mgr' osd 'allow *' mds 'allow *'
将该密钥放入路径中,对于集群“ceph”和 mgr $name“foo”来说,该路径将是。mgr data
/var/lib/ceph/mgr/ceph-foo
启动 ceph-mgr 守护进程:
ceph-mgr -i $name
标签:Ubuntu20.04,LTS,etc,192.168,ceph,chrony,cephadm,docker,Ceph From: https://www.cnblogs.com/dachenyi/p/18321427