Saturday, 30 November 2019

Tech Roundup - 1st December 2019

Stuff collated/new since Tech Roundup - 10th October 2019 with headings:

- Cloud (General)
- DataCenter Dude [Videos]
- FlexPod
- IT Miscellany
- Microsoft
- NetApp (General)
- NetApp and Broadcom
- NetApp Cloud
- NetApp E-Series
- NetApp Knowledgebase
- NetApp SnapCenter
- NetApp.io
- NetApp Tech ONTAP Podcast
- NetApp TRs
- Security (IT)
- Storage Industry News
- Veeam

Cloud (General)

UPDATE: So our cloud exchange server (Office 365) was down for 17 hours on friday
“One of the risks you face with a cloud service is that losing a critical piece of infrastructure affects 100% of your business but only 0.0001% of theirs, so they will never feel the same sense of urgency as you do.”

Google buys a small cloud partner (Cloudsimple) to make it easier for customers to use VMware on its cloud

Azure VMware Solution by CloudSimple

Microsoft Azure customers reporting hitting virtual machine limits in U.S. East regions

Amazon challenges Pentagon's $10-billion cloud award to Microsoft

Office 365 Backup Analysis

DataCenter Dude [Videos]

NetApp An Infrastructure Admin's Journey to the Cloud

NetApp Kubernetes Service Cluster Creation Demo

NetApp Full Stack AI Platform for Edge, Core, and Cloud

NetApp StorageGRID - Object Storage for What's Next

NetApp Flexible Architecture - StorageGRID Architecture Overview

NetApp Create Your Data Fabric

KubeCon 2019 -- Keynote & General Session -- Day 1

KubeCon 2019 -- Keynote & General Session -- Day 2

KubeCon 2019 -- Keynote & General Session -- Day 3

Rob Esker & Matt Baldwin, NetApp | KubeCon + CloudNativeCon NA 2019

NetApp on Twitch – https://twitch.tv/NetApp
DatacenterDude on Twitch – https://twitch.tv/DatacenterDude

FlexPod

FlexPod Datacenter with NetApp ONTAP 9.6, Cisco UCS 4th Generation, and VMware vSphere 6.7 U2

IT Miscellany

Google says it's achieved quantum supremacy
But it's not particularly useful... yet.

ASUS Z390 Motherboards Automatically Push Software into Your Windows Installation

Microsoft

SQL Server 2017: Server Memory Configuration Options

Save Office 365 email attachments to OneDrive for Business

NetApp (General)

Insight 2019 Breakouts (Recordings and PowerPoints)

New AFF and FAS Systems and the Next Feature Release of ONTAP - October 2019

NetApp Keystone
Your cloud. As simple as 1, 2, 3.

Need to Simplify Your Hybrid Multicloud Experience? NetApp Keystone Delivers.

Easier workload migration in a hybrid world is the promised land for NetApp

Voice of the FlexPod Customer: Bringing Stability and Resilience to IT


NetApp and NVIDIA: Taking High-Performance Computing to the Next Level

NetApp Collaborates with NVIDIA to Simplify AI for Enterprises

Rethink Your Approach to End-User Computing

NetApp ONTAP Tip – Quick File Count Reporting with Null Quotas

Episode 5: NetApp INSIGHT 2019 Wrap Up

Cloud Insights Launches New Features, Enhances Monitoring and Security for Across Your IT Infrastructure

2019-2020 NetApp Product Poster

Now You Can Tier to Even More Clouds with StorageGRID

NVA: NetApp HCI for Citrix Virtual Apps and Desktops with VMware vSphere: NVA Design

Image: NetApp HCI for Citrix Virtual Apps and Desktops with VMware vSphere

Clean Up Data Spills Quickly with NetApp Secure Purge

How to monitor NetApp quotas for disks with PowerShell

NetApp and Broadcom

NetApp EF-Series EF600 and Oracle Database
Deploy with confidence: high-performance databases on end-to-end NVMe NetApp EF-Series systems with Broadcom’s Emulex HBAs and Brocade switches.

NVA-1136: NetApp and Broadcom Modern SAN Cloud-Connected Flash Solution: VMware vSphere Verified Architecture Design Edition

NVA-1127: NetApp and Broadcom Modern SAN Cloud-Connected Flash Solution: MongoDB and SUSE NetApp Verified Architecture Design Edition
Modernize your enterprise SAN with end-to-end NVMe over Fibre Channel, the fastest cloud-ready solution for mission-critical workloads.
NetApp and Broadcom Modern SAN Cloud-Connected Flash Solution: Oracle and SUSE NetApp Verified Architecture Design Edition
Modernize your enterprise SAN with end-to-end NVMe over Fibre Channel, the fastest cloud-ready solution for mission-critical workloads

NetApp Cloud

NetApp: Data Fabrics for Data That Is Everywhere

NetApp and Google Cloud Advance Strategic Partnership to Drive Innovation in the Cloud

NetApp and Google Cloud Drive Innovation in the Cloud

Anthos
Bringing the cloud to you.

NetApp HCI with Anthos: NVA Design/Deployment

Google Next: Opening Keynote video recording (NetApp at 34:40)

New SAP Certification and Region Availability for Azure NetApp Files

Ready to Solve Your Enterprise Linux File Requirements in Azure?

Accelerating Troubleshooting with NetApp Cloud Insights

Avoid File Share Availability Nightmares: How Cloud Volumes Service for AWS Ensures Uptime

AWS Migration: Understanding the Process and Solving 5 Key Challenges

What the Healthcare Industry Can Do to Solve On-Prem Storage Challenges

GDPR vs. CCPA Infographic

NetApp Announces Collaboration With Equinix And Alibaba Cloud

[Video] Windows Virtual Desktop with FSLogix profile container on Azure NetApp Files

Feeling Data Rich, but Info Poor? Solve IT Troubles With NetApp Experts.

Cutting-Edge Storage for Container Technology: Container Data Storage in CVS for AWS

Move Your Enterprise Apps to Google Cloud 10 Times Faster

Approaches to Implementing On-Premises-to-Cloud Connectivity With Cloud Volumes Service for AWS

Myth Busting: Is Cloud Storage Faster Than On-Premises?

NetApp: Hybrid Cloud Base

Genomics Data Puts NetApp and AWS to the Test

TR-4671: Performance Characterization of NetApp Cloud Volumes ONTAP for Azure with Application Workloads

TR-4383: Performance Characterization of NetApp Cloud Volumes ONTAP in Amazon Web Services with Application Workloads

NetApp E-Series

Updated E-Series and SANtricity 11 Documentation Center - user documentation, instructional videos, and other helpful resources for SANtricity 11.60 (incorporating System Manager and Unified Manager online help systems).

The E-Series version 11.60 release offers a new EF600 all-flash storage system, which includes NVMe-oF host interfaces and NVMe SSDs, increasing throughput and decreasing latency.

Also newly designed E-Series and SANtricity 11 Resources page.

NetApp Knowledgebase

SMBR 8 with SnapCenter - how to restore from secondary

How to cascade TDP replication to secondary destination cluster (7M > cDOT > cDOT)
“Using a pre-8.2 Snapshot copy is not supported by this operation…”
FIX: Set: options replication.create_data_protection_rels.enable on

NetApp SnapCenter

SnapCenter Plug-in for VMware vSphere 4.2.1:

Software:
NetApp Data Broker 1.0.1

Documentation:

Videos:

Technical Reports:

NetApp.io



NetApp Tech ONTAP Podcast



NetApp TRs



Security (IT)

Viewing file activity on a Remote fileshare without permissions

Intel's Cascade Lake CPUs impacted by new Zombieload v2 attack

Thousands of QNAP NAS devices have been infected with the QSnatch malware
Over 7,000 infections reported in Germany alone. The malware is still spreading.

New Simjacker vulnerability exploited by surveillance companies for espionage operation

Storage Industry News

Project Silica proof of concept stores Warner Bros. ‘Superman’ movie on quartz glass

The Silent Bricks storage solution is a flexible set of appliances with built-in data protection for archiving and backup.

DDN Announces Acquisition of Intelliflash Enterprise Storage Business Unit From Western Digital

Veeam

[Video] Veeam: How-To Videos

[Video] Veeam Enhanced NAS Backup - TFD20

Veeam: Six outstanding new functionalities in Veeam Backup for Microsoft Office 365 v4 – Beta

VeeamON Virtual: Vital insights. Tech deep dives - Now on-demand & FREE

2019 Gartner Magic Quadrant for Data Center Backup and Recovery Solutions
Veeam named a Leader for the 3rd time

Thursday, 21 November 2019

PowerShell Function Good Input

Just a little prompt function that checks for ‘Good Input’.


Function GoodInput{
  Param([System.Array]$InArr,[Switch]$Ceq)
  $GI = $FALSE
  While(!$GI){
    [String]$RH = Read-Host
    $InArr | Foreach{
      If($Ceq){
        If($RH -ceq $_){$GI = $TRUE}}
      Elseif($RH -eq $_){$GI = $TRUE}
    }
  }
  RETURN $RH
}


And an example of using it in the image below:

"Y or N not case sensitive";[String]$Test = GoodInput "Y","N"
"Y or N case sensitive";[String]$Test2 = GoodInput "Y","N" -CEQ

Image: Demo of Using PowerShell Function GoodInput

Tuesday, 12 November 2019

Creating a Custom ONTAP SVM Role for SMBR Restore Purposes

Following on from the last two posts -
- to productionize the tool, you’ll probably not want to hand out the vsadmin credentials. In this post we create a custom security login role for the purposes of performing the SMBR restore (the custom role is still quite powerful.)
Note: Really, this role applies to any use case where one wants to be able to flexclone from a snapshot and perform tidy up with minimum permissions.

Clustershell Commands to Create the Custom Role and User


security login role create -role smbr_restore -vserver svm1 -cmddirname DEFAULT -access none
security login role create -role smbr_restore -vserver svm1 -cmddirname lun -access readonly
security login role create -role smbr_restore -vserver svm1 -cmddirname "lun mapping create" -access all
security login role create -role smbr_restore -vserver svm1 -cmddirname version -access all
security login role create -role smbr_restore -vserver svm1 -cmddirname volume -access readonly
security login role create -role smbr_restore -vserver svm1 -cmddirname "volume clone" -access all
security login role create -role smbr_restore -vserver svm1 -cmddirname "volume destroy" -access all
security login role create -role smbr_restore -vserver svm1 -cmddirname "volume offline" -access all
security login role create -role smbr_restore -vserver svm1 -cmddirname vserver -access readonly

security login create -user smbr_restore -role smbr_restore -vserver svm1 -application ontapi -authentication-method password


Image: Custom ONTAP SVM Role for SMBR Restore Purposes

Note: ONTAP Version used here is ONTAP 9.3.

Saturday, 2 November 2019

Tool to FlexClone SCE Database Snapshot and Present to SMBR Server - Part 2 of 2: Demo

To demonstrate the use of the FlexClone_DB_SnapShot_to_Server tool, here’s a straightforward demonstration with pictures.

1) Double-click FlexClone_DB_SnapShot_to_Server.BAT to run thetool.
2) Input the SVM password.
3) Specify which database you want to restore from.
4) Choose which volume you want to restore from.

Image: 1-4 Selecting Database and Volume

5) Choose which snapshot you want to restore from.
6) Then the tool goes away and flexclones the volume, and presents the LUN as an R drive to the server, which automatically opens.

Image: 5-6 Choosing which snapshot to restore from

Image: The tools runs ‘Explorer R:’ so the Explorer Window automatically pops up and you can browse to your EDB file.

7) Press ENTER when you are read to start the tidy up (Flexclone destroy).

Image: 7 Tidy up completed!

THE END

Tool to FlexClone SCE Database Snapshot and Present to SMBR Server - Part 1 of 2: The Tool

Prerequisites

1) SMBR is installed
2) ONTAP PowerShell Toolkit is installed
3) The server has iSCSI interfaces
4) An initiator group for the server exists on the relevant SVM
5) iSCSI is setup on the SMBR server
6) Credentials to connect to the SVM


Below is an example of the required setup (for 3,4,5). Here we configure MPIO but only have one iSCSI IP on the server (.75) and one iSCSI LIF on the cluster (.131) This is a one-time setup:


get-windowsfeature -name 'Multipath-IO'
add-windowsfeature -name 'Multipath-IO'
get-netipaddress | where-object {$_.AddressFamily -eq "IPv4"}
set-service -name MSiSCSI -StartupType Automatic
Start-service -name MSiSCSI
hostname

  
‌‌
igroup create -vserver svm1 -igroup iqn.1991-05.com.microsoft:smbr.demo.corp.com -protocol iscsi -ostype windows -initiator iqn.1991-05.com.microsoft:smbr.demo.corp.com

  

New-IscsiTargetPortal -InitiatorPortalAddress 192.168.0.75 -TargetPortalAddress 192.168.0.131
get-iscsitarget | connect-iscsitarget -Ispersistent $True -IsMultipathEnabled $True -InitiatorPortalAddress 192.168.0.75 -TargetPortalAddress 192.168.0.131 
Get-IscsiConnection
new-msdsmsupportedHw -VendorId NETAPP -ProductId "LUN C-Mode"
Update-MPIOClaimedHW -Confirm:$false
restart-computer


Running from a Batch File

Image: FlexClone_DB_SnapShot_to_Server.BAT

You’ll need to put a batch file on the desktop, for the exchange administrator to run the tool. The batch file - which we’ll call FlexClone_DB_SnapShot_to_Server.bat - has this content:

PowerShell.EXE C:\Scripts\FlexClone_DB_SnapShot_to_Server.PS1 -SVMName {SVM Name} -HostIGrp {Host Initiator Group Name} -SVMMgmtLIF {SVM Management LIF} -SVMUser vsadmin

PowerShell Script

This the script:


Param(
  [String]$SVMName,
  [String]$HostIGrp,
  [String]$SVMMgmtLIF,
  [String]$SVMUser
)

Function Wr{
  Param([String]$Echo,[String]$Ink = "WHITE")
  If($Echo){Write-Host $Echo -ForegroundColor $Ink -NoNewLine}
  Else{Write-Host}
}

####################
## INITIALIZATION ##
####################

[Void](Import-Module DataONTAP)
If(!(Get-Module DataONTAP)){Wr "Import-Module DataONTAP failed" RED;Wr;PAUSE;EXIT}

Wr;Wr "+++++ Mount DB Snapshot to the SMBR Server +++++" MAGENTA;Wr;Wr
Wr "SVM Name      : " CYAN;If($SVMName){Wr $SVMName;Wr}else{$SVMName = Read-Host}
Wr "Host IGroup   : " CYAN;If($HostIGrp){Wr $HostIGrp;Wr}else{$HostIGrp = Read-Host}
Wr "SVM Mgmt. LIF : " CYAN;If($SVMMgmtLIF){Wr $SVMMgmtLIF;Wr}else{$SVMMgmtLIF = Read-Host}
Wr "SVM Username  : " CYAN;If($SVMUser){Wr $SVMUser;Wr}else{$SVMuser = Read-Host}
Wr "SVM Password  : " CYAN;$SecurePW = Read-Host -AsSecureString
Wr "Recovery Drive: " CYAN;Wr "R";Wr
$Creds = New-Object System.Management.Automation.PsCredential($SVMUser,$SecurePW)

## CHECKING SVM CONNECTION ##
[Void](Connect-NcController -Name $SVMMgmtLIF -Credential $Creds -Vserver $SVMName -ErrorAction SilentlyContinue)
If(!$Global:CurrentNcController){
        Wr "Connect to $SVMName failed!" RED;Wr;PAUSE;EXIT
};Wr

## CHECKING IGROUP EXISTENCE ##
If(!(Get-NcIgroup | Where{$_.Name -eq $HostIGrp})){Wr "Could not find initiator group $HostIGrp" RED;Wr;PAUSE;EXIT}

## CHECKING ISCSI CONNECTIONS ##
$ConnectedCount = 0
[System.Object]$HostIscsi = Get-iSCSIConnection
ForEach($SANLIF in Get-NcISCSIInterface){
  $HostIscsi | Foreach{
    If($SANLIF.IpAddress -eq $_.TargetAddress){
      Wr (($_.InitiatorAddress) + " is connected to " + ($SANLIF.IpAddress)) GREEN;Wr
      $ConnectedCount++
    }
  }
}
If($ConnectedCount -ge 1){
  Wr "At least one iSCSI connection detected!" GREEN; Wr;
  Wr "Note: Currently, we only check for at least one connection. This does not guarantee the LUN mapping will work!" CYAN;Wr
}Else{
  Wr "No iSCSI connections detected!" RED;Wr;PAUSE;EXIT
};Wr

##########################################################
## CUSTOMER INPUTS - customization will be needed here! ##
##########################################################

[System.Array]$DBs = "1","2","3","4","5"
$GoodInput = $FALSE
While(!$GoodInput){
  Wr "Which database do you want to restore from (1-5)? " CYAN;[String]$Database = Read-Host
  $DBs | Foreach{If($Database -eq $_){$GoodInput = $TRUE}}
}

$Attrs = Get-NcVol -Template
$Attrs.VolumeSnapshotAttributes = @{}
Wr;Wr "Searching for volumes..." MAGENTA;Wr;Wr
[System.Object]$Vols = Get-NcVol -Attributes $Attrs | where{$_.name.contains("DB" + "$Database")}
Wr "Volume Name (snapshot count)" CYAN;Wr
$Vols | Foreach{
  Wr ($_.Name + " (" + $_.VolumeSnapshotAttributes.SnapshotCount + ")");Wr
};Wr

$GoodInput = $FALSE
While(!$GoodInput){
  Wr "Which volume do you want to restore from? " CYAN;[String]$RestoVol = Read-Host
  $Vols | Foreach{
    If($RestoVol -eq $_.Name){$GoodInput = $TRUE}
  }
}

$Attrs = Get-NcSnapshot -Template
$Attrs.AccessTime = ""
Wr;Wr "Searching for snapshots..." MAGENTA;Wr;Wr
[System.Objects]$Snaps = Get-NcSnapshot -Volume $RestoVol -Attributes $Attrs
Wr "Snapshot name' created @ MM/DD/YYYY HH:MM:SS AM/PM" CYAN;Wr
$Snaps | Foreach{
  Wr ($_.Name) YELLOW;Wr " @ " CYAN;Wr ($_.Created);Wr
};Wr

$GoodInput = $FALSE
While(!$GoodInput){
  Wr "Which " CYAN; Wr "snapshot name " YELLOW;Wr " do you want to restore from? " CYAN
  [String]$RestoSnap = Read-Host
  $Snaps | Foreach{
    If($RestoSnap -eq $_.Name){$GoodInput = $TRUE}
  }
};Wr

###########
## CLONE ##
###########

$CloneVolName = ("$RestoVol" + "_CLONE")
Wr "Creating clone volume: " MAGENTA; Wr $CloneVolName YELLOW;Wr
Wr "...from snapshot: " MAGENTA; Wr $RestoSnap YELLOW;Wr
Wr "...of volume: " MAGENTA; Wr $RestoVol YELLOW;Wr
[Void](New-NcVolClone -CloneVolume $CloneVolName -Parentvolume $RestoVol -ParentSnapshot $RestoSnap -VolumeType RW)

## FIRST CHECK TO SEE IF ANYTHING MAPPINGS EXIST ##
$Query = Get-NcLunMap -Template
$Query.InitiatorGroup = $HostIGrp
[System.Object]$LunMaps = Get-NcLunMap -Query $Query
$LUNID = 1
If($LunMaps.count -ne 0){
  Wr "There are already LUN mappings to this server. These may need tidy up. Check with the Storage Team." YELLOW;Wr
  $FoundFreeLUNID = $FALSE
  While(!$FoundFreeLUNID){
    $LunMaps | Foreach{
      If($_.LunID -ne $LUNID){$FoundFreeLUNID = $TRUE}
      Else{$LUNID++}
    }
  }
}

## MAP THE LUN (assuming one LUN per volume) ##
$GetLUN = Get-NcLun -Volume $CloneVolName
$LUNPath = $GetLUN.Path
$LUNSerial = $GetLUN.SerialNumber
[Void](Add-NcLunMap -Path $LUNPath -InitiatorGroup $HostIGrp -Id $LUNID)

## WINDOWS CONFIGURATION (assuming one LUN per volume) ##
Update-HostStorageCache
[System.Object]$Disk = Get-Disk | Where{$_.FriendlyName.contains("NETAPP")}
$Disk | Set-Disk -IsReadonly $FALSE
$Disk | Set-Disk -IsOffline $FALSE
$Disk | Get-Partition | Where{$_.Type -eq "Basic"} | Set-Partition -NewDriveLetter R
Update-HostStorageCache
Explorer R:

## NOW DO THE RESTORE ##
Wr "LUN has been mounted as the R: drive." GREEN;Wr
Wr "Use SMBR to restore your data." CYAN;Wr;Wr
Wr "ONLY PRESS ENTER WHEN READY TO START THE TIDY UP." RED;Wr;Wr
PAUSE

#############
## TIDY UP ##
#############

$Disk | Set-Disk -IsOffline $TRUE
[Void](Set-NcVol -Name $CloneVolName -Offline)
[Void](Remove-NcVol -Name $CloneVolName -Confirm:$False)
Update-HostStorageCache
Wr;Wr "Tidy up completed!" GREEN;Wr;Wr
PAUSE