Archive

Archive for the ‘ISCSI’ Category

HOWTO: Migrate RAID types on an Equallogic array

October 17, 2014 Leave a comment

I’ve run into a situation where I have a need to change RAID types on an Equallogic PS4100 in order to provide some much needed free space.  Equallogic supports on the fly migration as long as you go in a supported migration path:

clip_image002

  • RAID 10 can be changed to RAID50 or RAID6
  • RAID 50 can be changed to RAID6
  • RAID 6 cannot be converted.

By changing from RAID50 to RAID6 on a 12x600GB SAS unit, we can go from 4.1TB to 4.7TB, which will help get some free space and provide some extra life to this environment. 

1) Login to the array, and click on the MEMBER, then MODIFY RAID CONFIGURATION:

clip_image004

Note that the current RAID configuration is shown as “RAID 50” and STATUS=OK.

2) Select the new RAID Policy of RAID6:

clip_image006

Note the change in space – from 4.18TB to 4.69TB, and a net change of 524.38GB, or about 12% extra space.  Click OK.

3) During the conversion, the new space is not available – which should be expected:

clip_image008

After the conversion, the space will be available.  Until then, the array status will show as “expanding”, as indicated.  Click OK.

4) You can watch the status and see that the RAID Status does indeed show “expanding” and a PROGRESS of 0%:

clip_image010

After about 7 hours, we’re at 32% complete.  Obviously this is going to depend on the amount of data, size of disks, load on the array, etc.   But we can sarely assume this will take at least 24 hours to complete. 

5) When the process completes, you will see that the RAID Status is OK as well as the MEMBER SPACE area will show free space:

clip_image012

Understandably, you now need to use this space.  It won’t be automatically applied to your existing Volumes/LUN’s, so you’re left with two obvious choices – grow an existing volume or create a net new one.  As it is expected creating net-new is understood, I’ll demonstrate how to grow an existing volume.

6) On the bottom left of the interface, select VOLUMES:

clip_image014

Then in the upper left, expand the volumes:

clip_image016

Select the volume you wish to grow.  I’ll choose EQVMFS1.

clip_image018

Click MODIFY SETTINGS and then the SPACE tab.  Change the volume size accordingly.  It does indicate what the Max (1.34TB) can be.  I would highly recommend you reserve at least some small portion of space – just in case you ever completely fill a volume you may need to grow it slightly to even be able to mount it.  Even if small, always leave an escape route. 

Click OK.

clip_image020

You are warned to create a snapshot first.  As these volumes are empty, we won’t be needing to do this.  Click NO.

clip_image022

Note the volume size now reports as 1.3TB.

7) Next, we go to vSphere to grow the volume. 

Right click on the CLUSTER and choose RESCAN FOR DATASTORES:

clip_image024

Next, once that completes (watch the Recent Tasks panel), select a host with the volume mounted and go to the CONFIGURATION -> STORAGE tab.  Right click on the volume and choose PROPERTIES.

clip_image026

8) Click INCREASE on the next window:

clip_image028

Then select the LUN in question:

clip_image030

NOTE that in this example, I’m upgrading a VMFS3 volume.  It will ultimately be blown away and recreated as VMFS.  But if you are doing this, you will see warnings if you try to grow about 2TB, as it indicates.  Click NEXT.

clip_image032

Here we can see the existing 840GB VMFS as well as the new Free Space of 491GB.  Click NEXT.

clip_image034

Choose the block size, if it allows you.  Again, this is something you won’t see on a VMFS5 datastore.  Click NEXT and then FINISH.

9) As this is a clustered volume, once complete, it will automatically trigger a rescan on all the remaining cluster hosts to pick up the change:

clip_image036

You don’t have to do anything for this to happen. 

And that’s really about it.  You have now expanded the RAID group on the Equallogic, and added the space to an existing volume.  Some caveats of course to mention at this point:

  • Changing RAID types will likely alter your data protection and performance expectations.  Be sure you have planned for this.
  • As noted before, once you go RAID6 you can’t go anywhere from there without a offload and complete rebuild of the array.
  • If you hit the wall, and got back ~ 10%, this is your breathing room.  You should be evaluating space reclamation tactics, new arrays, etc.  This only gets you out of today’s jam.
Categories: Dell, Equallogic, ISCSI, Storage, vSphere

HOWTO: Verify NetApp SnapDrive for Windows 7.0.3 Installations were successful

September 17, 2014 Leave a comment

This script is intended to be able to validate and confirm that the NetApp SnapDrive for Windows v7.0.3 upgrade completed as expected.  This can either be run interactively post installation or can be run via automation (eg: via PSEXEC, against a list of known servers) – as it logs to both console and to log file.   These processes should be performed in the following order:

1) HOWTO: Silent Installation for NetApp Data ONTAP DSM for Windows MPIO v4.1

2) HOWTO: Silent Installation for NetApp Windows Host Utilities 6.0.2

3) HOWTO: Silent Installation for NetApp SnapDrive for Windows v7.0.3

4) HOWTO: Verify NetApp SnapDrive for Windows 7.0.3 Installations were successful

The following processes are verified:

· Data ONTAP DSM for Windows MPIO is installed and displays version 4.1.4348.1209

· NetApp Windows Host Utilities 6.0.2 is installed and displays version 6.0.4649.1236

o NOTE: Yes, the Program NAME includes the string “…6.0.2” even though the Version is “6.0.4…”

· SnapDrive is installed and displays version 7.0.3.6341

· REG key HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters /v PDORemovePeriod is set to 190 seconds

· REG key HKLM\SYSTEM\CurrentControlSet\Services\Disk /v TimeoutValue is set to 190 seconds

o NOTE: this is the Windows MPIO setting, and is typically only found if NetApp DSM is not installed.  Setting both options ensures that in either case, 190 seconds is the corporate default.

Potential improvements could include:

· Validate or test MPIO Failover Policy matches (Previously recorded version?  Preferred version?  Known required version for this host and is recorded somewhere?)

· INSTALL_*.BAT, INSTALL_*.LOG, and this VERIFY*.BAT/LOG location could be better standardized.  For now, I am utilizing the default software share locations. 

This process has been tested and confirmed on:

· Windows 2012

· Windows 2008 R2 SP1

Other flavours may result in an update to this document, if required.

=== VERIFY_NETAPP_SDW_703.BAT ===

@ECHO OFF

set INSTALL_FOLDER=\\NETWISE.CA\DFS\INSTALLLS\NetApp\

REM %~n0 is a special variable that means “CALLING BATCH FILE NAME”

set LOG_FILE="%INSTALL_FOLDER%\%~n0.LOG"

ECHO.

ECHO. >>%LOG_FILE%

ECHO This should display:     Data ONTAP DSM for Windows MPIO  4.1.4348.1209

wmic product where "Name like ‘%%DSM%%’ and Version like ‘4.1.4348.1209’" get Name, Version | find /i "4.1.4348.1209"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – Data ONTAP DSM for Windows MPIO  4.1.4348.1209 – NOT PRESENT! >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – Data ONTAP DSM for Windows MPIO  4.1.4348.1209 – SUCCESS! >>%LOG_FILE%

ECHO.

ECHO. >>%LOG_FILE%

ECHO This should display:     NetApp Windows Host Utilities 6.0.2  6.0.4649.1236

wmic product where "Name like ‘%%NetApp Windows Host Utilities%%’ and Version like ‘6.0.4649.1236’" get Name, Version | find /i "6.0.4649.1236"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – NetApp Windows Host Utilities 6.0.2  6.0.4649.1236 – NOT PRESENT! >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – NetApp Windows Host Utilities 6.0.2  6.0.4649.1236 – SUCCESS! >>%LOG_FILE%

ECHO.

ECHO. >>%LOG_FILE%

ECHO This should display:     SnapDrive  7.0.3.6341

wmic product where "Name like ‘%%SnapDrive%%’ and Version like ‘7.0.3.6341’" get Name, Version | find /i "7.0.3"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – SnapDrive  7.0.3.6341 – NOT PRESENT! >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – SnapDrive  7.0.3.6341 – SUCCESS! >>%LOG_FILE%

ECHO.

ECHO. >>%LOG_FILE%

ECHO This should display:     PDORemovePeriod    REG_DWORD    0xbe

REG query HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters /v PDORemovePeriod | find /i "0xbe"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – Registry HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters PDORemovePeriod at 190 seconds – NOT PRESENT! >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – Registry HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters PDORemovePeriod at 190 seconds – SUCCESS! >>%LOG_FILE%

ECHO.

ECHO. >>%LOG_FILE%

ECHO This should display:     TimeoutValue    REG_DWORD    0xbe

REG query HKLM\SYSTEM\CurrentControlSet\Services\Disk /v TimeoutValue | find /i "0xbe"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – Registry HKLM\SYSTEM\CurrentControlSet\Services\Disk\TimeoutValue at 190 seconds – NOT PRESENT! >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – Registry HKLM\SYSTEM\CurrentControlSet\Services\Disk\TimeoutValue at 190 seconds – SUCCESS! >>%LOG_FILE%

ECHO.

ECHO. >>%LOG_FILE%

=== VERIFY_NETAPP_SDW_703.BAT ===

=== OUTPUT – SCREEN/CONSOLE ===

This should display:    Data ONTAP DSM for Windows MPIO  4.1.4348.1209

Data ONTAP DSM for Windows MPIO  4.1.4348.1209

This should display:    NetApp Windows Host Utilities 6.0.2  6.0.4649.1236

NetApp Windows Host Utilities 6.0.2  6.0.4649.1236

This should display:    SnapDrive  7.0.3.6341

SnapDrive  7.0.3.6341

This should display:    PDORemovePeriod    REG_DWORD    0xbe

    PDORemovePeriod    REG_DWORD    0xbe

This should display:    TimeoutValue    REG_DWORD    0xbe

    TimeoutValue    REG_DWORD    0xbe

=== OUTPUT – SCREEN/CONSOLE ===

=== OUTPUT – LOG FILE ===

SRVD511 Thu 09/11/2014 17:16:07.26 – Data ONTAP DSM for Windows MPIO  4.1.4348.1209 – SUCCESS!

SRVD511 Thu 09/11/2014 17:16:24.00 – NetApp Windows Host Utilities 6.0.2  6.0.4649.1236 – SUCCESS!

SRVD511 Thu 09/11/2014 17:16:40.28 – SnapDrive  7.0.3.6341 – SUCCESS!

SRVD511 Thu 09/11/2014 17:16:40.30 – Registry HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters PDORemovePeriod at 190 seconds – SUCCESS!

SRVD511 Thu 09/11/2014 17:16:40.31 – Registry HKLM\SYSTEM\CurrentControlSet\Services\Disk\TimeoutValue at 190 seconds – SUCCESS!

SRVD513 Thu 09/11/2014 17:33:57.96 – Data ONTAP DSM for Windows MPIO  4.1.4348.1209 – NOT PRESENT!

SRVD513 Thu 09/11/2014 17:34:11.03 – NetApp Windows Host Utilities 6.0.2  6.0.4649.1236 – NOT PRESENT!

SRVD513 Thu 09/11/2014 17:34:24.07 – SnapDrive  7.0.3.6341 – NOT PRESENT!

SRVD513 Thu 09/11/2014 17:34:24.12 – Registry HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters PDORemovePeriod at 190 seconds – SUCCESS!

SRVD513 Thu 09/11/2014 17:34:24.14 – Registry HKLM\SYSTEM\CurrentControlSet\Services\Disk\TimeoutValue at 190 seconds – NOT PRESENT!

=== OUTPUT – LOG FILE ===

Categories: ISCSI, NetApp, SnapDrive

HOWTO: Silent Installation for NetApp SnapDrive for Windows v7.0.3

September 16, 2014 Leave a comment

This document will assist with silently installing NetApp SnapDrive for Windows v7.0.3.  These processes should be performed in the following order:

1) HOWTO: Silent Installation for NetApp Data ONTAP DSM for Windows MPIO v4.1

2) HOWTO: Silent Installation for NetApp Windows Host Utilities 6.0.2

3) HOWTO: Silent Installation for NetApp SnapDrive for Windows v7.0.3

4) HOWTO: Verify NetApp SnapDrive for Windows 7.0.3 Installations were successful

The following pre-requisites and requirements are assumed:

· SnapDrive7.0.3_x64.exe and/or SnapDrive7.0.3_x86.exe downloads from the NetApp NOW site

o NOTE: NO testing has been done for 32 bit OS, and no provisions exist in the current batch file.  It is assumed that you are on an actual modern server OS, and it is x64.  If not… perform the installation manually.

· 215-07929_B0 – SnapDrive® 7.0 for Windows® Installation Guide.pdf from NetApp NOW site

· .NET 3.5 SP1 is *ALREADY* installed.  This could be expanded to put in scope tests for .NET 3.5 and/or installs, but the reality is this is going to be used for upgrades of already installed SDW installations, so we’re safe to assume .NET 3.5 is installed.  This process will require updating and testing to validate and test for .NET 3.5 presence and install it

· This is complicated by the fact that Windows Updates to update .NET must be installed after.  For sites that utilize Microsoft’s Windows Update, or a local WSUS this is fine.  Those that utilize SCCM would require a re-push/re-detection of current updates post-.NET installation, updates, reboot, and then continuation of the installation for SDW.  Understandably, this is out of scope for today…

· As this was intended for UPGRADES of systems with at least SnapDrive for Windows, we are assuming that the .NET 3.5 pre-requisite has been met.  Additional work will be required in order to provide the error checking and installation processes for .NET 3.5, as each OS has a slightly different method of doing so.  I’d recommend creating a standardized “INSTALL_DOTNET_35.BAT” that could be called by any other installation that requires it, to keep the process modular.

· As SDW gets upgraded AFTER DSM MPIO and Host Utilities, which both check for, and install, the associated HotFixes, we do not also check for it here.  The portion of the script is still present though, for uniformity.  Also note there is a command line parameter for the actual installer to “SKIP_HOTFIX_CHECK=1”

The general process in the installation batch file is:

· LOG output is in the PRODUCT_FOLDER as %BATCH%.LOG

· MSI LOG is to %TEMP% as %BATCH%.LOG, and is NOT cleaned up after installation.  Use for troubleshooting.

· Check if the product is already installed, using WMIC.  If installed, jumps to CLEANUP

· Check for OS version to determine what hotfixes are required

· Copy hotfixes locally – they will not run properly via a UNC path as they update the system via DISM and the machine account likely has no rights to the share

· Run the installers for the hotfixes and wait for each to complete – it does not check if they are missing or already present

· Copy installation MSI locally

· Run the installer for the MSI and wait for complete

· Cleans up local files

=== INSTALL_NETAPP_SDW_703.BAT ===

@echo off

REM

REM Enter the path to the installation folder – does not require quotes, quotes are assumed, with or without spaces – MUST not contain training "\"

REM

set INSTALL_FOLDER=\\NETWISE.CA\DFS\INSTALLS\NetApp\SnapDrive for Windows v7.0.3

set PRODUCT_NAME=NetApp SnapDrive for Windows v7.0.3

set LOG_FILE="%INSTALL_FOLDER%\%~n0.LOG"

REM

REM MUST UPDATE THE SERVICE ACCOUNT and PASSWORD!

REM

set SVCUSERNAME=<DOMAIN>\<USERNAME>

set SVCUSERPASSWORD=XXXXXXXXXXXXX

set ESXUSERNAME=

set ESXUSERPASSWORD=

set TRANSPORTUSERNAME=

set TRANSPORTPASSWORD=

set ESXIPADDRESS=

set SMVIIPADDRESS=

ECHO. >>%LOG_FILE%

:CHECK_ALREADY_INSTALLED

REM

REM Use a Product Name substring search and the exact version number.  Note the double percent characters are correct

REM

wmic product where "Name like ‘%%SnapDrive%%’ and Version like ‘7.0.3.6341’" get Name, Version | find /i "7.0.3"

if %ERRORLEVEL%==1 goto CHECK_OS_VERSION

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% already installed! >>%LOG_FILE%

goto CLEANUP

:CHECK_OS_VERSION

REM

REM Check for OS Version

REM

set OS_VER=0

set OS_NAME=0

for /f "tokens=1-5* delims=[] " %%A in (‘ver’) do set OS_VER=%%D

if %OS_VER%==6.3.9200 set OS_NAME=2012R2

if %OS_VER%==6.2.9200 set OS_NAME=2012

if %OS_VER%==6.0.6001 set OS_NAME=2008

if %OS_VER%==6.0.6002 set OS_NAME=2008SP2

if %OS_VER%==6.1.7600 set OS_NAME=2008R2

if %OS_VER%==6.1.7601 set OS_NAME=2008R2SP1

goto INSTALL_SDW

:INSTALL_PREREQ_HOTFIXES

REM

REM Will copy ALL *.MSU files locally from matching folder name to OS_NAME list above, and then install ALL *.MSU files from the local drive,

REM waiting for each to complete before continuing. 

REM

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% copying pre-requisite hotfixes locally >>%LOG_FILE%

xcopy "%INSTALL_FOLDER%"\WINDOWS_HOTFIXES\%OS_NAME%\*.msu %TEMP%\SDW.INST /s /e /c /k /i /y

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% installing pre-requisite hotfixes >>%LOG_FILE%

for /f "tokens=1* delims=" %%A in (‘dir %temp%\SDW.INST /b’) do start /w wusa.exe %temp%\%%A /quiet /norestart

goto INSTALL_SDW

:INSTALL_SDW

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% copying installation files locally >>%LOG_FILE%

mkdir %TEMP%\SDW.INST

xcopy "%INSTALL_FOLDER%"\"SnapDrive7.0.3_x64.exe" %TEMP%\SDW.INST /s /e /c /k /i /y

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% installing main application >>%LOG_FILE%

start /w "SDW_INSTALL" "%TEMP%\SDW.INST\SnapDrive7.0.3_x64.exe" /s /v"/qb SILENT_MODE=1 /Li %TEMP%\%~n0.LOG INSTALLDIR=\"c:\Program Files\NetApp\SnapDrive\" SVCUSERNAME=%SVCUSERNAME% SVCUSERPASSWORD=%SVCUSERPASSWORD% SVCCONFIRMUSERPASSWORD=%SVCUSERPASSWORD% IGNORE_COMPMGMT_RUNNING=1 SDW_WEBSRV_TCP_PORT=808 SDW_WEBSRV_HTTP_PORT=4094 SDW_WEBSRV_HTTPS_PORT=4095 TRANSPORT_SETTING_ENABLE=1 TRANSPORT_PRT_SELECTION=1 SKIP_HOTFIX_CHECK=1 ADD_WINDOWS_FIREWALL=1"

wmic product where "Name like ‘%%SnapDrive%%’ and Version like ‘7.0.3.6341’" get Name, Version | find /i "7.0.3"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% reports as NOT INSTALLED >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% reports as INSTALLED >>%LOG_FILE%

goto CLEANUP

:CLEANUP

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations | find /i "C:"

if %ERRORLEVEL%==0 ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% HAS a reboot pending… >>%LOG_FILE%

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% cleaning up installation files locally >>%LOG_FILE%

if exist %TEMP%\SDW.INST rmdir %TEMP%\SDW.INST /q /s

ECHO. >>%LOG_FILE%

=== INSTALL_NETAPP_SDW_703.BAT ===

=== SAMPLE LOG OUTPUT ===

SRVDC113B 11/09/2014 16:52:26.38 – NetApp SnapDrive for Windows v7.0.3 already installed!

SRVDC113B 11/09/2014 16:52:26.38 – NetApp SnapDrive for Windows v7.0.3 cleaning up installation files locally

SRVD511 Thu 09/11/2014 16:53:55.57 – NetApp SnapDrive for Windows v7.0.3 reports as INSTALLED

SRVD511 Thu 09/11/2014 16:53:55.59 – NetApp SnapDrive for Windows v7.0.3 HAS a reboot pending…

SRVD511 Thu 09/11/2014 16:53:55.59 – NetApp SnapDrive for Windows v7.0.3 cleaning up installation files locally

SRVD513 Thu 09/11/2014 17:47:28.82 – NetApp SnapDrive for Windows v7.0.3 copying installation files locally

SRVD513 Thu 09/11/2014 17:47:29.00 – NetApp SnapDrive for Windows v7.0.3 installing main application

SRVD513 Thu 09/11/2014 17:50:23.21 – NetApp SnapDrive for Windows v7.0.3 reports as INSTALLED

SRVD513 Thu 09/11/2014 17:50:23.21 – NetApp SnapDrive for Windows v7.0.3 HAS a reboot pending…

SRVD513 Thu 09/11/2014 17:50:23.21 – NetApp SnapDrive for Windows v7.0.3 cleaning up installation files locally

=== SAMPLE LOG OUTPUT ===

Categories: ISCSI, NetApp, SnapDrive

HOWTO: Silent Installation for NetApp Windows Host Utilities 6.0.2

September 15, 2014 Leave a comment

This document will assist with silently installing NetApp Windows Host Utilities 6.0.2.  These processes should be performed in the following order:

1) HOWTO: Silent Installation for NetApp Data ONTAP DSM for Windows MPIO v4.1

2) HOWTO: Silent Installation for NetApp Windows Host Utilities 6.0.2

3) HOWTO: Silent Installation for NetApp SnapDrive for Windows v7.0.3

4) HOWTO: Verify NetApp SnapDrive for Windows 7.0.3 Installations were successful

The following pre-requisites and requirements are assumed:

· netapp_windows_host_utilities_6.0.2_x64.msi and/or netapp_windows_host_utilities_6.0.2_x86.msi downloads from the NetApp NOW site

o NOTE: NO testing has been done for 32 bit OS, and no provisions exist in the current batch file.  It is assumed that you are on an actual modern server OS, and it is x64.  If not… perform the installation manually.

· 215-07794_A0 – Installation and Setup Guide.pdf from NetApp NOW site

· As this was intended for UPGRADES of systems with at least SnapDrive for Windows, we are assuming that the .NET 3.5 pre-requisite has been met.  Additional work will be required in order to provide the error checking and installation processes for .NET 3.5, as each OS has a slightly different method of doing so.  I’d recommend creating a standardized “INSTALL_DOTNET_35.BAT” that could be called by any other installation that requires it, to keep the process modular.

· The following Windows HotFixes:

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008\Windows6.0-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008\Windows6.0-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2520235-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2528357-v2-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB979711-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2SP1\Windows6.1-KB2528357-v2-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2SP1\Windows6.1-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008R2SP1\Windows6.1-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008SP2\Windows6.0-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008SP2\Windows6.0-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2008SP2\Windows6.0-KB968675-x64.msu

I:\INSTALLS\NETAPP\Windows Host Utilities 6.0.2\WINDOWS_HOTFIXES\2012\Windows8-RT-KB2796995-x64.msu

o NOTE: the Folder path for the HotFixes from Microsoft MUST be:

§ IN the installation folder

§ IN a folder called “WINDOWS_HOTFIXES”

§ IN folders based on OS of 2008, 2008SP2, 2008R2, 2008R2SP1, 2012 (there are no 2012R2 hotfixes required)

· Links to obtain the hotfixes are located in the Administration Guide, on Page 56.  Links will have a HF # only, eg: “2796995”.  These links may include downloads for multiple OS’s (eg: Vista/Windows 7 – equal to 2008 and 2008 R2), and each must be downloaded and located separately.  These hotfixes will unfortunately be named such as “457359_intl_x64_zip.exe” for KB2796995.  This is unfortunate as it is near impossible to correlate the versions and the files.  I would recommend saving the files as “KB2796995-457359_intl_x64_zip.exe” with the KB######## as the prefix.  Upon downloading, UNZIP the files in the same folder/folder structure, and you will note the final output of “Windows8-RT-KB2796995.msu”.  You will quickly be able to tell if you have only downloaded one version if you see “Windows6.1” for a 2008 file and “Windows6.0 for a 2008R2” file, etc.

The general process in the installation batch file is:

· LOG output is in the PRODUCT_FOLDER as %BATCH%.LOG

· MSI LOG is to %TEMP% as %BATCH%.LOG, and is NOT cleaned up after installation.  Use for troubleshooting.

· Check if the product is already installed, using WMIC.  If installed, jumps to CLEANUP

· Check for OS version to determine what hotfixes are required

· Copy hotfixes locally – they will not run properly via a UNC path as they update the system via DISM and the machine account likely has no rights to the share

· Run the installers for the hotfixes and wait for each to complete – it does not check if they are missing or already present

· Copy installation MSI locally

· Run the installer for the MSI and wait for complete

· Cleans up local files

This process has been tested and confirmed on:

· Windows 2012

· Windows 2008 R2 SP1

Other flavours may result in an update to this document, if required.

=== INSTALL_NETAPP_HOST_UTILS602.BAT ===

@echo off

REM

REM Enter the path to the installation folder – does not require quotes, quotes are assumed, with or without spaces – MUST not contain training "\"

REM

set INSTALL_FOLDER=\\NETWISE.CA\DFS\INSTALLS\NetApp\Windows Host Utilities v6.0.2

set PRODUCT_NAME=NetApp Windows Host Utilities 6.0.2

set LOG_FILE="%INSTALL_FOLDER%\%~n0.LOG"

ECHO. >>%LOG_FILE%

:CHECK_ALREADY_INSTALLED

REM

REM Use a Product Name substring search and the exact version number.  Note the double percent characters are correct

REM NOTE: The PRODUCT is “6.0.2” but the VERSION is “6.0.4649.1236” – fun stuff…

REM

wmic product where "Name like ‘%%NetApp Windows Host Utilities%%’ and Version like ‘6.0.4649.1236’" get Name, Version | find /i "6.0.4649.1236"

if %ERRORLEVEL%==1 goto CHECK_PREVIOUS_VERSION

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% already installed! >>%LOG_FILE%

goto CLEANUP

:CHECK_PREVIOUS_VERSION

wmic product where "Name like ‘%%NetApp Windows Host Utilities%%’ and Version like ‘6.0.4424.1239’" get Name, Version | find /i "6.0.4424.1239"

if %ERRORLEVEL%==1 goto CHECK_OS_VERSION

if %ERRORLEVEL%==0 goto REMOVE_PREVIOUS_VERSION

goto CHECK_OS_VERSION

:REMOVE_PREVIOUS_VERSION

echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% removing v6.0.4424.1239 version >>%LOG_FILE%

start /w MsiExec.exe /qb /X{203B48A2-023D-4E77-B586-E5FCB2E4A382}

goto CHECK_OS_VERSION

:CHECK_OS_VERSION

echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% has no previous version installed. >>%LOG_FILE%

REM

REM Check for OS Version

REM

set OS_VER=0

set OS_NAME=0

for /f "tokens=1-5* delims=[] " %%A in (‘ver’) do set OS_VER=%%D

if %OS_VER%==6.3.9200 set OS_NAME=2012R2

if %OS_VER%==6.2.9200 set OS_NAME=2012

if %OS_VER%==6.0.6001 set OS_NAME=2008

if %OS_VER%==6.0.6002 set OS_NAME=2008SP2

if %OS_VER%==6.1.7600 set OS_NAME=2008R2

if %OS_VER%==6.1.7601 set OS_NAME=2008R2SP1

goto INSTALL_PREREQ_HOTFIXES

:INSTALL_PREREQ_HOTFIXES

REM

REM Will copy ALL *.MSU files locally from matching folder name to OS_NAME list above, and then install ALL *.MSU files from the local drive,

REM waiting for each to complete before continuing. 

REM

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% copying pre-requisite hotfixes locally >>%LOG_FILE%

xcopy "%INSTALL_FOLDER%"\WINDOWS_HOTFIXES\%OS_NAME%\*.msu %TEMP%\HOSTUTIL.INST /s /e /c /k /i /y

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% installing pre-requisite hotfixes >>%LOG_FILE%

for /f "tokens=1* delims=" %%A in (‘dir %temp%\HOSTUTIL.INST /b’) do start /w wusa.exe %temp%\HOSTUTIL.INST\%%A /quiet /norestart

goto INSTALL_HOST_UTIL

:INSTALL_HOST_UTIL

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% copying installation files locally >>%LOG_FILE%

mkdir %TEMP%\HOSTUTIL.INST

xcopy "%INSTALL_FOLDER%"\"netapp_windows_host_utilities_6.0.2_x64.msi" %TEMP%\HOSTUTIL.INST /s /e /c /k /i /y

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% installing main application >>%LOG_FILE%

start /w "HOST_UTIL" msiexec.exe /quiet /i"%TEMP%\HOSTUTIL.INST\netapp_windows_host_utilities_6.0.2_x64.msi" /l*v %TEMP%\%~n0.LOG MULTIPATHING=1 /NORESTART

wmic product where "Name like ‘%%NetApp Windows Host Utilities%%’ and Version like ‘6.0.4649.1236’" get Name, Version | find /i "6.0.4649.1236"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% reports as NOT INSTALLED >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% reports as INSTALLED >>%LOG_FILE%

goto CLEANUP

:CLEANUP

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations | find /i "C:"

if %ERRORLEVEL%==0 ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% HAS a reboot pending… >>%LOG_FILE%

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% cleaning up installation files locally >>%LOG_FILE%

if exist %TEMP%\HOSTUTIL.INST rmdir %TEMP%\HOSTUTIL.INST /q /s

ECHO. >>%LOG_FILE%

=== INSTALL_NETAPP_HOST_UTILS602.BAT ===

=== OUTPUT – LOG FILE ===

SRVDC217B Thu 09/11/2014 16:30:02.27 – NetApp Windows Host Utilities 6.0.2 already installed!

SRVDC217B Thu 09/11/2014 16:30:02.27 – NetApp Windows Host Utilities 6.0.2 cleaning up installation files locally

SRVDC113B 11/09/2014 16:47:14.10 – NetApp Windows Host Utilities 6.0.2 removing v6.0.4424.1239 version

SRVDC113B 11/09/2014 16:47:42.27 – NetApp Windows Host Utilities 6.0.2 has no previous version installed.

SRVDC113B 11/09/2014 16:47:42.27 – NetApp Windows Host Utilities 6.0.2 copying pre-requisite hotfixes locally

SRVDC113B 11/09/2014 16:47:42.36 – NetApp Windows Host Utilities 6.0.2 installing pre-requisite hotfixes

SRVDC113B 11/09/2014 16:47:57.42 – NetApp Windows Host Utilities 6.0.2 copying installation files locally

SRVDC113B 11/09/2014 16:47:57.57 – NetApp Windows Host Utilities 6.0.2 installing main application

SRVDC113B 11/09/2014 16:50:15.93 – NetApp Windows Host Utilities 6.0.2 reports as INSTALLED

SRVDC113B 11/09/2014 16:50:15.93 – NetApp Windows Host Utilities 6.0.2 cleaning up installation files locally

=== OUTPUT – LOG FILE ===

Categories: ISCSI, NetApp, SnapDrive

HOWTO: Silent Installation for NetApp Data ONTAP DSM for Windows MPIO v4.1

September 12, 2014 Leave a comment

This document will assist with silently installing NetApp Data ONTAP DSM for Windows MPIO v4.1.   These processes should be performed in the following order:

1) HOWTO: Silent Installation for NetApp Data ONTAP DSM for Windows MPIO v4.1

2) HOWTO: Silent Installation for NetApp Windows Host Utilities 6.0.2

3) HOWTO: Silent Installation for NetApp SnapDrive for Windows v7.0.3

4) HOWTO: Verify NetApp SnapDrive for Windows 7.0.3 Installations were successful

The following pre-requisites and requirements are assumed:

· ntap_win_mpio_4.1P1_setup_x64.msi and/or ntap_win_mpio_4.1P1_setup_x86.msi downloads from the NetApp NOW site

o NOTE: NO testing has been done for 32 bit OS, and no provisions exist in the current batch file.  It is assumed that you are on an actual modern server OS, and it is x64.  If not… perform the installation manually.

· 215-08396_A0 – Installation and Administration Guide.pdf from NetApp NOW site

· As this was intended for UPGRADES of systems with at least SnapDrive for Windows, we are assuming that the .NET 3.5 pre-requisite has been met.  Additional work will be required in order to provide the error checking and installation processes for .NET 3.5, as each OS has a slightly different method of doing so.  I’d recommend creating a standardized “INSTALL_DOTNET_35.BAT” that could be called by any other installation that requires it, to keep the process modular.

· The following Windows HotFixes:

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008\Windows6.0-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008\Windows6.0-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2520235-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2528357-v2-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2\Windows6.1-KB979711-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2SP1\Windows6.1-KB2528357-v2-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2SP1\Windows6.1-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008R2SP1\Windows6.1-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008SP2\Windows6.0-KB2684681-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008SP2\Windows6.0-KB2754704-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2008SP2\Windows6.0-KB968675-x64.msu

I:\INSTALLS\NETAPP\Data ONTAP DSM for Windows v4.1\WINDOWS_HOTFIXES\2012\Windows8-RT-KB2796995-x64.msu

o NOTE: the Folder path for the HotFixes from Microsoft MUST be:

§ IN the installation folder

§ IN a folder called “WINDOWS_HOTFIXES”

§ IN folders based on OS of 2008, 2008SP2, 2008R2, 2008R2SP1, 2012 (there are no 2012R2 hotfixes required)

o Links to obtain the hotfixes are located in the Administration Guide, on Page 56.  Links will have a HF # only, eg: “2796995”.  These links may include downloads for multiple OS’s (eg: Vista/Windows 7 – equal to 2008 and 2008 R2), and each must be downloaded and located separately.  These hotfixes will unfortunately be named such as “457359_intl_x64_zip.exe” for KB2796995.  This is unfortunate as it is near impossible to correlate the versions and the files.  I would recommend saving the files as “KB2796995-457359_intl_x64_zip.exe” with the KB######## as the prefix.  Upon downloading, UNZIP the files in the same folder/folder structure, and you will note the final output of “Windows8-RT-KB2796995.msu”.  You will quickly be able to tell if you have only downloaded one version if you see “Windows6.1” for a 2008 file and “Windows6.0 for a 2008R2” file, etc.

· You are installing as “Local System” account vs a named service account – there is no interaction with the NetApp Filer, so there is no functional reason to use a named service account

· You have been given the MPIO-WIN 14 digit product key from the NetApp NOW Licencing portal. 

The general process in the installation batch file is:

· LOG output is in the PRODUCT_FOLDER as %BATCH%.LOG

· MSI LOG is to %TEMP% as %BATCH%.LOG, and is NOT cleaned up after installation.  Use for troubleshooting.

· Check if the product is already installed, using WMIC.  If installed, jumps to CLEANUP

· Check for OS version to determine what hotfixes are required

· Copy hotfixes locally – they will not run properly via a UNC path as they update the system via DISM and the machine account likely has no rights to the share

· Run the installers for the hotfixes and wait for each to complete – it does not check if they are missing or already present

· Copy installation MSI locally

· Run the installer for the MSI and wait for complete

· Updates the registry with 190 second MPIO timeouts in two places

· Cleans up local files

=== INSTALL_NETAPP_DSM_MPIO_41.BAT ===

@echo off

REM

REM Enter the path to the installation folder – does not require quotes, quotes are assumed, with or without spaces – MUST not contain training "\"

REM

set INSTALL_FOLDER=\\netwise.ca\DFS\INSTALLS\NetApp\Data ONTAP DSM for Windows v4.1

set PRODUCT_NAME=Data ONTAP DSM for Windows MPIO

set LOG_FILE="%INSTALL_FOLDER%\%~n0.LOG"

ECHO. >>%LOG_FILE%

REM Obtain Licence Code and update

set LICENSECODE=XXXXXXXXXXX

:CHECK_ALREADY_INSTALLED

REM

REM Use a Product Name substring search and the exact version number.  Note the double percent characters are correct

REM

wmic product where "Name like ‘%%DSM%%’ and Version like ‘4.1.4348.1209’" get Name, Version | find /i "4.1.4348.1209"

if %ERRORLEVEL%==1 goto CHECK_OS_VERSION

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% already installed! >>%LOG_FILE%

goto CLEANUP

:CHECK_OS_VERSION

REM

REM Check for OS Version

REM

set OS_VER=0

set OS_NAME=0

for /f "tokens=1-5* delims=[] " %%A in (‘ver’) do set OS_VER=%%D

if %OS_VER%==6.3.9200 set OS_NAME=2012R2

if %OS_VER%==6.2.9200 set OS_NAME=2012

if %OS_VER%==6.0.6001 set OS_NAME=2008

if %OS_VER%==6.0.6002 set OS_NAME=2008SP2

if %OS_VER%==6.1.7600 set OS_NAME=2008R2

if %OS_VER%==6.1.7601 set OS_NAME=2008R2SP1

goto INSTALL_PREREQ_HOTFIXES

:INSTALL_PREREQ_HOTFIXES

REM

REM Will copy ALL *.MSU files locally from matching folder name to OS_NAME list above, and then install ALL *.MSU files from the local drive,

REM waiting for each to complete before continuing. 

REM

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% copying pre-requisite hotfixes locally >>%LOG_FILE%

xcopy "%INSTALL_FOLDER%"\WINDOWS_HOTFIXES\%OS_NAME%\*.msu %TEMP%\DSM.INST /s /e /c /k /i /y

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% installing pre-requisite hotfixes >>%LOG_FILE%

for /f "tokens=1* delims=" %%A in (‘dir %temp%\DSM.INST /b’) do start /w wusa.exe %temp%\%%A /quiet /norestart

goto INSTALL_DSM_MPIO

:INSTALL_DSM_MPIO

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% copying installation files locally >>%LOG_FILE%

xcopy "%INSTALL_FOLDER%"\"ntap_win_mpio_4.1P1_setup_x64.msi" %TEMP%\DSM.INST /s /e /c /k /i /y

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% installing main application >>%LOG_FILE%

msiexec.exe /quiet /i"%TEMP%\DSM.INST\ntap_win_mpio_4.1P1_setup_x64.msi" /l*v %TEMP%\%~n0.LOG LICENSECODE=%LICENSECODE% USESYSTEMACCOUNT=1 /norestart

wmic product where "Name like ‘%%DSM%%’ and Version like ‘4.1.4348.1209’" get Name, Version | find /i "4.1.4348.1209"

if %ERRORLEVEL%==1 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% reports as NOT INSTALLED >>%LOG_FILE%

if %ERRORLEVEL%==0 echo %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% reports as INSTALLED >>%LOG_FILE%

goto CLEANUP

:CLEANUP

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% cleaning up installation files locally >>%LOG_FILE%

if exist %TEMP%\DSM.INST rmdir %TEMP%\DSM.INST /q /s

REM

REM Set Registry keys for both NetApp MPIO and Windows MPIO to 190 second timeouts

REM

ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% updating registry with 190 second MPIO timeouts >>%LOG_FILE%

REG add HKLM\System\CurrentControlSet\Services\ontapdsm\Parameters /v PDORemovePeriod /t REG_DWORD /d 190 /f

REG add HKLM\SYSTEM\CurrentControlSet\Services\Disk /v TimeoutValue /t REG_DWORD /d 190 /f

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations | find /i "C:"

if %ERRORLEVEL%==0 ECHO %COMPUTERNAME% %DATE% %TIME% – %PRODUCT_NAME% HAS a reboot pending… >>%LOG_FILE%

ECHO. >>%LOG_FILE%

=== INSTALL_NETAPP_DSM_MPIO_41.BAT ===

=== SAMPLE LOG OUTPUT ===

SRVDC113B 11/09/2014 16:46:13.13 – Data ONTAP DSM for Windows MPIO already installed!

SRVDC113B 11/09/2014 16:46:13.13 – Data ONTAP DSM for Windows MPIO cleaning up installation files locally

SRVDC113B 11/09/2014 16:46:13.13 – Data ONTAP DSM for Windows MPIO updating registry with 190 second MPIO timeouts

SRVD511 Thu 09/11/2014 16:49:06.95 – Data ONTAP DSM for Windows MPIO copying pre-requisite hotfixes locally

SRVD511 Thu 09/11/2014 16:49:07.08 – Data ONTAP DSM for Windows MPIO installing pre-requisite hotfixes

SRVD511 Thu 09/11/2014 16:49:07.25 – Data ONTAP DSM for Windows MPIO copying installation files locally

SRVD511 Thu 09/11/2014 16:49:07.36 – Data ONTAP DSM for Windows MPIO installing main application

SRVD511 Thu 09/11/2014 16:49:46.44 – Data ONTAP DSM for Windows MPIO reports as INSTALLED

SRVD511 Thu 09/11/2014 16:49:46.44 – Data ONTAP DSM for Windows MPIO cleaning up installation files locally

SRVD511 Thu 09/11/2014 16:49:46.45 – Data ONTAP DSM for Windows MPIO updating registry with 190 second MPIO timeouts

=== SAMPLE LOG OUTPUT ===

Categories: ISCSI, NetApp, SnapDrive

Upgrading NetApp SnapDrive for Windows

September 11, 2014 Leave a comment

I was recently asked to perform SnapDrive upgrades against systems in preparation for a NetApp Data ONTAP upgrade.  As I’ve been through this a time or two before, I knew it wasn’t quite as simple as “upgrade” SnapDrive.  I figured I’d share some information that might help someone have a smooth transition when they do it as well. 

The first thing to do is check out the NetApp Interoperability Matrix Tool (IMT).  This will help you determine all of the supported and required versions. 

The next thing you’ll need to know is what versions are supported.  As of Sep 2014, you’ll want to also look at:

  • SnapDrive for Windows – v7.0.3
  • DSM MPIO – v4.1
  • ISCSI Host Utilities – v6.0.2
  • These are the versions you’ll need to support Windows 2012 R2 and ONTAP v8.2.x 7-Mode.

Next, you’ll need to perform an inventory against your systems to determine what versions or even if some of the above tools are installed.  It’s not uncommon to find situations where SnapDrive might be installed, but the other tools may or may not be.  Equally, the versions may or may not be what you’re expecting to find or standardized.  Some of this will depend on who installed what, and when.  Also, you’re likely to run into some older systems such as Windows 2003 or 2003 R2 that are running older versions, and have no upgrade path.   So you may need to come up with a migration or lifecycle strategy for some of your systems.

One of the most frustrating things I’ve found from these events in the past, is that NetApp doesn’t have any log of what is installed.  That’s understandable for the Windows systems, but these tools interact with a NetApp controller.  For systems that don’t – perhaps they don’t any longer, they’re orphaned, they’ve been P2V’d, etc – that’s understandable.  But it would be GREAT if NetApp could be so kind as to log connections from systems and what version of the software is involved.  Something akin to WSUS, but at the controller level – even if just logged to the MESSAGES file.  Either way, that’s just dreaming Smile

The above software is going to have some pre-requisites and requirements.  These include:

  • .NET 3.5 is required – likely, this already is, if you’re upgrading.  If you’re installing clean, then it may not be present. 
  • Various Windows HotFixes, as identified by the installation guides
  • Knowing what your ISCSI timeout settings need to be – my environment has been tested to prefer 190 seconds.
  • I’ve created silent installer batch files for each of the three application installations and a script to verify the installation.  It likely can’t be distributed via SCCM or similar tools at this point, but it’s pretty close.  Expect to see these posted shortly:

HOWTO- Silent Installation for NetApp Data ONTAP DSM for Windows MPIO v4.1

HOWTO- Silent Installation for NetApp Windows Host Utilities 6.0.2

HOWTO- Silent Installation for NetApp SnapDrive for Windows v7.0.3

HOWTO- Verify NetApp SnapDrive for Windows 7.0.3 Installations were successful

I’ve tested these against Windows 2008 R2 SP1 and 2012 thus far, with no issues.

With luck, I can help someone else’s upgrades go smoothly. 

For those that know me – this would be a GREAT place for an obligatory comment like “Ditch the LUN’s, VMDK’s don’t have this issue, and it’s time to stop living in a world with physical constructs, lack of portability, and vendor lock in.”  I like NetApp products, but I like it better when it has VMware on top of it, and the Windows systems don’t have a clue!

Categories: ISCSI, NetApp, SnapDrive, Storage

Lab Learning Lessons–01

July 27, 2014 Leave a comment

So I figured I’d start a new theme, which the title represents.  This is “Lab Learning Lessons” or things you learn in the lab, that are better learned here than in Production somewhere.  Hopefully this will help you out in the future, or if nothing else will reinforce for me that I’ve done this before.  So with that in mind – this week’s lessons!

 

1) I can’t find the stupid ISCSI Target!

Ever have one of those days?  Setup a new SAN, configure the NIC’s, configure ISCSI, make some LUN’s, configure your Initiator Groups, and… nothing?  Add the ISCSI target to the Dynamic Initiators in the ESXi Software ISCSI Initiator and…. it never finds any Static Initiators like it should?  So you try to do a “vmkping <target_IP>” and sure enough, THAT works.  Worse yet, you do the SAME thing on the secondary NetApp (in this case) controller in that chassis, and IT works.  So you’re doing the right thing.  So you check against the OLD controllers – and your settings are similar as they should be.

So you change the IP addresses on the Targets and… boom.  It works.

Lesson Learned:  IP Address conflicts don’t tell you if the thing that is responding to your test pings is the device you WANT it to be.

 

2) Can’t vMotion VM’s.  Or create a new one.  Or create objects on a new datastore.

Sounds strange right?  The error includes “pbm.fault.pbm fault.summary” for everything you do.  VM’s are otherwise working and doing what they should be.  You can start, restart, reboot, etc.  You just can’t move them around.  A little Google-fu will suggest that you restart the vCenter Inventory and/or Profile Driven Storage service(s).  Sounds reasonable.  Except those take forever to do so.  So you reboot the vCenter server, hoping that’ll help.  No go.

Then you open Explorer…. and realize your vCenter is out of space.  Except all the services are quite happily started.  No “Automatic” services are unstarted or failing to start.  Nothing is tripping an error.  It’s just “not working”.

Lesson Learned:  Maybe if you’re not going to use a 3rd party monitoring solution (eg: Nagios, ZenOS, PRTG, SolarWinds, etc), then you should configure basic Windows Scheduled Tasks to send e-mails when a drive gets to a certain used amount.  Might save some stress.

 

3) IP Address Planning.

I’m big on having “predictable” IP Address standards.  If you can, have “Primary” addresses be a x.y.z.1# and “Secondary” be x.y.z.2#, or some other system that works for you.  Also if you have 4 NIC’s maybe the #’s in the previous examples should be the NIC #.  So on a NetApp, e0c and e0d would be 3 and 4, so your IP would be x.y.z.13, x.y.z.14, x.y.z.23, x.y.z.24, or something else.

The downside is you really need to be able to look at the final configuration, and work backwards.  Are you going to do one IP per NIC?  One per LACP/PortChannel?  (Not so much for ISCSI, but for NFS/CIFS).  if you do one for a virtual interface like an LACP vif – what # is it?  It’s none of NIC 1-4 (e0a/e0b/e0c/e0d).  Would you make it .10 and .20?  Maybe.  Or maybe .19 and .29, as it’s ‘odd’.

What if you have a second unit in the same place?   Is your solution scalable?  The if your first pair of controllers is NW-SAN1 and NW-SAN2, and is .1x and .2x, then NW-SAN3 and NW-SAN4 could easily be .3x and .4x – but are you chewing up a lot of IP’s?  Maybe.  But in my opinion, it’s so worth it.  Reading logs and troubleshooting becomes amazingly simpler, as you can now logically map one device to another by IP, hostname, port and NIC.

Lesson Learned:  Plan out as much as you can in advance.   But if you can’t, try it in a simulator and work through your options.  This is why they exist, and why we have labs.

Issues unmounting/removing a datastore from vSphere

May 26, 2012 Leave a comment

As I was planning to upgrade a SAN in my environment (bigger disks in my Dell PE2950 running StarWind Free iSCSI), I ran into some issues removing the old satastore.  I figure I’ll link to a KB and post my findings here.

First, my symptoms and issues:

  • The datastore was part of a Storage DRS cluster.  I had previously put it in maintenance mode, and removed it from the cluster as I wasn’t simply doing maintenance but was going to be replacing the datastore outright.
  • Made sure that all my hosts were powered up, thinking the DPM suspended host might be part of it – no change.
  • Look for some reasons – find the VMware KB – http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2004605
    • LUN is not being used, no VM’s on it
    • No ISO’s or otherwise on it, that’s all on a very slow one disk IX2-200D
    • No RDM’s present here
    • Datastore isn’t part of a Datastore Cluster
    • Datastore isn’t managed by Storage DRS
    • Storage I/O Control is disabled – well I never enabled it.  But sure enough it was on.  (Properties on the Datastore, and there is a checkbox)
      image
    • Datastore is not used for vSphere HA heartbeat – again, I never enabled it.  But I’m pretty sure I have it set for “choose the best options from the datastores you can reach”.  Sure enough:
      image
      You’re going to want to pick some other option.  Probably “Select any of the cluster datastores taking into account my preferences”

At this point, I was able to unmount and unpresent the LUN to my cluster.

Categories: ESXi, ISCSI, vSphere