tag:blogger.com,1999:blog-7668998065519634012024-02-20T14:47:41.454+05:30My journey with NetAppLife of an engineer with his understanding of NetApp storage systemsAnonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.comBlogger48125tag:blogger.com,1999:blog-766899806551963401.post-3018955190418608712012-05-28T13:41:00.002+05:302012-05-28T13:41:31.442+05:30Comments BrokenYeah, it was a fool of me to believe on Google and think there can't be an error like that. Anyway I did upgrade the dated look of my blog, and with new look everything was fine, except comment section. I did try to restore the old config but all the restore methods failed even restore from template backup which I did saved before making change failed.<br />
<br />
So guess what, as to this writing comments are only working from IE8, will check other browsers also will let you know if that does work.<br />
<br />
Thanks,Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com3tag:blogger.com,1999:blog-766899806551963401.post-56408346580327416392012-05-28T02:13:00.000+05:302012-05-28T02:13:38.315+05:30pNFS in NetApp<br />
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Arial","sans-serif";">In my last post I discussed about pNFS features and architecture,
and promised that in next post I will discuss about NetApp’s implementation of
pNFS. So here it is.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Arial","sans-serif";">Since 1992, the time when NetApp was formed it is always known
for its solid NFS implementation and frontrunner of NFS design and standardization.
Today when NetApp has gone unified, and support not only NFS but SMB, FC,
iSCSI, FCOE and some other less known protocols also, still it is a major driving
force to NFS design. The latest example is pNFS where NetApp has proved again
by delivering pNFS to its ONTAP 8.1 Cluster Mode offering. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Arial","sans-serif";">In my opinion they have done a wonderful job with their
implementation of pNFS, though currently it’s limited to support of file only,
but heck yeah it’s wonderful. In NetApp’s implementation of pNFS not only data
is distributed across all the nodes but metadata also. So if you have got
metadata intensive workload you can tackle that as well by using round robin
from your DNS infrastructure and instantly you have a cluster which not only
scales linearly with data nodes but metadata nodes also.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Arial","sans-serif";">Another niche feature is live volume transition. It gives
flexibility to move a live volume in any node of cluster if ever required, that
too non-disruptively. Thanks to pNFS, it keeps same NFS handle while data being
served from new node so you don’t need to unmounts and remount the filesystem
and since we use cluster wide namespace no change is required at its directory
location also. Isn’t this sweet, no more struggling to get downtime to move a
volume, huh! <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Arial","sans-serif";">And the best part is that it’s built around industry standard
set by IETF, so there is no requirement of special client software and you can use
it along with NFS version 3, 4 or 4.1 without pNFS supported client.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; color: #333333; font-family: "Arial","sans-serif";">The only setback from using it across your environment is
limited client support. As of today, only Fedora 16 with kernel 2.6.39 and RHEL
6.2 can be used, however soon we will see its support in other distributions
also as it’s already in kernel mainstream and it will not be long when other
distributions start shipping it.<o:p></o:p></span></div>
<br />
<span style="background: white; color: #333333; font-family: "Arial","sans-serif"; font-size: 11.0pt; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;">References:<o:p></o:p></span><br />
<a href="http://media.netapp.com/documents/wp-7153.pdf">http://media.netapp.com/documents/wp-7153.pdf</a><o:p></o:p><br />
<a href="http://media.netapp.com/documents/tr-4063.pdf">http://media.netapp.com/documents/tr-4063.pdf</a><o:p></o:p><br />Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com5tag:blogger.com,1999:blog-766899806551963401.post-19683176489850214912012-05-27T21:59:00.000+05:302012-05-27T22:06:18.086+05:30pNFS<br />
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">As
my nature, I was lazing around over the weekend when I noticed the newly
published best practice document on <a href="http://media.netapp.com/documents/tr-4063.pdf">pNFS and ONTAP 8.1 Cluster
Mode</a>. Soon I realized this is what c-mode is made for; <i>parallelism</i>. How? Let’s see that.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">First
let’s start with what is Parallel NFS or in short ‘pNFS’?<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="font-family: 'Times New Roman', serif;">pNFS is extension
of NFS version 4.1 which adds support of parallelism to existing NFS version 4.</span></i><span style="font-family: 'Times New Roman', serif;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">Well,
that was the shortest answer I could write however here’s little more detail on
it. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">pNFS
is part of NFS 4.1, the second minor version to NFS version 4 which adds support
of session, and directory delegation, along-with parallelism. The idea to use SAN
filesystem architecture and parallelism in NFS was originated from Gary Grider of
Los Alamos National Lab and Lee Ward of Sandia
National Lab, later it was presented by Gearth Gibson, a professor at Carnegie Mellon
University and founder and CTO of Panasas, Brent Welch of Panasas, and Peter
Corbett of NetApp in a <a href="http://bgp.potaroo.net/ietf/idref/draft-gibson-pnfs-problem-statement/">problem
statement</a> to Internet Engineering Task Force (IETF) in 2004. Later, in 2005
NFSv4 working group of IETF commended drafts and in 2006 it folded into the 4.1
minor version draft. It’s published under <a href="http://tools.ietf.org/html/rfc5661">RFC 5661</a> describing NFS version
4.1 with parallel support and <a href="http://tools.ietf.org/html/rfc5662">RFC
5662</a> detailing protocol definition codes. pNFS is not limited to file, support
for block data (<a href="http://tools.ietf.org/html/rfc5663">RFC 5663</a>) and
object based data (<a href="http://tools.ietf.org/html/rfc5664">RFC 5664</a>) are
also added, so now it’s possible to access not only file but object (OSD) and
block (FC/iSCSI) based storage also over NFS.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">pNFS,
being open source, does not require additional software or drivers on the
client that are proprietary to enable. Therefore, the different varieties of
NFS can coexist at the same time and supported NFS clients can mount the same
file system over NFSv3, NFSv4, and NFSv4.1/pNFS.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">It
is widely accepted by industry and jointly developed by Panasas, NetApp, Sun,
EMC, IBM, UMich/CITI and many more however at the time of writing only Fedora
16 with kernel 2.6.39 supports all three layout types (blocks, files and objects)
whereas RHEL 6.2 support only files layout.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: 'Times New Roman', serif;">Now question comes,
what was the need for it?<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">We
all love NFS for its simplicity, and from the time it was designed by Sun in
the era of 10Mb Ethernet, it scaled well to 100Mb and then gigabit Ethernet, however
with the advent of 10Gb and 40Gb links, single stream designed protocol wasn’t
enough to scale it further. Industry has already used TOE Ethernet cards, link
aggregation and bigger boxes but that wasn’t sufficient to utilize the
bandwidth and CPU powers we have available now. So what was left to deal with?
Parallel NFS.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: 'Times New Roman', serif;">So, what’s so different
from earlier version of NFS?<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">pNFS
is not much different from its ancestors it just separates metadata from data. Unlike
traditional NFS Versions 3, 4, and 4.1, where metadata and data are shared on
the same I/O path, with pNFS, metadata and data travels on different I/O paths.
It allows metadata server handles all the metadata activities from the client,
while the data servers provide a direct path for data access. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +-----------+<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> |+-----------+ +-----------+<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> ||+-----------+ | |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> ||| | NFSv4.1 + pNFS |
Metadata |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +||
Clients |<----------Metadata------------>| Server
|<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +| | | |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +-----------+ |
|<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> |||
+-----------+<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> Data |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> ||| |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> ||| Storage +-----------+ |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> ||| Protocol |+-----------+ |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';">
||+----------------||+-----------+
Control |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> |+-----------------||| |
Protocol|<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +------------------+|| Data |------------+<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +| Server |<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> +-----------+<o:p></o:p></span></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<br /></div>
<div class="MsoNormal" style="page-break-before: always; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: 'Courier New';"> Figure 1: pNFS
Architecture<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">As
a result of this, in a clustered storage system with multiple nodes you mount
only a directory or root namespace but you get direct access to data from each
nodes. The metadata server (MDS) handles all nondata traffic such as GETATTRs,
SETATTRs, ACCESS, LOOKUPs, and so on. Data servers (DSs) store file data and
respond directly to client read and write requests. A control protocol is used
to provide synchronization between the metadata server and data server.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: 'Times New Roman', serif;">Ok, but where does
pNFS add value?<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">Large
files and high number of concurrent users. With the advent of parallel
computing with multi node cluster, single job gets divided amongst <i>n</i> nodes and when a job arrives at
computational nodes they all try to access same data from one storage location
which soon becomes bottleneck however with pNFS multiple storage system nodes responds
with parts of file in parallel, increasing the aggregated bandwidth and
lowering the latency. At the same time when many small files are accessed by large
number of concurrent users single storage system can get chocked however with
pNFS all nodes of storage system hosting the file, share user load. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: 'Times New Roman', serif;">Great, but how all
this work?<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">In
principal, pNFS uses parallelism used by RAID-0 however at different level. As in
RAID-0 data is spread across multiple disks for faster response, same way in
pNFS one file/filesystem is spread across multiple nodes in clustered storage
array for faster response.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">For
example when client sends read requests for a file to storage system, storage
system replies with file metadata along with layout details, detailing node
address, data location, and striping information, after getting layout details
client knows list of cluster nodes having parts of the file. Now client directly
contacts to all the data nodes simultaneously for the file and nodes reply with
the parts of files they have which clients later assembles.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">I
think It’s enough for now, next post will detail about pNFS implementation by NetApp
<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;">Read
for scholars:<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://www.pnfs.com/">http://www.pnfs.com/</a><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://datatracker.ietf.org/wg/nfsv4/">http://datatracker.ietf.org/wg/nfsv4/</a><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://www.pdl.cmu.edu/pNFS/index.shtml">http://www.pdl.cmu.edu/pNFS/index.shtml</a><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://www.citi.umich.edu/projects/asci/pnfs/linux/">http://www.citi.umich.edu/projects/asci/pnfs/linux/</a><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://www.pnfs.com/docs/LISA-11-pNFS-BoF-final.pdf">http://www.pnfs.com/docs/LISA-11-pNFS-BoF-final.pdf</a><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://www.ietf.org/internet-drafts/draft-ietf-nfsv4-pnfs-00.txt">http://www.ietf.org/internet-drafts/draft-ietf-nfsv4-pnfs-00.txt</a><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Times New Roman', serif;"><a href="http://www.pdl.cmu.edu/pNFS/archive/gibson-pnfs-problem-statement.html">http://www.pdl.cmu.edu/pNFS/archive/gibson-pnfs-problem-statement.html</a><span style="font-size: 10.5pt;"><o:p></o:p></span></span></div>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-75196045678836902062012-05-23T00:08:00.000+05:302012-05-23T00:08:01.420+05:30How to quit SSH session by typing 'exit' in ONTAPJust a little trick to remove annoyance for new NetApp admin.<div>
<br /></div>
<div>
Usually when we want to terminate a SSH session on ONTAP you type Ctrl+D as typing 'exit' returns with message to press 'Ctrl+D' to exit. It's perfectly fine and there isn't any harm as that gracefully closes the session but as most of us are more use to of typing 'exit' to terminate the session, find it odd. </div>
<div>
<br /></div>
<div>
So for those who prefer typing 'exit' to close the session can do so by enabling <span style="font-family: 'Courier New', Courier, monospace;">telnet.distinct.enable</span> option. <br />Default setting for this option is off which in effect mirrors telnet and console session but if you don't use this feature, which I believe most of us don't, can enable it and feel more at home.</div>
<div>
<br /></div>
<div>
<br /></div>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com4tag:blogger.com,1999:blog-766899806551963401.post-69741612592174663452012-05-19T12:48:00.000+05:302012-05-19T12:48:00.705+05:30I am back<span style="font-family: Times, 'Times New Roman', serif;">Yeah, I was absense from blogesphere for some time but guess what it was worth that because during my last a year and half I have learned so much about NetApp and its related technologies that I really fealt what a n00b I was. </span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><br /></span><br />
<span style="font-family: Times, 'Times New Roman', serif;">Anyway I must say thankyou to all of you who encouraged me and patiently waited for my return. </span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><br /></span><br />
<span style="font-family: Times, 'Times New Roman', serif;">Thanks.</span>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com2tag:blogger.com,1999:blog-766899806551963401.post-76982427977172165702010-12-03T00:13:00.000+05:302010-12-03T00:13:55.127+05:30How to restore data from aggregate snapshot<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Today one of our user found himself in wet pants when he noticed his robocopy job has overwritten a folder, rather than appending new data to it. Being panicked he run to me looking for any tape or snapshot backup of his original data, which unfortunately wasn’t there as previously he confirmed that they don’t need any kind of protection.</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
Now at this time I had only place left where I can recover the data, aggregate level snapshots; so I looked at aggregate snapshots and saw it goes back to time when he had data in place. Knowing that the data deleted from volume is still locked in aggregate’s snapshot I was feeling good that I have done a good job by having some space reserved for aggregate level snapshot, which no one ever advocated.</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
Now the next step is to recover the data, but problem was that if I revert aggregate using “snap restore –A” then all the volumes in that aggregate will be reverted which will be bigger problem. So had to go on a different way, use aggregate copy function to copy the aggregate’s snapshot to an empty aggregate and then restore the data from there.</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
Here’s the cookbook for this.</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
Pre-checks:</span><br />
<br />
<ul><li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">The volume you lost data from is a flexible volume </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Identify an aggregate which is empty so it can be used for destination (could be on another controller also) </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Make sure the destination aggregate is either equal or larger than source aggregate </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">/etc/hosts.equiv has entry for the filer you want to copy data to and /etc/hosts has its IP address added, in case of copying on same controller loopback address (127.0.0.1) should be added in /etc/hosts file and local filername should be in hosts.equiv file </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Name of aggregate’s snapshot which you want to copy </span></li>
</ul><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Example:</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"></span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
Let’s say the volume we lost data was ‘vol1’, the aggregate which has this volume is ‘aggr_source’, the aggregate’s snapshot which has lost data is ‘hourly.1’ and empty aggregate where we will be storing data to is ‘aggr_destination’</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"></span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
Execution:</span><br />
<br />
<ul><li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Restrict the destination aggregate using ‘aggr restrict aggr_destination’ </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Start the aggregate data copy using ‘aggr copy start –s hourly.1 aggr_source aggr_destination’ </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Once the copy is completed online the aggregate using ‘aggr online aggr_destination’ </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">If you have done copy on same controller, system will rename the volume ‘vol1’ of ‘aggr_destination’ to ‘vol1(1)’ </span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Now export the volume or lun and you have your all lost data available.</span></li>
</ul><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">So here’s the answer to another popular question, why do I need to reserve space for aggregate level snapshot. Do you have the answer now?</span>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com3tag:blogger.com,1999:blog-766899806551963401.post-54432526637430853532010-10-12T04:24:00.000+05:302010-10-12T04:24:32.324+05:30Most destructive command in OntapThere are some commands which shake me when I run or even when I am close to them, but never thought I could be make my filer so close to death by just mistyping a command.<br />
<br />
Yes, indeed I did it by typing 'gbd' rather than 'dbg', these two are so close to each other that my buttery fingers didn't realize that I mistyped a command and by the time I could realize it was too late. Sigh!<br />
<br />
Little background on this 'gbd' command.<br />
<br />
This command is in diag mode and so debug, however whereas 'dbg' captures filer debug info on console or a file, 'gbd' sends kill signal to all the processors which stops all the work on filers and everything just hangs. The only way to recover your filer is by hard rebooting it, either by RLM or physically tipping the power button.<br />
<br />
I don't understand why brilliant NetApp engineers have made it so simple, why couldn't they use a command like 'use_this_to_kill_your_system' or something like that and I swear no one would ever type it.<br />
<br />
Anyway I did it and I admit, that I should have checked before hitting return which I didn't. But guess what I was lucky enough to not to do it on a prod system and this test/dev system was having only a bunch of NFS clients were connected to it which made it sort of invisible to client systems due to the nature of NFS protocol.<br />
<br />
What is the other command which you think shouldn't be so easy along with this?Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com2tag:blogger.com,1999:blog-766899806551963401.post-14812768378789325372010-10-12T00:32:00.000+05:302010-10-12T00:32:59.125+05:30How to do host/user/group or netgroup from filerOften we want to do nslookup for a host or NIS/LDAP lookup for a user or group for troubleshooting purpose. You have a unix system handy and you do it from there however what if you suspect results are not same as what your filer may be getting?<br />
<br />
If you are troubleshooting CIFS issue, you are in luck with command 'cifs lookup' however, if you are dealing with DNS or NFS issue then you are out of luck, unless you go into advanced mode. Yes, you go inside advance mode and you get access to lot of other commands including one very nifty command 'getXXbyYY', which is incredibly useful but hidden from the view of admins for some strange reason, really I am not sure why NetApp thinks this shouldn't be available to end user as every time I do troubleshooting I feel the need of this and by no way I see this to be making any sort of changes on filer.<br />
<br />
Anyway here's the command, though command says using "man na_getXXbyYY" for additional info however I couldn't locate it on systems therefore I use<br />
<br />
test1*> getXXbyYY help<br />
usage: getXXbyYY <sub-command> <name><br />
Where sub-command is one of<br />
gethostbyname_r<br />
gethostbyaddr_r<br />
netgrp<br />
getspwbyname_r<br />
getpwbyname_r<br />
getpwbyuid_r<br />
getgrbyname<br />
getgrbygid<br />
getgrlist<br />
<br />
For more information, try 'man na_getXXbyYY'<br />
<br />
Please remember this command is not available in admin mode and search order depends of your /etc/nsswitch.conf entry, so before you start thinking that this isn't working as expected please check these two things first.<br />
<br />
Though all the subcommands are self explanatory however I have added small description for each of them.<br />
<br />
gethostbyname_r - Resolves host name to IP address from configured DNS server, same as nslookup<br />
gethostbyaddr_r - Retrieves IP address for host name from configured DNS server, same as reverse lookup<br />
netgrp - Checks group membership for given host from LDAP/Files/NIS<br />
getspwbyname_r - Displays user information using shadow file<br />
getpwbyname_r - Displays user information including encrypted password from LDAP/Files/NIS<br />
getpwbyuid_r - Same as above however you provide uid in this command rather than user name<br />
getgrbyname - Displays group name and gid from LDAP/Files/NIS<br />
getgrbygid - Same as above however you provide gid in this command rather than group name<br />
getgrlist - Shows given user's gid from LDAP/Files/NIS<br />
<br />
Examples:<br />
<br />
test1*> getXXbyYY gethostbyname_r landinghost1<br />
name: landinghost1<br />
aliases:<br />
addresses: 10.21.242.7<br />
<br />
test1*> getXXbyYY gethostbyaddr_r 10.21.242.7<br />
name: landinghost1<br />
aliases:<br />
addresses: 10.21.242.7<br />
<br />
test1*> getXXbyYY netgrp support-group testhost1<br />
client testhost1 is in netgroup support-group<br />
<br />
test1*> getXXbyYY getpwbyname_r root<br />
pw_name = root<br />
pw_passwd = _J9..gsxiYTAHEtV3Qnk<br />
pw_uid = 0, pw_gid = 1<br />
pw_gecos =<br />
pw_dir = /<br />
pw_shell =<br />
<br />
test1*> getXXbyYY getpwbyuid_r 0<br />
pw_name = root<br />
pw_passwd = _J9..gsxiYTAHEtV3Qnk<br />
pw_uid = 0, pw_gid = 1<br />
pw_gecos =<br />
pw_dir = /<br />
pw_shell =<br />
<br />
test1*> getXXbyYY getgrbyname was<br />
name = was<br />
gid = 10826<br />
<br />
test1*> getXXbyYY getgrbygid 10826<br />
name = was<br />
gid = 10826<br />
<br />
test1*> getXXbyYY getgrlist wasadmin<br />
pw_name = wasadmin<br />
Groups: 10826</name></sub-command>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com1tag:blogger.com,1999:blog-766899806551963401.post-62440483519925672332010-08-29T05:47:00.000+05:302010-08-29T05:47:30.472+05:30Execute command from a file on OntapOccasionally we want to quickly or periodically run a set of pre defined commands on filers, like when we are making little change in network configuration and want to minimize the network down time or when we are creating a volume and know snap reserve, snap schedule, de-dupe, autosize or anything else which needs to be changed after every volume creation. If you are executing commands from unix terminal then a better way would be to keep all the commands in a text file and would do something like<br />
<br />
bash>for $i in vol1<br />
>do<br />
>snap sched $i 0<br />
>snap reserve $i 0<br />
>blah $i<br />
>blah $i<br />
>done<br />
<br />
and everything would be done, but imagine how would you do if you are doing through console. Unfortunately Ontap doesn't supports any kind of script not even for loop so we have to run each and every line of command either by typing on console or doing a copy-paste from text file from our desktop.<br />
<br />
However there is a better way, use notepad to create set of command as you would execute on console with correct order, copy it off to filer and use 'source' command to execute each and every line from it. I know it's not such a brilliant idea as still you have to copy and paste everything to a file on filer however it's wee better than executing each and every command on console.<br />
<br />
Think about you have to re-run /etc/rc so either you can use 'rdfile /etc/rc' to print everything on console and copy all the the line and execute on console or just run 'source /etc/rc' and let it run all the commands for you. You can also use 'source -v /etc/rc' to print the commands on console but not to execute, just to get an idea if there are any junk characters or any unwanted command inside the file, just as a precaution you better be sure that all the commands are valid and correct as if a command fails source doesn't stops there and just goes to next command in list.<br />
<br />
Use it and I am sure you will like it next time when you are making some changes on filer which needs ten different commands to be executed.Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com2tag:blogger.com,1999:blog-766899806551963401.post-16986231588703311622010-08-28T23:47:00.002+05:302010-08-28T23:52:42.484+05:30How to check unplanned downtime detail for a NetApp filer<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Every now and then someone ask us what is uptime of system and we just type 'uptime' on system console to get the detail instantly.</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">This is really handy command to know when the system was last rebooted and how many operations per protocol it has served since then. Wouldn't our life be little easy if managers get satisfy with this detail? Alas! but that doesn't happen and they ask us to give all the details since we have acquired the system or 1st January and then we go back to our excel sheet or ppt we have created as part of monthly report to pull the data.</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">How about if we can get same information from system with just a command, wouldn't that be cool. Fortunate enough we have little known command 'availtime' right inside Ontap which just do the exact same function and specifically created after thinking about our bosses.</span><br />
<br />
<span style="font-family: 'courier new', courier;"></span><br />
<span style="font-family: 'courier new', courier;"><span style="font-family: 'courier new', courier;"><span style="font-size: small;">HOST02*> availtime full<br />
</span><span style="font-size: small;">Service statistics as of Sat Aug 28 18:07:33 BST 2010<br />
</span><span style="font-size: small;"> System (UP). First recorded 68824252 secs ago on Mon Jun 23 04:16:41 BST 2008<br />
</span><span style="font-size: small;"> Planned downs 31, downtime 6781737 secs, longest 6771328, Tue Sep 9 15:07:33 BST 2008<br />
</span><span style="font-size: small;"> Uptime counting unplanned downtime: 100.00%; counting total downtime: 90.14%<br />
</span><span style="font-size: small;"> NFS (UP). First recorded 68824242 secs ago on Mon Jun 23 04:16:51 BST 2008<br />
</span><span style="font-size: small;"> Planned downs 43, downtime 6849318 secs, longest 6839978, Wed Sep 10 10:11:43 BST 2008<br />
</span><span style="font-size: small;"> Uptime counting unplanned downtime: 100.00%; counting total downtime: 90.04%<br />
</span><span style="font-size: small;"> CIFS (UP). First recorded 61969859 secs ago on Wed Sep 10 12:16:34 BST 2008<br />
</span><span style="font-size: small;"> Planned downs 35, downtime 17166 secs, longest 7351, Thu Jul 30 13:52:25 BST 2009<br />
</span><span style="font-size: small;"> Uptime counting unplanned downtime: 100.00%; counting total downtime: 99.97%<br />
</span><span style="font-size: small;"> HTTP (UP). First recorded 47876362 secs ago on Fri Feb 20 14:08:11 GMT 2009<br />
</span><span style="font-size: small;"> Planned downs 8, downtime 235 secs, longest 53, Wed Jan 20 14:10:18 GMT 2010<br />
</span><span style="font-size: small;"> Unplanned downs 16, downtime 4915 secs, longest 3800, Mon Jul 27 16:01:02 BST 2009<br />
</span><span style="font-size: small;"> Uptime counting unplanned downtime: 99.98%; counting total downtime: 99.98%<br />
</span><span style="font-size: small;"> FCP (DOWN). First recorded 68817797 secs ago on Mon Jun 23 06:04:16 BST 2008<br />
</span><span style="font-size: small;"> Planned downs 17, downtime 44988443 secs, longest 38209631, Sat Aug 28 18:07:33 BST 2010<br />
</span><span style="font-size: small;"> Unplanned downs 6, downtime 78 secs, longest 21, Fri Feb 20 15:24:44 GMT 2009<br />
</span><span style="font-size: small;"> Uptime counting unplanned downtime: 99.99%; counting total downtime: 34.62%<br />
</span><span style="font-size: small;"> iSCSI (DOWN). First recorded 61970687 secs ago on Wed Sep 10 12:02:46 BST 2008<br />
</span><span style="font-size: small;"> Planned downs 21, downtime 38211244 secs, longest 36389556, Sat Aug 28 18:07:33 BST 2010<br />
</span><span style="font-size: small;"> Uptime counting unplanned downtime: 100.00%; counting total downtime: 38.33% </span></span><br />
<span style="font-family: arial, helvetica, sans-serif; font-size: small;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">I am not sure why NetApp has kept this command in Advanced mode but once you know this command I bet next time you will not refrain yourself going inside advance mode to see how many unscheduled downtime you had since last reset.</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">A shorter version of this command is just 'availtime' it also shows the same information as 'availtime full' however it truncates letters from output and denotes Planned with P and Unplanned with U which is very good if you want to pass it in script. </span><br />
<br />
<span style="font-family: arial, helvetica, sans-serif;"><span style="font-size: small;"><span style="font-family: 'courier new', courier;">HOST04*> availtime<br />
</span><span style="font-family: 'courier new', courier;">Service statistics as of Sat Aug 28 18:07:33 BST 2010<br />
</span><span style="font-family: 'courier new', courier;"> System (UP). First recorded (20667804) on Wed Sep 23 09:35:49 GMT 2009<br />
</span><span style="font-family: 'courier new', courier;"> P 5, 496, 139, Fri Dec 11 15:58:19 GMT 2009<br />
</span><span style="font-family: 'courier new', courier;"> U 1, 1605, 1605, Wed Mar 31 17:01:41 GMT 2010<br />
</span><span style="font-family: 'courier new', courier;"> CIFS (UP). First recorded (20666589) on Wed Sep 23 09:56:04 GMT 2009<br />
</span><span style="font-family: 'courier new', courier;"> P 7, 825, 646, Thu Jan 21 19:08:03 GMT 2010<br />
</span><span style="font-family: 'courier new', courier;"> U 1, 77, 77, Wed Mar 31 16:34:54 GMT 2010<br />
</span><span style="font-family: 'courier new', courier;"> HTTP (UP). First recorded (20664731) on Wed Sep 23 10:27:02 GMT 2009<br />
</span><span style="font-family: 'courier new', courier;"> P 3, 51, 22, Thu Jan 21 19:17:25 GMT 2010<br />
</span><span style="font-family: 'courier new', courier;"> U 4, 203, 96, Thu Jan 21 19:08:03 GMT 2010<br />
</span><span style="font-family: 'courier new', courier;"> FCP (UP). First recorded (20477735) on Fri Sep 25 14:23:38 GMT 2009<br />
</span><span style="font-family: 'courier new', courier;"> P 3, 126, 92, Thu Jan 21 19:07:57 GMT 2010<br />
</span><span style="font-family: 'courier new', courier;"> U 4, 108, 76, Wed Mar 31 16:34:53 GMT 2010</span></span><br />
<br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">In order to reset the output use 'reset' switch and it will zero out all the counters, make sure you have recorded the statistics before you reset the counters as once you reset the counters you will not be able to get details of system uptime since system was built so you may like to do only after you acquire a new system, have done all the configuration and now it's the time for it to serve user requests.</span></span></span>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com3tag:blogger.com,1999:blog-766899806551963401.post-32067691826359122642010-06-26T00:59:00.001+05:302010-06-26T03:13:01.350+05:30Operations Manager Efficiency PluginAfter the release of DFM 3.8.1 NetApp has released a nice little plugin for DFM called as ‘<span lang="EN-US"><a href="http://now.netapp.com/NOW/download/tools/omsed_plugin/">Operations Manager Storage Efficiency Dashboard Plugin</a></span>’. Though quite a long name but it’s good, it cleverly uses DFM database to pull storage utilization and presents the information in nice flash based webpage.<br />
<div><br />
</div><div>It’s useful when you have to show higher management current storage utilization and saving came from NetApp thin provisioning, dedupe, flexclone and other stuffs and goes very well with NetApp’s storage efficiency mantra. The best part is, after you install the plugin you don’t have to anything and you can access it from anywhere in network without installing any software, however there isn’t a simple way to reach the page even after you are right inside OM webpage as there is no link pointing to dashboard, so you have to remember the location to access it later or for people like me bookmark in your browser. <br />
<div class="MsoNormal"><br />
</div><div class="MsoNormal">The most common problem arising from this is due to lack of foresight while creating the plugin. Here’s what I mean to say. Usually we install DFM server on c:\ and move all perfdata, DB, script folder and other bits and pieces to a different drive for easy backup or in the case of cluster, for clustering setup and here script falls apart. Script expects that it is sitting in its default location and web folder is sitting right next to it, so it acts accordingly whereas in real situation web folder is on c:\ and script is in some other volume. <o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Now there isn’t any way to rectify the behaviour of script or web server, as apache running on DFM can’t be configured to use any folder other then the one sitting inside the installation directory (AFAIK) and no switches are provided in script to tell him the location of original web folder where he needs to copy its content.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">So in nutshell even though script executes and copies all the files required for showing the dashboard it’s useless unless you figure out by yourself what’s going wrong and why not the page is showing in your browser. <o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Overcoming this limitation is easy enough for folks those who are on Unix environment as creating an alias to original web folder makes everything working fine but for windows folks like me creating a shortcut doesn’t works.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">So here’s the way to correct the problem.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Download the plugin from now toolchest. Extract the zip and edit file ‘package.xml’, change the string “dfmeff.exe” to “dfmeff.bat”, next you have to create a new batch file in called “dfmeff.bat” with below contents.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="text-indent: 36.0pt;">@echo off<o:p></o:p></div><div class="MsoNormal" style="text-indent: 36.0pt;">D:\DFM\script-plugins\dfmeff\dfmeff.exe<o:p></o:p></div><div class="MsoNormal" style="text-indent: 36.0pt;">xcopy D:\DFM\web\*.* "C:\Program Files\NetApp\DataFabric\DFM\web" /Q/I/Y/R<o:p></o:p></div><div class="MsoNormal" style="text-indent: 36.0pt;"><br />
</div><div class="MsoNormal">Obviously you have to change the path as per your installation however once you have created the batch file and added its reference in xml file you are good to go, just zip it again using any zip software and use the new zip file as plugin source for installation in DFM.<o:p></o:p></div><div class="MsoNormal"><br />
<i>Update:</i><br />
Just noticed a video showing features of plugin on netapp community site http://communities.netapp.com/videos/1209</div></div>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com2tag:blogger.com,1999:blog-766899806551963401.post-59208833237384026372010-06-07T06:17:00.000+05:302010-06-07T06:17:55.268+05:30Which is faster, NDMPcopy or vol copy?After posting my last post I got few mails asking, amongst ndpmpcopy and vol copy, which one would be faster?<div><br />
</div><div>Only if I have to count speed then vol copy, because it copies blocks directly from disk without going through FS, however I think it’s well suitable if you want to migrate a volume.</div><div><br />
</div><div>Pros</div><div><ul><li>CPU usage can be throttled</li>
<li>Source volume snapshot can be copied</li>
<li>Simultaneously 4 copy operations can be started</li>
<li>Once started it goes to background and you can use console for other purpose </li>
</ul></div><div><br />
</div><div>Cons</div><div><ul><li>Destination can’t be root volume</li>
<li>Destination volume should be offline</li>
<li>All data in destination volume will be over-written</li>
<li>Destination volume size should be bigger or equal to source</li>
<li>Single file or directory cannot be specified for copy operation</li>
<li>Both the volumes should be of same type; traditional or flexible</li>
<li>If data is copied between two filers both filer should have other filer’s entry in /etc/hosts.equiv file and loopback address for itself in /etc/hosts file </li>
</ul></div><div><br />
</div><div>However for copying data between two filers for test or any other purpose ndmpcopy is more suitable because it gives you additional control and less restrictions, which is very useful.</div><div><br />
</div><div>Pros</div><div><ul><li>Little or no CPU overhead</li>
<li>Incremental copy is supported</li>
<li>No limitation on volume size and type</li>
<li>No need to take destination volume offline</li>
<li>Single file or directory can also be specified</li>
<li>No file fragmentation on destination volume as all data is copied sequentially from source volume so improved data layout</li>
<li>No configuration is required between two filers and username and password is used for authentication</li>
</ul></div><div><br />
</div><div>Cons</div><div><ul><li>Snapshots can’t be copied from source</li>
<li>Console is not available till the time copy operation is running so no multiple ndmpcopy operations</li>
<li>If lots of small files has to be copied then copy operation will be slower </li>
</ul></div><div><br />
</div><div>So as you have seen both are well however one can’t be replaced for other and both have their usage for different purposes.</div><div><br />
<!--EndFragment--> </div>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com3tag:blogger.com,1999:blog-766899806551963401.post-14448561913727914482010-05-24T04:45:00.000+05:302010-05-24T04:45:04.090+05:30How to copy files in OntapAs soon as someone asks this question we all say ‘use ndmpcoyp’ but what if you don’t have any network adapters configured, will ndmpcoyp work?<br />
<br />
No; ndmpcopy is very useful if you want to copy a file or a whole volume however one thing very few people know that it doesn’t work if you don’t have loopback adapter configured because ndmpcopy passes all the data through lo adapter so it’s not only dependent on lo’s availability, its speed also. So how do you copy the data if lo is not available?<br />
<br />
The answer is simple, use dd, just an old fashioned unix command which does lot of thing, not only it can copy the file with full pathname you can even use block number and disk number and the best part, syntax is simple ‘if’ for from and ‘of’ for to.<br />
<br />
It can be used not only for copying file around the system, in fact you can use it for testing I/O and copying file from snapshot also and this command can be used regardless of permission.<br />
<br />
A little note, if you are afraid of going in advanced or diagnostic mode better keep use rdfile and wrfile because this command is not available in admin mode so you have to go in advanced mode to use this.<br />
<br />
Here’s the syntax of this command.<br />
<br />
dd [ [if= file ] | [ din= disknum bin= blocknum ] ] [ [of= file ] | [ dout= disknum bout= blocknum ] ] count= number_of_blocks<br />
<br />
Another note, if you are using count make sure you are using in multiply of 4 because a WAFL block size is 4k.<br />
<br />
Example:<br />
<br />
sim1> priv set advanced<br />
sim1*> dd if=/vol/vol0/.snapshot/hourly.2/etc/snapmirror.conf of=/vol/vol0/etc/snapmirror.conf1Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com5tag:blogger.com,1999:blog-766899806551963401.post-50588059482369437512010-04-30T05:46:00.000+05:302010-04-30T05:46:05.864+05:30I2P (inode to pathname) in Ontap<!--StartFragment--> <br />
<div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Few days before I became curios to know what is I2P and what will happen if you turn it off. So started hunting NetApp site and Google for information however I couldn’t find much on this. Now as obvious once you are off from vendor site and Google then start looking at your social network and then, bingo! I was able to get some information on this.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">So the first question what the heck is this I2P?<o:p></o:p></span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Actually it’s a new feature in Ontap 7.1 and later versions that maps each inode number and file name with relative path to speed up certain operations. As we all know every file, directory, soft link, hard link or any other metadata file has one inode associated with it so each inode has to go through this process and each file/directory gets 8 bits added to its metadata by Ontap whereas every hard link gets 12 bytes penalty and this happen every time you create, delete or rename file, directory or link.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Ok, but why do I need this?<o:p></o:p></span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">As far as its usage goes there are some well known application for this like fpolicy, virus scan and file auditing which needs to know full path of the requested file whereas some are Ontap specific feature like in mixed volume it informs NFS clients for any changes made by CIFS clients; one important place where you will see difference is dump command, as having full path available for each file makes it much faster and efficient in operation, some grey areas are also there which are used by Ontap for its internal work but that’s all covered deep under their IP protection policy so I couldn’t get any info on it.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Now how to you get information about this from your system?<o:p></o:p></span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">If you look closely you will see in vol options there is an option ‘no_i2p’ (default is off and only in 7.1 and later) to enable or disable i2p feature as well if you go to advance mode you can see few more commands related to this like ‘inodepath’ which shows the i2p information stored in a given inode whereas ‘wafl scan status’ command shows you running i2p scans which can be aborted with 'wafl scan abort <i>scan_id</i>' or you can also change the scan speed with ‘wafl scan speed <i>new_speed</i>’ command after you list the current scan speed with ‘wafl scan speed’ command.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">After having these information pushed me to think that ok so most of the volumes in my systems are NFS only and they don’t need any virus scan, neither we use dump, fpolicy or any other feature so why not to turn off and get extra juice out of system but speaking with chaps it turned out that turning off wouldn’t be a good idea though they were also not sure what will break if you turn it off and as it has very little performance impact so better to leave it untouched.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">And yes it’s true it does have very less performance impact as in general we don’t do so much metadata modification that it may hurt the system with i2p workload however when you upgrade your system from an earlier release to 7.1 or later family they get very busy in creating i2p information for each and every file/directory/link etc and may run in high utilization for quite some time and at that time you may wish to use these commands to quickly pull your system back in normal state and let scan run with slow speed or one volume at a time or completely stop it if you want to revert back the system to pre 7.1 release.<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">I think if I get some time I would like to do an extensive testing and see what comes out however if anyone else knows please share your knowledge.</span><o:p></o:p></div><!--EndFragment-->Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com1tag:blogger.com,1999:blog-766899806551963401.post-45548081151429907982010-01-13T17:56:00.005+05:302010-07-30T17:32:39.579+05:30Defragement in NetApp<span class="Apple-style-span" style="font-family: Arial; font-size: small;"><span class="Apple-style-span" style="font-size: 13px;"></span></span><br />
<span class="Apple-style-span" style="font-family: Arial; font-size: small;"><span class="Apple-style-span" style="font-size: 13px;"><div>Usually we face this problem with our PC and then we defrag our volumes clear temp files and what not; most of the times that solves the problem, though not fully but yes it gets better.<br />
<br />
</div><div>In NetApp though we don’t have to deal with fragmented registry or temp files but due to nature of WAFL file system it gets fragmented very soon, soon after you start overwriting or start deleting and adding the data to volume. So what do you do then?</div><div><br />
</div><div>Well the answer is very simple use ‘reallocate’ command. Yes, this is the defrag tool of NetApp built right in the Ontap OS.</div><div><br />
</div><div>First you have to turn on the reallocation on system with ‘reallocate on’ command. This command turns on the reallocation on system and same way turns off with off switch.</div><div><br />
</div><div>This can be used not only on volumes, infact you can run this on a file, lun or aggregate itself. However I should warn you that optimization of lun may not give you any performance benefit or may get worse, as Ontap doesn’t have any clue what’s in the lun and it’s file system layout.</div><div><br />
</div><div>If you want to run the reallocation only one time you should use -f or -o switch however if you want Ontap to keep a track of your FS and optimize the data when if feels necessary you should control it with –i switch or schedule it with ‘reallocate schedule’ command.</div><div><br />
</div><div>To check current optimization level of volume, you can use ‘reallocate measure -o ’ or if you want to feel adventurous use ‘wafl scan measure_layout ’ through advanced mode, though I don’t suggest using wafl set of commands in general use but yes sometime you want to do something different.</div><div><br />
</div><div>This command is pretty straightforward and no harm (except extra load on CPU and disk) so you can play with this but you should always consider using -p switch for volumes having snapshot and/or snapmirror on to keep the snapshot size small.</div></span></span>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-76769089249237064542010-01-09T05:53:00.002+05:302010-01-09T05:55:51.578+05:30How to get the list of domain users added to filer without fiddling with SID<!--StartFragment--> <p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: medium;">There were numerous time when I wanted to see an AD user’s permission on filer however just to locate that user on system itself took me a lot of time. Why? Because Ontap shows domain users added to system in SID format rather than their names which is very much annoying as when it dumps the SIDs on screen then we have to use ‘cifs lookup’ command to hunt for the user I am looking for from that bunch of SIDs.</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial, serif;"><span class="Apple-style-span" style="font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: medium;">So here’s a little handy unix script to see the list of all AD users added on filers in their username format rather then SIDs</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial, serif;"><span class="Apple-style-span" style="font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: medium;">I have already setup a password less login to filer therefore I haven’t added the username and password fields however if you haven’t done that add your login credentials after name of the filer in below command.</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial, serif;"><span class="Apple-style-span" style="font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: medium;">rsh <filer> useradmin domainuser list -g ‘Administrators’ | sed 's/^S/rsh <filer> cifs lookup S/'</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial, serif;"><span class="Apple-style-span" style="font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: medium;">Now this command will display the AD users added in Administrator group however if you want to see users from any other group replace the Administrators word with group name on your screen.</span></span></p>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-40061474279904670422009-12-07T07:37:00.000+05:302009-12-07T07:37:00.472+05:30Restoring data from snapshot through snaprestore in NetApp<p>Ok so now you have allocated correct snap reserve space, configured snap schedules, snap autodelete, users have access to their snapshots and they recover their data without any interference of backup team. Everyone is happy so you happy but all of sudden on a Friday evening get a call from VP marketing crying on phone that he lost all his data from his network drive and windows shows recovery time of 2 hrs but he wants his 1Gb pst to be accessible now as he is on VPN with a client and needs to pull some old mails from his pst. Well that’s nothing abnormal as he was having lots of data and to recover the data windows has to read all the data from snapshot and then write back on network drive which but obvious will take time. Now what would you say, will you tell him to navigate to his pst and recover it (which shouldn’t take much time on fast connection) then try to recover all the data or ok I have recovered all your data while talking on the phone and become hero.</p> <p>Well I must say I would like to use the opportunity to become hero with a minute or less of work, but before we do a few things to note.</p> <p>For volume snaprestore:</p> <ul> <li>The volume must be online and must not be a mirror. </li> <li>When reverting the root volume, filer will be rebooted. </li> <li>Non-root volumes do not require a reboot however when reverting a non-root volume, all ongoing access to the volume must be terminated, just as is done when a volume is brought offline. </li> </ul> <p>For single-file snaprestore:</p> <ul> <li>The volume used for restoring the file must be online and must not be a mirror. </li> <li>If restore_as_path is specified, the path must be a full path to a filename, and must be in the same volume as the volume used for the restore. </li> <li>Files other than normal files and LUNs are not restored. This includes directories (and their contents), and files with NT streams. </li> <li>If there is not enough space in the volume, the single file snap restore will not start. </li> <li>If the file already exists (in the active file system), it will be overwritten with the version in the snapshot. </li> </ul> <p>To restore data there are two ways, first system admins using “snap restore” command invoked by SMO, SMVI, Filer view or system console and second by end users where they can restore by copying file from .snapshot or ~snapshot directory or by using revert function in XP or newer system. However restoring data through snap restore command is very quick (seconds) even for TBs of data. Syntax for snap restore is as below.</p> <p><i>“snap restore -t vol -s <snapshot_name> -r <restore-as-path> <volume_name>”</i></p> <p>If you don’t want to restore the data at different place then remove the “-r <restore-as-path>” argument and filer will replace current file with the version in snapshot and if you don’t provide a snapshot name in syntax then system will show you all available snapshots and will prompt to select snapshot from which you want to restore the data.</p> <p>Here’s the simplest form of this command as example to recover a file.</p> <p><font size="2" face="Courier New">testfiler> snap restore -t file /vol/testvol/RootQtree/test.pst</font></p> <p><font size="2" face="Courier New">WARNING! This will restore a file from a snapshot into the active filesystem. If the file already exists in the active filesystem, it will be overwritten with the contents from the snapshot.</font></p> <p><font size="2" face="Courier New">Are you sure you want to do this? yes</font></p> <p><font size="2" face="Courier New">The following snapshots are available for volume testvol:</font></p> <p><font size="2" face="Courier New">date            name <br />------------    --------- <br />Nov 17 13:00    hourly.0 <br />Nov 17 11:00    hourly.1 <br />Nov 17 09:00    hourly.2 <br />Nov 17 00:00    weekly.0 <br />Nov 16 21:00    hourly.3 <br />Nov 16 19:00    hourly.4 <br />Nov 16 17:00    hourly.5 <br />Nov 16 15:00    hourly.6 <br />Nov 16 00:00    nightly.0 <br />Nov 15 00:00    nightly.1 <br />Nov 14 00:00    nightly.2 <br />Nov 13 00:00    nightly.3 <br />Nov 12 00:00    nightly.4 <br />Nov 11 00:00    nightly.5 <br />Nov 10 00:00    weekly.1 <br />Nov 09 00:00    nightly.6 <br />Nov 03 00:00    weekly.2 <br />Oct 27 00:00    weekly.3</font></p> <p><font size="2" face="Courier New">Which snapshot in volume testvol would you like to revert the file from? nightly.5</font></p> <p><font size="2" face="Courier New">You have selected file /vol/testvol/RootQtree/test.pst, snapshot nightly.5</font></p> <p><font size="2" face="Courier New">Proceed with restore? yes <br /></font><font size="2" face="Courier New">testfiler></font></p> Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com16tag:blogger.com,1999:blog-766899806551963401.post-23199709763363317162009-12-06T06:59:00.000+05:302009-12-06T06:59:15.245+05:30Snapshot configuration in NetApp<p>Ok first of all let me admit that my last post sounded more as a sales pitch rather than something technical though I am not a NetApp employee or paid by anyone to do blogging. However I must agree that whatever I have tried to show there was petty much similar available from other vendors so it was more about general awareness of  technology rather than a particular vendor but in this post I will talk about Snapshot configuration and other functions in NetApp, so let’s start.</p> <p><b>What is snapshot copy?</b></p> <p>A Snapshot copy is a frozen, read-only image of a volume or an aggregate that captures the state of the file system at a point in time and each volume can hold maximum 255 Snapshot copies at one time.</p> <p>Snapshots can be taken either by system at pre-defined schedule, Protection Manager Policies, SMO, SMVI, Filer view or manually running command at system console or through custom scripts.</p> <p><b>How to disable client access to snapshot copy?</b></p> <p>To disable client access of .snapshot volume you can give “vol options <<i>volume_name> </i>nosnapdir on” command.</p> <p><i>Notes:</i></p> <ul> <li>Please <b>DO NOT </b>use any snap family of command without volume name as it may drive CPU processor to its peak for systems having lots of volume with a number of snapshots and it can hung the system which may result in system panic situation. </li> <li>Use “-A” if you want to run these command against any aggregate and replace volume name with aggregate name. </li> </ul> <p><b>How to Configure Snapshots through system console?</b></p> <p>It’s always recommended that when you provision a volume you should look at snapshot reserve and schedule as by default when a volume is created 20% of space is reserved for snapshots which most of the time you need to change for efficient usage of space and snapshots. Always ask requester what is the rate of change, how much snapshots he wants to have access to and when he wants to snapshots to be taken because if you take snapshot of some oracle data and database is not in hot-backup mode then it’s just utter waster and same goes for VM.</p> <p>So once you have those details do a little calculation and then use these command to configure.</p> <ol> <li><i>‘snap reserve <volume name> <snapshot reserve size in % volume size, gb, mb or kb>’</i> <br />Example: <br /><i>‘snap reserve testvol 10’ <br /></i>This command will allocate 10% of space for snapshots on volume “testvol” <br /></li> <li><i>‘snap sched <volume name> <week days hour@list></i>’ <br />Example: <br /><i>‘snap sched testvol 4 7 7@9,11,13,15,17,19,21’ <br /></i> <br />This command will define the automatic snapshot schedule, and here you specify how much weekly, daily or hourly snapshot you want to retain as well at what time hourly snapshot will be taken. In given example volume testvol is having 4 weekly, 7 daily and 7 hourly available where hourly snapshots are taken at 9,11,13,15,17,19 and 21 hours of system local time. Please make sure that ‘nosnap’ is set to off in volume options. </li> </ol> <p><b>How to take snapshots manually?</b></p> <p>To take the snapshot manually you can run below command.</p> <p><i>“snap create <volume name> <snapshot name>”</i></p> <p>Here volume name is the name of volume you want to take snapshot of and snapshot name is the name you want to identify snapshot with.</p> <p><b>How to list snapshots?</b></p> <p>You can check the status of snapshots associated with any volume with command </p> <p><i>“snap list <volume name>”</i></p> <p>After issuing the above command you will get similar output</p> <p><font size="2" face="Courier New">testfiler> snap list testvol <br /></font><font size="2" face="Courier New"> <br />Volume testvol <br /></font><font size="2" face="Courier New">working... <br /></font><font size="2" face="Courier New"> <br />%/used %/total date name <br /></font><font size="2" face="Courier New">---------- ---------- ------------ -------- <br /></font><font size="2" face="Courier New">36% (36%) 0% ( 0%) Dec 02 16:00 hourly.0 <br /></font><font size="2" face="Courier New">50% (30%) 0% ( 0%) Dec 02 12:00 hourly.1 <br /></font><font size="2" face="Courier New">61% (36%) 0% ( 0%) Dec 02 08:00 hourly.2 <br /></font><font size="2" face="Courier New">62% ( 5%) 0% ( 0%) Dec 02 00:01 nightly.0 <br /></font><font size="2" face="Courier New">69% (36%) 0% ( 0%) Dec 01 20:00 hourly.3 <br /></font><font size="2" face="Courier New">73% (36%) 0% ( 0%) Dec 01 16:00 hourly.4 <br /></font><font size="2" face="Courier New">77% (36%) 0% ( 0%) Dec 01 00:01 nightly.1</font></p> <p><b></b></p> <p><b>What if you are running low on snap reserve?</b></p> <p>Sometimes due to excessive rate of change in data, very soon snapshot reserve gets full and they over spill on data area of volume, to remediate this you have to either extend volume or delete old snapshots.</p> <p>To resize the volume use “vol size” command and to delete the old snapshots you can use “snap delete” command which I will cover in next section, however before deleting if you want to check how much free space you can gain from this snapshot use below command</p> <p><i>“snap reclaimable <volume name> <snapshot name> | <snapshot name>…”</i></p> <p>Running above command will give you output as below and you can add multiple snapshot names after one other if you are not getting required free space by deleting one snapshot. Please note that you should select snapshots for deletion only from oldest to latest order otherwise blocks freed by deleting any middle snapshot will still be locked in its following snapshot</p> <p><font size="2" face="Courier New">testfiler> snap reclaimable testvol nightly.1 hourly.4 <br />Processing (Press Ctrl-C to exit) ............ <br />snap reclaimable: Approximately 9572 Kbytes would be freed.</font></p> <p><b>How to delete snapshot?</b></p> <p>To delete the snapshot use command snap delete with volume name and snap name in below fashion</p> <p><i>“snap delete <volume name> <snapshot name>”</i></p> <p>Running this command will print similar information on screen</p> <p><font size="2" face="Courier New">testvol> snap delete testvol hourly.5</font></p> <p><font size="2" face="Courier New">Wed Dec 2 16:58:29 GMT [testfiler: wafl.snap.delete:info]: Snapshot copy hourly.5 on volume testvol NetApp was deleted by the Data ONTAP function snapcmd_delete. The unique ID for this Snapshot copy is (67, 3876).</font></p> <p><strong>How to know what is the actual rate of change?</strong></p> <p>Sometime on a particular volume very often you will be running out of snap reserve space as snapshots fill them up much before old snaps gets expire and deleted by auto delete function (if you have configured) and you must be interested to resize the snap reserve accurately to avoid any issues. So in order to check how much is the actual rate of change KB per/hour calculated from all the snapshots or between two snap on given volume you can use snap delta command.</p> <p><em>“snap delta <volume name> [<1st snapshot name> <2nd snapshot name>]”</em></p> <p><font size="2" face="Courier New">testfiler> snap delta testvol </font></p> <p><font size="2" face="Courier New">Volume testvol <br />working... </font></p> <p><font size="2" face="Courier New">From Snapshot   To                   KB changed  Time         Rate (KB/hour) <br />--------------- -------------------- ----------- ------------ --------------- <br />hourly.0        Active File System   30044          0d 00:28  63176.635 <br />hourly.1        hourly.0             552            0d 02:00  276.000 <br />hourly.2        hourly.1             552            0d 01:59  276.115 <br />weekly.0        hourly.2             628            0d 09:00  69.680 <br />hourly.3        weekly.0             468            0d 03:00  155.956 <br />hourly.4        hourly.3             552            0d 01:59  276.115 <br />hourly.5        hourly.4             500            0d 02:00  249.895 <br />hourly.6        hourly.5             548            0d 01:59  274.038 <br />nightly.0       hourly.6             560            0d 14:59  37.334 <br />nightly.1       nightly.0            700            0d 23:59  29.171 <br />nightly.2       nightly.1            5392           1d 00:00  224.666 <br />nightly.3       nightly.2            820            0d 23:59  34.172 <br />nightly.4       nightly.3            2920           0d 23:59  121.687 <br />nightly.5       nightly.4            880            1d 00:00  36.666 <br />weekly.1        nightly.5            1111956        1d 00:00  46307.381 <br />nightly.6       weekly.1             632            1d 00:00  26.333 <br />weekly.2        nightly.6            42420          6d 00:00  294.583 <br />weekly.3        weekly.2             8892           7d 00:00  52.928 </font></p> <p><font size="2" face="Courier New">Summary... </font></p> <p><font size="2" face="Courier New">From Snapshot   To                   KB changed  Time         Rate (KB/hour) <br />--------------- -------------------- ----------- ------------ --------------- <br />weekly.3        Active File System   1209016       21d 13:29  2336.320</font></p> <p></p> <p><font size="2" face="Courier New"></font></p> <p></p> <p> </p> <p>That was all about configuring creating and deleting snapshots but what it’s good if you don’t know how to restore the data from snapshots for which you have done so much things. So, in next post I will address how to restore data from snapshot through snap restore command</p> Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-65115112300975987452009-12-04T17:15:00.000+05:302009-12-05T06:40:15.369+05:30Snapshots in NetApp<p><b>Volumes and data:</b></p> <p>Volume used for test was a flexible volume named ‘buffer_aggr12’ and “My Documents” folder from my laptop for data and sync tools from Microsoft to sync ‘My Documents’ folder with cifs share created from volume buffer_aggr12.</p> <p><b>Snapshot configuration:</b></p> <p>Scheduled snapshot were configured at 9,11,13,15,17,19,21 hours and retention period was 4 weekly, 7 daily and 7 hourly with 20% space reserve for snapshot.</p> <p>The coolest part of the snapshot is flexibility, because as an administrator once you have configured it no more you have to look into this as it takes snapshot at defined schedule and if you have configured ‘snap autodelete’ then it will purge expired snapshots also as per your retention period. So effectively you don’t have to ever worry about managing hundreds of old snapshots lying in volume and eating up space (except when change rate of data overshoots and snapshots starts spilling on data area). As a end user you experience backups at your click away because snapshots integrates well with shadow copy services of windows 2000, XP or Vista and you can recover them whenever you need.</p> <p>Here’s the configuration of snapshot for my test volume ‘buffer_aggr12’</p> <p><font size="2" face="Courier New">AMSNAS02> snap sched buffer_aggr12 <br />Volume buffer_aggr12: 4 7 7@9,11,13,15,17,19,21</font></p> <p><font size="2" face="Courier New">AMSNAS02> snap reserve buffer_aggr12 <br />Volume buffer_aggr12: current snapshot reserve is 20% or 157286400 k-bytes.</font></p> <p>As I was running this test for months so there were enough snaps for me to play with and you can see below that these snapshots are going way back to 20<sup>th</sup> July,  which is 4 week old snapshot and anytime I can recover that from just a right click.</p> <p><b>How to recover files or folders from snapshot:</b></p> <p>There are two ways to recover the data from snapshots.</p> <p><b>As an end user</b> you can recover your data from windows explorer by just right clicking in an empty space while you are in the share in which you lost your data. Here’s an example of this.</p> <p>a) This is the snapshot of my share folder, in this as you can see my pst file is corrupted and showing 0 kb. <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg63_SrL9t-aXX6MzP3EAjEkMcreSvbSZCC_ZcpmuEJu0BMIJPzEQhS7C7E7feFtB5bDVJiRoIogJNPIsesedcJG4pCN-ge8Md3-k9pxDc4cLKys75JizPae9_ympsqFzDqbKJTQ9jC4nbW/s1600-h/image24.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUKpuSj1Sw-7vtmv8GmxzF7zR7P0QPxOotesnZLqkeK3cW3o_DnpiANJtUSVxUVCsJVILISmRSpCHupD02kNCracbGvvoBSpJWadPzZBCYg5_8jpxj_BLqv3LmCwFyG7EX6hVB0-GAdn3H/?imgmax=800" width="244" height="89" /></a> </p> <p>b) To recover this, right click on any empty area and go to properties>previous version it shows me all the snapshots taken for this folder, as shown in below screenshot. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguuxCJoPofYKXAIb6LuGeySzOmLzvH6Sb1Z1Fyh9O1z3QNYbAmBlqzTxoqHf4IOF5K8Yebdkp5vi43NqNzKdlNbg9iPUndKcUa2M8GsAdNdBqeMa-apJ-tkdqUm8oBmRs4OJ7f5fyfuSRG/s1600-h/image20.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTJYB4OtFG75-IjCqAEcEPhaHkRJDVXt5RvmUHJeqVp_zZGwbb6qgM3QgVSgAY9R2aTct4bYvAR0sxjRiI36iJS-aqu_w1yapmHkTIFIFIhJsE101M-YU8WY-bGwUTRYAsY7ysnqaersD/?imgmax=800" width="224" height="262" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHB2e9wbWADWTbx5gAHGDjpOd0kwmJBnH9vlu0LIyVXH_tlh8GAk9zu9roebRJO0-xsHh4e2RXGAAkfw67pKYEa04CQWHvBJSW1itwdoyLjOeEJ1TdCBb68UVPlQibbqYSwrkwztE4MImZ/s1600-h/image21.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz6nqUOHyrdnPb1_HCn_BHIZQGBAh2tOTdNjq4aYLCcyjBjtDfkPjAGFfJNhyaV3osTtESjGmsjTKHh53n5y6XN_Uixywo8DDFfiiBicM0WUVGDjQZH-zgGkgyzVN0XiszR1TKlOXPhziO/?imgmax=800" width="225" height="266" /></a> </p> <p>c) Now at this point either I can revert the whole folder to previous state or just copy it to another location to recover a deleted file but at this place my point is to revert a corrupted file rather than recovering a deleted file. So I will just do a right click on that file and navigate to previous versions tab in properties dialogue box. Here in this it shows me the changes captured by snapshot at different times, so I can just select the date I want to revert with and click on restore. <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhICNP3ixKhq2PqiHRrYWJ9nuQ2c5kr3QMIBUklWj43alX_aDfCt1MtwW6Taz7K3tukbtCTp0W7PfBM4gN7mL7OTl2cRoednlAyx4s5UopUSdmlL_Aj5fbN8APWo-FLvVrChLtBN2KtJi2e/s1600-h/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiRjS5xTMPDNjir6dC9LGyD4E_rRlVH-CQmqs6GBIA9kEcX7eg49LiIA653oGVruJDL8Mzu5Rqp_R2Nc2XHW4MmXDBCCnb_vha9yKPX85X2Hwhfbk5vHcDn8VePbrpDwKoNEHh1-gcOUo1/?imgmax=800" width="239" height="321" /></a> </p> <p>d) Now it starts replacing the corrupted file with the one taken by snapshot. Its taking a long time because the file in question is >1Gb size and I am on WAN link so it’s slow but there is another way to do it and that’s recovering directly from filer console which recovers in seconds but unfortunately not available to end user. <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDgmbUP5_eiKEysbclbe6dwA7gE5tMEiXqNrA7Z4G7u7A5Vcla-Sp6fbeoEjwPizsmIIq6XOqlLMBSVYtbEa33sp1yUiHs__E_twwMfs0oBSGSqC2mOXYwK1-LR9CHheGEenhyi3VL7TEP/s1600-h/clip_image0093.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image009" border="0" alt="clip_image009" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv1eXCAj4wOIM-6RZa5FHtM1ZvnquHMPt0UD3RqrRwA6wHPblTbDs2C7Ro91BDgtOeNo5sbYGFI_SLCq-hQhBVW5QNTkC_e2idzy8DDhzwVnZwSKWHZwj9bMRy7dzKvkLUwzOnWLQkk4X_/?imgmax=800" width="244" height="105" /></a></p> <p>e) Now here’ the screenshot of my before and after. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnGSw_cN9K2X7XxeiIWqtr0S_mjoGuZWqQgI_pv2VZWPPlnvExP4zJ_2YlTtGxtiSYeKx4qsE9PdjdVFWw-bhhCYUpdg4AF4OGiwk1KHF8JLflfwVpo8mVPE5rkj3FuwgN5rE1nYjKo1P-/s1600-h/image31.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKQXE6yIYZMk1U7sIO7VGM7dE1zt8bs7K0jg2C7Y_gBoSAzcReTDmjGxvVliMB-3SqGZllkuX7A9U4OuFxs7aGaCmouUjhlQuN6W1y22V96xWazo7pV2X6ctHvxRY2KdiRVxSUWviDpLwy/?imgmax=800" width="207" height="272" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgADK7HtyHYqNSUl0Pt-YAtNa6avYO0fOgtns9V8-AP3DhLyDKloWAiJuM99eR09bbXmWN-v2w42rfY-5EDe4RAbo5I4aTn-PVtb9BxsjMkQ5giKUs7JbA1yFFJRmEJ-qsnkINuiwi-GelB/s1600-h/image33.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibbW-XoG92pOCFuCkRR6xngmYOWsZ3siWcgchbvXCTB0ek02CU034xvXPp6WiK_YOQ4pDYcrCGkjsy04OmrTaz-GEHYjts7Dmawffr6NO73Cuhqz32WGUlJcx56mDE5AuQ09MUEb4ph5bT/?imgmax=800" width="206" height="276" /></a> </p> <p><b>As an Administrator </b>you can recover a file, folder or whole volume within second as while doing it from filer console, system doesn’t have to copy the old file from snapshot to temp location, delete old file and then change the recovered file’s metadata , instead it just changes the block pointers internally so it’s blazing fast . Here’s an example of this.</p> <p>a) In this test again I will use same pst file which is corrupted but this time we will recover it from console. So first login to filer and do a snap list to see what all snapshots are available. <br /><font size="2" face="Courier New">AMSNAS02> snap restore buffer_aggr12 <br />Volume buffer_aggr12 <br />working… <br />  %/used       %/total  date          name <br />----------  ----------  ------------  -------- <br />  0% ( 0%)    0% ( 0%)  Aug 14 17:00  hourly.0 <br />  0% ( 0%)    0% ( 0%)  Aug 14 15:00  hourly.1 <br />40% (40%)    0% ( 0%)  Aug 14 13:00  hourly.2 <br />40% ( 0%)    0% ( 0%)  Aug 14 11:00  hourly.3 <br />40% ( 0%)    0% ( 0%)  Aug 14 09:00  hourly.4 <br />40% ( 0%)    0% ( 0%)  Aug 14 00:00  nightly.0 <br />40% ( 0%)    0% ( 0%)  Aug 13 21:00  hourly.5 <br />40% ( 0%)    0% ( 0%)  Aug 13 19:00  hourly.6 <br />40% ( 0%)    0% ( 0%)  Aug 13 00:00  nightly.1 <br />41% ( 0%)    0% ( 0%)  Aug 12 00:00  nightly.2 <br />57% (39%)    0% ( 0%)  Aug 11 00:00  nightly.3 <br />57% ( 0%)    0% ( 0%)  Aug 10 00:00  weekly.0 <br />57% ( 0%)    0% ( 0%)  Aug 09 00:00  nightly.4 <br />57% ( 0%)    0% ( 0%)  Aug 08 00:00  nightly.5 <br />57% ( 0%)    0% ( 0%)  Aug 07 00:00  nightly.6 <br />57% ( 0%)    0% ( 0%)  Aug 03 00:00  weekly.1 <br />65% (35%)    0% ( 0%)  Jul 27 00:00  weekly.2 <br />65% ( 0%)    0% ( 0%)  Jul 20 00:00  weekly.3</font></p> <p>b) Now to recover the file you give below command and it recovers that in just a second. <br /><font size="2" face="Courier New">AMSNAS02> snap restore -t file -s nightly.5 /vol/buffer_aggr12/RootQtree/test.pst</font></p> <p><font size="2" face="Courier New">WARNING! This will restore a file from a snapshot into the active filesystem.  If the file already exists in the active filesystem, it will be overwritten with the contents from the snapshot.</font></p> <p><font size="2" face="Courier New">Are you sure you want to do this? yes</font></p> <p><font size="2" face="Courier New">You have selected file /vol/buffer_aggr12/RootQtree/test.pst, snapshot nightly.5</font></p> <p><font size="2" face="Courier New">Proceed with restore? yes</font></p> <p>AMSNAS02></p> <p>c) Here’s the screenshot of my folder which confirm file back in previous state. <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3hJ_QD-0fdNfjIRqAmLTdaidR6GufN3Vwakb1xH6jpuAfwdZ-fj57QR4OAWfDSTzH8pOmzZFGM2bj38ORsEWmhyphenhyphenvGEK2uz5ElN8Wxi-wANnJxuFotBpK7Zwl4Hi0Zx7aZp19DM00Gjzob/s1600-h/image36.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlNwFxNoSLi9zO0yhJcT41v2EENOcCh0q3AEeCKLduBrE1NO3oSgzE7uxBAgp1McxrmmhVEgfZ4Ng1qX2lCk7Prq3xJmOvJzlQyAYuJDWt-DV5lO4VftrRfeIV9M_GFMicVB1tORTOCp93/?imgmax=800" width="244" height="91" /></a> </p> <p>Now as you see it was quite easy to use and very useful also, but to have a snapshot you need some extra space reserved in volume specially if your data is changing very frequently as more changes means more space you need to store changed block and the condition goes more complicated if you are trying to take snapshot of a VM, Exchange or Database volume, because before the snapshot is taken application has to put itself in hot-backup mode so a consistent copy can be made. Most of the applications have this functionality available but you have to use some script or snapmanager so when application is prepared it can inform filer to take snapshot and once snapshot is taken filer can inform back the application to resume its normal activity.</p> Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com2tag:blogger.com,1999:blog-766899806551963401.post-91088601475586457672009-11-07T22:31:00.002+05:302009-11-07T22:46:49.883+05:30Restrict snapmirror access by host and volume on NetApp<p>Recently one of my fellow NetApp admin friend asked me a very general question, </p> <p>“How do you restrict your data to be copied through snapmirror?”</p> <p>As like any other normal NetApp guy my answer was also same old vanilla type.</p> <p>“Go to snapmirror.allow file and put the host name if your have set snapmirror.access to legacy or you can directly put hostname in host=host1,host2 format in snapmirror.access option.”</p> <p>But he wanted more granular level of permission, so my another answer was,</p> <p>“You can also use snapmirror.checkip.enable so any system reporting same hostname will not be able to access data.”</p> <p>But even on that he wasn’t happy and was asking if there is any other way so he can restrict snapmirror access on volume basis. At this point I said “No, NetApp doesn’t provide this level of granular access.”</p> <p>So the topic stopped there, but this question was there in my mind and always hunted me why there isn’t any such way.</p> <p>Fast forward Past week when I had some extra time in my hand I started searching on net for this and fortunate enough I got a way on NOW site to get this work.</p> <p>It was recorded under Bugs section with Bug ID # 80611 Which reads as<strong>.</strong></p> <blockquote> <p>“There is an unsupported undocumented feature of the /etc/snapmirror.allow file, such that if it is filled as follows: <br />    hostA:vol1 <br />    hostA:vol29 <br />    hostB:/vol/vol0/q42 <br />    hostC <br />and "options snapmirror.access legacy" is issued, then the desired access policy will be implemented. Again note that this is unsupported and undocumented so use at your own risk.”</p> </blockquote> <p>Yes, though NetApp says that there is a way to do that but they also say well sometimes it may break other functionality or may not work as expected.</p> <p>Finding this I sent the details to my friend but unfortunately he don’t want to give it a try on his production systems and test systems are not available with him.</p> <p>So if anyone of you want to try it or have tried it before please put your experience in comments field.</p> Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com4tag:blogger.com,1999:blog-766899806551963401.post-63479188221236990412009-09-22T19:33:00.004+05:302009-11-27T21:18:26.687+05:30NetApp NFS agent for VCS - Part 3<p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">In </span></span><span style="color:red;"><a href="http://netapp-blog.blogspot.com/2009/09/netapp-nfs-agent-for-vcs.html"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">first</span></span></a></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;"> post I wrote why I need this agent installed and what all are the features of this, and in </span></span><a href="http://netapp-blog.blogspot.com/2009/09/netapp-nfs-agent-for-vcs-part-2.html"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">last</span></span></a><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;"> post I mentioned how to configure it on cluster node but that was incomplete because the post was going very big and I had to stop it, so here’s the remaining and very important part of that configuration.</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">How to configure different account name in NetApp NFS agent for VCS?</span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">Hunting around in agent’s configuration guide from Veritas and NetApp didn’t reveal any result and even their KB search was not helpful. So I was left to choose my way and explore the stuff which I started with creating a new customized account on filer only for this purpose.</span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">Here are the actual commands I used to create them starting from customized role to account.</span></span></span></b></span></span></p><p class="MsoNormal"><b><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-family:'courier new';"><span class="Apple-style-span" style="font-size:small;">‘useradmin role add exportfs -c "To manage NFS exports from CLI" -a cli-exportfs*,cli-lock*,cli-priv*,cli-sm_mon*’<br />‘useradmin group add cli-exportfs-group -r exportfs -c "Group to manage NFS exportfs from CLI"’<br />‘useradmin user add vcsagent -g cli-exportfs-group -c "To manage NFS exports from NetApp VCS Agent"’</span></span></span></b></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">And here’s the account after creation</span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'courier new';">testfiler1> useradmin user list vcsagent<br />Name: vcsagent<br />Info: To manage NFS exports from NetApp VCS Agent<br />Rid: 131090<br />Groups: cli-exportfs-group<br />Full Name:<br />Allowed Capabilities: cli-exportfs*,cli-lock*,cli-priv*,cli-sm_mon*<br />Password min/max age in days: 0/4294967295<br />Status: enabled</span></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">Now next thing was to give limited access to cluster node using vcsagent user and revoke its root access which was nothing more then removing dsa keys from /etc/sshd/root/.ssh/authorized_keys file and adding in /etc/sshd/vcsagent/.ssh/authorized_keys file.</span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">After completing that I headed back to host and created a new file named config in .ssh directory of root with below content</span></span></span></b></span></span></p><p class="MsoNormal"><b><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'courier new';">Host testfiler1<br />User vcsagent<br />port 22<br /></span></span><b><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'courier new';">hostName testfiler1.lab.com</span></span></span></b></span></b></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">As a test I issued command “<span class="Apple-style-span" style="font-family:'courier new';">ssh testfiler1 version</span>” on node terminal and I got access denied error which was perfectly fine because now when I do ‘ssh testfiler1’ system looks into config file in .ssh directory and uses vcsagent user which is not having access to run version command. Everything was looking good so I started running tests by moving resource from one node to another but to my surprise they were failing to make changes on filer and looking at filer audit logs it shown that they are still using root for ssh to filer.</span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">Till the moment I didn’t run test I was thinking that agent is just relying to OS for ssh username as NetApp hasn’t set any username attribute in agent moreover as I haven’t configured in OS which account to use that’s why when agent executes command ‘ssh testfiler1 <command>’ OS directs the ssh connection to connect with root (cluster node’s local logged-in user).</command></span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;">But after going through my failed test it made me to believe that username is hardcoded in agent script so I started looking in script and soon found below line in file NetApp_VCS.pm</span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><b><span class="Apple-style-span" style="font-weight: normal; "><b><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'courier new';">‘</span></span><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'courier new';">$cmd = "$main::ssh -n root\@$host '$remote_cmd'";’</span></span></span></span></b></span></b></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">After having this finding it was not a big brainer work to figure out what was going wrong and what I have to do. Just removed the word ‘root’ from script and it started working because now it is using config file from .ssh directory and uses vcsagent as username, alternatively I could have replaced word root with vcsagent directly in script also to make it simple and stay away from maintaining config file but I felt this to be much better.</span></span></span></span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">Unfortunately till today there is no alternative apart from making changes in script as NetApp and Veritas both were not able to help us apart from a statement “we will raise a product enhancement request”.</span></span></span></span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;"><br /></span></span></span></span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;">Update: You need to give access "security-priv-advanced" also to user, so role should look like below.</span></span></span></span></span></span></b></span></span></span></b></span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;"></span></span></span></span></span></span></b></span></span></span></b></span></span></p><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style=" ;font-family:Georgia, serif;"><span lang="EN-US" style=" ;color:black;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:small;"><p class="MsoNormal">testfiler01> useradmin role list exportfs</p><p class="MsoNormal">Name: exportfs</p><p class="MsoNormal">Info: To manage NFS exports from CLI</p><p class="MsoNormal">Allowed Capabilities: cli-exportfs*,cli-lock*,cli-priv*,cli-sm_mon*,security-priv-advanced</p><div><br /></div></span></span></span></span></span></span></b></span></span></span></b></span></span><p></p><p class="MsoNormal"><o:p></o:p></p>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-74501486012288382252009-09-21T20:13:00.002+05:302009-09-21T20:18:11.509+05:30NetApp NFS agent for VCS - Part 2<p class="MsoNormal"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">In </span></span><span style="color:red;"><a href="http://netapp-blog.blogspot.com/2009/09/netapp-nfs-agent-for-vcs.html"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">last</span></span></a></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> post I have told why I need this agent installed and what all are the features of this, in this post I will write how I have implemented this agent on 4 node RHEL 5.2 VCS cluster in our test environment as this post is centred on NetApp NFS agent for VCS configuration therefore I will not talk about how to install and configure VCS on RHEL.</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">First I have created a NFS volume on our filer testfiler1, and exported it giving rw access to all 4 nodes of cluster (lablincl1n1, lablincl1n2, lablincl1n3, lablincl1n4) to keep it simple I used sec=sys rather than Kerberos or anything else. Next step was to </span></span><a href="http://now.netapp.com/NOW/download/software/agent_vcs_oracle/redhatlinux/5.0/ntap-nfsa-5.0.1.tar.gz"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">download</span></span></a><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> </span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">the agent from NOW site and install on all the cluster nodes, it was pretty straight forward and well documented in </span></span><a href="https://now.netapp.com/NOW/download/software/agent_vcs_oracle/redhatlinux/5.0/redhatlinux.pdf"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">admin guide</span></span></a><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> so no hurdles and went well.</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Once agent installation and volume creation was done I started to configure NFS share in agent through GUI.</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Updated FilerName as testfiler1 (which is the name of NetApp filer exporting NFS share), MountPoint attribute with local mount point name, MountOptions with </span></span><a href="http://now.netapp.com/Knowledgebase/solutionarea.asp?id=kb7518"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Oracle specific mount options</span></span></a><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">, FilerPathName with nfs volume name, NodeNICs with lablincl1n1, lablincl1n2, lablincl1n3, lablincl1n4 (name of all the nodes of cluster) and updated ClearNFSLocks to 2, UseSSH to 1,</span></span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">I left rest all of the options untouched as they were good with their default values, like FilerPingTimeout=240, RebootOption=Empty, HostingFilerName=Empty, RebootOption=empty, RouteViaAddress=empty, along with MultiNIC and /etc/hosts file because NIC teaming was done at OS level and felt lazy to update lots of IP addresses in hosts file, as a matter of fact I knew that our BIND servers are robust enough.</span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Note:<br />Please don’t get confuse looking at HostingFilerName field as you need it only if you are using vfiler. If you are exporting NFS volume from vfiler then put vfiler name in FilerName field and physical filer name (on which vfiler is created) as HostingFilerName.</span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Now next step was configuring SSH which was pretty easy, just use “ssh-keygen -t dsa” command to generate public and private key of root from all your nodes and copy their public key “authorized_keys” file in folder /etc/sshd/root/.ssh of your filer.</span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Now configuration was completed and everything was working as expected just within 4 hrs of my effort.</span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">At this point everything was completed except one very important thing i.e. security, as following agent’s admin guide I have added dsa keys in root’s authorized_keys file, therefore anyone having root access on any of 4 nodes of cluster will have root access on my filer also which I wasn’t comfortable at. So I started looking around in agent’s attributes to configure different account name used by agent but to my surprise nothing was there even none of the documents were speaking on that so I started going on my own way to solve it and it worked well after some extra effort.</span></p><p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Now as this post is going quite big so I will cover configuring different user name in VCS agent in next post.</span></p>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-29122374220338160352009-09-17T22:09:00.005+05:302009-09-18T17:31:28.417+05:30NetApp NFS agent for VCS<div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Recently again we found ourselves going through space crunch but this time it was on our DMX systems spinning 15k FC disks so we started looking around in space allocation and soon found a lots of low IOPS Oracle databases using these space and after adding their space allocation them came as 460TB in total.</span></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">WOW wasn’t that enough space to give us few more months to place new orders; Oh yes. So we decided to move them on NetApp boxes which are using 7.2k 1TB SATA disk storage but not on FC or iSCSI instead over NFS as I knew NetApp provides a VCS agent to work with their NFS export and gives some cool features. Though I have never used them but was confident enough that it will work, so I started implementing it in our test environment.</span></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Here’s the detail of its features</span></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">The NetApp NFS client agent for VCS on Red Hat Linux/Solaris/SUSE Linux monitors the mount points on NetApp storage systems. In this environment, the clustered nodes or single node uses the NFS protocol to access the shared volume on NetApp storage systems and agent carries out the commands from VCS to bring resources on line, monitor their status, and take them off-line as needed.</span></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style=" margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;font-family:Calibri, sans-serif;font-size:11pt;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Key Features for version 5.0 of agent are given below.</span></span></span></div><ul style="margin-bottom: 0cm; margin-top: 0cm;" type="disc"><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports VCS 4.1 and 5.0</span></span></span><sup><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">*</span></span></span></sup><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports Exportfs persistency</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports IPMultiNIC and MultiNICA</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports Data ONTAP 7.1.x or later</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports fine granularity NFS lock clearing (requires Data ONTAP 7.1.1 or later)</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports communication with the storage system through SSH, in addition to RSH</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Multithreading (NumThreads >1) is supported (requires IPMultiNIC with MultiNICA)</span></span></span><b><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></b></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports automatic fencing of export for ro access to other nodes in cluster</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> </span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">as resource moves from one node to other</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li><li class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Supports failover of a single resource group when multiple resource groups of the same type are active on the same cluster node</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></li></ul><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><b><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></b></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><b><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Kernel Requirement</span></span></span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></span></b></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">Linux Kernel</span></span></span><b><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> </span></span></span></b><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">2.6.9-34.EL, 2.6.9-34.ELsmp for RHEL, 2.6.5-7.287.3-smp for SUSE</span></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><sup><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">*</span></span></span></sup><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> VCS 4.1 is not supported for SUSE Linux</span></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><sup><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">#</span></span></span></sup><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"> With Solaris 10 local zones are also supported in addition to global zones.</span></span></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span><span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">In next part I will post how to implement it, which will need some modification to script also.</span></span></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">References:</span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><a href="https://now.netapp.com/NOW/download/software/agent_vcs_oracle/redhatlinux/5.0/redhatlinux.pdf">NetApp NFS Client for VCS on RHEL</a></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><a href="http://now.netapp.com/NOW/download/software/agent_vcs_oracle/solaris/5.0/solarisadmin.pdf">NetApp NFS Client for VCS on Solaris</a></span></span></div><div class="MsoNormal" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><a href="http://now.netapp.com/NOW/download/software/agent_vcs_oracle/suselinux/5.0/suselinux.pdf">NetApp NFS Client for VCS on SUSE Linux</a></span></span></div>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com0tag:blogger.com,1999:blog-766899806551963401.post-55450880880565467682009-09-12T21:23:00.001+05:302009-09-12T22:25:00.889+05:30SSH broken if you disable Telnet in ontap 7.3.1<p class="MsoNormal"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;">And here’s another bug which we hit a last month.</span></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Last month when I was doing setup of our new filers I disabled telnet on the systems with along-with lots of other tweaking but later on when I tried to connect the system with SSH it refused. Thinking about that I might have turned off some other deep registry feature I went through entire registry but couldn’t find anything suspicious.</span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">So I turned on SSH verbose login, tried to re-run SSH setup with different passkey sizes and what not, but no joy. Finally I tried with enabling telnet and voila it worked. By the time it worked it was around 7 pm so I called a day and left office scratching my head.</span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Next morning again I started looking around if there was something obvious I am missing but no, I couldn’t find anything even on NOW site, so I opened a case with NetApp and even NetApp guy was not able to understand why system is behaving like this, but finally in late evening that NetApp chap came to me with a BURT # <a href="http://now.netapp.com/NOW/cgi-bin/bol?Type=Detail&Display=344484">344484</a> which was fixed in 7.3.1.1P2.</span></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-family: arial; font-size: small; ">Now there was a big problem as I wasn’t quite ready to upgrade my systems with a patched version so decided to let have telnet enable and wait for 7.3.2 to arrive. But since that time I was getting bugged with IT-security team because I was trying to get these systems connected in network so I can start allocating some space and get rid of space low warning but these guys were not allowing me because telnet was enabled on them. Finally past week when I noticed 7.3.2RC1 and 8.0RC1 availability on now site I got some sigh of relief as I believe now 7.3.2 GA should be available within a month and finally I can have my systems meeting my organization security policy more importantly I can get rid of pending space allocation request.</span></p><p class="MsoNormal"><o:p></o:p></p>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com4tag:blogger.com,1999:blog-766899806551963401.post-40126370162293370492009-08-28T16:59:00.002+05:302009-08-28T17:13:02.859+05:30NetApp command line shortcuts<span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">Just a few commands which I use frequently while on console.</span></span><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+W = It deletes the word before cursor</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+R = Rewrites the entire line you have entered</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+U = Deletes the whole line</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+A = Go to start of the line</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+E = Go to end of the line</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+K = Delete all the following texts</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">A few more commands are there but I feel arrow keys work better then you press these sequences like </span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+F = Right arrow</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+B = Left arrow</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+P = Up arrow</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+N = Down arrow</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">CTRL+I = Tab key</span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size: small;">Am I missing anything else?</span></span></div>Anonymoushttp://www.blogger.com/profile/06767496085573306941noreply@blogger.com1