Archive

Archive for the ‘SnapDrive’ Category

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 ===

Advertisements
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