各位小伙伴大家好,我是运维虫子!
是否还在用传统的PC或者服务器来作为存储?
是否在存储文件的时候,因为不够用需要扩容的时候发现设备插满了?
是否因为存储设备损坏,而不得不去支付高额的数据恢复费用?
现在通过分布式存储Ceph即可免除上面的烦恼。随着ceph的不断更新,现在部署一个分布式存储系统时间大大缩短。
用Ceph的图来开始我们的文章:
Ceph是什么?可以干什么?
- 什么是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硬盘:
这次和前几篇文章部署zabbix、ELK一样,还是采用容器来部署:
- 配置ansible(这是一个自动化运维工具,可以单独拿出来写一篇,受限于字数,这里就不提了)
yum install bash-completion -y (这是一个命令不全工具,安装以后,所有的东西通过TAB 都能补全)
例如,通过yum install vi 然后tab就能看到可以安装这么多软件。
开始安装ansible
yum install epel-release -y
yum install ansible -y
编辑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
测试ansible是否生效,出现下图,代表配置成功
关闭防火墙并同步时间
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"
安装Python3,因为要执行cephadm需要Python3支持。
ansible ceph -a "yum install -y python3"
ansible ceph -a " python3 -V "
又到了安装docker的时候了,前面几篇文章说过了,这里就不凑字数了。
确定一下docker是否运行以及版本:
ansible ceph -a "docker -v"
到这里,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集群(我这里报错了,原因是因为我云平台用的是OVS的浮动IP,故需要改成实际的内网IP)
安装过程如下:
cephadm bootstrap --mon-ip 10.0.2.2
出现下面提示代表安装完成。这一步需要记下图中的访问地址以及用户名与密码
查看cephadm部署了哪些容器:
访问dashboard,https://ip+8443来访问:
- 安装完整版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所有节点:
ceph orch host ls
查看集群可用存储设备:
添加存储设备
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集群状态,发现已经正常了
打开web界面查看状态,发现可用存储300G。
最后
到目前,ceph就已经安装好了,本次环境是三副本备份数据,3台服务器坏两台对数据完全没影响,数据高度安全可靠。
接下来就会写如何挂载ceph存储到Linux和windows系统中,也或者当做云硬盘提供给云服务器。
我的所有文章全是别码字别安装的,按照文章完全可以成功部署。
希望大家能够多多关注,多年致力于互联网搬砖,各种互联网技术都稍有涉猎。如果大家遇到一些问题可以私信或者留言给我。我们可以一起讨论!