I've developed a patch for SystemImager 3.1.4 (I also have an untested 3.2.0 patch) which permits a single image to support clients with differing disk types, e.g., SCSI v. ATA, cciss v. rd. The patches are available at
http://www.lombardsnest.com/dnl/OSCAR/ As you might guess by the above URL, the patches were specifically developed for OSCAR, and have been tested with OSCAR 3.0 using VMware. To incorporate the capability, apply the patch and pull a new image. The new image master scripts, e.g., /var/lib/systemimager/scripts/*.sh, will no longer use hardwired device names like /dev/sda to partition or format disks; instead, the master script will use shell variables and refer to disks as "$DISKi" and partitions as "${DISKi}p", where i is an index ordering the disks per internal SystemImager conventions and p is a literal partition suffix, e.g., "1" or "p1". The shell variables, e.g., $DISKi, will be resolved into actual device names when the image is loaded onto a node. The resolution process will consider disk devices based on the type, e.g., all ATA, all SCSI, and all hardware RAID; more specifically, the abstraction works for sd, hd, cciss, ida, and rd devices. Software RAID devices, e.g., /dev/md* are fully supported. The default disk ordering, DISKORDER=hd,sd,cciss,ida,rd will select disks in the order /dev/hd* /dev/sd* /dev/cciss/c*d* /dev/ida/c*d* /dev/rd/c*d* Notes: 1) Alternative disk ordering, e.g., selecting SCSI devices before ATA, can be specified using the DISKORDER kernel parameter. For example, specifying DISKORDER=sd,hd on the APPEND line of /tftpboot/pxelinux.cfg/default will consider SCSI before ATA devices and ignore all hardware RAID devices. The following keywords may be used with DISKORDER: hd sd cciss ida rd Use of other keywords, or non-lower-case keywords will cause a shellout call. Keywords are separated with commas. The keyword string is sanitized before use, which should remove spaces, extra commas, &etc. 2) You can disable disk auto-detection/ordering, and revert to the original disk assignments by specifying "DISKORDER=", i.e., defining a NULL value. Note, this doesn't disable the new code, it specifies the original assignments whence the image was pulled. As you can see, a distinction is made between DISKORDER being unset, which invokes the default ordering, v. a null value, which disables the reordering. 3) For sd, cciss, ida, and rd devices, the correct device ordering will be used for multi-letter/digit names, e.g., /dev/sdz will precede /dev/sdaa, and /dev/cciss/c0d9 will precede /dev/cciss/c0d10; note this is contrary to the alpha sort used by the shell and ls. 4) The /etc/raidtab used by the initrd is similarly handled with $DISKi names. The image's /etc/fstab, /etc/raidtab, and /etc/systemconfig/systemconfig.conf files are all edited to implement the appropriate changes. See also the following note. 5) There are no limitations on the combinations of disk names changed, i.e., "/dev/hda" and "/dev/sda" devices are properly interchanged via "DISKORDER=hd,sd" and "DISKORDER=sd,hd". 6) There is a limitation in disk ordering, i.e., you cannot intermingle devices, e.g., /dev/hda, /dev/sda, /dev/hdb. However, if the client was imaged with such an arrangement, the patch will faithfully reproduce that when disk ordering is disabled as described in (2) above. For testing, I used OSCAR 3.0 (with an OSCAR-specific variant of the patch) under VMware as follows: NOTE: While cciss, ida, and rd devices are supported, I have not actually tested any systems that contain these devices. 1) Install a cluster normally. Both the server and client node had a single SCSI disk. 2) Modify client: remove SCSI, add IDE disk. Loaded client w/ hda root. 3) Remove all disks. Negative test passed (no disk). 4) Modify client: add two 100MB SCSI devices. Negative test passed (disk too small). 5) Modify client: add IDE disk. Client reloaded with extra, untouched SCSI disks. Loaded client w/ hda root, sda/sdb unused. 6) Manually modify client to add RAID-0 md0. Pulled image using getimage after shutting pfilter off on both server and client. Loaded client w/ hda root and sda/sdb md0. 7) Modify client: remove scsi disks, add two 100MB ide disks. Loaded client w/ hda root, hdb/hdd md0. 8) Modify client: Remove all disks, add scsi root and two scsi md0. Loaded client (sda root, sdb/sdc md0). 9) Modify client: Add hda root and two 100 MB ide disks, hdb and hdd. Modify server: Added "DISKORDER=" to /tftpboot/pxelinux.cfg/default. Loaded client w/ hda root and sdb/sdb md0 (see 6 for built-in order), i.e., hdb and hdd were ignored. 10) Modify server: Added DISKORDER=sd,hd to /tftpboot/pxelinux.cfg/default Loaded client, hda root, hdb/hdd md0. -- David N. Lombard My comments represent my opinions, not those of Intel Corporation. ------------------------------------------------------- This SF.Net email is sponsored by Sleepycat Software Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver higher performing products faster, at low TCO. http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3 _______________________________________________ Sisuite-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/sisuite-devel