用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 来准备 OSD
$ ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1
十一、激活 OSD
$ 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,需要进行权限操作à $ chmod –R 777 /var/local/osd1/
】
十二、用 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