<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-766899806551963401</id><updated>2025-11-29T09:11:00.646+05:30</updated><category term="NetApp"/><category term="Ontap"/><category term="Snapshots"/><category term="Interview questions"/><category term="Tips"/><category term="Bug"/><category term="Scripts"/><category term="Shortcuts"/><category term="VCS Agent"/><category term="NFS"/><category term="Snapmirror"/><category term="pNFS"/><category term="Aggregate"/><category term="CIFS"/><category term="Cluster"/><category term="DFM"/><category term="Data Restore"/><category term="Disk"/><category term="Never Ever Ever"/><category term="Snaprestore"/><title type='text'>My journey with NetApp</title><subtitle type='html'>Life of an engineer with his understanding of NetApp storage systems</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default?max-results=10'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default?start-index=11&amp;max-results=10'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>10</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-301895519041860871</id><published>2012-05-28T13:41:00.002+05:30</published><updated>2012-05-28T13:41:31.442+05:30</updated><title type='text'>Comments Broken</title><content type='html'>Yeah, it was a fool of me to believe on Google and think there can&#39;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Thanks,</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/301895519041860871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/301895519041860871' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/301895519041860871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/301895519041860871'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2012/05/comments-broken.html' title='Comments Broken'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-5640834658032741639</id><published>2012-05-28T02:13:00.000+05:30</published><updated>2012-05-28T02:13:38.315+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="NFS"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="pNFS"/><title type='text'>pNFS in NetApp</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;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. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;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! &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;


&lt;span style=&quot;background: white; color: #333333; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;&quot;&gt;References:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;a href=&quot;http://media.netapp.com/documents/wp-7153.pdf&quot;&gt;http://media.netapp.com/documents/wp-7153.pdf&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;a href=&quot;http://media.netapp.com/documents/tr-4063.pdf&quot;&gt;http://media.netapp.com/documents/tr-4063.pdf&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/5640834658032741639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/5640834658032741639' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/5640834658032741639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/5640834658032741639'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2012/05/pnfs-in-netapp.html' title='pNFS in NetApp'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-1968317648985021491</id><published>2012-05-27T21:59:00.000+05:30</published><updated>2012-05-27T22:06:18.086+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="NFS"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="pNFS"/><title type='text'>pNFS</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;As
my nature, I was lazing around over the weekend when I noticed the newly
published best practice document on &lt;a href=&quot;http://media.netapp.com/documents/tr-4063.pdf&quot;&gt;pNFS and ONTAP 8.1 Cluster
Mode&lt;/a&gt;. Soon I realized this is what c-mode is made for; &lt;i&gt;parallelism&lt;/i&gt;. How? Let’s see that.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;First
let’s start with what is Parallel NFS or in short ‘pNFS’?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;pNFS is extension
of NFS version 4.1 which adds support of parallelism to existing NFS version 4.&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Well,
that was the shortest answer I could write however here’s little more detail on
it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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 &amp;nbsp;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 &lt;a href=&quot;http://bgp.potaroo.net/ietf/idref/draft-gibson-pnfs-problem-statement/&quot;&gt;problem
statement&lt;/a&gt; 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 &lt;a href=&quot;http://tools.ietf.org/html/rfc5661&quot;&gt;RFC 5661&lt;/a&gt; describing NFS version
4.1 with parallel support and &lt;a href=&quot;http://tools.ietf.org/html/rfc5662&quot;&gt;RFC
5662&lt;/a&gt; detailing protocol definition codes. pNFS is not limited to file, support
for block data (&lt;a href=&quot;http://tools.ietf.org/html/rfc5663&quot;&gt;RFC 5663&lt;/a&gt;) and
object based data (&lt;a href=&quot;http://tools.ietf.org/html/rfc5664&quot;&gt;RFC 5664&lt;/a&gt;) 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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Now question comes,
what was the need for it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;So, what’s so different
from earlier version of NFS?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |+-----------+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||+-----------+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NFSv4.1 + pNFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;
Metadata |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +||&amp;nbsp;
Clients&amp;nbsp; |&amp;lt;----------Metadata------------&amp;gt;|&amp;nbsp;&amp;nbsp; Server&amp;nbsp;
|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+-----------+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||| Storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||| Protocol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |+-----------+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
||+----------------||+-----------+&amp;nbsp;
Control&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |+-----------------|||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;
Protocol|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +------------------+||&amp;nbsp; &amp;nbsp;Data&amp;nbsp;&amp;nbsp; &amp;nbsp;|------------+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +|&amp;nbsp; Server &amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;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;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Figure 1: pNFS
Architecture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Ok, but where does
pNFS add value?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Large
files and high number of concurrent users. With the advent of parallel
computing with multi node cluster, single job gets divided amongst &lt;i&gt;n&lt;/i&gt; 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. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Great, but how all
this work?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;I
think It’s enough for now, next post will detail about pNFS implementation by NetApp
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Read
for scholars:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://www.pnfs.com/&quot;&gt;http://www.pnfs.com/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://datatracker.ietf.org/wg/nfsv4/&quot;&gt;http://datatracker.ietf.org/wg/nfsv4/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://www.pdl.cmu.edu/pNFS/index.shtml&quot;&gt;http://www.pdl.cmu.edu/pNFS/index.shtml&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://www.citi.umich.edu/projects/asci/pnfs/linux/&quot;&gt;http://www.citi.umich.edu/projects/asci/pnfs/linux/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://www.pnfs.com/docs/LISA-11-pNFS-BoF-final.pdf&quot;&gt;http://www.pnfs.com/docs/LISA-11-pNFS-BoF-final.pdf&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://www.ietf.org/internet-drafts/draft-ietf-nfsv4-pnfs-00.txt&quot;&gt;http://www.ietf.org/internet-drafts/draft-ietf-nfsv4-pnfs-00.txt&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;a href=&quot;http://www.pdl.cmu.edu/pNFS/archive/gibson-pnfs-problem-statement.html&quot;&gt;http://www.pdl.cmu.edu/pNFS/archive/gibson-pnfs-problem-statement.html&lt;/a&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/1968317648985021491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/1968317648985021491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/1968317648985021491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/1968317648985021491'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2012/05/pnfs.html' title='pNFS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-7519604567883690206</id><published>2012-05-23T00:08:00.000+05:30</published><updated>2012-05-23T00:08:01.420+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>How to quit SSH session by typing &#39;exit&#39; in ONTAP</title><content type='html'>Just a little trick to remove annoyance for new NetApp admin.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Usually when we want to terminate a SSH session on ONTAP you type Ctrl+D as typing &#39;exit&#39; returns with message to press &#39;Ctrl+D&#39; to exit. It&#39;s perfectly fine and there isn&#39;t any harm as that gracefully closes the session but as most of us are more use to of typing &#39;exit&#39; to terminate the session, find it odd.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So for those who prefer typing &#39;exit&#39; to close the session can do so by enabling&amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;telnet.distinct.enable&lt;/span&gt; option. &lt;br /&gt;Default setting for this option is off which in&amp;nbsp;effect&amp;nbsp;mirrors telnet and console session but if you don&#39;t use this feature, which I believe most of us don&#39;t, can enable it and feel more at home.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/7519604567883690206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/7519604567883690206' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/7519604567883690206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/7519604567883690206'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2012/05/how-to-quit-ssh-session-by-typing-exit.html' title='How to quit SSH session by typing &#39;exit&#39; in ONTAP'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-6974161259217466345</id><published>2012-05-19T12:48:00.000+05:30</published><updated>2012-05-19T12:48:00.705+05:30</updated><title type='text'>I am back</title><content type='html'>&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Yeah, I was absense from blogesphere for some time but guess what it was worth that because during my last &amp;nbsp;a year and half I have learned so much about NetApp and its related technologies that I really fealt what a n00b I was.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Anyway I must say thankyou to all of you who encouraged me and patiently waited for my return.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Thanks.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/6974161259217466345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/6974161259217466345' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/6974161259217466345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/6974161259217466345'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2012/05/i-am-back.html' title='I am back'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-7698242797717216570</id><published>2010-12-03T00:13:00.000+05:30</published><updated>2010-12-03T00:13:55.127+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Aggregate"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Restore"/><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="Snapshots"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>How to restore data from aggregate snapshot</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Today one of&amp;nbsp;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.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;
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.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;
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.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;
Here’s the cookbook for this.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;
Pre-checks:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;The volume you lost data from is a flexible volume&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Identify an aggregate which is empty so it can be used for destination (could be on another controller also)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Make sure the destination aggregate is either equal or larger than source aggregate&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;/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&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Name of aggregate’s snapshot which you want to copy&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Example:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;
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’&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;
Execution:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Restrict the destination aggregate using &amp;nbsp;‘aggr restrict aggr_destination’&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Start the aggregate data copy using ‘aggr copy start –s hourly.1 aggr_source aggr_destination’&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Once the copy is completed online the aggregate using ‘aggr online aggr_destination’&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;If you have done copy on same controller, system will rename the volume ‘vol1’ of ‘aggr_destination’ to ‘vol1(1)’&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;Now export the volume or lun and you have your all lost data available.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;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?&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/7698242797717216570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/7698242797717216570' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/7698242797717216570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/7698242797717216570'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2010/12/how-to-restore-data-from-aggregate_02.html' title='How to restore data from aggregate snapshot'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-5443252663743085353</id><published>2010-10-12T04:24:00.000+05:30</published><updated>2010-10-12T04:24:32.324+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="Never Ever Ever"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><title type='text'>Most destructive command in Ontap</title><content type='html'>There 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.&lt;br /&gt;
&lt;br /&gt;
Yes, indeed I did it by typing &#39;gbd&#39; rather than &#39;dbg&#39;, these two are so close to each other that my buttery fingers didn&#39;t realize that I mistyped a command and by the time I could realize it was too late. Sigh!&lt;br /&gt;
&lt;br /&gt;
Little background on this &#39;gbd&#39; command.&lt;br /&gt;
&lt;br /&gt;
This command is in diag mode and so debug, however whereas &#39;dbg&#39; captures filer debug info on console or a file, &#39;gbd&#39; 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.&lt;br /&gt;
&lt;br /&gt;
I don&#39;t understand why brilliant NetApp engineers have made it so simple, why couldn&#39;t they use a command like &#39;use_this_to_kill_your_system&#39; or something like that and I swear no one would ever type it.&lt;br /&gt;
&lt;br /&gt;
Anyway I did it and I admit, that I should have checked before hitting return which I didn&#39;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&amp;nbsp;invisible to client systems&amp;nbsp;due to the nature of NFS protocol.&lt;br /&gt;
&lt;br /&gt;
What is the other command which you think shouldn&#39;t be so easy along with this?</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/5443252663743085353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/5443252663743085353' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/5443252663743085353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/5443252663743085353'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2010/10/most-destructive-command-in-ontap.html' title='Most destructive command in Ontap'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-1481276837878932537</id><published>2010-10-12T00:32:00.000+05:30</published><updated>2010-10-12T00:32:59.125+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>How to do host/user/group or netgroup from filer</title><content type='html'>Often 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?&lt;br /&gt;
&lt;br /&gt;
If you are troubleshooting CIFS issue, you are in luck with command &#39;cifs lookup&#39; 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 &#39;getXXbyYY&#39;, 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&#39;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.&lt;br /&gt;
&lt;br /&gt;
Anyway here&#39;s the command, though command says using &quot;man na_getXXbyYY&quot; for additional info however I couldn&#39;t locate it on systems therefore I use&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY help&lt;br /&gt;
usage: getXXbyYY &lt;sub-command&gt; &lt;name&gt;&lt;br /&gt;
Where sub-command is one of&lt;br /&gt;
gethostbyname_r&lt;br /&gt;
gethostbyaddr_r&lt;br /&gt;
netgrp&lt;br /&gt;
getspwbyname_r&lt;br /&gt;
getpwbyname_r&lt;br /&gt;
getpwbyuid_r&lt;br /&gt;
getgrbyname&lt;br /&gt;
getgrbygid&lt;br /&gt;
getgrlist&lt;br /&gt;
&lt;br /&gt;
For more information, try &#39;man na_getXXbyYY&#39;&lt;br /&gt;
&lt;br /&gt;
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&#39;t working as expected please check these two things first.&lt;br /&gt;
&lt;br /&gt;
Though all the subcommands are self explanatory however I have added small description for each of them.&lt;br /&gt;
&lt;br /&gt;
gethostbyname_r - Resolves host name to IP address from configured DNS server, same as nslookup&lt;br /&gt;
gethostbyaddr_r - Retrieves IP address for host name from configured DNS server, same as reverse lookup&lt;br /&gt;
netgrp - Checks group membership for given host from LDAP/Files/NIS&lt;br /&gt;
getspwbyname_r - Displays user information using shadow file&lt;br /&gt;
getpwbyname_r - Displays user information including encrypted password from LDAP/Files/NIS&lt;br /&gt;
getpwbyuid_r - Same as above however you provide uid in this command rather than user name&lt;br /&gt;
getgrbyname - Displays group name and gid from LDAP/Files/NIS&lt;br /&gt;
getgrbygid - Same as above however you provide gid in this command rather than group name&lt;br /&gt;
getgrlist - Shows given user&#39;s gid from LDAP/Files/NIS&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY gethostbyname_r landinghost1&lt;br /&gt;
name: landinghost1&lt;br /&gt;
aliases:&lt;br /&gt;
addresses: 10.21.242.7&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY gethostbyaddr_r 10.21.242.7&lt;br /&gt;
name: landinghost1&lt;br /&gt;
aliases:&lt;br /&gt;
addresses: 10.21.242.7&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY netgrp support-group testhost1&lt;br /&gt;
client testhost1 is in netgroup support-group&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY getpwbyname_r root&lt;br /&gt;
pw_name = root&lt;br /&gt;
pw_passwd = _J9..gsxiYTAHEtV3Qnk&lt;br /&gt;
pw_uid = 0, pw_gid = 1&lt;br /&gt;
pw_gecos =&lt;br /&gt;
pw_dir = /&lt;br /&gt;
pw_shell =&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY getpwbyuid_r 0&lt;br /&gt;
pw_name = root&lt;br /&gt;
pw_passwd = _J9..gsxiYTAHEtV3Qnk&lt;br /&gt;
pw_uid = 0, pw_gid = 1&lt;br /&gt;
pw_gecos =&lt;br /&gt;
pw_dir = /&lt;br /&gt;
pw_shell =&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY getgrbyname was&lt;br /&gt;
name = was&lt;br /&gt;
gid = 10826&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY getgrbygid 10826&lt;br /&gt;
name = was&lt;br /&gt;
gid = 10826&lt;br /&gt;
&lt;br /&gt;
test1*&amp;gt; getXXbyYY getgrlist wasadmin&lt;br /&gt;
pw_name = wasadmin&lt;br /&gt;
Groups: 10826&lt;/name&gt;&lt;/sub-command&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/1481276837878932537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/1481276837878932537' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/1481276837878932537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/1481276837878932537'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2010/10/how-to-do-hostusergroup-or-netgroup.html' title='How to do host/user/group or netgroup from filer'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-6244048351992567233</id><published>2010-08-29T05:47:00.000+05:30</published><updated>2010-08-29T05:47:30.472+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="Scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="Shortcuts"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>Execute command from a file on Ontap</title><content type='html'>Occasionally 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&lt;br /&gt;
&lt;br /&gt;
bash&amp;gt;for $i in vol1&lt;br /&gt;
&amp;gt;do&lt;br /&gt;
&amp;gt;snap sched $i 0&lt;br /&gt;
&amp;gt;snap reserve $i 0&lt;br /&gt;
&amp;gt;blah $i&lt;br /&gt;
&amp;gt;blah $i&lt;br /&gt;
&amp;gt;done&lt;br /&gt;
&lt;br /&gt;
and everything would be done, but imagine how would you do if you are doing through console. Unfortunately Ontap doesn&#39;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.&lt;br /&gt;
&lt;br /&gt;
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 &#39;source&#39; command to execute each and every line from it. I know it&#39;s not such a brilliant idea as still you have to copy and paste everything to a file on filer however it&#39;s wee better than executing each and every command on console.&lt;br /&gt;
&lt;br /&gt;
Think about you have to re-run /etc/rc so either you can use &#39;rdfile /etc/rc&#39; to print everything on console and copy all the the line and execute on console or just run &#39;source /etc/rc&#39; and let it run all the commands for you. You can also use &#39;source -v /etc/rc&#39; 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&#39;t stops there and just goes to next command in list.&lt;br /&gt;
&lt;br /&gt;
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.</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/6244048351992567233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/6244048351992567233' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/6244048351992567233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/6244048351992567233'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2010/08/execute-command-from-file-on-ontap.html' title='Execute command from a file on Ontap'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-766899806551963401.post-1698623158870331162</id><published>2010-08-28T23:47:00.002+05:30</published><updated>2010-08-28T23:52:42.484+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="NetApp"/><category scheme="http://www.blogger.com/atom/ns#" term="Ontap"/><category scheme="http://www.blogger.com/atom/ns#" term="Shortcuts"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>How to check unplanned downtime detail for a NetApp filer</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Every now and then someone ask us what is uptime of system and we just type &#39;uptime&#39; on system console to get the detail instantly.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;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&#39;t our life be little easy if managers get satisfy with this detail? Alas! but that doesn&#39;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.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;How about if we can get same information from system with just a command, wouldn&#39;t that be cool. Fortunate enough we have little known command &#39;availtime&#39; right inside Ontap which just do the exact same function and specifically created after thinking about our bosses.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;HOST02*&amp;gt; availtime full&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Service statistics as of Sat Aug 28 18:07:33 BST 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;System &amp;nbsp;(UP). First recorded 68824252 secs ago on Mon Jun 23 04:16:41 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Planned &amp;nbsp; downs 31, downtime 6781737 secs, longest 6771328, Tue Sep &amp;nbsp;9 15:07:33 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uptime counting unplanned downtime: 100.00%; counting total downtime: &amp;nbsp;90.14%&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;NFS &amp;nbsp; &amp;nbsp; (UP). First recorded 68824242 secs ago on Mon Jun 23 04:16:51 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Planned &amp;nbsp; downs 43, downtime 6849318 secs, longest 6839978, Wed Sep 10 10:11:43 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uptime counting unplanned downtime: 100.00%; counting total downtime: &amp;nbsp;90.04%&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;CIFS &amp;nbsp; &amp;nbsp;(UP). First recorded 61969859 secs ago on Wed Sep 10 12:16:34 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Planned &amp;nbsp; downs 35, downtime 17166 secs, longest 7351, Thu Jul 30 13:52:25 BST 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uptime counting unplanned downtime: 100.00%; counting total downtime: &amp;nbsp;99.97%&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;HTTP &amp;nbsp; &amp;nbsp;(UP). First recorded 47876362 secs ago on Fri Feb 20 14:08:11 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Planned &amp;nbsp; downs 8, downtime 235 secs, longest 53, Wed Jan 20 14:10:18 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Unplanned downs 16, downtime 4915 secs, longest 3800, Mon Jul 27 16:01:02 BST 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uptime counting unplanned downtime: &amp;nbsp;99.98%; counting total downtime: &amp;nbsp;99.98%&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;FCP &amp;nbsp; &amp;nbsp; (DOWN). First recorded 68817797 secs ago on Mon Jun 23 06:04:16 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Planned &amp;nbsp; downs 17, downtime 44988443 secs, longest 38209631, Sat Aug 28 18:07:33 BST 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Unplanned downs 6, downtime 78 secs, longest 21, Fri Feb 20 15:24:44 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uptime counting unplanned downtime: &amp;nbsp;99.99%; counting total downtime: &amp;nbsp;34.62%&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;iSCSI &amp;nbsp; (DOWN). First recorded 61970687 secs ago on Wed Sep 10 12:02:46 BST 2008&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Planned &amp;nbsp; downs 21, downtime 38211244 secs, longest 36389556, Sat Aug 28 18:07:33 BST 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Uptime counting unplanned downtime: 100.00%; counting total downtime: &amp;nbsp;38.33%&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: arial, helvetica, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;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.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;A shorter version of this command is just &#39;availtime&#39; it also shows the same information as &#39;availtime full&#39; however it truncates letters from output and denotes &amp;nbsp;Planned with P and Unplanned with U which is very good if you want to pass it in script.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;HOST04*&amp;gt; availtime&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;Service statistics as of&amp;nbsp;Sat Aug 28 18:07:33 BST 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;System &amp;nbsp;(UP). First recorded (20667804) on Wed Sep 23 09:35:49 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P &amp;nbsp;5, 496, 139, Fri Dec 11 15:58:19 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U &amp;nbsp;1, 1605, 1605, Wed Mar 31 17:01:41 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;CIFS &amp;nbsp; &amp;nbsp;(UP). First recorded (20666589) on Wed Sep 23 09:56:04 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P &amp;nbsp;7, 825, 646, Thu Jan 21 19:08:03 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U &amp;nbsp;1, 77, 77, Wed Mar 31 16:34:54 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;HTTP &amp;nbsp; &amp;nbsp;(UP). First recorded (20664731) on Wed Sep 23 10:27:02 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P &amp;nbsp;3, 51, 22, Thu Jan 21 19:17:25 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U &amp;nbsp;4, 203, 96, Thu Jan 21 19:08:03 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;FCP &amp;nbsp; &amp;nbsp; (UP). First recorded (20477735) on Fri Sep 25 14:23:38 GMT 2009&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P &amp;nbsp;3, 126, 92, Thu Jan 21 19:07:57 GMT 2010&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;courier new&#39;, courier;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U &amp;nbsp;4, 108, 76, Wed Mar 31 16:34:53 GMT 2010&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;In order to reset the output use &#39;reset&#39; 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&#39;s the time for it to serve user requests.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://netapp-blog.blogspot.com/feeds/1698623158870331162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/766899806551963401/1698623158870331162' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/1698623158870331162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/766899806551963401/posts/default/1698623158870331162'/><link rel='alternate' type='text/html' href='http://netapp-blog.blogspot.com/2010/08/how-to-check-unplanned-downtime-detail_28.html' title='How to check unplanned downtime detail for a NetApp filer'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06767496085573306941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>