[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ProgSoc] Linux Disk Image Management Sofware




I recently got three new PCs to use as test machines. The intention is that I can test deployment scenarios, do integration testing, staging, etc. in a controlled environment.


I'm planning this at the moment, so I'm just going to explain what I'm doing to the list (giving me the opportunity to think through my approach), and hopefully solicit some feedback. This is long, so if you're not interested, just ignore it. :P (There is actually a relatively poignant question in the last few paragraphs, so perhaps you might scroll down? :)

These machines are all basically the same (only the amount and type of RAM varies, otherwise they are identical). Basically:

 ABIT 'all in one' mother-board
 p4 CPU
 1 GB or 500 MB RAM (two with 1 GB, one with 500 MB)
 250 GB SATA HDD
 80 GB IDE HDD (in removable mount)
 DVD drive

I.e. think 'cheap'. It cost me about $500 per box for the gear.

I'm thinking about how I will configure these to suit my long term needs. I need them presently for a project I'm working on, and will be installing combinations of Win2k3 and Win2k server, along with various other server software (such as SQL Server, IIS, etc.). After this job is finished, though, I intend to keep them available for my use in whatever sort of 'workshops' I might like to conduct. Such 'workshops' might include testing various Linux or BSD installations and networking them (e.g. I'd love to figure out how to get network booting working with Linux servers). Also, there will likely be other Windows things that I'd like to test, including, but not limited to, new operating systems, beta software, etc.

The three boxes, incidentally, are called BRAHMA, VISHNU, and SHIVA; which I thought was kinda cool.

Anyway... my requirements are basically to be able to quickly get test environments 'ready to go'. So, I want to have various 'images' ready to install. I'm happy to spend the time setting these up 'the first time', but I'd like to be able to quickly revert to a 'known good' image as quickly as possible, so that I don't waste my effort. Such images would be things like,

 BRAHMA - Win2k Server
 BRAHMA - Win2k Server, SQL Server
 VISHNU - Win2k3
 VISHNU - Win2k3, Domain Controller
 SHIVA - Win2k Pro
 SHIVA - Win2k Pro, Office XP
 BRAHMA - Debian Sarge
 VISHNU - FreeBSD 6.1

etc., etc. I'll probably add dates and/or version numbers to those labels too. Btw, I have all of the Microsoft software licenses to do this as a part of my MSDN Universal subscription.

I am aware that another possibility given my requirements is that I use VMWare, Virtual PC, etc. and run virtual machines. However I'm not doing that presently. I want to use the real hardware. Particularly I want to use the real hardware because it's cheap anyway, and because it's easy for me to manage the networking.

Speaking of networking, these boxes are all connected to a single 10/100 ethernet switch which can be segregated for my 'proper' network. My network here is comprised of five physically separate ethernet networks joined by two smoothwall firewalls (two of those 'networks' are just cross-over cables). Each firewall has 3 NICs with RED, ORANGE, and GREEN interfaces. The internal firewall having its RED interface on the front-facing firewalls GREEN interface. I tend to keep my IP network addresses aligned with the underlying ethernet networks.

The point of explaining this is that it is possible for me to join my 'test network' into various stages of my proper networking infrastructure, where DHCP servers (there are two), DNS servers (again there are two, one on FreeBSD, one on Win2k3 AD DC), etc., are available. I will occasionally connect the test boxes to my proper network for the sake of downloading service packs, or accessing them from other machines on my network, etc. Although I won't necessarily be keeping them available on the network and might like to keep them separated from time to time (for example, if I'm testing network boot servers, then I'd have them separate from my network so that the DHCP servers didn't interfere with each other, etc.). I just want to create an environment where it doesn't take me long to set any of this up.

Now, the IDE HDD is installed in a removable mount. This means that it's easy for me to pop any particular IDE drive out of the case in pop in a new IDE drive. (I have several spare IDE drives and 'sleeves' for them to go in). The removable mount is on the IDE1 master, and the DVD is on the IDE2 master. All the drives are configured for Cable Select, but it doesn't really matter because I don't share IDE channels.

I got a few 80 GB drives for use presently, but I have other IDE drives lying about, so I'm not necessarily going to need to re-image a drive if I want to test something. I can just unplug the IDE drive and plug in another one. So, I'll just refer to the IDE drive as the "IDE drive", and the SATA drive as the "SATA drive", and we'll know that the IDE drive can vary, whereas the SATA drive is permanently installed in the case.

The SATA drive is 250 GB, and it exists to hold data that I always want available regardless of which IDE drive or 'image' I'm running. For some background, in Windows, as a 'standard', I have an F: drive which contains a checkout of my source tree (i.e. all of my source code), and a G: drive which contains 'data'. 'Data' is usually XML files, SQL Server MDF files, Microsoft Access MDB files, 'downloads', etc. So, the SATA drive will have at least two NTFS partitions for holding such data. I imagine that it would also be a good idea to cater for a similar setup using Linux, so I would like the SATA drive to have an ext3 partition which I would typically mount as /home. The idea being that I can keep data available for use even if I vary Linux images on these machines. (Please stop me if this is a bad idea for some reason I'm not aware of.)

None of the data on the SATA drives is 'crucial'. That is, it's just copied off my network, and it doesn't matter if I lose it, it's just there for convenience; it doesn't need to be backed up.

At this stage I'm thinking that I will create four partitions on the SATA drive. Two 20 GB NTFS partitions for F: and G:, one 20 GB ext3 partition for /home, and one 190 GB FAT32 partition. I'm not sure off the top of my head if I can expect FAT32 to support a 190 GB partition. If not, then I'll simply use the maximum supported size. The point of using FAT32 being that I can access it from either Linux, Windows, and specifically DOS.

The reason I want to be able to access the FAT32 partition from DOS is that I intent to store disk images on this partition. Norton Ghost can access DOS partitions, and this is the only method of disk imaging that I have any experience with. So this fourth partition on the SATA drive needn't be a FAT32 partition, it's just that it will be if I need to use DOS-based image management software. I'll refer to the fourth partition as the 'image partition', and we can understand that this will be a FAT32 partition if I need to use DOS-based image management software such as Ghost. If there is a Linux image management system the I'd be happy to make this 'image partition' an ext32 partition.

Presently I'm thinking that I'll take images of the IDE drives with Ghost. However, one of the main reasons for this email, is that I'd like to use it as an opportunity to learn about what disk imaging software I might be able to use with Linux. I don't know anything on the topic, except that there is a utility rawrite which has proved useful for creating floppy-disk images from time to time. (I'll do some more research on this topic this evening, but I'm going to start off my research with this post (mainly so that I can solidify for myself an understanding of my requirements, but also in the hope that someone with knowledge on the subject might be able to 'fast-track' me to a solution... :)).

Here's what I can do (and will do if I can't figure something else out) based on what I already know: I will use Ghost to manage images. I can manage NTFS images using either the Ghost bootable CD or by installing it on Windows and using its built-in abilities to create a bootable DOS partition and reboot into DOS to do its thing. I'm not overly familiar with the details of how this actually works, but I know that it's pretty trivial to manage the imaging of disks using Windows and DOS. As managing Windows partitions is all that I *really* need at the moment, and as it seems likely that I'll be able to use Ghost for other types of partitions, I can just work like this, and I will if I can't come up with something better. I'd be happy enough to just switch IDE drives and 'install from scratch' non-Windows operating systems if I want to conduct other experiments on this hardware.

Now we enter the fuzzy area where I have to talk from the point of view of 'feature requirements' without having a firm understanding of how I might achieve what I would like.

Ideally I'd like to be able to store scores of images on the 'image partition' and have some way to just turn on a computer, be prompted by a boot loader (be it the system BIOS checking available bootable media with respect to boot priority, or 'boot loader' software on the MBR of some disk) about whether I would like to boot from either the IDE drive (regardless of what operating system is actually on that IDE drive at the time?), or whether I would like to boot into the 'image management' system. If I chose to boot the IDE drive then whatever system was on that drive would just boot up. If I chose to boot to the 'image management system' then I'd imagine that I could have some way of either taking an image of the IDE drive presently installed, or writing an existing image from the 'image partition' back onto whatever IDE drive is presently installed.

In order to have this type of 'dual boot' facility, I imagine that I would need some sort of boot manager (e.g. GRUB or LILO) installed on the MBR of the SATA drive, and I would then need to configure the BIOS to boot from the SATA drive before the IDE drive. My BIOS supports this, so this is possible. Alternatively, I could use removable media on CD-ROM for the image management system (as I would be doing if I used Ghost), or I might even go so far as to use floppy-disks.

I don't know enough about GRUB or LILO (or anything else) to know if its possible to have it boot to an 'unknown' system which just happens to be on the IDE drive. I have a vague understand that getting windows and linux to dual boot can be a bit of a challenge, but I've never done it, so don't really understand the pragmatics here. So, if a boot loader were on the SATA disk I'd need to learn a fair bit about how to configure it, and am not sure at the outset if it would even be possible to do what I want with it.

It also seems that a practical way to manage this might be to maintain the 'image management system' on either CD-ROM or floppy-disk. I don't presently have floppy-disks in these machines, and would prefer to avoid having to install them. I can easily boot from CD-ROM though, and indeed this is what I'll be doing if I use Ghost as my image management software.

Assuming that the above requirement could be met in some way (i.e. that it's easy to boot into the IDE drive or the 'image management system' (this being trivial if the image management system is on removable bootable media)), I'd need to know what my options are RE: the image management system. As I mentioned above, I will use Ghost if there isn't something else. What I'm fishing for here is a way to use linux, and software which runs on linux, as the image management system rather than DOS and Ghost.

ACTUAL QUESTION HERE:

So, that's my situation. In light of all of the above, can anyone explain what disk-imaging software might be available for Linux, and offer an idea of how I would go about using it to meet my requirements?

I'm thinking, for example, that it might be possible to install Linux on the SATA drive and use an ext3 file-system on the 'image partition'. In this case I'd want GRUB or LILO to be on the SATA disk and to be able to boot the IDE drive. Alternatively, perhaps I could boot a Linux CD (some sort of 'live CD'..?) and have it mount an ext3 (or FAT32?) image partition to store and load images of the IDE drive. In either of those cases, I'd need to know what software might be available for use. There might also be some other clever way of managing images which I've over-looked..?

Comments?














- You are subscribed to the progsoc mailing list. To unsubscribe, send a message containing "unsubscribe" to progsoc-request@xxxxxxxxxxxxxxxxxxx If you are having trouble, ask owner-progsoc@xxxxxxxxxxxxxxxxxx for help.