Ceph

ε祈祈猫儿з 提交于 2020-03-16 08:14:51

ceph

准备四台KVM虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能:
创建1台客户端虚拟机
创建3台存储集群虚拟机
配置主机名、IP地址、YUM源
修改所有主机的主机名
配置无密码SSH连接
配置NTP时间同步
创建虚拟机磁盘

使用4台虚拟机,1台客户端、3台存储集群服务器。所有主机的主机名及对应的IP地址如下所示。
client eth0 192.168.4.10/24 #1台客户端
node1 eth0 192.168.4.11/24
node2 eth0 192.168.4.12/24
node3 eth0 192.168.4.13/24
--------------------------------------------------
步骤一:安装前准备

1)为所有机子配置yum源服务器(真机作为yum源)。
[root@room9pc01 ~]# yum -y install vsftpd #真机默认已经安装
[root@room9pc01 ~]# mkdir /var/ftp/ceph
[root@room9pc01 ~]# mount -o loop rhcs2.0-rhosp9-20161113-x86_64.iso /var/ftp/ceph
[root@room9pc01 ~]# systemctl restart vsftpd
----------------------------------------------------------------------------------------------------------------------------
在node1上操作:

2)所有虚拟机都需要配置YUM源。
# cat /etc/yum.repos.d/ceph.repo
[mon]
name=mon
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON
gpgcheck=0
[osd]
name=osd
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD
gpgcheck=0
[tools]
name=tools
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools
gpgcheck=0

# scp /etc/yum.repos.d/ceph.repo root@192.168.4.10:/etc/yum.repos.d/ #远程拷贝给其他虚拟机,实现所有机子都有yum源
# scp /etc/yum.repos.d/ceph.repo root@192.168.4.12:/etc/yum.repos.d/
# scp /etc/yum.repos.d/ceph.repo root@192.168.4.13:/etc/yum.repos.d/
----------------------------------------------------------------------------------------------------------------------------
3)修改/etc/hosts并同步到所有主机。
警告:/etc/hosts解析的域名必须与本机主机名一致!!!!

# vim /etc/hosts
... ...
192.168.4.10 client
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3

警告:/etc/hosts解析的域名必须与本机主机名一致!!!!
---------------------------------------------------
[root@node1 ~]# for i in 10 11 12 13
> do
> scp /etc/hosts 192.168.4.$i:/etc/
> done


[root@node1 ~]# for i in 10 11 12 13
> do
> scp /etc/yum.repos.d/ceph.repo 192.168.4.$i:/etc/yum.repos.d/
> done


3)配置无密码连接(包括自己远程自己也不需要密码)。
[root@node1 ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
[root@node1 ~]# for i in 10 11 12 13
> do
> ssh-copy-id 192.168.4.$i
> done
-------------------------------------------------
修改真机!!!

# vim /etc/chrony.conf

修改下面的这2行
... ...
# Allow NTP client access from local network.
allow 192.168.4.0/24 #取消注释,然后写成这样

# Serve time even if not synchronized to a time source.
local stratum 10 #取消注释,然后写成这样
... ...
-------------------------------------------------
4个虚拟机都要改!!!

# vim /etc/chrony.conf
server 192.168.4.254 iburst #加上这句话!!!

# systemctl restart chronyd


物理机上为每个虚拟机准备3块磁盘。(可以使用命令,也可以使用图形直接添加)
----------------------------------------------------
node1,2,3都查一下

# rpm -qa | grep ceph
-------------------------------------------------------
node1上操作:

# cd /root/ceph-cluster #必须在此目录下
[root@node1 ceph-cluster]# ls
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring #这个目录下有这3个文件
# ceph-deploy mon create-initial #这一步的作用是把该拷贝的文件都拷贝过去,把该起的服务都起来。
# ls /etc/ceph/ #node1,2,3都能看到
ceph.client.admin.keyring ceph.conf rbdmap tmp7CTEGu
# systemctl status ceph-mon@node1.service #node2,3这2台虚拟机上要改称对应的@node2,@node3才能查询

可以看到以下页面
● ceph-mon@node1.service - Ceph cluster monitor daemon
...
Active: active (running) since 二 2018-11-13 14:11:21 CST; 6min ago #出现active,成功
...


[root@node1 ceph-cluster]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQAWa+pbX2K9KxAAbsWuqVO8BQFdVtRM0tnCKw== #这个是密码,谁要用就scp拷贝给谁,或者直接复制


# ceph -s

#可以看到有node1,node2,node3
... ...
monmap e1: 3 mons at {node1=192.168.4.11:6789/0,node2=192.168.4.12:6789/0,node3=192.168.4.13:6789/0}
----------------------------------------------------------------------------
# systemctl status ceph-mon@node2.service #node2上查询
# systemctl status ceph-mon@node3.service #node3上查询
--------------------------------------------------------------------------------
node1,2,3都要操作:

# parted /dev/vdb mklabel gpt
出现以下提示不用在意
信息: You may need to update /etc/fstab.

# parted /dev/vdb mkpart primary 1M 50%
信息: You may need to update /etc/fstab.

# parted /dev/vdb mkpart primary 50% 100%
信息: You may need to update /etc/fstab.

# chown ceph.ceph /dev/vdb1
# chown ceph.ceph /dev/vdb2

#这两个分区用来做存储服务器的日志journal盘
----------------------------------------------------------------------------------
node1上操作:

# cd /root/ceph-cluster/
# ceph-deploy disk zap node1:vdc node1:vdd #此步骤相当于远程node1,然后帮执行这个命令
# ceph-deploy disk zap node2:vdc node2:vdd #此步骤相当于远程node2,然后帮执行这个命令
# ceph-deploy disk zap node3:vdc node3:vdd #此步骤相当于远程node3,然后帮执行这个命令

如果出现这个错误提示,则可能因为没有在这个目录下操作cd /root/ceph-cluster/
[ceph_deploy][ERROR ] ConfigError: Cannot load config: [Errno 2] No such file or directory: 'ceph.conf'; has `ceph-deploy new` been run in this directory?
-----------------------------------------------------------------------------------
# ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
# ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
# ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2

# ceph -s #查看集群状态

可以看到此页面
[root@node1 ceph-cluster]# ceph -s
... ...
health HEALTH_OK #出现这个HEALTH_OK,才是成功的。
... ...
monmap e1: 3 mons at {node1=192.168.4.11:6789/0,node2=192.168.4.12:6789/0,node3=192.168.4.13:6789/0}
election epoch 4, quorum 0,1,2 node1,node2,node3
osdmap e34: 6 osds: 6 up, 6 in #可以看到有6个osd存储空间
--------------------------------------------
2)常见错误(非必须操作)
如果查看状态包含如下信息,说明时间没有同步,如果同步后,等待个30秒,就能同步了。
health: HEALTH_WARN
clock skew detected on node2, node3…

把所有虚拟机vim /etc/chrony.conf
...
#server 0.rhel.pool.ntp.org iburst #这些都要注释掉
#server 1.rhel.pool.ntp.org iburst #这些都要注释掉
#server 2.rhel.pool.ntp.org iburst #这些都要注释掉
#server 3.rhel.pool.ntp.org iburst #这些都要注释掉
server 192.168.4.254 iburst #只要这一行,只跟192.168.4.254同步

# systemctl restart chronyd

如果状态还是失败,可以尝试执行如下命令,重启ceph服务:
[root@node1 ~]# systemctl restart ceph\*.service ceph\*.target

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!