Pages

Showing posts with label storage. Show all posts
Showing posts with label storage. Show all posts

7/25/2013

Calculating IOPS Requirements

IOPS = input output operations per second
A measure of demand and a measure of capability.

IOPS Demand
Servers - perform monitoring, refer to os & app vendor information on requirements
Users (virtual desktop) - about 25 iops for a typical user running multiple apps at once, 2GB RAM, single CPU.

IOPS Capability
IOPS per disk = Rotational latency + Seek Latency / 1000

Disk Speed     Est IOPS
7200 rpm            75
10000 rpm          125
15000 rpm          175
SSD                    6000 (?)

Read vs Write
Typical average:
40% Read, 60% Write

RAID "Penalty"
Write operations to RAID disk arrays require additional io operations to write parity data.
see more at theithollow.com

RAID Level          Write i/o Penalty
     0                              1
     1                              2
     5                              4
     6                              6

Calculation of required capability to meet demand:
IOPS Required =
(IOPS Demand * Read i/o%) + (Target IOPS * Write i/o% * RAID Penalty)

Unfortunately, I don't find such a scientific way to factor in the affect of caching/etc.

For example
Demand = 25 iops
read% = 40, write% = 60
RAID 5

(25 * 0.40 + 25 * 0.60 / 4) = 70
** Nearly triple!

So for 1000 users generating 25000 iops, we need 70000 iops on the "back end."

70000/175 = 400 15K disks would be required - holy moly also see yellowbricks.com

6/30/2013

Gathering List of HP Blade Server WWN's

Powershell - Gather list of HP Blade Server WWN's

####################################################################################################
#
#  server-list.ps1
#
#  Gather inventory of profiles, bay assigned, and WWN's
#

$vcips = ("10.2.1.10","10.2.1.11")
$vcuser = "admin"
$outfile = ".\hpbl-wwns.csv"

$pw = Read-Host "Enter Password for $vcuser" -AsSecureString
$alldevicebays=@{}
$allprofiles=@()
$wwn1=@{}
$wwn2=@{}

clear-host

foreach ($vcip in $vcips) {

$profiles=@() #the profiles on this enclosure
$devicebays=@{}

$vcip

#convert $pw to plain text
	$pass = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
		[Runtime.InteropServices.Marshal]::SecureStringToBSTR($pw))

$go = "show profile" # Command Line

$result = (./plink.exe -batch -ssh -l $vcuser -pw $pass $vcip $go) | out-string
$pass ='' #erase plain txt pw
$list = ($result -split'[\n]')
if ($list.Length -lt 2) { break }

write-host "    Getting Profile List"

foreach ($item in $list) {
if ($item.Length -gt 0) {
    if (!$item.Contains("===============================================================")) {
        if (!$item.Contains("---------------------------------------------------------------")) {
            if (($item.Substring(0,1) -ne " ")) {
            $name = $item.Substring(0,12)
            $name = $name.Trim()
            $bay = $item.Substring(12,14)
            $bay = $bay.Trim()
                if ($name -ne "Name") { 
                    $profiles = $profiles + $name 
                    $allprofiles = $allprofiles + $name
                    $devicebays[$name] = $bay
                    $alldevicebays[$name] = $bay
                }
            }#end if
        } #end if
    }#end if
}#end if

}#end foreach

write-host "    Finding WWN's"

foreach ($profile in $profiles) {

write-host "        "$profile

    if ($devicebays[$profile] -ne "") {
#Port 1
$port = 1
write-host "            port "$port

		$go = "show fcoe-connection "+$profile+":"+$port
		$pass = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
		[Runtime.InteropServices.Marshal]::SecureStringToBSTR($pw))

		$result = (./plink.exe -ssh -l $vcuser -pw $pass $vcip $go) | out-string
		$pass=""
			$list = ($result -split'[\n]')
			foreach ($item in $list) {
				if ($item.Length -gt 0) {
					$items = ($item -split': ')
					$field = $items[0]
					$field = $field.Trim()          
					$data = $items[1]
					$data = $data.Trim()
					if ($field -eq "Port WWN") {
						$wwn1[$profile] = $data
					}#end if
				}#end if null
			}#end foreach item
#port 2
$port = 2
write-host "            port "$port

		$go = "show fcoe-connection "+$profile+":"+$port
		$pass = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
		[Runtime.InteropServices.Marshal]::SecureStringToBSTR($pw))

		$result = (./plink.exe -ssh -l $vcuser -pw $pass $vcip $go) | out-string
		$pass=""
			$list = ($result -split'[\n]')
			foreach ($item in $list) {
				if ($item.Length -gt 0) {
					$items = ($item -split': ')
					$field = $items[0]
					$field = $field.Trim()          
					$data = $items[1]
					$data = $data.Trim()
					if ($field -eq "Port WWN") {
						$wwn2[$profile] = $data
					}#end if
				}#end if null
			}#end foreach item
#end port 2

    }#end if UNASSIGNED
}#end foreach profile
}#end foreach enclosure

$profiles = $profiles | sort-object


#create report

write-host "generating output file: " $outfile

#delete output file if it exists
if ( test-path $outfile ) { remove-item $outfile }

get-date -format g | out-file $outfile -encoding ascii

"Profile, Bay, hbaA, hbaB" | out-file $outfile -encoding ascii -append
write-host "Profile, Bay, hbaA, hbaB"
foreach ($profile in $allprofiles) {
	$bay = ($alldevicebays[$profile])
	$wwnA = ($wwn1[$profile])
	$wwnB = ($wwn2[$profile])
	write-host $profile "," $bay "," $wwnA "," $wwnB
	write "$profile,$bay,$wwnA,$wwnB" | out-file $outfile -encoding ascii -append
}#end foreach

4/26/2013

Cisco MDS switch cmdline

Saved 30 minutes of click, click, drag, click, commit, drag, commit, activate, blah blah in Fabric Manager:

zone name privh08_hba_B_to_vnx vsan 3
member pwwn 50:06:01:64:3e:e0:04:7d
member pwwn 50:06:01:6c:3e:e0:04:7d
member pwwn 20:00:00:25:b5:11:bf:0f

zone name privh09_hba_B_to_vnx vsan 3
member pwwn 50:06:01:64:3e:e0:04:7d
member pwwn 50:06:01:6c:3e:e0:04:7d
member pwwn 20:00:00:25:b5:11:bf:1f

zone name privh10_hba_B_to_vnx vsan 3
member pwwn 50:06:01:64:3e:e0:04:7d
member pwwn 50:06:01:6c:3e:e0:04:7d
member pwwn 20:00:00:25:b5:11:bf:df

zone name privh11_hba_B_to_vnx vsan 3
member pwwn 50:06:01:64:3e:e0:04:7d
member pwwn 50:06:01:6c:3e:e0:04:7d
member pwwn 20:00:00:25:b5:11:bf:ef

zone name privh12_hba_B_to_vnx vsan 3
member pwwn 50:06:01:64:3e:e0:04:7d
member pwwn 50:06:01:6c:3e:e0:04:7d
member pwwn 20:00:00:25:b5:11:bf:bf

zoneset name SAN1-SAN2-FAB-B vsan 3
member privh08_hba_B_to_vnx 
member privh09_hba_B_to_vnx
member privh10_hba_B_to_vnx
member privh11_hba_B_to_vnx
member privh12_hba_B_to_vnx

zoneset activate name SAN1-SAN2-FAB-B vsan 3

zone commit vsan 3

copy run start

12/31/2012

VMware KB: Disabling auto-registration to EMC CX-4 storage arrays

VMware KB: Disabling auto-registration to EMC CX-4 storage arrays:
In some cases, you may need to disable the auto-registration feature that is enabled by default for EMC CLARiiON arrays on vSphere and use manual registration. To perform manual registration using storage management software, turn off the ESX/ESXi auto-registration feature.

To disable the auto-registration feature:
  1. In the vSphere Client, select the host in the inventory.
  2. Click the Configuration tab and click Advanced Settings under Software.
  3. Select Disk in the left panel and scroll to Disk.EnableNaviReg.
  4. Change the default value to 0.
  5. Reboot the ESX host for the changes to take effect.
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1027029

12/17/2012

Cisco UCS with VNX and vSphere: Booting from SAN | Menno de Liège

Cisco UCS with VNX and vSphere: Booting from SAN | Menno de Liège: VMWare Auto Deploy

VMware Communities: Boot from SAN issue - UCS B-series, VNX...

Boot from SAN:  VNX, UCS, VMWare
Need Cisco drivers during the VMWare installation

- Find the drivers you need (the Cisco drivers were here: https://my.vmware.com/web/vmware/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/5_0#drivers_tools?cc=www&client=VMware_Site&entqr=0&ud=1&num=20&output=xml_no_dtd&proxystylesheet=VMware_gsa_Site&site=VMware_Site&ie=UTF-8&oe=UTF-8&q=download%20drivers&x=0&y=0 )

- Use this KB (http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2005205) to add async drives to the ISO.

11/30/2011

Isilon

Isilon OneFS 6.5.4.4, lsassd has a memory leak.  Upgraded to 6.5.4.9 fixed memory leak and also supposed to emulate support for extended attributes.
Interesting:  running top from SSH console of machine showed lsassd process grow over a period of a few hours.  Isilon has another process that checks for any processes taking up over 512MB memory and kills them.
In this case, that disconnected all my SecureCopy sessions.

3/27/2011

iSCSI and VMWare

Some iSCSI may be in my future. Unless we jump straight to NFS.
This is a great article: VirtualGeek

1/24/2008

Storage::Alphabet Soup


JBOD = "Just a Bunch Of Disks"
SBOD = "Switched Bunch Of Disks"

Switched = Better ;)

Article