8

I find myself having to maintain some old hardware for some legacy applications. These computers use old parallel SCSI drives, and when those drives die, I have to scavenge for new ones, which is getting increasingly difficult.

Is it feasible to run a modern computer with a physical SCSI interface and present itself as a target disk to the legacy computer, so instead of accessing a physical SCSI disk, it's accessing a modern disk in a SAN?

I looked at http://www.linux-iscsi.org/ and it looks like the usual mode of operation is act like an iSCSI target out of a physical disk rather than the other way around, a physical target out of a remote iSCSI target. But I'm not familiar enough with the terminology or technology to tell if it's supported, possible or completely out of the question.

  • 1
    What hardware? What operating system? Eventually the hardware will die and you will need to virtualize and/or migrate the application. – John Mahowald May 29 '19 at 11:32
  • 1
    Is there special requirement to use SCSI disks? Contemporary SATA disks are fast enough – Romeo Ninov May 29 '19 at 11:48
  • A Linux server can be be configured to either become an initiator (access remote disks / LUN's using the iSCSI protocol) or an target (make local storage capacity available as LUN's to remote initiators). Typically separate packages are available in most distributions to provide either functionality. Please note that a target can make ***almost any*** storage available to intiators, it doesn't have to be a complete disk. – HBruijn May 29 '19 at 11:56
  • @JohnMahowald: Macs, some 68k, some PPC. Classic MacOS. Can't virtualise because of hardware requirements. – Salvatore Shiggerino May 29 '19 at 12:17
  • @RomeoNinov: No SATA interfaces available, only SCSI – Salvatore Shiggerino May 29 '19 at 12:17
  • @HBruijn: But can the Linux server become a physical SCSI target, or only an iSCSI target? Here we want a computer with a physical SCSI interface act as an initiator and a Linux server the physical target, while the actual data is something like an image or a remote iSCSI target in a SAN. – Salvatore Shiggerino May 29 '19 at 12:21
  • @SalvatoreShiggerino, here is one example how to use QEMU to emulate quite old MAC: https://www.jamesbadger.ca/2018/11/07/emulate-mac-os-9-with-qemu/ – Romeo Ninov May 29 '19 at 12:26
  • @RomeoNinov: QEMU is nice, but it leaves nowhere to plug in NuBus devices. I need to run on real hardware. – Salvatore Shiggerino May 29 '19 at 12:28
  • There are SCSI to SATA adapters, that allow connecting current SATA disks to SCSI adapters. As long as your controller isn't HVD (high-voltage differential) SCSI, it will work fine. – wazoox May 30 '19 at 19:57
  • @wazoox Yours is the best solution there. – Sergey Nudnov Jun 03 '19 at 15:38

3 Answers3

4

To start from Adam iSCSI is a protocol which "expose" disk space from one computer and represent this as storage device to another computer. But to use it the OS of second computer must recognize the protocol and have appropriate drivers/modules to work with. Moreover after iSCSI LUN is recognized it should be formatted and mounted (from OS) to particular mountpoint (or used as RAW device). I am not aware of option to use iSCSI disk as root device.

In your case iSCSI is not applicable. What you can search is PATA to SCSI convertor/controller to use PATA disks as SCSI. Usually those convertors are OS independent.

But the best you can do is to migrate all the applications which run on this old hardware to new software/hardware platform.

Romeo Ninov
  • 3,195
  • 2
  • 13
  • 16
  • Interesting. I see that there are also similar SATA to SCSI devices. That would solve the SCSI disk scavenging problem. The other half of the problem (which is more of a nice-to-have than must-have) is the SAN aspect. Are you aware of any software that can turn a Linux computer into an ATA target (if that's what it's called)?. As for migrating, that's simply not cost-effective. Commissioning some hardware manufacturer to make a one-off PCI to NuBus solution and write the associated drivers will probably cost millions. You can buy an awful lot of old hardware for that money. – Salvatore Shiggerino May 31 '19 at 10:56
  • @SalvatoreShiggerino, I have no info about such software (ATA target). Please consider also the solution of Sergey Nudnov (other answer) which can be very flexible (and long lasting) solution – Romeo Ninov May 31 '19 at 11:35
3

I believe your desired approach is possible using FreeBSD's CAM Target Layer subsystem and SCSI adapters that support target mode, like the AIC-78xx series. I'm currently doing this via a pair of Adaptec 39160 cards connected with a VHDCI cable. It is also possible to pass through an ISO file as a bootable SCSI CDROM device.

The FreeBSD kernel must be compiled with targ and targbh drivers, the ports must be enabled for target mode (eg ctladm port -o on ahc0), and the block devices must be created ( ctladm create -b block -o file=/path/to/disk or ctladm create -b block -t 5 -o file=/path/to/iso). The block driver supports disk devices as well as disk images. By default it presents devices as LUNs on ID 7, so make sure your SCSI cards are set to different IDs.

Windows 98 seems to hang when scanning the PCI bus with ASPI for 79xx, possibly due to a driver issue, though I haven't investigated heavily. Windows XP seems to be easier to deal with for the 39160 cards, but as XP can be sanbooted from iSCSI already, that doesn't unlock any extra functionality for me.

JodieC
  • 146
  • 2
1

To avoid having the local hard drives, consider using the NetBoot technology. Here is some important information from Wikipedia

NetBoot is a technology from Apple which enables Macs with capable firmware (i.e. New World ROM) to boot from a network, rather than a local hard disk or optical disc drive. NetBoot is a derived work from the Bootstrap Protocol (BOOTP), and is similar in concept to the Preboot Execution Environment.


A disk image with a copy of macOS, macOS Server, Mac OS 9, or Mac OS 8 is created using System Image Utility and is stored on a server, typically macOS Server. Clients receive this image across a network using many popular protocols including: HTTPS, AFP, TFTP, NFS, and multicast Apple Software Restore (ASR). Server-side NetBoot image can boot entire machines


Mac OS 8.5 and Mac OS 9 use only BOOTP/DHCP to get IP information, followed by a TFTP transfer of the Mac OS ROM file. Next, two volumes are mounted via AppleTalk over TCP on which the client disk images reside. All in all, the Classic Mac OS uses three images; a System image which contains the operating system and may contain applications. Next a private image (or scratch disk) is mounted in an overlay over the read-only System image. Finally, an applications image is mounted. This image, however, may be empty.

If you don't have Max OS X server on hands, consider using BootMania which would provide the NetBoot functionality from a regular Mac OS X box.

enter image description here

Sergey Nudnov
  • 833
  • 6
  • 12
  • That's something I've considered, but funnelling all disk access through a cooperatively scheduled network stack on (by today's standards) severely resource-constrained hardware doesn't sound like all that great of an idea. – Salvatore Shiggerino May 31 '19 at 10:46
  • @SalvatoreShiggerino So you are looking at iSCSI, which is purely network-related and anyway unavailable on the legacy Mac systems, but discarding another network-related technology which IS available for your machines. – Sergey Nudnov May 31 '19 at 12:42