Netapp DataOntap Powershell Toolkit
Makalemizde haziran ayında yayınlanan “Netapp Powershell Toolkit” kullanımını sizlerle de paylaşmak istedim. Bu toolkit cmd-lets yardımıyla Powershell’den netappınızı manage etmeniz hatta script ve visio yardımı ile, sistemlerinizin storage haritalarını automated şekilde çıkarmanız ve visio dökümanı olarak saklamanız, yazdığını scriptler ile automated management yapmanız ve bir çok farklı işlev gerçekleştirmenizde yardımcı olabilecek bir tool.
Pshell dataontap toolkit + Visio Örneği;
Url: http://communities.netapp.com/docs/DOC-8111?REF_SOURCE=tot-1010&h
Öncelikle Bu tool’un kullanımı için now.netapp.com adresinde hesabınızın bulunması gerekmektedir. Aşağıdaki adresten powershell toolkit ve install script’ini indirebilirsiniz.
Dosyalar ; DataOntap.zip ve Install.ps1 (Readme.txt’de yükleme sonrası module load açıklaması bulunuyor.)
Bunları indirdik, desktop’a kaydettik. Ben uygularken 2 sinide desktop’a kaydetmiştim. Dolayısı ile install scriptini bu path’den çalıştırdım. Kısaca yaptığı işlem zip’i açarak powershell modül pathine kopyalaması. Ardından Powershell dataontap modülünü load ediyoruz.
Not: Powershell’de install scriptini çalıştırmayı ilk denediğinizde policy bazlı permission hatası alabilirsiniz hatayı düz disable etmek için, “Set-ExecutionPolicyRemoteSigned “ çalıştırdıktan sonra install scriptini çalıştırırsanız sorun düzelir. Bunun başka yolları olabilir fakat benim powershell hakkında ve policy yapılanması hakkında daha derin bilgim yok. Powershell’i sadece netapp ve f5 ltm Bigip management modülleri için kullanıyorum.
“Get-nahelp” ; kısaca kullanılabilir tüm komutlarımızı listeler.
Komutlarımızı çalıştırabilmek için ilk olarak netapp controller bağlantısını sağlamalıyız.Bunun için 2 yol var biri RPC bağlantısı diğeri HTTPS bağlantısı. Default olarak Connect-NaController komutu ile bağlantı denediğimizde, örnek ;
Connect-nacontroller -name ip_adress
Default aldığımız yanıt ; “RPC Error – Access is denied.” Olacaktır. Dolayısı ile biz RPC yerine hiç permission lar ile uğraşmadan HTTPS bağlantısı yapacağız.
PS C:> $password = ConvertTo-SecureString “netapp_login_şifreniz” –AsPlainText –Force
PS C:> $scred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList “root”,$password
PS C:> Connect-NaController netapp_ip_adresi -Credential $scred
Https secure post için netapp community blog’da bulduğum bu bağlantı şekli ile bağlantımızı sağlıyoruz.
Get-naaggr —- Get-Navol komutları çıktıları. Aggregate ve volume listesi. Get-nadisk disk listesi
Gibi komutlar ile sistem hakkında infolar printleye bilirsiniz. Volume, snapshot gibi aklınıza ne gelirse, lisanslanmış her özelliği burdanda yönetebilirsiniz.
Bir örnek script işlersek; http://communities.netapp.com/docs/DOC-6170
Bu adresten alıp incelediğimiz örneği netapp simülatöründe deneyebilirsiniz. Burada kısaca, powersell modülü load ediliyor. Daha sonra controller bağlantısı sağlanıyor. Licence lar giriliyor, Aggregate yaratılıyor, aggregate snapshot disable ediliyor, wafl fs tek yazma optimizasyonunu kapatılıyor, 4 volume yaratılıyor (örnekte istenen özellikler ile), iscsi bağlantısı enable ediliyor. Örneği veren arkadaşın testine göre simülator üstünde denediği bu örnek tam 1 dakikada işlemleri bitiriyormuş. Örnek’tende görüldüğü gibi powershell sayesinde netappların yönetimleri scriptler ile çok daha kolay ve kullanışlı hale getirebilmek mümkün.
Örnek Script Kodu ; Lisanslar örnektir simülatör üstünde çalıştırılmıştır.
Import-module DataONTAP
$SIM1=Connect-NaController SIM1
Add-nalicense -Codes GWNTKCL,BCJEAZL,ELNRLTG,MTVVGAF,NAZOMKC,NQBYFJJ,DFVXFJJ,PVOIVFK,PDXMQMI
set-naoption wafl.optimize_write_once off
New-NaAggr aggr1 -DiskCount 8
do { $aggr; $aggr=get-naaggr aggr1} until ($aggr.State -eq “online”)
Set-NaSnapshotReserve aggr1 0 -Aggregate
foreach ($VOL in @(“vol1”, “vol2”, “vol3”, “vol4”))
{
New-NaVol $VOL aggr1 1g
set-navoloption $VOL nosnap on
set-navoloption $VOL no_atime_update yes
set-navoloption $VOL fractional_reserve 0
set-nasnapshotreserve $VOL 0
set-nasnapshotschedule $VOL -Weeks 0 -Days 0 -Hours 0
get-nasnapshot $VOL | remove-nasnapshot
}
Enable-NaIscsi
Umarım faydalı bir makale olmuştur. Bir sonraki makalemizde görüşmek üzere
Kaynaklar ;
http://communities.netapp.com
http://now.netapp.com
http://blogs.msdn.com/b/powershell/archive/2010/06/16/kudos-to-netapp-for-data-ontap-powershell-toolkit.aspx