And now for something completely different: Atto Thunderlink based storage, featuring an old datacenter SLC SSD.
This isn't quite eGPU related, but I figured the General Discussions part of the forum would be apt for this.
You might remember me (ab)using an Atto Thunderlink to make it into an eGPU, which worked by using a powered riser, but made for a less than neat setup. Since I like weird tech, and following the realization that the downstream port on the Node Pro can be used for a TB3 dock I figured I could make some use of the old Atto box by using it as a PCIe-based storage device.
I found a Dell Fusion-IO IODrive 160GB on ebay for 35$, still in the original box, barely used, supposedly a standby drive that was no longer needed. This is an early PCIe SSD, running on 4 lanes of PCIe 1.1 and equipped with 160GB of SLC (Single-level cell) flash. These used to cost thousands of dollars and were used for high-end storage and database applications back when SSDs were not yet commonplace. SLC flash stores a single bit per cell, and as a result is not as efficient as the various MLC technologies that have been developed since, making it much more expensive per bit. What it lacks in cost-effectiveness, however, it makes up for in durability: SLC drives have write lifetimes measured in dozens of Petabytes.
I don't have any high end storage needs, but 35$ is cheap enough for a toy, so why not. A quick search showed me that the device is fully capable of being used under Windows 10, and in fact still enjoys support. That was reassuring, so I bought it.
It arrived pretty quickly, and I dug up the Atto Thunderlink box, as well as the user guide for the IODrive.
Here it is next to the Atto Thunderlink box:
Installation is easy: Remove the mounting bracket and install the half-height device into the Thunderlink box. The indicator LEDs even align to one of the former Fiberlink ports, so they are visible.
Unlike the HD7750 and the RX460 I tried back then, the IODrive works without any issues in the Thunderlink with no risers being required. Windows picked up the device immediately, and the Dell ioSphere software and drivers were installed without issues. A firmware update was required to get the device up to date so that the modern drivers would work with it. The instructions are quite clear and the firmware is readily available from Dell.
The one snag was getting this to work after the FW update, as the device would not appear as active in the management software. Issuing the following commands on the command line (as admin) solves this issue:
Now the devices appear properly in the Device Manager and the disk management software in windows, and can be used like any other drive, including enabling Bitlocker encryption if desired:
Running fio-status -a tells us the status of the drive:
Found 1 ioMemory device in this system
Driver version: 3.2.15 build 1699
Adapter: Single Adapter
Fusion-io ioDrive 160GB, Product Number:VRG5T, SN:479804
Pseudo Low-Profile ioDIMM Adapter, PN:00119200000
External Power: NOT connected
PCIe Bus voltage: avg 11.98V min 11.84V max 11.98V
PCIe Bus current: avg 0.41A max 1.18A
PCIe Bus power: avg 5.04W max 13.99W
PCIe Power limit threshold: 24.75W
PCIe slot available power: unavailable
Connected ioMemory modules:
fct0: Product Number:VRG5T, SN:479804
Dell ioDrive 160GB SLC, Product Number:VRG5T, SN:479804
Dell ioDrive 160GB SLC, PN:00214400903
Powerloss protection: protected
Vendor:1aed, Device:1005, Sub vendor:1028, Sub device:1f57
Firmware v7.1.17, rev 116786 Public
160.00 GBytes device size
Format: v500, 312500000 sectors of 512 bytes
PCIe slot available power: unavailable
PCIe negotiated link: 4 lanes at 2.5 Gt/sec each, 1000.00 MBytes/sec total
Internal temperature: 57.09 degC, max 57.58 degC
Internal voltage: avg 1.01V, max 1.01V
Aux voltage: avg 2.47V, max 2.47V
Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
Active media: 100.00%
Rated PBW: 75.00 PB, 99.93% remaining
Lifetime data volumes:
Physical bytes written: 49,240,558,785,096
Physical bytes read : 49,148,837,040,744
Current: 85,192,256 bytes
Peak : 88,100,096 bytes
fct0: ID:0, UUID:a471b4b7-3782-4885-9726-f74ff96dcb42
fct0 State: Online, Type: block device
160.00 GBytes device size
Format: 312500000 sectors of 512 bytes
As we can see, the seller was right on the money, as the device still has over 99.9% of its rated 75 Petabytes of writes still ahead of it. It is nearly brand new.
Finally, using the ATTO disk benchmark (quite appropriate seeing as the enclosure is also an Atto product, heh), I could compare this blast from the past to a modern day NVMe m.2 drive, specifically, the 512GB Intel 600p. The results on the left are the m.2 drive, the ones in the middle are the IODrive at the end of a long Thunderbolt chain (Laptop -> Node Pro -> HP Thunderbolt Dock -> Apple Adapter -> Atto Thunderlink), while the ones on the right are the results of the Atto Thunderlink being connected directly to my laptop (via the Apple TB3 to TB adapter):
We can see that at the smaller IO sizes, the ancient IODrive blows the native m.2 drive out of the water (even when stuck at the end of a long device chain) on reads, but for long sequential transfers, the Intel NVMe device is far, far faster (and of course, a modern day enterprise SSD would be far faster than the old IODrive).
To summarize: Taking the oldest Thunderbolt controller ever released with one of oldest PCIe SSDs (predating NVMe) makes for relatively cheap Thunderbolt based storage and a nice little piece of computing history.
Seeing as empty Atto Thunderlink devices are still available for 40$ on ebay, and there are plenty of various types of IODrives and similar devices on ebay as well (including an IODrive2 in 1.2TB capacity for 150$ and a 785GB one for 80$ at the time of this writing, both using MLC flash), a higher capacity storage unit can be put together to use with Thunderbolt-enabled systems for under 200$. Even across Thunderbolt1, we're still talking in excess of 1GB/s transfer speeds if the drive is capable of that, so this is plenty fast, and the IOPS performance is also there, even with the first gen IODrive.
You could even stick one of these into an Expresscard adapter if you wanted to.
So, overall: Practical? Maybe. Fun? Yep 🙂
My eGPU Zoo - Link to my Implementations.
Want to output [email protected] out of an old system on the cheap? Read here.
Give your Node Pro a second Thunderbolt3 controller for reliable peripherals by re-using a TB3 dock (~50$).
"Always listen to experts. They'll tell you what can't be done, and why. Then do it."- Robert A. Heinlein, "Time Enough for Love."