mrosin wrote:
- How can I download an image I create in the linode dashboard?
- How to restore it if the customer purchases a linode account?
You mention the library article about transferring an image over ssh is not realistic, but you're asking how to transfer 'x' bits of disk image data so there's only so many ways to do it. The general notion of treating the disk image as a raw file is the common theme. This will transfer the full image size as opaque data. (I would suggest adding -C to the ssh command in the library article to try to get at least a little benefit from compressing the transfer)
Another option would be to do a filesystem level transfer while the Linode is running, or off of a mounted copy of a cloned image (so it's not in active use). That's not going to be a block level backup, but depending on what you've installed and what it takes to run on another system, may work as well and require less data to be transferred. Since it will essentially be a one way transfer, I'd suggest rsync.
Quote:
- Can it be installed on the customer's server that is not on linode or running xen?
Unlikely. It's not just a Xen issue but on Linode the kernel is supplied external to any images, so you probably don't have the necessary information to actually boot. There's also no partition information, although restoring the image locally to an existing partition rather than a disk can handle that.
Quote:
- The linode image is 11GB but df says only 3.8GB are used. Is there a way to shrink an image in the dashboard without losing data? (This would be very useful to know in general.)
You can resize disk images from the Linode Manager, which providing you've used the default ext3 filesystem will include resizing the underlying filesystem. Resizing does have to be done while the Linode is powered off. And yes, resizing down would minimize the data transferred when moving raw images.
Quote:
- Is the procedure something like shut down linode, clone image, reboot, and then mount and somehow compress the image?
You could do that too - you'd have to attach the cloned disk to your Linode before rebooting, and then treat the new disk device however you like. That's similar to what booting into the Finnix rescue mode is doing, just using your own Linode as the host environment. My guess is doing that simply to compress the disk image would be of modest benefit over just including compression in whatever transfer method you use.
Quote:
- How to download it. I might be able to stick a copy on a server on another continent, but realistically it has to be delivered on a USB stick, so I need to download it to my laptop which will take days at wireless speeds and probably will get halted many times before it finishes. Do I need a block-level download program?
This page (Copying a Disk Image Over SSH) doesn't seem realistic.
https://library.linode.com/migration/ssh-copy This page mentions things like partimage and ddrescue... not sure if any of these tools can copy over lossy connections.
http://www.cyberciti.biz/open-source/linux-based-disk-cloning-imaging-software/Can't help much with transfer rates - moving the data is, well, moving the data and will need whatever time it needs based on your connection. I'd certainly prefer a wired connection for the first transfer if there was such an option. If you think you'll be interrupted a lot, I think Finnix also has rsync (or you could use the clone disk approach and ensure you have rsync on your Linode) and use that instead of a straight ssh. Those other tools, I believe, are intended to work with raw local devices, so probably aren't what you want.
Quote:
I've already presented to the customer that linode is great. Help me figure out the process that would help get them onboard. It is the kind of company that if they start to use linode they probably would start using it a lot.
Honestly, if I were you I'd consider starting afresh locally with something like VirtualBox. Install the same distribution you used on Linode to get to a starting point, and then just replicate the packages you installed on your Linode. That can all be done locally, and thus very efficiently.
Then, just transfer (again, I'd prefer rsync, but pretty much any file transfer tool works) the application-specific configuration and files you have from your Linode to your new local virtual machine.
At that point you'll have a local virtual machine with your demo system that can easily be packaged up (export the appliance through virtualbox or just provide the config/disk image) and that you'll know the customer can run most anywhere with their own installation of VirtualBox.
It's going to be more steps, but may in fact be less time consuming since you won't have to be fighting to get a large disk image transferred remotely and then turned into something that can be used on a local PC by your customer.
-- David