VMware Cloud Community
aschwem
Contributor
Contributor

I/O error occured - how do i upload to my server?

I can't seem to upload a gig file to my esxi host no matter if its in maintence mode or not... i need to upload a vmdk file... how else can I do this?

Tags (4)
0 Kudos
22 Replies
RParker
Immortal
Immortal

There are 2 ways.

1) you can browse datastore and use the upload file (icon) to copy the file direct to the vmfs datastore.

2) you can use vm converter to transfer it (you need to have the vmx file)

0 Kudos
SBAM
Contributor
Contributor

I am having the same issue with a large 3 GB .iso.

3514_3514.jpg

The only reason I need to do this us because of an issue with my IDE CD/DVD not being accessable from a VM Guest to install from CD. There is another thread that appeared to have a solution adding a CDROM as a scsi device. Although my CD is listed as a scsi target. The guest VM cannot connect to it. I have done the Ctrl-Alt-Ins and hit Esc on reboot to select CDROM from the boot menu, set the VM virtual bios with the CD-ROM as the first target all to no avail. I am at the point to abandon my efforts with ESXi as these fundamental pieces don't appear to be functioning reliably based on the other posts I am seeing and I need to get on with it. I am resorting to the Client connection to CD on the VMWare infrastructure Client and the client keeps crashing and losing the connection if I do anything else on Laptop hosting the VMWare Infrastructure client. 3 methods of trying to install a guest OS an none are working. Honestly isn't there a simple method to transfer a file without going through all this wank.

3519_3519.jpg

0 Kudos
Dave_Mishchenko
Immortal
Immortal

Although it is not supported, you can enable SSH to the host and then copy the file with winscp or other such tool - http://www.vm-help.com/esx/esx3i/ESXi_enable_SSH.php.

Have you tried using a client device? I've done w2k8 with the ISO on a network share and the install speed was acceptable.

0 Kudos
SBAM
Contributor
Contributor

Thanks for the suggestions Dave. Unfortunatley a dead end as well. "/sbin/services.sh restart" didin't seem to enable SSH a reboot was required. Although I am sure there is an alternative. Receive an error from my SFTP client . Failed to open SFTP connection. Exit value 0. Most liekly the sft-server is not in the path of the user on the server side.

So after a couple of hours going down a rat hole determining that ssh standard configuration doesn't seem to apply to the ESXi distribution. i.e. All the typical loctions for SFTP/SSH configuration don't seem to be available.

So still no method to get my iso files over to the ESXi host or simply mount the cd for use by my VM guests.

0 Kudos
Dave_Mishchenko
Immortal
Immortal

Give a reboot a try or

Or replace step 6 with two steps to tell the inetd daemon to reread the changed config file:

ps | grep inetd

Which will give a line like the following:

1291 1291 busybox inetd

Where the process id (pid) is the "1291" value so in this example you would then do:

kill -HUP 1291

whereupon ssh access should be granted without the need for a reboot

0 Kudos
SBAM
Contributor
Contributor

Thanks Dave. I had tried all of the items indicated in your post wrt to ps and restart and required a reboot. I gain SSH access now but no ability to transfer files. i.e. Secure File Transfer fails.

Well here was my solution in the end. Installed VMWare Infrustructure Client on a Virgin Windows 2003 R2 SP2 Server Standard Edition Box with 3GB RAM, Intel Pentium 4 2.8 GHz CPU and the Datastore browser successfuly transfered the 3GB Windows 2008 x86 x64 .iso to my VMWare Host (i.e. No VM's running on host and no other applications running on the Windows 2003 server not sure if this was a factor but worth mentioning). So either memory or resources affected the broswer upload. My previous tries were on a Dell D610 Laptop Pentium M 2.0 GHz processor and 1 GB RAM and only smaller files were successful i.e 500MB was the largest iso file I tried that was succesful via the Datastore browser.

VMWare PLEASE PLEASE fix the Guest VM to CD/DVD access.

2 days of wanking around. Hopefully this info helps others.

Lessons learned so far.

VMWare infrastructure client needs memory and horsepower for the Datastore Browser.

Guest VM to CD/DVD access depending on hardware might no function.

The connect to client drive option on the VMWare Infrastructure client works but if the client crashes in the middle of an install you get to start all over again. (Hmmm maybe the same resource issue as the Datastore browser)

Set the VM Guest boot options with a delay so you can enter VMWare virtual BIOS or fast fingers for the Esc for boot device option menu. i.e. You start the VM but don't have time to connect to the Client side Drive. Select connect to the drive after the VM is powered on and after the PXE boot fails or No Operating system error Ctrl-Alt-ins then hit esc during the VMWare logo and select CDROM for the boot device.

0 Kudos
Dave_Mishchenko
Immortal
Immortal

What sort of hardware do you have and in particular the NIC and storage controller?

0 Kudos
RParker
Immortal
Immortal

It's 3i... there is no ssh console..

0 Kudos
SBAM
Contributor
Contributor

Please see my updated previous post and thanks again for all your assistance it is greatly appreciated.

0 Kudos
Peter_vm
Immortal
Immortal

You could try to use SCP rather than SFT for data transfers.

0 Kudos
Dave_Mishchenko
Immortal
Immortal

There's no "supported" SSH console, but it can be enabled.

0 Kudos
SBAM
Contributor
Contributor

Thanks Peter SCP accomplishes the task along with enabling the non-supported SSH. provides a simple client.

To assit those newbies like myself here are a couple of screen shots that show the WinSCP client settings and File locations on the VMWare host for the datastore.

0 Kudos
Haxim
Contributor
Contributor

You could try installing the Remote CLI and putting a file that way. Once you have the remote cli installed, open a command prompt and go to c:\Program Files\VMWare\VMware VI Remote CLI\bin directory. You can use vifs.pl for most file commands. To put a file you'd use something like:

vifs.pl  --put filename.vmdk "[datastore1] filename.vmdk" --server esxi.host.ip

that would upload filename.vmdk from your current directory into the root of datastore1 on the esxi host. There's a good document on vifs commands at:

0 Kudos
aschwem
Contributor
Contributor

so when i use vifs i even used the verbose command, but it ran all night without seemingly able to get the VM there.

So here's what I dont understand- SSH cannot be enabled, nor would I want to, for security reasons.

The datastore browser gives this I/O error occured.

I appreciate trying to use the remoteCLI way of uploading...but I'm really more concerned about the I/O error.

Isn't this a horribly unstable bug in VMware esxi? or is it a part of the client that has the issue? Has anyone else tweaked some sort of configuration parameter to fix this error?

It seems to me that one should be able to upload to the server in a more robust way

0 Kudos
aschwem
Contributor
Contributor

Here is an example of what im trying to do:

It says successful butit happened so quickly, and nothing was actually added to the server. whats going on?

vifs --put /TinyXPTest/TinyXP.vmdk "[datastore1] TinyXp.vmdk" --server 204.11.222.6 --verbose

Enter username:

Enter password:

REQUEST: $VAR1 = '<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<RetrieveServiceContent xmlns="urn:vim25"><_this type="ServiceInstance">ServiceInstance</_this>

</RetrieveServiceContent></soapenv:Body></soapenv:Envelope>

';

RESPONSE: $VAR1 = '<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<RetrieveServiceContentResponse xmlns="urn:vim25"><returnval><rootFolder type="Folder">ha-folder-root</rootFolder><propertyCollector type="PropertyCollector">ha-property-collector</propertyCollector><viewManager type="ViewManager">ViewManager</viewManager><about><name>VMware ESX Server 3i</name><fullName>VMware ESX Server 3i 3.5.0 build-110271</fullName><vendor>VMware, Inc.</vendor><version>3.5.0</version><build>110271</build><localeVersion>INTL</localeVersion><localeBuild>000</localeBuild><osType>vmnix-x86</osType><productLineId>embeddedEsx</productLineId><apiType>HostAgent</apiType><apiVersion>2.5u2</apiVersion></about><setting type="OptionManager">HostAgentSettings</setting><userDirectory type="UserDirectory">ha-user-directory</userDirectory><sessionManager type="SessionManager">ha-sessionmgr</sessionManager><authorizationManager type="AuthorizationManager">ha-authmgr</authorizationManager><perfManager type="PerformanceManager">ha-perfmgr</perfManager><eventManager type="EventManager">ha-eventmgr</eventManager><taskManager type="TaskManager">ha-taskmgr</taskManager><accountManager type="HostLocalAccountManager">ha-localacctmgr</accountManager><diagnosticManager type="DiagnosticManager">ha-diagnosticmgr</diagnosticManager><licenseManager type="LicenseManager">ha-license-manager</licenseManager><searchIndex type="SearchIndex">ha-searchindex</searchIndex><fileManager type="FileManager">ha-nfc-file-manager</fileManager><virtualDiskManager type="VirtualDiskManager">ha-vdiskmanager</virtualDiskManager></returnval></RetrieveServiceContentResponse>

</soapenv:Body>

</soapenv:Envelope>';

REQUEST: $VAR1 = '<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<Login xmlns="urn:vim25"><_this type="SessionManager">ha-sessionmgr</_this>

<userName>root</userName><password></password></Login></soapenv:Body></soapenv:Envelope>

';

RESPONSE: $VAR1 = '<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<LoginResponse xmlns="urn:vim25"><returnval><key>52758e88-63cf-bb91-c293-2a2537dac7b1</key><userName>root</userName><fullName>Administrator</fullName><loginTime>2008-08-17T23:59:04.236416Z</loginTime><lastActiveTime>2008-08-17T23:59:04.236416Z</lastActiveTime><locale>en</locale><messageLocale>en</messageLocale></returnval></LoginResponse>

</soapenv:Body>

</soapenv:Envelope>';

Uploaded file /TinyXP/TinyXP.vmdk to TinyXp.vmdk successfully.

REQUEST: $VAR1 = '<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<Logout xmlns="urn:vim25"><_this type="SessionManager">ha-sessionmgr</_this>

</Logout></soapenv:Body></soapenv:Envelope>

';

RESPONSE: $VAR1 = '<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<LogoutResponse xmlns="urn:vim25"></LogoutResponse>

</soapenv:Body>

</soapenv:Envelope>';

0 Kudos
Haxim
Contributor
Contributor

I would try just making an empty directory in the datastore or doing a directory listing with vifs --dir and vifs --mkdir just to see if that's working. I've seen vifs report success quite alot without actually doing anything, usually when it has issues with the datastore name or the remote path. Just to confirm, vifs --listds is showing you one datastore named datastore1?

0 Kudos
aschwem
Contributor
Contributor

Haxim,

thanks actually it ended up being that "'s broke it, and single quotes ' made it work.

Now that ive gotten my VM there, VI Client wont see the vmdk

I tried to use vmkfstools -i command , and that looks broken too.

I tried even just creating a blank vm with it...

============

vmkfstools --server my.specialserver.com -username root --password xxxx -c 1048 /vmfs/volumes/datastore1/test.vmdk

Can't call method "fault_string" without a package or object reference at /usr/bin/vmkfstools line 413.

==========

What am I to do? If the VI Client keeps giving me errors, and the Remote CLI interface doesnt work- what can I do without having to enable SSH on my server?

Or is that proven to work? I dont mind doing it but its a bit of a hassle to get to our datacenter to set that up, I don't want to make the drive unless someone can let me know for sure they've cloned or used vmkfstools locally on esxi without trouble.

Is there a updated version of the tools for use with esxi? maybe a development version?

0 Kudos
Dave_Mishchenko
Immortal
Immortal

Did you try the command like this? Note that datastore1 sould be enclosed in square brackets and you have to specify GgmM with the size.

vmkfstools.pl --server myspecialserver -c 10G /test.vmdk

0 Kudos
aschwem
Contributor
Contributor

Guy I really appreciate all your help but even a create that simple fails:

vmkfstools --server myspecialserver -c 10G '[datastore1] /test.vmdk'

Enter username: root

Enter password:

Can't call method "fault_string" without a package or object reference at /usr/bin/vmkfstools line 413, <STDIN> line 2.

I'm thinking the remote CLI tools are junk. When people are explaining they are able to clone machines and such from the remote CLI, how are they doing this? Windows? SSH'ing into the box and running them there? I would just like to know...

0 Kudos