今天无意中看见Netapp提供Data Ontap 的powershell 模块,豆子兴致勃勃的下载试了试。

下载链接

http://mysupport.netapp.com/NOW/download/tools/powershell_toolkit/


具体安装module的过程不说了,参考

http://community.netapp.com/t5/Virtualization-and-Cloud-Articles-and-Resources/Making-The-Most-Of-Data-ONTAP-PowerShell-Toolkit/ta-p/87234


花了1个小时学习了基本命令,写了一个简单的脚本测试效果


基本功能是连接到两个filer上,读取上面的volume,如果volume的磁盘使用超过90%,那么给我发个警告信,并列出上面所有的snapshot快照。


$syd01=Connect-NaController syd01
$syd02=Connect-NaController syd02
$filers=$syd01,$syd02
$logtime=Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
$path="C:\temp\logs\$logtime.txt"
New-Item -Path $path -ItemType file -Force 

foreach($filer in $filers){
Connect-NaController $filer 
$a=Get-NaVol | Where-Object{$_.used -ge 90} 
foreach($b in $a){
$b | ft >> $path
$b| Get-NaSnapshot  |sort created |ft >> $path
}
}

$from = "[email protected]"
$to = "[email protected]" 
$smtp = "smtp.office365.com" 
$sub = "Volume over 90%" 
$body="This is the warning message for volume usage over 90%"
$secpasswd = ConvertTo-SecureString "PasswordXXX" -AsPlainText -Force 
$mycreds = New-Object System.Management.Automation.PSCredential ($from, $secpasswd)
if ((get-content $path).length -gt 0){
Send-MailMessage -To $to -From $from -Subject $sub -Body $body -Credential $mycreds -SmtpServer $smtp -DeliveryNotificationOption Never -BodyAsHtml -UseSsl -port 587 -Attachments $path
}


执行脚本,1分钟后收到邮件,打开看看,附件里面是快照的细节。

可以看见snap protect自动产生的备份文件。这个和我从OnCommand System的图像界面看见的效果是一样的。


Powershell Module for Netapp Data Ontap_第1张图片


对比一下我之前的使用方式


相比SSH连接到filer,然后执行命令,powershell明显简单好使的多,如果有其他模块的使用经验,基本上1个小时就能轻松上手,这个是因为powershell 自己固定的命名方式和使用习惯,如果开发者严格遵从高级功能的模板和命名习惯,用户使用起来没有任何别扭的感觉。


相比OnCommnd的图形界面,GUI和浏览器,Java的兼容性一直有点问题,有时候打开界面又慢又显示不出东西;powershell的速度快速的多,如果需要配置多个filer和volume,效果要好很多。一些删除的命令也很贴心的提供了-whatif,这样可以避免误操作。