Sun Microsystems, Inc.  Sun System Handbook - ISO 4.1 October 2012 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-71-1175573.1
Update Date:2012-05-29
Keywords:

Solution Type  Technical Instruction Sure

Solution  1175573.1 :   Sun Storage 7000 Unified Storage System: Configuration and tuning for iSCSI performance  


Related Items
  • Sun Storage 7310 Unified Storage System
  •  
  • Sun Storage 7410 Unified Storage System
  •  
  • Sun ZFS Storage 7120
  •  
  • Sun Storage 7110 Unified Storage System
  •  
  • Sun ZFS Storage 7320
  •  
  • Sun ZFS Storage 7420
  •  
  • Sun Storage 7210 Unified Storage System
  •  
Related Categories
  • PLA-Support>Sun Systems>DISK>NAS>SN-DK: 7xxx NAS
  •  
  • .Old GCS Categories>Sun Microsystems>Storage - Disk>Unified Storage
  •  




In this Document
Goal
Fix
 1. Misaligned partition blocks
 2.  Usage of Write cache and Log device
 3.  RAID Type
References


Applies to:

Sun Storage 7410 Unified Storage System - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 7210 Unified Storage System - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 7110 Unified Storage System - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 7310 Unified Storage System - Version Not Applicable to Not Applicable [Release N/A]
Sun ZFS Storage 7120 - Version Not Applicable to Not Applicable [Release N/A]
7000 Appliance OS (Fishworks)

Goal

To discuss this information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the My Oracle Support Community - 7000 Series ZFS Appliances


To provide performance tuning considerations for Unified storage configured to use iSCSI.

Fix

1. Misaligned partition blocks

The partition/slice starting block on the client host may or may not be alignment with the block allocated on by the zvol on the 7000 series storage. This misalignment causes the storage to under utilize the zvol blocks for each read or write coming from the host. Note that there is no target side defect, the tuning is required from the client side at the time of creating the LUN partitions/slices on the client host. Depending on your client host type and LUN label, use the following method to determine if your system is affected by the misalignment.

  • Label type : EFI
    Since an EFI label is sector addressable (and actually has no concept of cylinders or tracks), the following must be true for a given slice to be aligned:
    (starting sector number * sector size) % block size == 0
    With the "zpool create/add" default offset of 256 sectors, we are correctly aligned for any power of two zvol blocksize up to 128K.

  • Label type : SMI
    When using cylinder addressing to create a partition, the following must be true for a given partition to be aligned:
    (cylinder number * number of heads * sectors per track * sector size) % block size == 0

  • Windows Vista / 2008:
    Correctly aligned by default.

  • Windows 2003 SP1 and later:
    Misaligned by default.

    To determine the starting offset on windows use the following command
    C:> wmic partition get BlockSize, StartingOffset, Name, Index
    BlockSize   Index Name                    StartingOffset
    512         0     Disk #2, Partition #0   1048576
    512         0     Disk #1, Partition #0   1048576
    512         0     Disk #0, Partition #0   32256  < default Windows 2003 partition offset of 63 sectors

    To find the starting sector, divide the StartingOffset value by BlockSize:
    32256 / 512 = 63

    For proper alignment, StartingOffset should be a multiple of the number of bytes (not sectors) in the LUN volume block defined on the NAS head. For example, with a default 8KB LUN volume block size, StartingOffset should be a multiple of 8KB (align=8). Similarly, with a non default 128KB LUN volume block size, StartingOffset should be a multiple of 128 KB (align=128).


    C:\> diskpart
    DISKPART> list disk
    Disk ### Status     Size    Free    Dyn Gpt
    -------- ---------- ------- ------- --- ---
    Disk 0   Online     100 GB   100 GB
    Disk 1   Online      34 GB  4080 KB
    Disk 2   Online     100 GB   100 GB
    Disk 3   Online     100 GB   100 GB
    Disk 4   Online     100 GB   100 GB

    DISKPART> select disk 2
    Disk 2 is now the selected disk.

    DISKPART> create partition primary align=128
    DiskPart succeeded in creating the specified partition.

    DISKPART> list partition
    Partition ### Type             Size    Offset
    ------------- ---------------- ------- -------
    * Partition 1 Primary          100 GB  128 KB



  • To correct the partitions / slices which are misaligned:
    Recreate the partition / slice starting from the sector/cylinder/offset which satisfies the above formula as applicable in your case.

    For Windows 2003 SP1 and above use diskpart.exe utility and include align=X option, a1nd specify X=128 to align for any block size up to 128KB.
    You can create multiple slices if needed, as long as the starting sector of each meets the criteria above.

Following CRs are in place to take care of this issue in terms of identifying any misaligned
partition, these CRs are not yet fixed as of 2010.Q3.

<SUNBUG 6918051> 2009.Q3 COMSTAR iSCSI target - sequential read performance is much slower on Windows 2008R2 initiator
<SUNBUG 6919756> zfs exported luns need a way to cancel systematic unaligned offset after disk partitioning
<SUNBUG 6922617> exported lun geometry should have cylinders aligned on exported block device
<SUNBUG 6922630> need analytic dataset to identify initiator induced misaligned lun

2.  Usage of Write cache and Log device

Write cache:
When write cache is enabled all the synchronous writes will go to the ARC on the node and later gets synced to the stable hard disk. In the event of node crash the un-synced data in the cache is lost. Unless the host application understand this semantics and can recover from this condition it is not advisable to enable this property.

Log Device (Also known as ZIL SSD, write optimized SSD):
Generally iSCSI IOs are random synchronous IO using one or more Log device will improve iSCSI write performance.

Configure Latency optimized:
Setting this parameter will immediately commit writes to the Log device, which reduces the write latency considerably. And by immediately committing writes to the SSDs, writes are protected against failure. This setting makes heavily use of Log device and it is limited by Log device performance. More Log devices striped together provide better IOPs and bandwidth performance.

Throughput optimized:
This means that writes bypass the Log device and commit directly to pool disks. This setting is usually very slow for a single transaction and only provides reasonable throughput when highly multi-threaded writes are hitting an iSCSI LUN. This setting should be avoided in most cases to achieve a decent performance as only few workloads could provide such highly parallel load.

Summary:
a. Enable write cache only if the host understands the write cache semantic
b. If write cache is not enabled, then it recommended to have Log device
c. Configure Latency optimization

3.  RAID Type

The recommended disk layout for iSCSI environment is RAID 10 (mirrored sets in a striped set; ZFS stripes the data automatically between multiple sets). It is called 'Mirrored' by the 7000 series. While this disk layout uses 50% of the available disk capacity for redundancy it is faster than RAID 5 for intense small random read/writes which is the typical access characteristic for iSCSI.
 
 
 
Back to <Document 1331769.1> Sun Storage 7000 Unified Storage System: How to Troubleshoot Performance Issues.

References

@ <BUG:6918051> - 2009.Q3 COMSTAR ISCSI TARGET - SEQUENTIAL READ PERFORMANCE IS MUCH SLOWER ON WINDOWS 2008R2 INITIATO
<BUG:6919756> - ZFS EXPORTED LUNS NEED A WAY TO CANCEL SYSTEMATIC UNALIGNED OFFSET AFTER DISK PARTITIONING
@ <BUG:6922617> - COMSTAR EXPORTED LUN GEOMETRY SHOULD HAVE CYLINDERS ALIGNED ON EXPORTED BLOCK DEVICE
@ <BUG:6922630> - NEED ANALYTIC DATASET TO IDENTIFY INITIATOR INDUCED MISALIGNED LUN
<NOTE:1331769.1> - Sun Storage 7000 Unified Storage System: How to Troubleshoot Performance Issues

Attachments
This solution has no attachment
  Copyright © 2012 Sun Microsystems, Inc.  All rights reserved.
 Feedback