[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.