openstack调整内存大小遇到的坑

By | 2018年4月12日

先说下环境,openstack使用的是本地磁盘.

因为没有用共享存储,所以刚迁移就报错了.如下

tailf /var/log/nova/nova-compute.log

2017-02-24 18:21:29.088 28511 ERROR oslo_messaging.rpc.server     raise error.inner_exception
2017-02-24 18:21:29.088 28511 ERROR oslo_messaging.rpc.server ResizeError: Resize error: not able to execute ssh command: Unexpected error while running command.
2017-02-24 18:21:29.088 28511 ERROR oslo_messaging.rpc.server Command: ssh -o BatchMode=yes x.x.x.x mkdir -p /var/lib/nova/instances/a3477397-66a5-4f53-9010-a8413c1a8b70
2017-02-24 18:21:29.088 28511 ERROR oslo_messaging.rpc.server Exit code: 255
2017-02-24 18:21:29.088 28511 ERROR oslo_messaging.rpc.server Stdout: u''
2017-02-24 18:21:29.088 28511 ERROR oslo_messaging.rpc.server Stderr: u'Host key verification failed.\r\n'

查看信息可以知道,调整大小,需要openstack的nova节点和ssh通信,配置免密钥通信

配置双向认证

usermod  -s /bin/bash nova
echo "nova"|passwd --stdin nova
su - nova
ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa
ssh-copy-id  nova@x.x.x.x```
记得一定要修改nova用户的属性.必须做nova用户的免key认证.

修改了之后,再次执行
又报错了,看日志
2018-04-12 16:06:36.742 37501 ERROR nova.compute.manager [instance: ceee2f47-b2d4-407d-8067-c69f840f7537] Command: mv /home/nova/instances/ceee2f47-b2d4-407d-8067-c69f840f7537 /home/nova/instances/ceee2f47-b2d4-407d-8067-c69f840f7537_resize
2018-04-12 16:06:36.742 37501 ERROR nova.compute.manager [instance: ceee2f47-b2d4-407d-8067-c69f840f7537] Stderr: 'mv: cannot stat \xe2\x80\x98/home/nova/instances/ceee2f47-b2d4-407d-8067-c69f840f7537\xe2\x80\x99: No such file or directory\n'
2018-04-12 16:06:36.997 37501 ERROR oslo_messaging.rpc.server Command: mv /home/nova/instances/ceee2f47-b2d4-407d-8067-c69f840f7537 /home/nova/instances/ceee2f47-b2d4-407d-8067-c69f840f7537_resize
2018-04-12 16:06:36.997 37501 ERROR oslo_messaging.rpc.server Stderr: 'mv: cannot stat \xe2\x80\x98/home/nova/instances/ceee2f47-b2d4-407d-8067-c69f840f7537\xe2\x80\x99: No such file or directory\n'
2018-04-12 16:07:16.554 37501 ERROR nova.compute.manager OSError: [Errno 2] No such file or directory: '/home/nova/instances'

发现是找不到目录,但是怎么会找不到目录呢,后来发现原nova节点和目的节点的本地磁盘存储路径不一样,后来做了软连接,
ln -s /home/nova /data/nova
问题解决.然后进入dashboad里,继续扩容.却发现云主机关闭了,状态变成了错误(error).重启按钮什么 都没有了,
只有锁定虚拟机和解除锁定虚拟机.惊呆了有没有...
马上去nova节点看看磁盘文件还在不在,发现还在,还好.数据没丢失.
然后又看了下dashboad界面,发现没什么可以恢复的.先把磁盘文件备份一份再说.
花了10多分钟备份完了之后,又查了下nova的命令,发现了方法
先来一个查询到的nova命令

nova flavor-list 查看配置模板列表

nova image-list 查看镜像列表

nova secgroup-list 查看安全规则

nova boot –flavor m1.tiny –image cirros-0.3.4-x86_64 –nic net-id=DEMO_NET_ID –security-group default –key-name demo-key demo-instance1启动虚机

nova-manage service list nova服务列表,服务所在物理点和域,以及服务状态

nova list 列出虚机,在执行该命令前,得先source 帐户openrc文件

nova show uuid(虚机id) 可以查看该虚机的详细信息,如虚机名,镜像模板,启动时间等等。如果要查看所在物理点,需在执行该命令前,先source 管理员openrc文件

nova live-migration 热迁移

nova evacuate uuid 物理节点号 冷迁移虚机到新的物理点

nova start uuid 开机

nova stop uuid 关机

nova delete uuid 删除虚机

nova reset-state uuid 重置虚机状态

nova reboot –hard uuid 对虚机进行硬重启

nova reset-state –active uuid 将虚机状态重置为active,对于部分error虚机无法删除时,运行该命令再删除一般能将虚机删除

nova get-vnc-console demo-instance1 novncnn 获取到VNC的web登录地址,直接输入获取到的http地址到浏览器即可登录虚机

nova volume-list查看volume列表

nova volume-attach demo-instance1 volume_id 将volume挂载到demo-instance1虚机
————————华丽的分割线—————

先. admin_prc  导入管理员用户密码

然后nova list –all | grep xxx 过滤下云主机,看看现在的状态,果然还是error.

先用nova reset-state uuid 重置虚机状态,再查询下状态,发现还是error.懵逼了有没有…

又试了下.nova reboot –hard uuid 对虚机进行硬重启,发现虚拟机重启了.双击666…

然后再继续dashboad查看,发现终于恢复了.然后继续扩容.最后成功了.

过程是曲折的,不过最后还是完成了。

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注