Ceph

CentOS7 CEPH测试环境搭建步骤

More than 1 year has passed since last update.

使用的官方的教程,ceph-deploy进行安装和部署。

环境准备

最小要求是准备4台虚拟机。1台作为管理机,作用是安装程序和创建服务应用。
1台为mon节点,2台为node节点。mon和node节点都需要挂载一块除系统使用外的硬盘,用来做存储用。

为了安装能顺利进行,还要准备相应的账号、sudo权限、镜像站点、安全配置

测试环境使用的是CENTOS7,安装按照默认即可。

系统参数配置

  • 账号。ceph需要一个统一的不是ceph的账号,这个普通账号需要具有sudo权限,并且sudo应该是免密码的。本测试使用qyceph。

创建账号

useradd qyceph
passwd qyceph
  • sudo配置

使用visudo编辑sudo配置

#comment the tty conf
#Defaults    requiretty

#add
qyceph  ALL=(ALL)   NOPASSWD: ALL

  • 镜像站点

找了几个镜像站点

https://mirrors.163.com/ceph/
https://mirrors.aliyun.com/ceph/
  • 关闭selinux和firewalld
  • 为了方便访问配置hostname 以及 hosts

每个节点都写一样的hosts,例如:

192.168.1.240 ceph-admin
192.168.1.241 ceph-node1
192.168.1.242 ceph-node2
192.168.1.243 ceph-node3

*统一配置timezone和ntpserver
为了保持时间一直需要安装ntpdate并配置crontab做时间同步

timedatectl set-timezone 'Asia/Shanghai'
yum install ntpdate -y

#crontab add 
*/10 * * * * ntpdate cn.pool.ntp.org
  • admin节点需要生成ssh-key,并同步到其他节点
ssh-keygen

ssh-copy-id qyceph@192.168.1.241
ssh-copy-id qyceph@192.168.1.242
ssh-copy-id qyceph@192.168.1.243

安装

Admin节点上

mkdir my-cluster
cd my-cluster
  • 创建ceph集群并定义mon节点,命令会创建ceph.conf并将ceph-node1节点定义为mon
ceph-deploy new ceph-node1 ceph-node2

默认的osd是3份,为了测试可以修改ceph.conf,在[global]下增加配置改为2.
另外一个就是最好增加 public network={ip-address}/{netmask}

  osd pool default size = 2
  public network={ip-address}/{netmask}
  • 给每个节点安装ceph程序
ceph-deploy install ceph-node1 ceph-node2 ceph-node3

如果这样安装比较慢,可以直接手动在节点上安装好epel和ceph的安装包。

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#ceph.repo需要自己配置
yum install ceph-osd ceph-common ceph-selinux ceph-release ceph-mds ceph-mon ceph-radosgw ceph-base -y
  • 初始化mon节点
ceph-deploy mon create-initial

此命令会将之前定义的mon节点进行初始化配置,新的版本会自动启动mon节点,完成选举。
此命令完成后,会在my-cluster目录创建keyrings
{cluster-name}.client.admin.keyring
{cluster-name}.bootstrap-osd.keyring
{cluster-name}.bootstrap-mds.keyring

  • 创建osd。格式是 主机:磁盘
ceph-deploy osd prepare ceph-node1:/dev/vdb ceph-node2:/dev/vdb ceph-node3:/dev/vdb

在ceph-node1节点上

  • 查看集群状态
ssh ceph-node1 
ceph health

至此,一个测试集群就已经可以测试使用了。不过,现在只能做object storage,其他的还不能做。需要在mon节地上部署增加功能才能支持rbd和cephfs。

ceph集群扩展

增加一个mon节点

可以新配置一个节点,只要系统配置和软件都配置好了,可以使用ceph-deploy方便的将节点加入。

注意事项:一定要注意机器的时间保持一致,尤其是时区。

ceph-deploy mon create ceph-node4

如果增加过程都正常,最后会提示
ceph-node4 is not defined in mon initial members

这主要是ceph动态的将ceph-node4加入到mon里。一下命令查看mon信息

ceph quorum_status --format json-pretty