Messages in this thread | | | Date | Thu, 1 May 1997 06:15:40 -0400 | From | Eric Youngdale <> | Subject | Re: SCSI disk devices |
| |
>> In message <m0wMcJ1-0008zEC@seneca>, Harald Milz writes: >> >There is one more point to that. We are eventually going to have an SSA >> >device driver, and SSA tends to be used in large server installs. Each >> >disk is presented to the OS as a single SCSI disk ... so I think we need >> >a major change in disk numbering, not just 16 more devices by one more. >> >major number. 16 bit minors (and majors, for that matter) would be the >> >cleanest solution IMHO. That's what commercial Unixes tend do offer. >> >> If we do that, we _definately_ have to adopt something like the >> Solaris /dev/dsk/c0t0d0s3 scheme. It gets really tiring trying to out- >> guess what the kernel is going to name a new disk when it's put online. > >Eric Youngdale wrote a nice utility which does exactly this! Try scsidev. >I couldn't live without it. Not sure why it never caught on with any of >the distributions..
Umm, because it's a hack? Yes, it works around the problem of device names changing as the bus configuration changes.
I am not 100% sure what the best long term solution is. Some people have suggested that a /proc/scsi/dev/ tree be populated with names and links that are somewhat representative of whatever the ID, etc, are for the underlying device. I don't know what the performance impact would be of doing something like this, but on the surface it doesn't seem unreasonable. I guess my reaction is that I would prefer the solution live outside of the kernel (and hence scsidev), as it is more configurable and adaptable.
Even with scsidev, you are still limited to 16 disks. Yes, you could hack sd.c so that you get a second major number, but that is also a hack. The real solution is to get larger minor numbers. It sounded like the latest ext2 supports the larger device numbers, and it looks like GNU libc supports a dev_t that is 32 bits, so that the larger device numbers should easily make it out to user programs. I would need to test this, but in *theory* a mknod and ls built with GNU libc will let you create the device nodes that you need.
-Eric
| |