各位小伙伴大家好,我是运维虫子!

是否还在用传统的PC或者服务器来作为存储?

是否在存储文件的时候,因为不够用需要扩容的时候发现设备插满了?

是否因为存储设备损坏,而不得不去支付高额的数据恢复费用?

现在通过分布式存储Ceph即可免除上面的烦恼。随着ceph的不断更新,现在部署一个分布式存储系统时间大大缩短。

用Ceph的图来开始我们的文章:

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(1)

Ceph是什么?可以干什么?

Ceph是可靠的、可扩展的、统一的、分布式的存储系统。可以同时提供对象存储RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、块存储RBD(Rados Block Device)、文件系统存储Ceph FS(Ceph Filesystem)3种功能。

  • ceph可以干什么?

上面提到Ceph可以用来提供文件系统,块存储,对象存储。基本涵盖了目前所有存储。

文件系统:在Linux里面可以理解为一个目录,比如Ceph可以把存储挂载到某一个指定的文件下。

块存储:类似于一块硬盘。

对象存储:将数据存储为对象,每个对象除了包含数据,还包含数据自身的元数据,通过API进行访问,相当于在文件系统与块存储进行了折中。

部署Ceph准备工作

既然ceph这么优秀,我们就来部署一下ceph。先准备三台服务器---全部4核4G100G硬盘:

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(2)

这次和前几篇文章部署zabbix、ELK一样,还是采用容器来部署:

  • 配置ansible(这是一个自动化运维工具,可以单独拿出来写一篇,受限于字数,这里就不提了

yum install bash-completion -y (这是一个命令不全工具,安装以后,所有的东西通过TAB 都能补全)

例如,通过yum install vi 然后tab就能看到可以安装这么多软件。

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(3)

开始安装ansible

yum install epel-release -y yum install ansible -y

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(4)

编辑ansible主机文件,并且配置免密登录。

[root@ceph01 ~]# cat /etc/hosts 192.168.0.184 ceph01 192.168.0.197 ceph02 192.168.0.198 ceph03 cat /etc/ansible/hosts |grep -v ^# | grep -v ^$ [ceph] ceph01 ceph02 ceph03

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(5)

测试ansible是否生效,出现下图,代表配置成功

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(6)

关闭防火墙并同步时间

ansible ceph -a "systemctl disable --now firewalld" ansible ceph -a "setenforce 0" ansible ceph -a "yum install ntpdate -y" ansible ceph -a "ntpdate time1.aliyun.com"

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(7)

安装ntpdate

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(8)

同步时间

安装Python3,因为要执行cephadm需要Python3支持。

ansible ceph -a "yum install -y python3" ansible ceph -a " python3 -V "

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(9)

又到了安装docker的时候了,[呲牙]前面几篇文章说过了,这里就不凑字数了。

确定一下docker是否运行以及版本:

ansible ceph -a "docker -v"

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(10)

到这里,ceph的准备工作就完成了。

安装Ceph
  • 获取cephadm脚本并且使脚本可以执行。

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

  • 安装cephadm到ceph01节点

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

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(11)

  • 引导最小的ceph集群(我这里报错了,原因是因为我云平台用的是OVS的浮动IP,故需要改成实际的内网IP)

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(12)

安装过程如下:

cephadm bootstrap --mon-ip 10.0.2.2

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(13)

出现下面提示代表安装完成。这一步需要记下图中的访问地址以及用户名与密码

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(14)

查看cephadm部署了哪些容器:

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(15)

访问dashboard,https://ip 8443来访问:

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(16)

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(17)

  • 安装完整版ceph三节点集群

安装ceph命令

cephadm add-repo --release octopus cephadm install ceph-common ceph -v ceph version 15.2.5 (2c93eff00150f0cc5f106a559557a58d3d7b6f1f) octopus (stable)

上图中看到集群处于warning状态,可用主机是1,接下来就要扩容到三个节点。

ceph orch host add ceph02 ceph orch host add ceph03

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(18)

查看ceph所有节点:

ceph orch host ls

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(19)

查看集群可用存储设备:

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(20)

添加存储设备

ceph orch daemon add osd ceph01:/dev/vdb ceph orch daemon add osd ceph02:/dev/vdb ceph orch daemon add osd ceph03:/dev/vdb

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(21)

查看ceph集群状态,发现已经正常了

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(22)

打开web界面查看状态,发现可用存储300G。

数据库常用的存取控制方法有哪些(分布式存储Ceph:摆脱传统的存储服务器)(23)

最后

到目前,ceph就已经安装好了,本次环境是三副本备份数据,3台服务器坏两台对数据完全没影响,数据高度安全可靠。

接下来就会写如何挂载ceph存储到Linux和windows系统中,也或者当做云硬盘提供给云服务器。

我的所有文章全是别码字别安装的,按照文章完全可以成功部署。

希望大家能够多多关注,多年致力于互联网搬砖,各种互联网技术都稍有涉猎。如果大家遇到一些问题可以私信或者留言给我。我们可以一起讨论!

,