目录
ceph
ceph被称作面向未来的存储
中文手册:
ceph可以实现的存储方式:
-
块存储:提供像普通硬盘一样的存储,为使用者提供“硬盘”
-
文件系统存储:类似于NFS的共享方式,为使用者提供共享文件夹
-
对象存储:像百度云盘一样,需要使用单独的客户端
-
ceph还是一个分布式的存储系统,非常灵活。如果需要扩容,只要向ceph集中增加服务器即可。
-
ceph存储数据时采用多副本的方式进行存储,生产环境下,一个文件至少要存3份。ceph默认也是三副本存储。
ceph的构成
-
Ceph OSD 守护进程: Ceph OSD 用于存储数据。此外,Ceph OSD 利用 Ceph 节点的 CPU、内存和网络来执行数据复制、纠删代码、重新平衡、恢复、监控和报告功能。存储节点有几块硬盘用于存储,该节点就会有几个osd进程。
-
Ceph Mon监控器: Ceph Mon维护 Ceph 存储集群映射的主副本和 Ceph 存储群集的当前状态。监控器需要高度一致性,确保对Ceph 存储集群状态达成一致。维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。
-
MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据。
-
RGW:对象存储网关。主要为访问ceph的软件提供API接口。
-
Ceph OSD 守护进程: Ceph OSD 用于存储数据。此外,Ceph OSD 利用 Ceph 节点的 CPU、内存和网络来执行数据复制、纠删代码、重新平衡、恢复、监控和报告功能。存储节点有几块硬盘用于存储,该节点就会有几个osd进程。
-
Ceph Mon监控器: Ceph Mon维护 Ceph 存储集群映射的主副本和 Ceph 存储群集的当前状态。监控器需要高度一致性,确保对Ceph 存储集群状态达成一致。维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。
-
MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据。
-
RGW:对象存储网关。主要为访问ceph的软件提供API接口。
搭建ceph集群
节点准备
主机名 |
ip地址 |
node1 |
192.168.4.11/24 |
node2 |
192.168.4.12/24 |
node3 |
192.168.4.13/24 |
client1 |
192.168.4.10/24 |
关机,为node1-node3各额外再添加2块20GB的硬盘
# 查看添加的硬盘,注意硬盘名字
[root@node1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 30G 0 disk
└─vda1 253:1 0 30G 0 part /
vdb 253:16 0 20G 0 disk
vdc 253:32 0 20G 0 disk
配置yum源。除了系统yum源以外,还需要配置ceph的yum源
# 在真机上提供yum源。真机务必关掉防火墙
[root@zzgrhel8 ~]# yum install -y vsftpd
[root@zzgrhel8 ~]# systemctl start vsftpd
[root@zzgrhel8 ~]# mkdir /var/ftp/ceph
[root@zzgrhel8 ~]# cp /linux-soft/2/ceph10.iso /iso/
[root@zzgrhel8 ~]# vim /etc/fstab # 追加一行如下
/iso/ceph10.iso /var/ftp/ceph iso9660 defaults,loop 0 0
[root@zzgrhel8 ~]# mount -a
[root@zzgrhel8 ~]# df -h /var/ftp/ceph/
文件系统 容量 已用 可用 已用% 挂载点
/dev/loop3 284M 284M 0 100% /var/ftp/ceph
[root@zzgrhel8 ~]# ls /var/ftp/ceph/
EULA MON README Tools
GPL OSD RPM-GPG-KEY-redhat-release TRANS.TBL
# 在node1-3节点上配置yum
[root@node1 ~]# cat /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl=ftp://192.168.4.254/centos-1804 #写放ftp的那台地址
enabled=1
gpgcheck=0
[root@node1 ~]# vim /etc/yum.repos.d/ceph.repo
[osd]
name=ceph osd
baseurl=ftp://192.168.4.254/ceph/OSD
enabled=1
gpgcheck=0
[mon]
name=ceph mon
baseurl=ftp://192.168.4.254/ceph/MON
enabled=1
gpgcheck=0
[tools]
name=ceph tools
baseurl=ftp://192.168.4.254/ceph/Tools
enabled=1
gpgcheck=0
[root@node1 ~]# yum repolist
... ...
repolist: 10,013
[root@node1 ~]# scp /etc/yum.repos.d/ceph.repo 192.168.4.12:/etc/yum.repos.d/
[root@node1 ~]# ^12^13
[root@node1 ~]# ^13^10
-
各节点务必关闭selinux和防火墙
-
集群安装前的准备工作
# ceph为我们提供了一个ceph-deploy工具,可以在某一节点上统一操作全部节点(ansible也有这个功能)
# 将Node1作为部署节点,将来的操作都在node1上进行。这样,需要node1能够免密操作其他主机
[root@node1 ~]# ssh-keygen # 生成密钥对
[root@node1 ~]# for i in {10..13}
> do
> ssh-copy-id 192.168.4.$i
> done
# 在所有的主机上配置名称解析。注意,解析的名字必须是该机器的主机名
[root@node1 ~]# vim /etc/hosts # 增加4行
... ...
192.168.4.10 client1
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3
[root@node1 ~