Log:
# tail -f /var/log/nova/compute.log
……………………………………
2014-05-18 17:47:10.433 2409 TRACE nova.openstack.common.rpc.amqp ProcessExecutionError: Unexpected error while running command.
2014-05-18 17:47:10.433 2409 TRACE nova.openstack.common.rpc.amqp Command: ssh 192.168.0.67 mkdir -p /openstack/nova/instances/cca76d9c-c5eb-476c-b125-a6b9b93a0c17
2014-05-18 17:47:10.433 2409 TRACE nova.openstack.common.rpc.amqp Exit code: 255
2014-05-18 17:47:10.433 2409 TRACE nova.openstack.common.rpc.amqp Stdout: ''
2014-05-18 17:47:10.433 2409 TRACE nova.openstack.common.rpc.amqp Stderr: 'Host key verification failed. '
2014-05-18 17:47:10.433 2409 TRACE nova.openstack.common.rpc.amqp
2014-05-18 17:47:55.835 2409 AUDIT nova.compute.resource_tracker [-] Auditing locally available compute resources
2014-05-18 17:47:56.444 2409 WARNING nova.compute.resource_tracker [-] [instance: cca76d9c-c5eb-476c-b125-a6b9b93a0c17] Instance not resizing, skipping migration.
……………………………………
Analysis:
该命令以nova用户执行,nova用户没有配置ssh双向无秘钥认证,所以在执行"ssh 192.168.0.67 mkdir -p /openstack/nova/instances/cca76d9c-c5eb-476c-b125-a6b9b93a0c17"提示 'Host key verification failed. ',解决办法是在计算节点的nova用户下配置无秘钥双向认证。
Solution:
(1).在一台计算节点上执行如下(如:192.168.0.67):
# usermod -d /var/lib/nova -s /bin/bash nova //nova用户可执行bash
# su - nova
$ ssh-keygen //生成秘钥
$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
$ echo "Host *" >> ~/.ssh/config //允许任何主机连接
$ echo "StrictHostKeyChecking no" >> ~/.ssh/config //不提示(yes/no)连接
$ echo 'UserKnownHostsFile /dev/null' >> ~/.ssh/config //knownhosts输出到/dev/null
$ chown -R nova:nova ~/.ssh //设置目录所属用户
$ chmod 600 ~/.ssh/authorized_keys //设置authorized_keys权限
$ chmod 600 ~/.ssh/id_rsa.pub //设置id_rsa.pub权限
**********************************************************************************************************************
(2).在其他计算节点执行如下:
# usermod -d /var/lib/nova -s /bin/bash nova //nova用户可执行bash
# scp -r root@192.168.0.67:/var/lib/nova/.ssh /var/lib/nova/ //拷贝秘钥到各个计算节点
# chown -R nova:nova /var/lib/nova/.ssh //设置目录所属用户
# chmod 600 /var/lib/nova/.ssh/authorized_keys //设置authorized_keys权限
# chmod 600 /var/lib/nova/.ssh/id_rsa.pub //设置id_rsa.pub权限
**********************************************************************************************************************
(3).测试:
$ hostname
node07
$ ssh node08
Warning: Permanently added 'node08,192.168.0.68' (RSA) to the list of known hosts.
$ hostname
node08
**********************************************************************************************************************