Virtual SAN 8 and iSCSI MaxTransferLength

Software-based VM-centric and flash-friendly VM storage + free version

Moderators: anton (staff), art (staff), Max (staff), Anatoly (staff)

perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Wed Aug 26, 2015 5:25 pm

I installed VSAN 8 with its tape redirector support recently, and was very surprised to find that the StarWind_Virtual_SAN_Quick_Start_Guide document did not mention anywhere that the iSCSI MaxTransferLength needs to be set to 0x10000 in the Windows client machines for users of Tape Redirector.

Surely this is something that everyone needs to know about ...
Cheers
Dave
User avatar
anton (staff)
Site Admin
Posts: 4010
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Thu Aug 27, 2015 10:48 am

That's because it's Tape Redirector and not VSAN...
perdrix wrote:I installed VSAN 8 with its tape redirector support recently, and was very surprised to find that the StarWind_Virtual_SAN_Quick_Start_Guide document did not mention anywhere that the iSCSI MaxTransferLength needs to be set to 0x10000 in the Windows client machines for users of Tape Redirector.

Surely this is something that everyone needs to know about ...
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Mon Dec 12, 2016 5:49 pm

So what should MaxTransferLength be set to when using the Tape Redirector capability of Virtual SAN 8 please

Thanks again
Cheers
Dave
Michael (staff)
Staff
Posts: 317
Joined: Thu Jul 21, 2016 10:16 am

Wed Dec 14, 2016 1:10 pm

Hello Perdrix,
It is recommended to set MaxTransferLength value as 0x10000.
I think this post could be useful: https://forums.starwindsoftware.com/vie ... 089&p=9871
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Wed Dec 14, 2016 4:28 pm

No, thats the recommendation for the old Tape ReDirector.

Lets start over:

The initiator currently has the following settings:

FirstBurstLength=262144
MaxBurstLength=16776192
MaxRecvDataSegmentLength=262144
MaxXmitDataSegmentLength=0

What should I set the Advanced setting on Virtual SAN 8 to

First Burst Length=??? (currently set to 65536)
Maximum Burst Length = ??? (currently set to 262144)
Maximum Receive Data Segment Length = ??? (currently set to 65536)

When I tried to write to the tape, with a buffer size of 128k (131072), the write failed.

I can adjust the settings at either end, but can't find guidance to how to set these - e,g, if you set FirstBurstLength 262144 at the initiator, what settings have to be changed at the target?
Thanks
Dave
Cheers
Dave
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Wed Dec 14, 2016 4:29 pm

Added this post to get notified ...
Cheers
Dave
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Thu Dec 15, 2016 11:25 am

Trying to get my tape drive to work with a block size > 64K seems to trip over the problem that I cannot set FirstBurstLength in Advanced settings to anything above 65536

Is this something that can be changed by other means (registry for example)?
Dave
Cheers
Dave
Michael (staff)
Staff
Posts: 317
Joined: Thu Jul 21, 2016 10:16 am

Mon Dec 19, 2016 10:36 am

Hello Dave,
You can fit the settings above in StarWind configuration file - "C:\Program Files\StarWind Software\StarWind\StarWind.cfg"
Before editing the file, please make a copy of it, then stop StarWind service, open file in Wordpad, edit the appropriate values and uncomment the necessary lines there and save the configuration file.
Start StarWind service and check the values in StarWind Management console.
The uncommented lines should look like:
<iScsiFirstBurstLength value="*****"/>
<iScsiMaxBurstLength value="*****"/>
<iScsiMaxReceiveDataSegmentLength value="*****"/>
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Tue Dec 20, 2016 5:58 pm

Martin, thank you for that information. I updated the configuration as suggested, but:

12/20 17:47:40.071 2ab8 C[1], XPT_UP: Login request: ISID 0x00023d010000, TSIH 0x0000.
12/20 17:47:40.081 2ab8 C[1], XPT_UP: Event - LOGIN.
12/20 17:47:40.081 2ab8 C[1], IN_LOGIN: T4.
12/20 17:47:40.081 2ab8 Params: <<< String param 'InitiatorName': received 'iqn.1993-08.org.debian:01:4b52b6a48d57', accepted 'iqn.1993-08.org.debian:01:4b52b6a48d57'
12/20 17:47:40.081 2ab8 Params: <<< String param 'InitiatorAlias': received 'Charon', accepted 'Charon'
12/20 17:47:40.081 2ab8 Params: <<< String param 'TargetName': received 'iqn.2008-08.com.starwindsoftware:mercury-ultrium2', accepted 'iqn.2008-08.com.starwindsoftware:mercury-ultrium2'
12/20 17:47:40.081 2ab8 Params: <<< Enum param 'SessionType': received 'Normal', accepted 'Normal'
12/20 17:47:40.081 2ab8 Params: <<< Enum param 'HeaderDigest': received 'None', accepted 'None'
12/20 17:47:40.081 2ab8 Params: <<< Enum param 'DataDigest': received 'None', accepted 'None'
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'DefaultTime2Wait': received 2, accepted 2
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'DefaultTime2Retain': received 0, accepted 0
12/20 17:47:40.081 2ab8 Params: <<< Boolean param 'IFMarker': received No, accepted 0
12/20 17:47:40.081 2ab8 Params: <<< Boolean param 'OFMarker': received No, accepted 0
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'ErrorRecoveryLevel': received 0, accepted 0
12/20 17:47:40.081 2ab8 Params: <<< Boolean param 'InitialR2T': received No, accepted 0
12/20 17:47:40.081 2ab8 Params: <<< Boolean param 'ImmediateData': received Yes, accepted 1
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'MaxBurstLength': received 16776192, accepted 16776192
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'FirstBurstLength': received 262144, accepted 262144
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'MaxOutstandingR2T': received 1, accepted 1
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'MaxConnections': received 1, accepted 1
12/20 17:47:40.081 2ab8 Params: <<< Boolean param 'DataPDUInOrder': received Yes, accepted 1
12/20 17:47:40.081 2ab8 Params: <<< Boolean param 'DataSequenceInOrder': received Yes, accepted 1
12/20 17:47:40.081 2ab8 Params: <<< Numeric param 'MaxRecvDataSegmentLength': received 262144, accepted 262144
12/20 17:47:40.091 2ab8 SPTI: '\\?\scsi#sequential&ven_hp&prod_ultrium_2-scsi#6&3b67cb81&1&000300#{53f5630b-b6bf-11d0-94f2-00a0c91efb8b}': share: 0 ('').
12/20 17:47:40.091 2ab8 SPTI: '\\?\scsi#sequential&ven_hp&prod_ultrium_2-scsi#6&3b67cb81&1&000300#{53f5630b-b6bf-11d0-94f2-00a0c91efb8b}': DeviceType 1, VendorId 'HP ', ProductId 'Ultrium 2-SCSI ', ProductRevision 'F63D', SerialNumber 'HUL6C00989', BusType 1.
12/20 17:47:40.091 2ab8 SPTI: '\\?\scsi#sequential&ven_hp&prod_ultrium_2-scsi#6&3b67cb81&1&000300#{53f5630b-b6bf-11d0-94f2-00a0c91efb8b}': 'HP Ultrium 2-SCSI F63D': adapter 4, bus 0, target 3, LUN 0; maxTransferLength 65536, alignmentMask 0x0
12/20 17:47:40.091 2ab8 PR: LUN 0: registering session 0x1 from iqn.1993-08.org.debian:01:4b52b6a48d57,00023D010000
12/20 17:47:40.091 2ab8 PR: Set UA 0x2901 (0x0) for session 0x1 from iqn.1993-08.org.debian:01:4b52b6a48d57,00023D010000.
12/20 17:47:40.091 2ab8 Tgt: open 'iqn.2008-08.com.starwindsoftware:mercury-ultrium2': 1 session(s) opened, 0 more allowed.
12/20 17:47:40.091 2ab8 Params: >>> ErrorRecoveryLevel=0.
12/20 17:47:40.091 2ab8 Params: >>> MaxConnections=1.
12/20 17:47:40.091 2ab8 Params: >>> HeaderDigest=None.
12/20 17:47:40.091 2ab8 Params: >>> DataDigest=None.
12/20 17:47:40.091 2ab8 Params: >>> TargetAlias=ultrium2.
12/20 17:47:40.091 2ab8 Params: >>> OFMarker=No.
12/20 17:47:40.091 2ab8 Params: >>> IFMarker=No.
12/20 17:47:40.091 2ab8 Params: >>> InitialR2T=No.
12/20 17:47:40.091 2ab8 Params: >>> ImmediateData=Yes.
12/20 17:47:40.091 2ab8 Params: >>> MaxRecvDataSegmentLength=65536.
12/20 17:47:40.091 2ab8 Params: >>> MaxBurstLength=65536.
12/20 17:47:40.091 2ab8 Params: >>> FirstBurstLength=65536.
12/20 17:47:40.091 2ab8 Params: >>> DefaultTime2Wait=2.
12/20 17:47:40.091 2ab8 Params: >>> DefaultTime2Retain=0.
12/20 17:47:40.091 2ab8 Params: >>> MaxOutstandingR2T=1.
12/20 17:47:40.091 2ab8 Params: >>> DataPDUInOrder=Yes.
12/20 17:47:40.091 2ab8 Params: >>> DataSequenceInOrder=Yes.
12/20 17:47:40.091 2ab8 Params: >>> TargetPortalGroupTag=1.
12/20 17:47:40.091 2abc T[1,1]: session 0x1, connection 0x1 : end of stage 1, next stage 3.
12/20 17:47:40.091 2abc C[1], IN_LOGIN: Event - LOGIN_ACCEPT.
12/20 17:47:40.091 2abc C[1], LIN: T5.
12/20 17:47:40.426 2abc PR: UA 0x2901 returned to opcode 0x0 for session 0x1 from iqn.1993-08.org.debian:01:4b52b6a48d57,00023D010000.
Cheers
Dave
Michael (staff)
Staff
Posts: 317
Joined: Thu Jul 21, 2016 10:16 am

Thu Dec 22, 2016 3:59 pm

Hello Dave,
Could you please publish the whole log for us?
Thank you!
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Fri Dec 23, 2016 10:51 am

Here's the log as reqeuested.
starwind-20161220-174409.zip
(6.31 KiB) Downloaded 305 times
Dave
Cheers
Dave
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Sat Dec 24, 2016 4:18 pm

Happy XMAS to all - I'll chase this up after the holiday

Dave
Cheers
Dave
Michael (staff)
Staff
Posts: 317
Joined: Thu Jul 21, 2016 10:16 am

Fri Dec 30, 2016 3:40 pm

Hello Dave,
Our R&D department advised limiting MaxTransferLength on initiator side because it looks like it is limited by the tape.
perdrix
Posts: 26
Joined: Mon Oct 17, 2011 1:51 pm

Fri Dec 30, 2016 6:09 pm

Michael,

I don't believe that's correct, certainly for LTFS supporting LTO drives the recommended blocksize is 512kB, and I'm sure that LTO-2 drives will happily handle 512kB.

See: www-01.ibm.com/software/cn/tivoli/produ ... sm-lto.pdf from as long ago as 2002 showing use of blocksizes of 512kB.

I've certainly seem recommendations to use even larger blocksizes (in the megabytes range) to get consistent streaming.

Regards
Dave
Cheers
Dave
Michael (staff)
Staff
Posts: 317
Joined: Thu Jul 21, 2016 10:16 am

Fri Jan 06, 2017 9:58 am

Hello Dave,
It is good to know that recommended blocksize is 512kB, but from the logs, you have provided we see that device limits block size - maxTransferLength 65536:

12/20 17:47:40.091 2ab8 SPTI: '\\?\scsi#sequential&ven_hp&prod_ultrium_2-scsi#6&3b67cb81&1&000300#{53f5630b-b6bf-11d0-94f2-00a0c91efb8b}': 'HP Ultrium 2-SCSI F63D': adapter 4, bus 0, target 3, LUN 0; maxTransferLength 65536, alignmentMask 0x0

Since Tape Redirector "redirects" device as is, and device limits the block size, one of possible ways to resolve it - limit it on initiator side.
Alternatively, you can try another driver for the device, which will support bigger blocksize or probably change it in the registry.
Here is a link to HP Community which could be helpful: https://community.hpe.com/t5/Technical- ... G6JNi-g8e0
It says: "You know the default for LTO/Ultrium is 64k, and you've typically increased that to 256k which has historically been the sweet spot for backup to physical tape. So now you're going to set your VTL tape device block size to 512k. What could possibly go wrong?"
Post Reply