Does pfSense support UASP ( USB Attached SCSI ) (updated: yes)

  • Does pfSense support UASP?


    I just burned through a mSATA SSD with pfSense in 13 days.  :(.

    Looking to buy an external USB 3 hard drive enclosure, drop spinning rust in there, and not have to worry about it for a few years.

    The only ports on the board are mSATA.  It is impossible to find a HDD for mSATA.  Does have a USB 3 port though, so seems obvious.

    I really cannot put the logs on a ramdisk, need persistence after crash.  Also running squid and pfblockerNG.

  • How did you manage that?

  • not much really.

    Upped the log file size to 10 megabytes.  ( x20 = 200 megabytes )

    Installed squid (transparent http only) with 14 gigabyte local disk cache (only filled maybe 1/4 of that before death).  refresh_pattern . 0 95% 43200

    Installed pfBlockerNG with DNSBL.  Had a few lists updating hourly.

    Had about a 100 clients, 1/2 of which were mobile phones, 1/4 were smart TVs.

    The SSD in question came with the unit I purchased:

  • Banned

    Well then you could perhaps RMA the faulty SSD, instead of inventing whacky things. No, SSDs do NOT die in two weeks normally.

  • pfsense 2.4.0-RELEASE (amd64) does support UASP.

    #camcontrol devlist
    <st1000nm 0011="" pt0d="">at scbus0 target 0 lun 0 (pass0,da0)
    #camcontrol inquiry da0
    pass0: <st1000nm 0011="" pt0d="">Fixed Direct Access SPC-4 SCSI device
    pass0: Serial Number 000000123BA3
    pass0: 400.000MB/s transfers
    ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
    ugen0.2: <vendor 0x05e3="" usb2.0="" hub="">at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)
    ugen0.3: <vendor 0x04d9="" usb="" keyboard="">at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
    ugen0.4: <vli manufacture="" string="" vli="" product="">at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (2mA)</vli></vendor></vendor></st1000nm></st1000nm> 

    This is with this USB to SATA device and this HDD.

    My next mission is to figure out how to test the actual speed it achieves.

    Edit: build in speed test:

    #diskinfo -tv /dev/da0p2
    	512         	# sectorsize
    	996431888384	# mediasize in bytes (928G)
    	1946156032  	# mediasize in sectors
    	0           	# stripesize
    	544768      	# stripeoffset
    	121142      	# Cylinders according to firmware.
    	255         	# Heads according to firmware.
    	63          	# Sectors according to firmware.
    	000000123BA3	# Disk ident.
    Seek times:
    	Full stroke:	  250 iter in   5.089351 sec =   20.357 msec
    	Half stroke:	  250 iter in   3.598658 sec =   14.395 msec
    	Quarter stroke:	  500 iter in   5.795468 sec =   11.591 msec
    	Short forward:	  400 iter in   1.517583 sec =    3.794 msec
    	Short backward:	  400 iter in   2.655790 sec =    6.639 msec
    	Seq outer:	 2048 iter in   1.572585 sec =    0.768 msec
    	Seq inner:	 2048 iter in   1.577754 sec =    0.770 msec
    Transfer rates:
    	outside:       102400 kbytes in   0.831469 sec =   123156 kbytes/sec
    	middle:        102400 kbytes in   0.863127 sec =   118638 kbytes/sec
    	inside:        102400 kbytes in   1.456835 sec =    70289 kbytes/sec