This blog post covers how I tracked down when SMB 2.1 support was re-enabled in ONTAP 8.1.x 7-mode, having been disabled in the initial release of 8.1.2.
Tracking down SMB 2.1 support in 8.1.x 7-Mode
If you follow me on twitter, you’ll be aware that I’m
relatively obsessed with curious about SMB 2.1 support on NetApp’s ONTAP operating system. The reason for this is simple: in my benchmarks on ONTAP 8.1.1, SMB 2.1 noticeably outperformed SMB 2.0 when latencies were introduced.
SMB 2.1 support in ONTAP 7-Mode – a quick history
SMB 2.1 support first arrived in ONTAP 8.1.1 7-mode. The performance over the SMB 2.0 implementation in ONTAP 8.0.x was noticeable over WAN. Sadly, the implementation of SMB 2.1 had some nasty bugs in it.
SMB 2.1 support was disabled in 8.1.2. However, most of the documentation and release notes still alluded to SMB 2.1 features like oplocks leasing.
At this point, I didn’t know when SMB 2.1 was coming back, but I was keen to find out. After much digging, I found this nugget in a bug report:
This issue is not present in the Data ONTAP 8.1.2 release even though the fix is not available in that release. That is because the 8.1.2 release has an option that disables the SMB 2.1 dialect, which disables SMB 2.1 leasing. A subsequent 8.1.2 release will contain the fix for this bug, and also will re-enable SMB 2.1.
From this point onwards, with every new “P” release of ONTAP 8.1.2 I was looking for news in the release notes that SMB2.1 has been re-enabled. I never found anything.
When 8.1.3RC1 was released last week, I still couldn’t find reference to SMB 2.1 being re-enabled. So I decided to start digging and testing.
Digging for evidence
To find out if/when SMB 2.1 was re-enabled, I ran some tests against various ONTAP 7-Mode releases on my lab FAS3070.
For the tests below, I installed the stated ONTAP version, then ran the “Directory Copy” benchmark tests from Intel’s NASPT.
As far as I can tell, the only way to tell if SMB 2.1 is on, is to look for lease oplocks; a feature which is in SMB 2.1 but not SMB 2.0.
You can look at file lock status in SMB/CIFS by using the following command:
lock status -p cifs
If durable_handle= is shown blank, and oplock=Lease-* then lease oplocks are in place – meaning SMB 2.1 is enabled. [Reference]
SMB 2.1 is enabled
filer1> lock status -p cifs<br /> CIFS path=\NASPT\DirectoryCopyFromNAS\Copy Directory\dir\Templates\Presentation Designs\Watermark.pot(/vol/cifs_testing/cifs_testing/NASPT/DirectoryCopyFromNAS/Copy Directory/dir/Templates/Presentation Designs/Watermark.pot) host= owner= state=GRANTED mode=Oplock-Excl <strong>oplock=Lease-RWH</strong> fsid=0x02af81f5 fileid=0x00019df8 <strong>durable_state=</strong>
SMB 2.1 is disabled
filer1> lock status -p cifs<br /> CIFS path=\NASPT\DirectoryCopyFromNAS\Copy Directory\dir\Templates\Presentation Designs\Slit.pot(/vol/cifs_testing/cifs_testing/NASPT/DirectoryCopyFromNAS/Copy Directory/dir/Templates/Presentation Designs/Slit.pot) host=10.0.14.193(W7SMBTEST) owner=philwiffen state=GRANTED mode=Oplock-Excl <strong>oplock=Oplock-Excl</strong> fsid=0x02af81f5 fileid=0x00019df5 <strong>durable_state=DH_GRANTED</strong>
SMB 2.1 is enabled
filer1> lock status -p cifs<br /> CIFS path=\NASPT\DirectoryCopyFromNAS\Copy Directory\dir\PROD\SAMPLES\app4\WRONGVER.XML(/vol/cifs_testing/cifs_testing/NASPT/DirectoryCopyFromNAS/Copy Directory/dir/PROD/SAMPLES/app4/WRONGVER.XML) host= owner= state=GRANTED mode=Oplock-Excl <strong>oplock=Lease-RWH</strong> fsid=0x02af81f5 fileid=0x0003f42d <strong>durable_state=</strong>
SMB2.1 is enabled
filer1> lock status -p cifs<br /> CIFS path=\NASPT\DirectoryCopyToNAS\Copy Directory\dir\Templates\Presentation Designs\Digital Dots.pot(/vol/cifs_testing/cifs_testing/NASPT/DirectoryCopyToNAS/Copy Directory/dir/Templates/Presentation Designs/Digital Dots.pot) host= owner= state=GRANTED mode=Oplock-Excl <strong>oplock=Lease-RWH</strong> fsid=0x02af81f5 fileid=0x000281b4 <strong>durable_state=</strong>
SMB2.1 is enabled
filer1> lock status -p cifs<br /> CIFS path=\NASPT\DirectoryCopyToNAS\Copy Directory\dir\CLIPART\PUB60COR\PARNT_10.MID(/vol/cifs_testing/cifs_testing/NASPT/DirectoryCopyToNAS/Copy Directory/dir/CLIPART/PUB60COR/PARNT_10.MID) host= owner= state=GRANTED mode=Oplock-Excl <strong>oplock=Lease-RWH</strong> fsid=0x02af81f5 fileid=0x0004a559 <strong>durable_state=</strong>
|ONTAP 7-Mode||SMB 2.1 Supported|
Next Steps – Getting 8.1.2P3 or 8.1.2P4 with SMB 2.1 support
Now we know that SMB 2.1 is enabled in ONTAP 8.1.2P3 onwards, we need to get it.
When you visit support.netapp.com and go to download ONTAP software, you’ll generally be presented with the original version of 8.1.2, which we now know doesn’t have SMB 2.1 support.
To get a version with SMB 2.1 support go here:
Why the confusion?
My main confusion around this derives from Release Notes.
- Release notes for 8.1.1 specifically mention SMB 2.1 support:
- Release notes for 8.1.2 specifically mention that SMB 2.1 support is disabled:
- Release notes for 8.1.3 make no mention of SMB 2.1 being re-enabled (even though this is a new point release, and as SMB 2.1 was disabled in the original 8.1.2 release it should probably mention that SMB 2.1 is back)
- Those with sharp eyes may notice that the bug report specifically says “a subsequent release of 8.1.2 will re-enable SMB 2.1”. Which makes it relatively obvious that a P-release will re-enable SMB 2.1. However, I am convinced that when I first saw this bug report, it said “a subsequent release will re-enable SMB 2.1”, which is somewhat more vague. Wish I’d screenshotted it now 🙂
- More information on SMB 2.0 and SMB 2.1 is here: http://technet.microsoft.com/en-us/library/ff625695(v=WS.10).aspx