(1)环境准备(默认)
三个节点,每个节点额外添加2块20G硬盘,每个节点一共3块硬盘
装包,主机名解析,系统yum源 ,ceph源,关闭防火墙和selinux ,免密ssh
node1 | 192.168.4.11/24 集群管理节点
node2 | 192.168.4.12/24
node3 | 192.168.4.13/24
client | 192.168.4.10/24
(2)时间同步
#2.1配置client为NTP服务器
[root@client1 ~]# yum install -y chrony
[root@client1 ~]# vim /etc/chrony.conf
29 allow 192.168.4.0/24
33 local stratum 10 # 即使没有从一个源同步到时间,也会提供时间服务
[root@client1 ~]# systemctl restart chronyd
#2.2配置node1-3为NTP客户端
[root@node1 ~]# for i in node{1..3}
> do
> ssh $i yum install -y chrony
> done
[root@node1 ~]# vim /etc/chrony.conf
... ...
server 192.168.4.10 iburst //新添加的
... ...
[root@node1 ~]# for i in node{2..3}
> do
> scp /etc/chrony.conf $i : /etc
> done
[root@node1 ~]# for i in node{1..3}
>do
>ssh $i systemctl restart chronyd
>done
#2.3验证时间是否同步
[root@node1 ~]# chronyc sources -v
(3)在各个集群上安装ceph组件软件包
[root@node1 ~]# for i in node{1..3}
> do
> ssh $i yum install -y ceph-mon ceph-osd ceph-mds ceph-radosgw
> done
(4)在node1上安装ceph集群管理工具
[root@node1 ~]# yum install -y ceph-deploy
[root@node1 ~]# mkdir ceph-cluster # 创建ceph-deploy的工作目录
[root@node1 ~]# cd ceph-cluster #类似ansible,先进入目录再进行部署
[root@node1 ceph-cluster]# ceph-deploy new node{1..3} #部署3个集群 (生成三个文件:配置文件、日志文件、共享密钥)
#4.1 开启COW分层快照的功能
[root@node1 ceph-cluster]# vim ceph.conf
rbd_default_features = 1 #尾部添加支持分层快照功能
#4.2 初始化集群监控组件
[root@node1 ceph-cluster]# ceph-deploy mon create-initial
[root@node1 ceph-cluster]# systemctl status ceph-mon@node1.service
[root@node2 ~]# systemctl status ceph-mon@node2.service
[root@node3 ~]# systemctl status ceph-mon@node3.service
[root@node1 ceph-cluster]# ceph -s 查看集群状态 #health HEALTH_ERR,此时报错是因为没有硬盘
#4.3 向ceph存储添加硬盘,初始化硬盘。相当于对硬盘进行分区、初始化
[root@node1 ceph-cluster]# ceph-deploy disk zap node1:vdb node1:vdc (vdb、vdc作为集群ceph的存储硬盘)
[root@node1 ceph-cluster]# ceph-deploy disk zap node2:vd{b,c}
[root@node1 ceph-cluster]# ceph-deploy disk zap node3:vd{b,c}
#4.31 硬盘分区,一个分区固定大小5G,另一个分区使用剩余空间
[root@node1 ceph-cluster]# for i in {1..3}
> do
> ceph-deploy osd create node$i:vd{b,c}
> done
[root@node1 ceph-cluster]# lsblk #查看硬盘分区,会显示osd存储及5GB的空间
#4.4 查看osd储存设备是否健康。节点上有几块OSD硬盘,就会有几个进程
[root@node1 ceph-cluster]# systemctl status ceph-osd*
[root@node1 ceph-cluster]# ceph -s # health HEALTH_OK正常
可以查看osd 设备,mon设备
部署块存储,就是可以提供像硬盘一样设备的存储。
使用块存储的节点,需要对块设备进行分区、格式化、挂载后使用。
(1) 查看存储池。ceph默认创建了编号为0的存储池,名为rbd。
[root@node1 ceph-cluster]# ceph osd lspools #查看存储池
0 rbd,
[root@node1 ceph-cluster]# ceph df #查看空间大小及存储池状况 (ceph保存3副本,90空间实际只能用30G)
(2)在存储池中划分空间(创建镜像),提供给客户端使用
[root@node1 ceph-cluster]# rbd create demo-image --size 10G #建造一个10G的空间镜像给客户端使用
[root@node1 ceph-cluster]# rbd info demo-image #查看镜像信息
[root@node1 ceph-cluster]# rbd list #查看存储池的空间
#2.1 扩容、缩减、删除(生产环境能不做就不做)
[root@node1 ~]# rbd resize --size 15G demo-img //resize 调整大小
[root@node1 ~]# rbd resize --size 7G demo-img --allow-shrink
[root@node1 ~]#rbd rm demo-image #删除
三台机器是一个集群,在哪个机器敲都是一样的操作。
客户端使用块设备
1、装软件;
2、用配置文件连接ceph集群;
3、权限、映射
[root@client1 ~]# yum install -y ceph-common
[root@client1 ~]# ls /etc/ceph/ #装完包之后有一个目录
rbdmap
[root@node1 ~]# scp /etc/ceph/ceph.conf 192.168.4.10:/etc/ceph/ #拷贝配置文件给客户端
[root@node1 ~]# scp /etc/ceph/ceph.client.admin.keyring 192.168.4.10:/etc/ceph/ #拷贝密钥文件给客户端
[root@client1 ~]# rbd list #查看镜像
此时客户端连接到了ceph集群,客户端的操作就是对ceph集群的操作。客户端看到的是服务器集群的数据。
[root@client1 ~]# rbd map demo-img // map 映射,把ceph集群的镜像映射到客户端的硬盘
/dev/rbd0
[root@client1 ~]# lsblk # 将会看到新的名为rbd0的硬盘
# 使用rbd设备 正常使用
[root@client1 ~]# mkfs.xfs /dev/rbd0
[root@client1 ~]# mount /dev/rbd0 /mnt/
[root@client1 ~]# df -h /mnt/
文件系统 容量 已用 可用 已用% 挂载点
/dev/rbd0 7.0G 33M 7.0G 1% /mnt