donia
1 Copper

What purpose does setting the physical-block-size do?

Jump to solution

Customer is asking :

Connecting our Xtremio 4.0.2-80 to some of our Solaris 11.3 sparc systems.

I have some questions on the setting that are to be changed.

The instructions state to set the physical-block-size to 8192 but then later it says to use 512 when you create the volumes.

Is this correct. What purpose does setting the physical-block-size do.?

_______________________________________________________________

From the Host Guide I found:


For a SPARC host:

Append the following line to the /etc/driver/drv/ssd.conf file:

ssd-config-list = "XtremIO XtremApp", "throttle-max:64,

delay-busy:30000000000, retries-busy:90,

retries-timeout:30, physical-block-size:8192,

retries-notready:30";

- physical-block-size:8192 - The block size used on the storage system. For XtremIO versions3.x (or above), use 8192. Otherwise, use 4096.

Note: This setting is only relevant for Solaris 11.

Also found :


*using a physical block size other than the default 512 bytes can result in incompatibilities when using some layered clustering products. Using the default 512 byte physical block size, as defined in the sd/ssd.conf file, alleviates this problem.


so what is the best practice to recommend the customer to configure.?

Tags (1)
1 Solution

Accepted Solutions
mdeitrick
1 Copper

Re: What purpose does setting the physical-block-size do?

Jump to solution

These recommendations are there to prevent issues with unaligned IO and represent different pieces of a larger puzzle.

  • A disk’s block size represents the minimal IO size it can receive
  • Each array has an optimized processing IO size due to internal implementation - This size is usually larger than the block size
  • IO alignment refers to the alignment of the host IO to the optimized array blocks

XtremIO 3.x and newer has been optimized to process IO that is 8K or 8192 bytes. The minimal IO size it can receive is 512 bytes - this value is configured during the creation of the LUN on the XtremIO array.

4 Replies
mdeitrick
1 Copper

Re: What purpose does setting the physical-block-size do?

Jump to solution

These recommendations are there to prevent issues with unaligned IO and represent different pieces of a larger puzzle.

  • A disk’s block size represents the minimal IO size it can receive
  • Each array has an optimized processing IO size due to internal implementation - This size is usually larger than the block size
  • IO alignment refers to the alignment of the host IO to the optimized array blocks

XtremIO 3.x and newer has been optimized to process IO that is 8K or 8192 bytes. The minimal IO size it can receive is 512 bytes - this value is configured during the creation of the LUN on the XtremIO array.

scotthoward
2 Iron

Re: What purpose does setting the physical-block-size do?

Jump to solution

This recommendation is primarily relevant when using ZFS.


The problem is that ZFS on Solaris does not allow you to manually set the block size/alignment (known as "ashift" in the ZFS world).  The open source implementations of ZFS have added this as an option when creating a new pool, but Solaris doesn't have that option.

Instead Solaris just uses the block size as presented by the disk, which with XtremIO (and basically all other arrays) is 512 bytes - not because that's the actual block size, but for historic reasons it's what everyone presents. However internally all flash products, including just raw SSDs, use something >512 bytes - in XtremIO's case it's 8K.  (For what it's worth, we tried having XtremIO actually present an 8K block size to Solaris - and it crashed Solaris!!)

Setting the physical-block-size setting tricks Solaris, ,and especially ZFS, into acting like the device actually has an 8K block size, and thus any newly created zpools will have an ashift value of 13 (2^13 = 8192) - resulting in perfectly aligned IOs and significantly better performance than using 512 bytes.

If you're interested, I did a blog post a while back showing the performance improvement of properly aligned IO with ZFS (and the further improvements of not using ZFS at all!) - You can ready it here...

Highlighted
donia
1 Copper

Re: What purpose does setting the physical-block-size do?

Jump to solution

Thank you mdeitrick , Your answer was close to my findings to the customer which he approved ,

Regarding your for the physical-block-size, I have checked the  Host Guide https://support.emc.com/docu56210_XtremIO-Host-Configuration-Guide.pdf?language=en_US page 111-112 which state

Modify the appropriate sd.conf or ssd.conf file (according to Solaris OS version and Solaris architecture on the host), and append the appropriate entry:

For a SPARC host

Append the following line to the /etc/driver/drv/ssd.conf file:

ssd-config-list = "XtremIO XtremApp", "throttle-max:64,

delay-busy:30000000000, retries-busy:90,

retries-timeout:30, physical-block-size:8192,

retries-notready:30";

For XtremIO versions3.x (or above), use 8192. Otherwise, use 4096. Since that your XtremIO Version 4.0.2-80 you will use 8192.

What is the purpose does setting the “physical-block-size” do ?

we set the physical block size to 8192 as it work overall in a better way (Most likely as we write data in 8KB blocks). Setting the physical block size to 512 can result with incompatibilities when using layered cluster products. Hence we advise using 8192 as it work best overall due to the way we store the data.

as it is recommend in the Host Guide https://support.emc.com/docu56210_XtremIO-Host-Configuration-Guide.pdf?language=en_US Page 116 states,

When creating volumes in XtremIO for a Solaris host, the logical block (LB) size of a new XtremIO volume is 512B. This parameter can be adjusted to 4KB.

Note: In XtremIO version 4.0.0 (and above), the Legacy Windows option is not supported.

A 512B logical block size should be used for a new XtremIO volume.

Note: The usage of 4KB logical block size is not recommended for new XtremIO volumes with Solaris. UFS file system does not support a 4KB block size.

0 Kudos
donia
1 Copper

Re: What purpose does setting the physical-block-size do?

Jump to solution

Thank you  scotthoward Your answer was close to my findings to the customer which he approved ,

Regarding your for the physical-block-size, I have checked the  Host Guide https://support.emc.com/docu56210_XtremIO-Host-Configuration-Guide.pdf?language=en_US page 111-112 which state

Modify the appropriate sd.conf or ssd.conf file (according to Solaris OS version and Solaris architecture on the host), and append the appropriate entry:

For a SPARC host

Append the following line to the /etc/driver/drv/ssd.conf file:

ssd-config-list = "XtremIO XtremApp", "throttle-max:64,

delay-busy:30000000000, retries-busy:90,

retries-timeout:30, physical-block-size:8192,

retries-notready:30";

For XtremIO versions3.x (or above), use 8192. Otherwise, use 4096. Since that your XtremIO Version 4.0.2-80 you will use 8192.

What is the purpose does setting the “physical-block-size” do ?

we set the physical block size to 8192 as it work overall in a better way (Most likely as we write data in 8KB blocks). Setting the physical block size to 512 can result with incompatibilities when using layered cluster products. Hence we advise using 8192 as it work best overall due to the way we store the data.

as it is recommend in the Host Guide https://support.emc.com/docu56210_XtremIO-Host-Configuration-Guide.pdf?language=en_US Page 116 states,

When creating volumes in XtremIO for a Solaris host, the logical block (LB) size of a new XtremIO volume is 512B. This parameter can be adjusted to 4KB.

Note: In XtremIO version 4.0.0 (and above), the Legacy Windows option is not supported.

A 512B logical block size should be used for a new XtremIO volume.

Note: The usage of 4KB logical block size is not recommended for new XtremIO volumes with Solaris. UFS file system does not support a 4KB block size.

0 Kudos