编译ceph源码生成rpm包,用rpm包直接部署ceph环境。遇到的问题
1.ceph-deploy new node1的时候报错:[ceph_deploy][ERROR ] File "/usr/lib/python2.7/site-packages/ceph_deploy/util/ssh.py", line 15, in can_connect_passwordless
[ceph_deploy][ERROR ] if not remoto.connection.needs_ssh(hostname):,网上好多方法我都试过了,最终记录一下解决办法
.
修改/usr/lib/python2.7/site-packages/ceph_deploy/util/ssh.py 脚本,注释掉如下代码
#if not remoto.connection.needs_ssh(hostname):
# return True
2. ceph-deploy --overwrite-conf mon create-initial 命令初始化mon报错:RuntimeError: command returned non-zero exit status: 2
转载地址:http://www.kendd.cn/?p=205
原因:ceph-deploy的版本太低了。
解决办法:安装新的ceph-deploy ,从ceph官网下载即可。https://download.ceph.com/rpm-kraken/el7/noarch/
3. ceph-deploy --overwrite-conf mon create-initial 命令初始化mon继续报错:admin_socket: exception getting command descriptions: [Errno 2] No such file or directory
查看警告有:provide hostname must match remote hostname
修改host的名字和/etc/hosts文件中的名字一致,修改hostname的步骤如下:
《1》hostname
《2》hostnamectl set-hostname node2
《3》hostname
查看:hostnamectl
查看:cat /etc/sysconfig/network
4.ceph-deploy --overwrite-conf mon create-initial 命令初始化mon继续报错:no valid command found; 10 closest matches:
node1执行不成功,后面两个节点执行成功了
修改步骤如下:在报错的节点执行:sudo pkill ceph,然后再执行ceph-deploy --overwrite-conf mon create-initial。顺利解决
5. ceph-deploy --overwrite-conf osd create node1 ....创建osd报错:unrecognized arguments: --data /dev/vdc
命令:ceph-deploy osd create --help查询,发现没有create命令,而且ceph-deploy的版本是1.5.38
经过查阅资料,得知可能是ceph-deploy的版本的问题,系统自带的epel源中的版本太低,另外重新下载ceph-deploy2.0以上的版本
下载ceph-deploy的rpm包路径:http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/,成功解决问题
6.ceph-deploy --overwrite-conf osd create node1 --data /dev/vdc --block-db /dev/vdb2 --block-wal /dev/vdb1 报错如下:ceph-volume lvm create: error: GPT headers found, they must be removed on: /dev/vdc
切记:如果把一个osd节点日志和数据等分开目录,不要给数据盘分区。由于我的磁盘vdc已经创建了osd,所以我去掉vdd的分区,用vdd当一个osd节点的数据盘。
清理vdd分区:
1.dmsetup ls
Umount /var/lib/ceph/osd/ceph-*
rm -rf /var/lib/ceph/osd/ceph-*
demset remove ceph-........(先删除lvm字符串,也就是lsblk中的串)
wipefs -af /dev/vdh(有串的盘),清完这个字符串以后再清理这个盘
再次创建osd的数据盘和其他盘分开,就成功了。但是一个osd的数据盘应该对应一个磁盘的(如下图)或者一个磁盘的分区
这是成功的
再用vdd做数据盘再创建一个osd就是失败的、