VMware Cloud Community
zinovik
Contributor
Contributor

Cannot migrate VM with VMotion, virtual disk is not accessible

Hello.

I'm trying to setup VMotion for my ESX cluster. I have two Dell PowerEdge 1950 both

running ESX 3.5 with vCenter 2.5 (it is installed in VM). I mounted NFS datastore to

both servers from NetApp FAS 3020c. Server are directly connected to NetApp.

vmkping can successfully reach NetApp filer on both hosts. Network label for

VMotion vSwitch is 'NetApp VMotion' on both hosts, 'Enable VMotion: yes' is set on

both hosts. When i try to vMigrate i get an error that:

Unable to migrate from esx1 to esx2: Virtual disk 'Hard Disk 1' is not accessible

on the host: Unable to access file.

vm/vm.vmdk

When i log to host directly i can reach vmdk file. On both hosts. I thought

that datastore have to be named identically, but when i try to rename datastore

on one host with name from another host vCenter says that 'The name 'vmdk'

already exists.

Tags (2)
0 Kudos
20 Replies
kac2
Expert
Expert

are you trying to do Storage VMotion or Virtual Machine vMotion?

Either way, your hosts HAVE TO BE CONFIGURED IDENTICAL. Every vSwitch, and every port group need to match up to the letter for vMotion to work.

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

try remove the datastore from one host then remount it back using identical name.






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
zinovik
Contributor
Contributor

I'm exploring hot (powered on) vm migration which VmWare calls VMotion.

0 Kudos
zinovik
Contributor
Contributor

Nope, this does not help.

0 Kudos
kac2
Expert
Expert

to dive a bit deeper.

The storage datastore must be presented to EVERY host in your Cluster. those hosts need to be configured identically for vMotion to work.

0 Kudos
zinovik
Contributor
Contributor

I've made following: i destroyed vswitches responsible for VMotion on both

hosts and created them again. This does not solve the issue. I can access

.vmdk files through "Browse datastore" on both hosts.

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

can run below command on both ESX hosts and post the result here:

$esxcfg-nas -l






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
zinovik
Contributor
Contributor

Here is esxcfg-nas -l on both hosts:

esx1# esxcfg-nas -l

swap is /vol/vm_swap from 192.168.1.11 mounted

vm-datastore is /vol/vm_vmdk from 192.168.1.11 mounted

esx2# esxcfg-nas -l

esx2_fas1swap is /vol/vm_swap from 192.168.1.12 mounted

vm-datastore (1) is /vol/vm_vmdk from 192.168.1.12 mounted

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

esx1# esxcfg-nas -l

swap is /vol/vm_swap from 192.168.1.11 mounted

vm-datastore is /vol/vm_vmdk from 192.168.1.11 mounted

esx2# esxcfg-nas -l

esx2_fas1swap is /vol/vm_swap from 192.168.1.12 mounted

vm-datastore (1) is /vol/vm_vmdk from 192.168.1.12 mounted

Both datastore should use the same datastore name. You able to unmount it and remount nfs volume on ESX2, but unable to use identical name as what ESX1 had isn't it?






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
zinovik
Contributor
Contributor

Both datastore should use the same datastore name. You able to unmount

it and remount nfs volume on ESX2, but unable to use identical name as

what ESX1 had isn't it?

Yes. If i try to rename "vm-datastore (1)" to "vm-datastore" through vCenter

i get message "The name 'vm-datastore' already exists."

If it matters i use vCenter 2.5.0 build 64192.

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

Can you do this directly from ESX2, instead from vCenter :

- Remove Datastore,

- Mount it back using identical datastore as what ESX1 had

Do it from ESX2... Like mine below, I've no problem to mount it directly from ESX.






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
zinovik
Contributor
Contributor

Nope, it does not work for me.

vCenter names datastore 'vm-datastore (1)' even if i try to name it

'vm-datastore' as it named on esx1

Should it try to mount datastore by hands from esx2 service console?

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

Yeh, you can try from ESX2 SC :

$esxcfg-nas -a -o xx.xx.xx.xx -s /mnt/.. vm-datastore






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
zinovik
Contributor
Contributor

root@esx2 root# esxcfg-nas -a -o 192.168.1.12 -s /vol/vm_vmdk vm-datastore

Connecting to NAS volume: vm-datastore

vm-datastore created and connected.

root@esx2 root# esxcfg-nas -l

vm-datastore is /vol/vm_vmdk from 192.168.1.12 mounted

Interesting why vCenter cannot do the same thing?

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

Unlike shared vmfs, we just need to create datastore only on one ESX host, then refresh it from ohers. While NFS, we need to mount it directly from all ESX hosts. You may add this extra step to new ESX host (mount NFS) before add the host to vCenter. BTW, do u able to vMotion now?






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
zinovik
Contributor
Contributor

No luck.

If i press "Refresh" on "Storage" tab in esx2. 'vm-datastore' appears as 'vm-datastore (1)'.

On service console `esxcfg-nas -l' shows that vCenter renamed 'vm-datastore' to 'vm-datastore (1)'.

VMotion does not work, because it says that virtual hard disk 1 is not accessible on esx2.

I'm thinking that something is broken in my esx hosts, maybe some internal misconfigures.

0 Kudos
athlon_crazy
Virtuoso
Virtuoso

Run out of idea. My last effort, refer here

if no dice, ask for VMware support..






vcbMC-1.0.6 Beta

vcbMC-1.0.7 Lite

http://www.no-x.org

http://www.no-x.org
0 Kudos
kac2
Expert
Expert

Make sure your ESX hosts have root level access to the NAS datastore

0 Kudos
zinovik
Contributor
Contributor

fas1> exportfs -q /vol/vm_vmdk

/vol/vm_vmdk -sec=sys,(ruleid=9),rw=192.168.1.0/28,root=192.168.1.0/28

\[root@esx1 root\]# esxcfg-route -l

VMkernel Routes:

Network Netmask Gateway

192.168.1.0 255.255.255.240 Local Subnet

default 0.0.0.0 192.168.1.11

\[root@esx2 root\]# esxcfg-route -l

VMkernel Routes:

Network Netmask Gateway

192.168.1.0 255.255.255.240 Local Subnet

default 0.0.0.0 192.168.1.12

0 Kudos