I bought a Belkin F5U219 USB adapter for a whopping $12 including shipping. This is AKA IBM FRU 80P2994, FC2738, or FC0632 and is supported under AIX for KB and mouse. Also, it's supported for USB mass storage as of AIX 5.3 TL9 or later, and AIX 6.1 TL2 or later.
I plugged it into our 44p, then LO AND BEHOLD! It is detected by the IBM PCI USB2 drivers (33103500).
I took a mksysb to SCSI tape, and then, I upgraded to 18.104.22.168 latest via suma. Now, the two USB 80G WD SATA drives attached are detected as usbms0 and usbms1.
There are block devices, but no character devices show up. This means no TSM volumes on the raw device, but what about filesystem access?
AIX does *not* call these hdisks. They are "USB Mass Storage" devices. As such, they *cannot* presently be a part of your LVM. No PPs, no VGs, no LPs, no striping, mirroring, concatenating, rootvg booting, etc.
Also, AIX does not presently know how to handle, nor even look for a partition table on USB devices. mtools expects to see a partition device, not a disk device. As such, your FAT filesystem will not be accessible through AIX.
However, you don't NEED LVM or DOS Partition Tables for a mounted filesystem. Just as you can put a filesystem on a ramdisk, you can put one on any random access storage device.
# mkfs -olog=INLINE,ea=v2 -Vjfs2 /dev/usbms1 mkfs: destroy /dev/usbms1 (yes)? y logform: Format inline log for
?y File system created successfully. 77816244 kilobytes total disk space. Device /dev/usbms1: Standard empty filesystem Size: 155632488 512-byte (DEVBLKSIZE) blocks # mkdir /usb1 # mount -V jfs2 -o log=INLINE /dev/usbms1 /usb1 # df -k Filesystem 1024-blocks Free %Used Iused %Iused Mounted on /dev/hd4 262144 161420 39% 6295 5% / /dev/hd2 3932160 512436 87% 52989 6% /usr /dev/hd9var 262144 160548 39% 5542 9% /var /dev/hd3 3407872 2968652 13% 246 1% /tmp /dev/hd1 262144 253432 4% 39 1% /home /proc - - - - - /proc /dev/hd10opt 1310720 265876 80% 25523 8% /opt /dev/fslv00 25165824 10337756 59% 38 1% /tsm /dev/scrlv 78643200 75589416 4% 904 1% /scratch /dev/usbms0 78125000 77806612 1% 4 1% /usb0 /dev/usbms1 78125000 77806612 1% 4 1% /usb1 #
Excellent. I wrote to it, unmounted, remounted, and the file was still there.
Now, if you want it to automatically mount on boot, manually edit the /etc/filesystems and add these 2 entries:
/usb0: dev = /dev/usbms0 vfs = jfs2 log = INLINE mount = true options = rw /usb1: dev = /dev/usbms1 vfs = jfs2 log = INLINE mount = true options = rw account = false
OK, great, but what about this "USB 1.1 performance only" note in the AIX readmes? That also no longer applies. Looking at lsdev after the AIX updates, we see the USB2 device showed up as usbhc2:
# lsdev -C | grep -i usb usb0 Available USB System Software usbhc0 Available 20-60 USB Host Controller (33103500) usbhc1 Available 20-61 USB Host Controller (33103500) usbhc2 Available 20-62 USB Enhanced Host Controller (3310e000) usbms0 Available 2.2 USB Mass Storage usbms1 Available 2.3 USB Mass Storage
As proof, a simple DD test to check performance:
# time dd if=/dev/zero of=/usb0/test1g bs=256k count=4k 4096+0 records in. 4096+0 records out. real 0m57.68s user 0m0.08s sys 0m13.40s
So on our 2-way 375MHz 7044-260, it writes 142 mbit/sec to the device using 23.2% CPU (half of one CPU). Later testing proved this to be the same speed for FAT32 on Windows XP for these same devices. This is a far cry from the 480 mbit/sec limit of USB 2.0, but it definitely exceeds USB 1.1's limit of 12 mbit/sec.
Great, that sounds usable. What if I want to move the device?
# umount /usb0
# rmdev -l usbms0
unplug the cable
plug it into the new system
# cfgmgr -l usb0
mount or /etc/filesystems as before
If you needed RAID, mirroring, or striping, you have to do that in hardware. There is no LVM, so not even block based mirroring is available. If it's completely transparent, you could use an eSATA port expander (about $100) to merge up to 5 drives into one device (JBOD, RAID0, RAID1, RAID5).
Keep in mind that the 480mbit (60mbyte) per second per USB controller limit has an effective speed of 320mbit (40mbyte) per second due to USB sof/eof timing.
As a final note, if you want to move the drive BACK to a Windows system, the MBR and Partition Table will have been overwritten by JFS2 structures. XP Disk Manager may be confused and may leave you with chunks of the disk marked as unremovable partitions. Any free partitioning software worth its salt, or even a Linux Recovery CD should be able to wipe this clean for you and build a new FAT32 primary partition across the whole drive. Alternatively, just wipe the first bit from AIX before you unplug it:
# dd if=/dev/zero of=/dev/usbms0 bs=256k count=1
Suffice it to say that if you're willing to do a little but of manual work for the set-up, it's very usable.
UPDATE 2014-07-29: Minor typos and cleanup. Also, note that LVM is still not allowed on USBMSDs, even with AIX 7.1.
UPDATE 2015-05-21: In case it was not obvious, this is not supported by IBM. Currently, it's not in any whitebook, and ZTRANS says it's not supported. The biggest issue is a risk of kernel panic of the USB device is unplugged. Many of the safety mechanisms for filesystems going offline would be handled by LVM, which is completely bypassed. Doing this with a ramdisk is one thing, since if RAM goes away, you're in trouble anyway. Still no support for USBMSD being in a volume group.
Also, an IBMer had claimed copyright on the procedure in 2014, but that was rejected and deleted in 2015, mostly because it ended up in a defect complaint due to USB pull kernel panic.