Purpose
Performs a variety of checks against an ONTAP SAN based system and returns the results in an Excel spreadsheet. Following are the checks involved.
Compare the initiators defined in each igroup against the actual logged in initiators on each node.
Show total number of initiators per LIF.
Gather FCP adapter details that might have a best practice impact.
Compare selective LUN mapping reporting-nodes against the hosting HA pair, other nodes in the cluster, and nodes no longer in the cluster.
Requirements
NetApp PowerShell Toolki - https://mysupport.netapp.com/site/tools/tool-eula/powershell-toolkit
ImportExcel Module - https://github.com/dfinke/ImportExcel
ONTAP 9.x cluster
Script Information
Save script as SANInfo.ps1
Learn more about the script with the following: get-help .\SANInfo.ps1 -Detailed
The script only performs read operations against the cluster to collect data.
... View more
Introduction:
The RBAC User Creator forData ONTAP® tool is a C# application that assists you in creating RBAC usernames within Data ONTAP.This application is used to create usernames in both 7-mode and Clustered Data ONTAP environments. It takes care of the small differences between the Data ONTAP versions as well as the variances with the NetApp products using them.
The lists of privileges being created are stored in XML (ontapPrivs.xml). This was done for two primary reasons:
1. You can clearly see the privileges so there is complete transparency with regards to the new user RBAC User Creator is creating
2. Additional privileges and products can be added later without the need to recompile the application.
NOTE: An important feature of version 2.0 is the ability to add products without needing to recomplie the application
You can think of RBAC User Creator being a framework of sorts. All the products and privileges for those products are listed in the XML file. Adding support for another product or product version is as simple as adding the information in the XML file.
RBAC User Creator has native support for the following products out of the box
Virtual Storage Console for VMware vSphere
OnCommand Balance
Snap Creator Framework
SnapDrive for Windows
VASA Provider for VMware vCenter
Storage Replication Adapter for VMware Site Recovery Manager
Virtual Storage Console for Citrix XenServer
Virtual Storage Console for RHEV
NetApp Recovery Manager for Citrix Sharefile
OnCommand Unified Manager (DFM) 5.1
VMTurbo Operations Manager
Step 1: Install Tool
Install the tool by selecting "Run as Administrator". Standard Installshield rules apply. If you don't "Run as Administrator", the log file will not be created.
Step 2: Set Up Usernames and Privileges
In just a few short clicks you can create ONTAP usernames with all the required privileges needed by VSC. In order to guide you along, the non-relevant sections are greyed out.
Simply enter the root or admin username and IP of the storage system you want to create the user on.
Click the LOGIN button, and it will login and determine the controller type.
If the storage system is running Clustered Data ONTAP, the list of Vservers will be displayed.
RBAC User Creator supports creating users on the Cluster-Admin Vserver as well as on Data Vservers. Simply select the Vserver from the pull-down list.
NOTE: RBAC User Creator requires root/admin storage credentials for creating new usernames.
For more details, please read the User Guide (attached below)
Step 3: Add Roles for Users
RBAC User Creator handles all the differences between 7-mode and Clustered Data ONTAP
Simply select your VSC version you're using, and the roles you want the new user to have
Choose the product and product version
RBAC User Creator will merge all the privileges from the selected roles and combine them in a sorted list
Since there is an ONTAP limit in the number to privileges in a role, RBAC User Creator will create iterated roles names in the form of <rolename>.X.
In the case of Clustered Data ONTAP, it handles both the read-only and all-access privileges
If you are unsure on what privileges the new user will have, click on the PREVIEW button to preview the list. It will show you the sorted list of all the privileges to be added. If the storage system is running 7-mode, it will create an EMS log detailing the creation of this new username. Hopefully, this funcationalit will be added for Clustered Data ONTAP soon.
Step 4: Add Storage Systems
Login into your application
add the storage system using the new username
Resources:
Download RBAC User Creator for Data ONTAP
Comment below by @mentioning dbkelly (For any issues: include the ONTAPUserCreator.log file in your comment)
... View more
When Virtual Storage Console (VSC) and VASA Provider are registered to vCenter, UI (user interface) extensions are pulled to vSphere. These UI extensions represent the framework that VSC and VASA Provider use to display data.
When new versions of VSC or VASA Provider are released they may be bundled with new UI extensions. During the upgrade process, VSC does not have the ability to delete the old UI extensions off of the vCenter server. These files must be removed manually. If old UI extensions are not removed then a conflict may arise which can cause display issues with the plugin.
During a upgrade of VSC or VASA Provider, it is highly recommended that the old UI extensions be removed.
... View more
Hi, Clustered Data ONTAP doesn't support closing locked CIFS files using the MMC yet (coming in a future release) ...but even then do you really want to waste your time clicking in a GUI just to close a locked file? I'd posted a previous solution for closing locked files in 7-Mode using sysinternals psfile.exe here: https://communities.netapp.com/thread/22165 Unfortunately psfile.exe doesn't behave well with cDOT and I required the same functionality in cDOT for closing locked CIFS files on a vserver...so I developed a work around solution in the interim (see code and example output below). I'll be porting this into a WFA workflow and uploading to communities. Hope this helps Matt Example Output: PS C:\Scripts\> .\CloseLockedFile.ps1 -FileSpec "\\vserver1\share1$\folder1\data\employees.accdb" The Script "CloseLockedFile.ps1" Started Processing. Imported Module "DataOnTap" Please enter the password for user "vsadmin": ************* Connected to vserver "vserver1" Enumerated the mount point for CIFS share "share1$" as "/volume1/qtree1" NcController : vserver1 Value : 2 entries were acted on. Executed Command: set advanced;vserver locks break -vserver vserver1 -volume volume1 -lif * -path /volume1/qtree1/folder1/data/employees.accdb The Script "CloseLockedFile.ps1" Completed Successfully. #'------------------------------------------------------------------------------ Param( [CmdletBinding()] [Parameter(Position=0, Mandatory=$True, ValueFromPipeLine=$True, ValueFromPipeLineByPropertyName=$True)] [String]$FileSpec ) <#'----------------------------------------------------------------------------- 'Script Name : CloseLockedFile.ps1 'Author : Matthew Beattie 'Email : mbeattie@netapp.com 'Created : 08/06/14 'Description : This script closes a locked file on a CIFS share on a ' : NetApp storage controller running Clustered Data ONTAP. ' : It accepts a FileSpec parameter containing the UNC Path of the ' : file to close. '-----------------------------------------------------------------------------#> #'Initialization Section. #'------------------------------------------------------------------------------ [String]$scriptPath = Split-Path($MyInvocation.MyCommand.Path) [String]$scriptSpec = $MyInvocation.MyCommand.Definition [String]$scriptBaseName = (Get-Item $scriptSpec).BaseName [String]$scriptName = (Get-Item $scriptSpec).Name Write-Host "The Script ""$scriptName"" Started Processing." #'------------------------------------------------------------------------------ #'Split the files UNC Path into variables. #'------------------------------------------------------------------------------ [String]$modulename = "DataOnTap" [Array]$elements = $fileSpec -Split [regex]::Escape("\") [String]$hostName = $elements[2] [String]$shareName = $elements[3] [String]$fileName = $elements[$elements.Length -1] [String]$folderPath = "/" #'------------------------------------------------------------------------------ #'Import the Data ONTAP powershell module. #'------------------------------------------------------------------------------ Try{ Import-Module $moduleName -ErrorAction Stop Write-Host "Imported Module ""$moduleName""" }Catch{ Write-Error "Failed Importing Module ""$moduleName""" Break; } #'------------------------------------------------------------------------------ #'construct the folder path between the share and file name. #'------------------------------------------------------------------------------ For($i=4; $i -lt ($elements.Count -1); $i++){ [String]$folderPath = $folderPath + $elements[$i] + "/" } #'------------------------------------------------------------------------------ #'Ensure the vserver is online and responding to ICMP requests. #'------------------------------------------------------------------------------ If(-Not(Test-Connection -computername $hostName -count 1)){ Write-Warning "The vserver ""$hostName"" did not respond to an ICMP request" Break; } #'------------------------------------------------------------------------------ #'Prompt for credentials to connect to the vserver. #'------------------------------------------------------------------------------ [String]$username = "vsadmin" [System.Security.SecureString]$password = ` Read-Host "Please enter the password for user ""$username""" -AsSecureString [System.Management.Automation.PSCredential]$credentials = ` New-Object System.Management.Automation.PSCredential -ArgumentList $username, $password #'------------------------------------------------------------------------------ #'Connect to the vserver. #'------------------------------------------------------------------------------ Try{ Connect-NcController -Name $hostName -Credential $credentials -HTTPS -ErrorAction Stop | Out-Null Write-Host "Connected to vserver ""$hostName""" }Catch{ Write-Error "Failed connecting to vserver ""$hostName""" Break; } #'------------------------------------------------------------------------------ #'Enumerate the mount point of the CIFS share matching the share name. #'------------------------------------------------------------------------------ Try{ [String]$mountPoint = Get-NcCifsShare -Name $shareName -ErrorAction Stop | ` Select-Object -ExpandProperty Path Write-Host "Enumerated the mount point for CIFS share ""$shareName"" as ""$mountPoint""" }Catch{ Write-Error "Failed enumerating the CIFS share named ""$shareName""" Break; } #'------------------------------------------------------------------------------ #'Set the command to close the locked CIFS file #'------------------------------------------------------------------------------ [String]$volumeName = $mountPoint.Split("/")[1] [String]$filePath = "$mountPoint$folderPath$fileName" [String]$command = "set advanced;vserver locks break -vserver $hostName -volume $volumeName -lif * -path $filePath" #'------------------------------------------------------------------------------ #'Invoke the command to close the CIFS locked files. #'------------------------------------------------------------------------------ Try{ Invoke-NcSsh -Name $hostName -Command $command -Credential $credentials -ErrorAction Stop Write-Host "Executed Command: $command" }Catch{ Write-Error "Failed executing Command: $command" Break; } Write-Host "The Script ""$scriptName"" Completed Successfully." #'------------------------------------------------------------------------------
... View more
Great news for NetApp employees and for NetApp reselling partners! You can access a Lab on Demand (LoD) for the Virtual Storage Console for Apache CloudStack. The LoD is based on a Citrix CloudPlatform 4.3 setup running in RHEL 6.4. In addition, it contains clustered Data ONTAP running 8.2.1 with 2 Storage Virtual Machines, which showcase their power and use in a multi-tenant cloud environment. We know you are bound to love this LoD! Please let us know what you think.
... View more