用Vmware虚拟机新建4台机进行实验,主要是为了对ceph有直观的认识。

一、 准备5台主机

IP地址                   主机名(Hostname)

192.168.xxx.xxx             admin-node      (该主机用于管理,后续的ceph-deploy工具都在该主机上进行操作)

192.168.xxx.xxx              node1               (监控节点)

192.168.xxx.xxx              node2               (osd.0节点)

192.168.xxx.xxx               node3                (osd.1节点)

二、在虚拟机上安装 centos7操作系统

修改更新centos7的源

中科大源:  1.基源        2.ceph源

三、配置你的管理主机,使之可通过 SSH无密码访问各节点,口令留空。生成 SSH 密钥对,执行ssh-keygen命令

把公钥拷贝到各节点: :ssh-copy-id  root@ceph-server 这里直接用root用户,用root账户能避免很多权限问题。

四、安装ceph-deploy,centos7系统中配置好上面的源后,执行yum install ceph-deploy 便可安装

 

五、$mkdir my-cluster     $cd my-cluster

 

六、ceph-deploy new monitorNode1, monitorNode2

需要建立monitor的节点才进行new]执行该命令后将在当前目录生产ceph.conf 文件

 

七、利用ceph-deploy为各节点安装ceph

$ceph-deploy install cephAdmin,node1,node2,node3

 

八、配置初始 monitor(s)、并收集所有密钥:

$ceph-deploy mon create-initial

完成上述操作后,当前目录里应该会出现这些密钥环:

  • {cluster-name}.client.admin.keyring
  • {cluster-name}.bootstrap-osd.keyring
  • {cluster-name}.bootstrap-mds.keyring
  • {cluster-name}.bootstrap-rgw.keyring(在Hammer版本或更高版本才有此文件)

九、添加两个 OSD

$ ssh node2  $ mkdir /var/local/osd0  $exit

$ssh node3   $ mkdir /var/local/osd1    $exit

十、从管理节点执行 ceph-deploy 来准备

ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1

十一、激活

$ ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1

【备注:如果在进行激活时出现连接超时,无法正常激活时,需要将各节点的防火墙关闭.

$systemctl staus firewalld  $systemctl  stop  firewalld     $setenforce 0

当出现权限错误时: ERROR: error creating empty object store in /var/local/osd1: (13) Permission denied,需要进行权限操作à


 

十二、用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。

$ ceph-deploy admin admin-node node1 node2 node3

十三、部署了两个osd后,进行健康状况查询:

$ ceph health会出现 HEALTH_WARN 64 pgs degraded; 64 pgs stuck unclean; 64 pgs undersized  此健康警告提示osd不平衡。

解决方法:

1、扩展集群,再增加一个osd。

 $ssh node1 $mkdir /var/local/osd2 $exit  $ceph-deploy osd prepare node1:/var/local/osd2 $ceph-deploy osd activate node1:/var/local/osd2

2、把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段:

osd pool default size = 2

十四、最后执行ceph health将得到 HEALTH_OK