NetApp and Solaris

From Lolly's Wiki
Jump to navigationJump to search

Solaris NetApp Just some unsorted lines...

Settings in Solaris

Settings for MPxIO over FC:

/kernel/drv/ssd.conf

ssd-config-list="NETAPP  LUN","netapp-ssd-config";
netapp-ssd-config=1,0x9007,64,300,30,0,0,0,0,0,0,0,0,0,30,0,0,8,0,0;

/kernel/drv/sd.conf

sd-config-list=
"NETAPP  LUN","physical-block-size:4096";

Check it out

# iostat -Er | /opt/sfw/bin/gawk 'BEGIN{command="echo ::ssd_state | mdb -k"; while(command|getline){if(/^un [0-9]+:/ && $NF != "0"){ssd=$2;gsub(/:$/,"",ssd);while(!/^}/){command|getline;if(/un_phy_blocksize/){un_phy_blocksize[ssd]=strtonum($NF);}}}};close(command);}/ssd/{ssd=$1;gsub(/^ssd/,"",ssd);getline;split($0,vendor,",");printf "ssd: %s\tun_phy_blocksize: %d\t%s\t%s\n",ssd,un_phy_blocksize[ssd],vendor[1],vendor[4];}'

Alignment and ZFS

First read ZFS zpools create misaligned I/O in Solaris 11 and Solaris 10 Update 8 and later (407376).

If you have 4k as block size in your storage use ashift=12 (alignment shift exponent).

ashift=12? Why 12?

# echo "2^12" | bc -l
4096

OK... 4k... I see.

What ashift do I have?

# zdb | egrep ' name|ashift'
    name: 'apache_pool'
            ashift: 9
    name: 'mysql_pool'
            ashift: 9
...

Create ZPools on NetApp LUNs with this syntax

# zpool create -o ashift=12 <mypool> mirror <vdev1> <vdev2>

Links