opennebula4.2管理vmware esxi问题汇总

2013-11-04

问题1:failed: cp: omitting directory '/vmfs/volumes/1/34c24021539b1bc16507e09ad4553f9b'

Log:

Mon Nov 4 15:01:39 2013 [DiM][I]: New VM state is ACTIVE.

Mon Nov 4 15:01:39 2013 [LCM][I]: New VM state is PROLOG.

Mon Nov 4 15:01:39 2013 [TM][I]: Command execution fail: /srv/cloud/one/var/remotes/tm/shared/clone nebula:/srv/cloud/one/var/datastores/1/34c24021539b1bc16507e09ad4553f9b esxi01:/vmfs/volumes/0/1/disk.0 1 1

Mon Nov 4 15:01:39 2013 [TM][I]: clone: Cloning /vmfs/volumes/1/34c24021539b1bc16507e09ad4553f9b in esxi01:/vmfs/volumes/0/1/disk.0

Mon Nov 4 15:01:39 2013 [TM][E]: clone: Command "cd /vmfs/volumes/0/1; cp /vmfs/volumes/1/34c24021539b1bc16507e09ad4553f9b /vmfs/volumes/0/1/disk.0" failed: cp: omitting directory '/vmfs/volumes/1/34c24021539b1bc16507e09ad4553f9b'

Mon Nov 4 15:01:39 2013 [TM][E]: Error copying nebula:/srv/cloud/one/var/datastores/1/34c24021539b1bc16507e09ad4553f9b to esxi01:/vmfs/volumes/0/1/disk.0

Mon Nov 4 15:01:39 2013 [TM][I]: ExitCode: 1

Mon Nov 4 15:01:39 2013 [TM][E]: Error executing image transfer script: Error copying nebula:/srv/cloud/one/var/datastores/1/34c24021539b1bc16507e09ad4553f9b to esxi01:/vmfs/volumes/0/1/disk.0

Mon Nov 4 15:01:39 2013 [DiM][I]: New VM state is FAILED


解决办法:

nebula脚本代码中CP文件夹命令错误,缺少-r参数:

[oneadmin@nebula ~]$ vi  /srv/cloud/one/var/remotes/tm/shared/clone

其中一行:"cd $DST_DIR; cp $SRC_PATH $DST_PATH"

修改为:"cd $DST_DIR; cp -r $SRC_PATH $DST_PATH"

*************************************************************************************************


问题2:Operation not permitted (running as non-root?)

Log:

Mon Nov 4 15:47:45 2013 [DiM][I]: New VM state is ACTIVE.

Mon Nov 4 15:47:45 2013 [LCM][I]: New VM state is PROLOG.

Mon Nov 4 15:48:02 2013 [LCM][I]: New VM state is BOOT

Mon Nov 4 15:48:02 2013 [VMM][I]: Generating deployment file: /srv/cloud/one/var/vms/4/deployment.0

Mon Nov 4 15:48:02 2013 [VMM][I]: Command execution fail: /srv/cloud/one/var/remotes/vnm/vmware/pre PFZNPjxJRD40PC9JRD48VUlEPjA8L1...................

Mon Nov 4 15:48:02 2013 [VMM][E]: pre: Error executing: ((esxcfg-vswitch vSwitch0 -l|grep one-pg-0) || /sbin/esxcfg-vswitch vSwitch0 --add-pg one-pg-0); /sbin/esxcfg-vswitch vSwitch0 -p one-pg-0 --vlan=10 on host: err: Error during version check: Failed to get vmkernel version: Operation not permitted (running as non-root?)

Mon Nov 4 15:48:02 2013 [VMM][I]: Error during version check: Failed to get vmkernel version: Operation not permitted (running as non-root?)

Mon Nov 4 15:48:02 2013 [VMM][I]: Error during version check: Failed to get vmkernel version: Operation not permitted (running as non-root?)

Mon Nov 4 15:48:02 2013 [VMM][I]: ExitCode: 255

Mon Nov 4 15:48:02 2013 [VMM][I]: out:

Mon Nov 4 15:48:02 2013 [VMM][I]: ExitCode: 0

Mon Nov 4 15:48:02 2013 [VMM][I]: Failed to execute network driver operation: pre.

Mon Nov 4 15:48:02 2013 [VMM][E]: Error deploying virtual machine

Mon Nov 4 15:48:02 2013 [DiM][I]: New VM state is FAILED


解决办法:

esxi端使得普通用户拥有执行esxcfg-vswitch命令的权限:

~# chmod +s /sbin/esxcfg-vswitch

*************************************************************************************************


问题3:deploy: Error executing: virsh -c 'esx://esxi02/?no_verify=1&auto_answer=1' start one-8


Log:

Mon Nov 4 16:23:54 2013 [DiM][I]: New VM state is ACTIVE.

Mon Nov 4 16:23:54 2013 [LCM][I]: New VM state is PROLOG.

Mon Nov 4 16:24:11 2013 [LCM][I]: New VM state is BOOT

Mon Nov 4 16:24:11 2013 [VMM][I]: Generating deployment file: /srv/cloud/one/var/vms/8/deployment.0

Mon Nov 4 16:24:11 2013 [VMM][I]: Successfully execute network driver operation: pre.

Mon Nov 4 16:24:25 2013 [VMM][I]: Command execution fail: /srv/cloud/one/var/remotes/vmm/vmware/deploy '/srv/cloud/one/var/vms/8/deployment.0' 'esxi02' 8 esxi02

Mon Nov 4 16:24:25 2013 [VMM][D]: deploy: Successfully defined domain one-8.

Mon Nov 4 16:24:25 2013 [VMM][E]: deploy: Error executing: virsh -c 'esx://esxi02/?no_verify=1&auto_answer=1' start one-8 err: ExitCode: 1

Mon Nov 4 16:24:25 2013 [VMM][I]: out:

Mon Nov 4 16:24:25 2013 [VMM][I]: error: Failed to start domain one-8

Mon Nov 4 16:24:25 2013 [VMM][I]: error: internal error Could not start domain: FileNotFound - File [0] 8/disk.0/disk.vmdk was not found

Mon Nov 4 16:24:25 2013 [VMM][I]: 

Mon Nov 4 16:24:25 2013 [VMM][I]: ExitCode: 1

Mon Nov 4 16:24:25 2013 [VMM][I]: Failed to execute virtualization driver operation: deploy.

Mon Nov 4 16:24:25 2013 [VMM][E]: Error deploying virtual machine

Mon Nov 4 16:24:25 2013 [DiM][I]: New VM state is FAILED


解决办法:

官方应用市场的ttylinux镜像命名存在一点问题,需要将ttylinux.vmdk名称改为disk.vmdk

[oneadmin@nebula ~]$ cd var/datastores/

[oneadmin@nebula datastores]$ ls

0  1  2

[oneadmin@nebula datastores]$ cd 1/

[oneadmin@nebula 1]$ ls

34c24021539b1bc16507e09ad4553f9b

[oneadmin@nebula 1]$ cd 34c24021539b1bc16507e09ad4553f9b/

[oneadmin@nebula 34c24021539b1bc16507e09ad4553f9b]$ ls

ttylinux-flat.vmdk  ttylinux.vmdk

[oneadmin@nebula 34c24021539b1bc16507e09ad4553f9b]$ mv ttylinux.vmdk disk.vmdk

[oneadmin@nebula 34c24021539b1bc16507e09ad4553f9b]$ ls

disk.vmdk  ttylinux-flat.vmdk

[oneadmin@nebula 34c24021539b1bc16507e09ad4553f9b]$ 

*************************************************************************************************

问题4:sh: /var/tmp/one/vmm/vmware/attach_disk: Permission denied

Log:

Wed Nov 6 14:34:51 2013 [VMM][I]: Successfully execute transfer manager driver operation: tm_attach.

Wed Nov 6 14:34:52 2013 [VMM][I]: Remote worker node files not found

Wed Nov 6 14:34:52 2013 [VMM][I]: Updating remotes

Wed Nov 6 14:35:10 2013 [VMM][I]: Command execution fail: /var/tmp/one/vmm/vmware/attach_disk 'one-18' '/vmfs/volumes/0/18/disk.2' 'VMWare' '4' 'drv_message' 18 esxi02

Wed Nov 6 14:35:10 2013 [VMM][I]: sh: /var/tmp/one/vmm/vmware/attach_disk: Permission denied

Wed Nov 6 14:35:10 2013 [VMM][I]: ExitCode: 126

Wed Nov 6 14:35:10 2013 [VMM][I]: Failed to execute virtualization driver operation: attach_disk.

Wed Nov 6 14:35:10 2013 [VMM][E]: Error attaching new VM Disk

解决办法:

在oned.conf中修改Nebula默认脚本路径:

SCRIPTS_REMOTE_DIR=/var/tmp/one

修改为目前的脚本路径,比如:

SCRIPTS_REMOTE_DIR=/srv/cloud/one/var/remotes

*************************************************************************************************

问题5:mkimage脚本文件

Log:

Thu Nov 7 15:17:40 2013 [VMM][I]: Command execution fail: /srv/cloud/one/var/remotes/tm/shared/mkimage 256 vmdk_vmfs esxi02:/vmfs/volumes/0/36/disk.2 36 0

Thu Nov 7 15:17:40 2013 [VMM][I]: mkimage: Making filesystem of 256M and type vmdk_vmfs at esxi02:/vmfs/volumes/0/36/disk.2

Thu Nov 7 15:17:40 2013 [VMM][E]: mkimage: Command "export PATH=/usr/sbin:/sbin:$PATH

Thu Nov 7 15:17:40 2013 [VMM][I]: # export PATH=/usr/sbin:/sbin:/bin:/sbin:/usr/bin:/srv/cloud/one/bin:/usr/local/bin:/var/lib/gems/1.8/bin/:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/srv/cloud/one/bin

Thu Nov 7 15:17:40 2013 [VMM][I]: dd if=/dev/zero of=/vmfs/volumes/0/36/disk.2 bs=1 count=1 seek=256M

Thu Nov 7 15:17:40 2013 [VMM][I]: vmkfstools -U /vmfs/volumes/0/36/disk.2/disk.vmdk; rm -f /vmfs/volumes/0/36/disk.2/*; vmkfstools -c 256M -d thin /vmfs/volumes/0/36/disk.2/disk.vmdk" failed: 1+0 records in

Thu Nov 7 15:17:40 2013 [VMM][I]: 1+0 records out

Thu Nov 7 15:17:40 2013 [VMM][I]: Failed to delete virtual disk: Not a directory (1310729).

Thu Nov 7 15:17:40 2013 [VMM][I]: rm: cannot stat '/vmfs/volumes/0/36/disk.2/*': Not a directory

Thu Nov 7 15:17:40 2013 [VMM][I]: File_GetFreeSpace: Couldn't statfs /vmfs/volumes/0/36/disk.2/disk.vmdk

Thu Nov 7 15:17:40 2013 [VMM][I]: Failed to create virtual disk: One of the parameters supplied is invalid (1).

Thu Nov 7 15:17:40 2013 [VMM][E]: Could not create image /vmfs/volumes/0/36/disk.2

Thu Nov 7 15:17:40 2013 [VMM][I]: ExitCode: 255

Thu Nov 7 15:17:40 2013 [VMM][I]: Failed to execute transfer manager driver operation: tm_attach.

Thu Nov 7 15:17:40 2013 [VMM][E]: Error attaching new VM Disk: Could not create image /vmfs/volumes/0/36/disk.2

解决办法:

  1. mkimage: Command "export PATH=/usr/sbin:/sbin:$PATH

    修改/srv/cloud/one/var/remotes/tm/shared/mkimage文件,将export PATH=/usr/sbin:/sbin:$PATH修改为export PATH=/usr/sbin:/sbin:$PATH

  2. Failed to delete virtual disk: Not a directory (1310729).

    修改/srv/cloud/one/var/remotes/tm/shared/mkimage文件,修改如下:

# CREATE_IMAGE="$DD if=/dev/zero of=$DST_PATH bs=1 count=1 seek=${SIZE}M"   //注销该行

  CREATE_IMAGE="mkdir -p $DST_PATH"              //插入改行,用于创建文件夹

保存退出;

*************************************************************************************************

问题6:为esxi虚拟机挂载磁盘时提示没有权限创建路径/srv

Log:

省略

解决办法:

在esxi上以root登录执行:

~ # mkdir -p /srv/cloud/one/var/remotes

~ # chown oneadmin:cloud /srv/cloud/one/var/remotes

其他(用于备忘):

~ # chmod +s /sbin/vmkfstools

~ # chmod +s /bin/vim-cmd

*************************************************************************************************

问题6:ESXi5.0的SNMP配置

vicfg-snmp --server esxi01 --username root --password passwd123 --show

vicfg-snmp --server esxi01 --username root --password passwd123 -c public

vicfg-snmp --server esxi01 --username root --password passwd123 -t opennebula@162/public

vicfg-snmp --server esxi01 --username root --password passwd123 --enable

vicfg-snmp --server esxi01 --username root --password passwd123 --test

*************************************************************************************************

问题7:GenericVmConfigFault - Module DevicePowerOn power on failed



Thu Nov 14 09:05:45 2013 [DiM][I]: New VM state is ACTIVE.

Thu Nov 14 09:05:45 2013 [LCM][I]: New VM state is PROLOG.

Thu Nov 14 09:10:44 2013 [LCM][I]: New VM state is BOOT

Thu Nov 14 09:10:44 2013 [VMM][I]: Generating deployment file: /srv/cloud/one/var/vms/74/deployment.0

Thu Nov 14 09:10:44 2013 [VMM][I]: Successfully execute network driver operation: pre.

Thu Nov 14 09:10:58 2013 [VMM][I]: Command execution fail: /srv/cloud/one/var/remotes/vmm/vmware/deploy '/srv/cloud/one/var/vms/74/deployment.0' 'esxi02' 74 esxi02

Thu Nov 14 09:10:58 2013 [VMM][D]: deploy: Successfully defined domain one-74.

Thu Nov 14 09:10:58 2013 [VMM][E]: deploy: Error executing: virsh -c 'esx://esxi02/?no_verify=1&auto_answer=1' start one-74 err: ExitCode: 1

Thu Nov 14 09:10:58 2013 [VMM][I]: out:

Thu Nov 14 09:10:58 2013 [VMM][I]: error: Failed to start domain one-74

Thu Nov 14 09:10:58 2013 [VMM][I]: error: internal error Could not start domain: GenericVmConfigFault - Module DevicePowerOn power on failed.

Thu Nov 14 09:10:58 2013 [VMM][I]:

Thu Nov 14 09:10:58 2013 [VMM][I]:

Thu Nov 14 09:10:58 2013 [VMM][I]: ExitCode: 1

Thu Nov 14 09:10:58 2013 [VMM][I]: Failed to execute virtualization driver operation: deploy.

Thu Nov 14 09:10:58 2013 [VMM][E]: Error deploying virtual machine

Thu Nov 14 09:10:58 2013 [DiM][I]: New VM state is FAILED

解决办法:

当前磁盘使用的是sd模式,该模式改为hd,或者直接修改oned.conf也可。

*************************************************************************************************

问题8:disk.0/disk.vmdk was not found

Thu Nov 14 13:01:03 2013 [DiM][I]: New VM state is ACTIVE.

Thu Nov 14 13:01:03 2013 [LCM][I]: New VM state is PROLOG.

Thu Nov 14 13:04:00 2013 [LCM][I]: New VM state is BOOT

Thu Nov 14 13:04:00 2013 [VMM][I]: Generating deployment file: /srv/cloud/one/var/vms/85/deployment.0

Thu Nov 14 13:04:01 2013 [VMM][I]: Successfully execute network driver operation: pre.

Thu Nov 14 13:04:15 2013 [VMM][I]: Command execution fail: /srv/cloud/one/var/remotes/vmm/vmware/deploy '/srv/cloud/one/var/vms/85/deployment.0' 'esxi02' 85 esxi02

Thu Nov 14 13:04:15 2013 [VMM][D]: deploy: Successfully defined domain one-85.

Thu Nov 14 13:04:15 2013 [VMM][E]: deploy: Error executing: virsh -c 'esx://esxi02/?no_verify=1&auto_answer=1' start one-85 err: ExitCode: 1

Thu Nov 14 13:04:15 2013 [VMM][I]: out:

Thu Nov 14 13:04:15 2013 [VMM][I]: error: Failed to start domain one-85

Thu Nov 14 13:04:15 2013 [VMM][I]: error: internal error Could not start domain: FileNotFound - File [0] 85/disk.0/disk.vmdk was not found

Thu Nov 14 13:04:15 2013 [VMM][I]:

Thu Nov 14 13:04:15 2013 [VMM][I]: ExitCode: 1

Thu Nov 14 13:04:15 2013 [VMM][I]: Failed to execute virtualization driver operation: deploy.

Thu Nov 14 13:04:15 2013 [VMM][E]: Error deploying virtual machine

Thu Nov 14 13:04:15 2013 [DiM][I]: New VM state is FAILED

*************************************************************************************************

解决办法:

出现这类问题可能有两种原因:

  1. 目录下不存在该文件,而存在vm-name-flat.vmdk和vm-name.vmdk,那么将vm-name.vmdk更改为disk.vmdk即可。

  2. 目录下存在该文件,那么请确定是否改过vm-name-flat.vmdk的名字,如果改过会出现上述问题。

如何导入esxi虚拟机:

将esxi虚拟机的vm-name.vmdk命名为disk.vmdk,并将该文件和vm-name-flat.vmdk文件压缩,比如:

[root@opennebula CentOS6.4_mini]# ls

CentOS6.4_mini-00-flat.vmdk  CentOS6.4_mini-00.vmdk

[root@opennebula CentOS6.4_mini]# mv CentOS6.4_mini-00.vmdk disk.vmdk

[root@opennebula CentOS6.4_mini]# ls

CentOS6.4_mini-00-flat.vmdk  disk.vmdk

[root@opennebula CentOS6.4_mini]# tar -jcvf ../CentOS6.4_mini-131114.tar.bz2 *

*************************************************************************************************

问题9:为虚拟机添加Volatile Disk

现象:在nebula4.2环境中,为esxi虚拟机创建Volatile Disk的时候remotes/tm/shared/mkimage文件和remotes/vmm/vmware/attach_disk文件不匹配导致不能真确的创建和添加磁盘,同时由于磁盘格式不对,power off虚拟机后无法resume。

remotes/vmm/vmware/attach_disk添加配置文件的磁盘路径:

DISK_PATH="/vmfs/volumes/$DATASTORE/$VM_ID/$DISK_NAME/disk.vmdk" 

remotes/tm/shared/mkimage创建磁盘的名称和路径:

CREATE_IMAGE="$DD if=/dev/zero of=$DST_PATH bs=1 count=1 seek=${SIZE}M"

该命令只是在/vmfs/volumes/$DATASTORE/$VM_ID下创建一个$DISK_NAME磁盘文件,而attach_disk对应的$DISK_NAME是一个目录,该目录中的disk.vmdk才是真正的磁盘文件。其二,使用qemu-img查看磁盘类型显示是raw格式,非vmware的vmdk格式,所有要修改mkimage脚本使其在正确路径下创建磁盘并且是vmdk格式的磁盘。

修改后的mkimage脚本:

#!/bin/bash

SIZE=$1

FSTYPE=$2

DST=$3


VMID=$4

DSID=$5


if [ -z "${ONE_LOCATION}" ]; then

    TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh

else

    TMCOMMON=$ONE_LOCATION/var/remotes/tm/tm_common.sh

fi


. $TMCOMMON


#-------------------------------------------------------------------------------

# Set dst path and dir

#-------------------------------------------------------------------------------

DST_PATH=`arg_path $DST`

DST_HOST=`arg_host $DST`

DST_DIR=`dirname $DST_PATH`


#-------------------------------------------------------------------------------

# Make the new image (file-based)

#-------------------------------------------------------------------------------

# ssh_make_path $DST_HOST $DST_DIR


MKDIR_CMD=`/bin/mkdir -p $DST_PATH`                       //创建目录

CREATE_IMAGE="/usr/bin/qemu-img create -f vmdk $DST_PATH/disk.vmdk ${SIZE}M"                 //使用qemu-img命令创建vmdk格式的disk.vmdk


$MKDIR_CMD

$CREATE_IMAGE


log "Making filesystem of ${SIZE}M and type $FSTYPE at $DST"


exit 0


替换原有mkimage脚本,并且创建/vmfs/目录指向存储目录:

[root@nebula datastores]# ls

0  1  100  101  102  2

[root@nebula datastores]# pwd

/srv/cloud/one/var/datastores

[root@nebula datastores]# mkdir /vmfs

[root@nebula datastores]# chown oneadmin:cloud /vmfs

[root@nebula datastores]# ln -s /srv/cloud/one/var/datastores   /vmfs/volumes

*************************************************************************************************

问题10:

esxi新建用户需要执行一些命令,在esxi端要做的操作:

chmod +s /sbin/vmkvsitools

chmod +s /sbin/esxcfg-vswitch

chmod +s /bin/vim-cmd

chmod +s /sbin/mkdir

*************************************************************************************************




原文地址:https://www.cnblogs.com/myiaas/p/4161343.html