NOTE: While this still works, IBM decided on UDF for USB disks. UDF is cross-platform compatible.
See this post for more info: http://omnitech.net/reference/2017/08/02/howto-aix-support-for-rw-filesystem-on-usbms/
So far, IBM says you cannot mount a USB mass storage device. I wanted to test this out a bit.
I bought a Belkin F5U219 USB adapter for a whopping $12 including shipping. This is AKA IBM FRU 80P2994 or FC2738, 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 I had 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 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>?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=/dev/usbms1 /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 #</y>
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 could use an eSATA port expander (about $100) to merge up to 5 drives into one device (JBOD, RAID0, RAID1, RAID5). You’re still limited to 480mbit (60mbyte) per second per USB controller, so keep that in mind.
We have a spare 1TB drive, so I will probably test performance on it also. I’m anticipating it will get 300 mbit or so with DD, since that should tap out one whole CPU on this system.
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 be 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.
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.
USB 2.0 support
The EHCI driver is devices.pci.3310e000.rte, and the current version is 22.214.171.124. That should be version matched with 33103500 which is the UHCI driver.
As things move forward, this may be moot. USBMS boot support issues are being resolved. That implies that the devices may be supported for VGs in the future.
Also, http://www-01.ibm.com/support/docview.wss?uid=isg1IZ61425 APAR IZ61425 was the fix for EHCI enablement.
USB MS mksysb Boot