Mounting an ISO file takes very long

Kirill Müller's Avatar

Kirill Müller

14 Aug, 2014 10:32 AM

Hi Feodor

As you suggested earlier, I've uploaded the files I need for building my projects to Azure, East US region. Furthermore, I have packaged all bits into a single ISO, with the intent to mount it to save on installation times. (No registry settings need to be applied.)

Downloading < 400 MB takes about 20 secs, which is acceptable, although I'd have expected it to be even faster. I think I can still compress the image for storage and decompress on the fly. However, the main issue is that mounting the ISO using Mount-DiskImage in PowerShell takes almost one minute! See an example build, and look for the progress indicators that begin with ==. (This used to be less when the image was still smaller.)

I can't replicate this on a fresh Windows 8.1 VM in VirtualBox.

Do you see a reason for this terrible delay? Is anything scanning the whole disk? Will a VHD be faster?

Thanks again.

Cheers

Kirill

  1. Support Staff 1 Posted by Feodor Fitsner on 14 Aug, 2014 03:34 PM

    Feodor Fitsner's Avatar

    Hi Kirill,

    I've never tried both ISO and VHD and your experience here is very valuable. You should give VHD a try and see the how that works.

    For me bringing 400 MB of stuff for additional 1,5 minutes sounds great :)

  2. 2 Posted by Kirill Müller on 14 Aug, 2014 04:36 PM

    Kirill Müller's Avatar

    Thanks for the feedback. It's an extra effort to set up VHD, but doable.

    I just wanted to know if a virus scanner (or something else that scans the whole disk after mounting) is running on the build slaves. Without a remote desktop access to the slaves, it's difficult for me to find out. (Do you think it's possible to RDP into a running build session, perhaps after changing user password and adding permission? You haven't replied to my earlier post.)

    I think it's possible to cut the time required to a few seconds. Everyone would benefit.

  3. Support Staff 3 Posted by Feodor Fitsner on 14 Aug, 2014 04:57 PM

    Feodor Fitsner's Avatar

    It's a standard Windows Server 2012 R2 and it has Windows Defender on board: http://technet.microsoft.com/library/hh831778.aspx Whether it's ON or OFF - I will check that out.

    Regarding RDC - we especially put additional efforts towards making workers inaccessible from outside :) Maybe we could catch your VM while it's running and prevent it from being disposed after build?...

  4. 4 Posted by Kirill Müller on 14 Aug, 2014 06:18 PM

    Kirill Müller's Avatar

    Thanks, catching the VM sounds great, but how to manage it? The repo of interest is r-appveyor, I can open a branch for this exercise.

    If I wanted to create a VM in Azure that looks as similar as possible to the AppVeyor VM, which setting would you suggest?

    Something else occurred to me: Perhaps it is some form of auto-run that is enabled?

  5. 5 Posted by Kirill Müller on 14 Aug, 2014 07:33 PM

    Kirill Müller's Avatar

    I have now created a "tiny" A0 VM in Azure (Windows Server 2012 R2), mounting the ISO file in question using PowerShell takes only about 7 seconds there. Will investigate more.

  6. Support Staff 6 Posted by Feodor Fitsner on 14 Aug, 2014 07:36 PM

    Feodor Fitsner's Avatar

    Interesting. Keep me posted.

    - Feodor

  7. Support Staff 7 Posted by Feodor Fitsner on 14 Aug, 2014 07:41 PM

    Feodor Fitsner's Avatar

    I can give you an URL for AppVeyor image, but you should copy it to a storage in East US region to avoid traffic charges.

    - Feodor

  8. 8 Posted by Kirill Müller on 14 Aug, 2014 07:42 PM

    Kirill Müller's Avatar

    That would be marvelous, thanks. All my stuff is in East US now.

  9. Support Staff 9 Posted by Feodor Fitsner on 14 Aug, 2014 08:13 PM

    Feodor Fitsner's Avatar

    Great, will send it later today.

    - Feodor

  10. Support Staff 10 Posted by Feodor Fitsner on 15 Aug, 2014 02:41 AM

    Feodor Fitsner's Avatar

    Sent details by email.

  11. 11 Posted by Kirill Müller on 16 Aug, 2014 09:16 PM

    Kirill Müller's Avatar

    Perhaps a different path: Would it work to attach a VHD that is hosted in Azure directly to the virtual machine, via some Azure API?

  12. Support Staff 12 Posted by Feodor Fitsner on 16 Aug, 2014 09:26 PM

    Feodor Fitsner's Avatar

    Yeah, then VHD blob and disk should be on the same subscription with VMs.

    - Feodor

  13. Support Staff 13 Posted by Feodor Fitsner on 18 Aug, 2014 10:34 PM

    Feodor Fitsner's Avatar

    You can give Azure Files a try: http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/intr... Make sure your storage account is in East US region.

  14. 14 Posted by Kirill Müller on 26 Aug, 2014 10:14 PM

    Kirill Müller's Avatar

    FYI: Mounting a 500 MB-ish VHD also takes just over one minute.

    Unfortunately, I seem to need write access for at least some of the files, so I don't think Azure Files is an option currently. They aim at providing around 1000 IOPS, though, (and 60 MB/s for continuous reads), which means that in theory this can also work for lots of small files.

  15. Support Staff 15 Posted by Feodor Fitsner on 27 Aug, 2014 10:38 PM

    Feodor Fitsner's Avatar

    What code have you used to mount VHD?

  16. 16 Posted by Kirill Müller on 28 Aug, 2014 05:46 AM

    Kirill Müller's Avatar

    I'm using Mount-DiskImage -ImagePath $ImageFullPath in PowerShell.

  17. Support Staff 17 Posted by Feodor Fitsner on 28 Aug, 2014 11:33 PM

    Feodor Fitsner's Avatar

    OK, then we should live with that.

    I'll be experimenting with running builds with user profile loaded and we'll see if it makes any difference.

  18. 18 Posted by Kirill Müller on 29 Aug, 2014 07:42 AM

    Kirill Müller's Avatar

    Thanks. Please do let me know if I can do anything.

  19. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:47 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac