MHJohnson@HI-MULTICS.ARPA (Mark Johnson) (09/11/86)
I have been running our 785 system w/ a three disk volume set for quite a while. Over the Labor Day holiday, one of the disks died and the data was not recoverable. In the aftermath of this failure we noted the following things that other users of volume sets might be interested in: (1) Do NOT use MOUNT/BIND to add the newly initalized disk back into the volume set. We did this and had a four disk volume set (missing drive 3) with only three disk drives. We went through great gyrations using the console floppy to make a volume 3 on disk & volume 4 on floppy so we could mount all the volumes of the volume set. (2) You cannot remove a disk from a volume set once you have added it. (3) You cannot use BACKUP/IMAGE to restore a volume set made on a four disk volume set onto a three disk volume set. (4) You cannot run ANALYZE/DISK unless all disks of the volume set are mounted at the same time. (5) There is a limit to the size of a directory file (1024 blocks or so). We filled up [SYSLOST] when we ran ANALYZE/DISK on the volume set described in (1). We had to rename [SYSLOST] & make a new one & do ANALYZE/DISK again. (6) Large directories (the 1024 block size ones) are VERY slow to add or delete files from. It took over 8 hours to delete the 22k files from our filled up [SYSLOST] directory. Overall, I recommend the regular use of IMAGE backups of volume sets along with a daily (or more frequent) incremental backups. It is far faster to recover from backup tapes than to try to extract the files on the remaining disks of the volume set. It took us almost 36 hours to recover our volume set the hard way. I estimate it would take us about 1/3 the time if we used our backup tapes & said `oh well' to the stuff after the last incremental backup. By the way, we are still using the volume set even after the disaster. The advantages of the volume set on a daily basis outweigh the problem we had this last holiday weekend. --Mark <MHJohnson @ HI-MULTICS.ARPA>
carl@CITHEX.CALTECH.EDU (Carl J Lydick) (09/14/86)
It's not quite true that you can't remove a disk from a volume set once it's been added; in fact, it's not even all that difficult to do. You do, however, have to edit the home block (and for consistency's sake, the backup home block) of the disk in question and possibly [000000]VOLSET.SYS on the first disk of the set. The relative volume number is stored in bytes 38-39 of the home block, and the number of volumes in the set is stored in bytes 40-41. In addition, there is a two-byte checksum in bytes 58-59 for the home block up to that point, and another in bytes 510-511 for the entire block. The home block is virtual block 2 of the index file, and is the first good physical block in the sequence 1 + n * delta, where delta is obtained from the following table: Geometry delta s x 1 x 1: 1 1 x t x 1: 1 1 x 1 x c: 1 s x t x 1: s + 1 s x 1 x c: s + 1 1 x t x c: t + 1 s x t x c: (t + 1) * s + 1 where s is the number of sectors per track, t the number of tracks per cylinder, and c the number of cylinders on the disk. The backup home block is a block further down in the sequence, (typically the next good block in the sequence) located in one of virtual blocks v * 2 + 1 through v * 3, where v is the cluster factor for the disk. The entire cluster is made up of duplicates of the home block. I've succeeded in removing a disk from a volume set by using the DCL OPEN, READ, and WRITE commands, along with the lexical functions, so it's really not all that difficult.