tag:blogger.com,1999:blog-47556647075654259002024-03-05T09:00:05.129-08:00Storage MeatLumenate is a technical consulting firm focused on enabling the virtualized enterprise. With disciplines in Storage, Security and Networking, Lumenate designs and implements customized, integrated solutions which enable our customers to transition to a converged infrastructure and enjoy the benefits of virtualization with increased security and scalability.
<strong>Not just storage. Storage meat.
Our goal – design and deliver the optimal customer experience.</strong>Terry Mhttp://www.blogger.com/profile/18368896550741168548noreply@blogger.comBlogger81125tag:blogger.com,1999:blog-4755664707565425900.post-24334217168587574252014-06-06T06:56:00.000-07:002014-06-24T19:10:49.533-07:00Lager - the Lumenate Advanced Graphing Engine and Repository<span style="font-family: Trebuchet MS, sans-serif;">There have been a number of charts on our blog over the years documenting different analyses that we've done. Each chart was bespoke, meaning that we created it for a specific need and determined what to display on an as-needed basis.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Many of these charts are for HDS arrays with key performance indicators. Over the last year we've developed a tool that allows us to automatically create charts for these metrics, make them available in a central repository, and deliver this information in a usable fashion to our customers.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">The tool is called Lager and I give a brief overview of it below. If it's something that you are interested in, please reach out to your Lumenate representative.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="https://i1.ytimg.com/vi/P-vyfB_39bM/0.jpg" height="266" width="320"><param name="movie" value="https://www.youtube.com/v/P-vyfB_39bM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="https://www.youtube.com/v/P-vyfB_39bM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-78146133558553778862014-02-26T06:25:00.000-08:002014-02-27T06:11:20.992-08:00Reviewing SPC-1 Performance Results<span style="font-family: Trebuchet MS, sans-serif;">If you're trying to keep up with developments in Information Technology then we live in a wonderful time. Twitter, Wikibon, Vendor Blogs, Analyst Blogs - there's a wealth of information available. The real challenge is separating the signal from the noise and making sure that you don't fall victim to groupthink.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<a name='more'></a><span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">One of the impartial tools I use to keep up with developments in the storage arena is the SPC-1 benchmark, managed by the Storage Performance Council and published at <a href="http://www.storageperformance.org/results/benchmark_results_spc1">http://www.storageperformance.org/results/benchmark_results_spc1</a>. About once a quarter I'll go through the benchmark executive summaries gathering price and performance information and charting it out.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">It's an admittedly imperfect exercise - performance isn't everything after all (otherwise we'd all be driving <a href="http://en.wikipedia.org/wiki/Bugatti_Veyron">Bugatti Veyron Super Sports</a>), pricing is constantly changing (meaning that the SPC-1 Price-Performance data is of questionable utility), and not all vendors participate. In addition, there is lag between when a technology is introduced and when benchmark results are available (meaning that it can be a trailing indicator). With that said, it does provide insight into price and performance trends and helps understand how the vendors that do participate are positioning their offerings.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Looking solely at performance, here is a scatter plot of SPC-1 IOPs over time:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0j9TWL3C3pbBwOdtKqp2o6KzbFzBSp0F8I9-u_cNC5jFiGI4umTLKyd7SO2vsHgmLAqas3lKkyVfIcHOFAqvuFeHamuZKJ_l8GtbMJINSeZKZXCL-bDG1zZqWR2kEWbm1QGt2aw419zY/s1600/spc-1-iops-20140223.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0j9TWL3C3pbBwOdtKqp2o6KzbFzBSp0F8I9-u_cNC5jFiGI4umTLKyd7SO2vsHgmLAqas3lKkyVfIcHOFAqvuFeHamuZKJ_l8GtbMJINSeZKZXCL-bDG1zZqWR2kEWbm1QGt2aw419zY/s1600/spc-1-iops-20140223.png" height="466" width="640" /></a></div>
<span style="font-family: 'Trebuchet MS', sans-serif;">Here's the raw data for the top 10:</span><br />
<div>
<br /></div>
<table border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Vendor</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Report</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Product</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Date</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">SPC-1 IOPS</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Kaminario</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00137</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">K2 (K2F00000700)</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">10/17/2013</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">1,239,898.00</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Kaminario</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00118</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">K2-D (1875K-1.1)</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">7/30/2012</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">1,219,973.91</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Huawei </span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00140</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">OceanStor 18800</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">1/24/2014</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">1,005,893.43</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">IBM</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00130</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">IBM Power 780 server (with SSDs)</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">4/11/2013</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">780,081.02</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">HDS</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00136</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">VSP w/accelerated flash</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">7/30/2013</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">602,019.47</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">HP</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00138</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">StorageWorks XP P9500 (w/Performance Accelerator)</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">12/4/2013</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">602,019.47</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">Huawei</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00119</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">OceanStor Dorado5100</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">8/13/2012</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">600,052.49</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">IBM</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00113</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">IBM SVC v6.2 w Storwize V7000</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">1/30/2012</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">520,043.99</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">IBM</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00120</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">IBM System Storage DS8870</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">10/3/2012</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">451,082.27</span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">HP</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">A00109</span></td>
<td valign="top"><span style="font-family: Trebuchet MS, sans-serif;">P10000 3PAR V800</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">10/17/2011</span></td>
<td align="right" valign="top"><span style="font-family: Trebuchet MS, sans-serif;">450,212.66</span></td>
</tr>
</tbody></table>
<br />
<span style="font-family: Trebuchet MS, sans-serif;">Some interesting points about the top 10 results:</span><br />
<ul>
<li><span style="font-family: Trebuchet MS, sans-serif;">In terms of age:</span></li>
<ul>
<li><span style="font-family: Trebuchet MS, sans-serif;">1 is from 2011 (HP P10000 3PAR V800)</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">4 are from 2012 (Huawei OceanStor Dorado5100, IBM DS8870, IBM SVC v6.2 w/Storwize V7000, and Kaminario K2-D)</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">4 are from 2013 (HDS VSP w/accelerated flash, HP StorageWorks XP P9500, IBM Power 780 Server, and Kaminario K2)</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">1 is from 2014 (Huawei OceanStor 18800)</span></li>
</ul>
<li><span style="font-family: Trebuchet MS, sans-serif;">In terms of technology:</span></li>
<ul>
<li><span style="font-family: Trebuchet MS, sans-serif;">6 are Flash-only solutions (HDS VSP w/accelerated flash, HP StorageWorks Xp P9500, Huawei OceanStor Dorado5100, IBM Power 780 server, Kaminario K2, and Kaminario K2-D)</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">1 is a hybrid Flash/SAS solution (Huawei OceanStor 18800)</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">3 are traditional "lots o' disk" solutions (HP P10000 3PAR v800, IBM DS8870, and IBM SVC v6.2 w/Storwize V7000)</span></li>
</ul>
</ul>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">Other comments:</span></div>
<div>
<ul>
<li><span style="font-family: Trebuchet MS, sans-serif;">Kaminario is leading both the SPC-1 and SPC-2 benchmarks right now</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">The IBM benchmark for the Power system is a head scratcher. It shows that they can drive a lot of I/O, but isn't benchmarking a storage array in the traditional sense.</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">The HDS VSP and HP XP P9500 have the same results because they're using the same technology</span></li>
</ul>
</div>
chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-43851385636309315752014-02-19T12:37:00.000-08:002014-02-27T06:11:33.495-08:00A New Definition for Enterprise Storage<span style="font-family: Trebuchet MS, sans-serif;">A key challenge as Lumenate has grown over the last three years is making sure that the entire organization understands what we sell, where it fits, and our internal technical assessment of each product. That's a lot of information and requires that we engage in some simplifications.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<a name='more'></a><span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">Historically we have utilized the concept of dartboards, where each type of technology has its own dartboard with the products we represent grouped into one of three categories:</span><br />
<br />
<ol>
<li><span style="font-family: Trebuchet MS, sans-serif;">Starter - Products with a proven track record where we have a wealth of knowledge</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">Second String - Products that we know very well but there may be some "gotchas"</span></li>
<li><span style="font-family: Trebuchet MS, sans-serif;">Bench - Products that have a limited use case</span></li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgee7jGiYj9SPI1MH_Hkj4pey3A_wIpF_sF7rtn4uFMlUF4BaFGI_tSq6SplA6fnAjRon7Iz-ssojivhBaNMDmXYe_4Mn0RfudOVnTxAGIwrX4nLqJvDl804kylj9SQbT3SeYtMnkyp4uY/s1600/circles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgee7jGiYj9SPI1MH_Hkj4pey3A_wIpF_sF7rtn4uFMlUF4BaFGI_tSq6SplA6fnAjRon7Iz-ssojivhBaNMDmXYe_4Mn0RfudOVnTxAGIwrX4nLqJvDl804kylj9SQbT3SeYtMnkyp4uY/s1600/circles.png" height="180" width="320" /></a></div>
<div>
<span style="font-family: 'Trebuchet MS', sans-serif;">One of our dartboards is block storage and part of our evaluation criteria is whether a given technology is considered enterprise or modular. Whether a given array is enterprise or modular has been ill-defined for some time now - while we used to differentiate on features/functionality even today's entry-level offerings provide what were traditionally enterprise features.</span></div>
<div>
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">One popular way to differentiate between enterprise and modular is to say that any array that provides mainframe connectivity is enterprise with all other arrays considered modular. While this has been an accurate distinction, and one that we have historically used, it falls apart when considering Hitachi's HUS-VM.</span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">Although the HUS-VM shares DNA with HDS' traditional enterprise arrays it does not offer a mainframe connectivity option. By our historical definition then, it is not enterprise. As we considered the dartboard, though, we felt quite strongly that it was, in fact, enterprise-class storage - but why? Is there some criteria that it (and other enterprise arrays) meets independent of mainframe connectivity?</span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">My answer to that question is related to the configuration of the array - specifically parity groups. If there are fixed parity group sizes for availability reasons then an array is enterprise. Co-opting a popular term - enterprise arrays are engineered systems that provide storage services in a well-defined way. They are configured in a consistent, repeatable fashion.</span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">In the specific example of the HUS-VM the parity groups may be configured in groups of either 4 or 8 drives (whether FMD, SSD, SAS, or NL-SAS). These are not arbitrary numbers, but are instead derived from the number of independent back-end links from the controller to the drive trays. By limiting configuration choices HDS can guarantee availability and optimize performance. This is a trade-off, exchanging the flexibility of an arbitrary RAID configuration for certainty. Given the market acceptance of engineered systems, I think it's one most people are willing to make.</span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">I realize that discussing such mundane details as disk parity groups in a software defined world seems contradictory (or put another way "Who cares?"). It's key to realize, though, that as abstraction increases details still matter.</span></div>
chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-5498582539428771712014-01-23T13:42:00.001-08:002014-01-23T13:46:48.608-08:00Software-Defined Datacenter and the Mid-MarketNo doubt you have heard this year’s technical buzzword: <b>Software-Defined Datacenter</b>. But if you’re a company that falls within the classic mid-market (or commercial) space as many of Lumenate’s customers do, you’re no doubt wondering “What does this mean for me, my company and my IT staff?” For the answer to that question, let us first explore what Software-Defined means.<br />
<a name='more'></a><br />
<span class="Apple-style-span" style="font-size: 19px; font-weight: bold;">Defining Software-Defined </span><br />
At its core, a software-defined technology seeks to separate the control plane from the data plane. The easiest example here is a traditional Ethernet switch. On that switch is a logic board, full of ASICS, memory, and ultimately a piece of flash from which the kernel of the switch boots. Herein lies the control plane. That kernel is vendor-proprietary, and often times modifying the kernel via upgrades, reboots and some types of configuration changes carries the risk of interrupting end-user and server traffic. We call this the data plane.<br />
<br />
Ok, so… what’s the big deal here? For those of you who have brought compute virtualization to your datacenters, the answer is readily apparent. Higher service availability, rapid provisioning, increased server utilization, etc. are all benefits that companies like VMware and Microsoft tout with their virtualization offerings. The underlying key here is that the features IT craves now reside in software, and are not tied to vendor-specific hardware.<br />
<br />
<h3>
So… Hardware is Dead?</h3>
Hardware isn’t dead - not by a long shot. But there is a shift happening, and part of this is the careful examination and acquisition of key hardware features that improve aspects of the software-defined datacenter. Keep in mind that core technologies aren’t going to go away. We still need servers with CPUs, switches with speeds and feeds, disks for I/O and storage. There are also a myriad of features that help to enable and enhance the software-defined datacenter. A good example might be Intel’s VT-d extensions, which enable software features such as SR-IOV. There are also vendor-specific technologies such as Cisco’s UCS VIC technology, which allows for similar advantages that SR-IOV brings. This isn’t meant as a debate as to which technology is better or more appropriate for your datacenter, but it is an example of how hardware vendors will need to innovate to survive in this software-defined world.<br />
<br />
Compute virtualization brought about a change in the way customers look at server hardware. If the core of the server is the same, vendor lock-in becomes less of a concern. Intel doesn’t give different CPUs to Dell and Cisco, so the key differentiations become what those vendors do with the hardware. How many expansion slots does this server have? How much RAM can it hold? How many disks can I put in here? What vendor-specific technologies can I take advantage of by choosing this vendor? Every customer requirement is different and it is key for customers and their partners/vendors to understand what hardware technologies can aid them in their software-defined journey.<br />
<br />
<h3>
SDS and SDN: The New Players</h3>
The new kids on the block are the two other major parts of your existing datacenter: storage and networking.<br />
<br />
<h4>
Software-Defined Storage</h4>
For the purposes of this article, it might help to simplify the definition of software-defined storage. There are many products at market that can claim that they are an SDS solution, whether it is in the form of core storage, I/O acceleration or distributed caching. With this article’s focus on the mid-market sector, let us focus on something every SDDC requires: core storage.<br />
<br />
<a href="http://chucksblog.emc.com/chucks_blog/2014/01/the-new-storage-buyer.html" target="_blank">As Chuck Hollis outlined in his latest blog post</a>, there is a new storage consumer in the marketplace. New and future administrators and architects who have cut their teeth in the industry on compute virtualization are very open to the idea of decentralized, distributed storage, and why not? These people are aware that even with virtualization, server compute resources and I/O pathways continue to be under-utilized. Thus, we head towards a strategy the industry has named hyperconvergence: the concept of a distributed architecture where each compute node contributes to the processing AND storage resources of a cluster.<br />
<br />
Again, this model of storage does have physical components. It requires disk – some customers will prefer a mix of SSD and traditional magnetic HDD, and some will take the leap to an all-SSD tier of storage. It also requires an interconnect (data plane), which may come in the form of 1Gb Ethernet, 10Gb Ethernet, InfiniBand, etc. There is also a set of data services offered by the technology, whether it be in the form of security, protocol, data protection, caching, etc.<br />
<br />
Each customer use case will differ, and it is critical that customer applications and performance demands are carefully considered when selecting an SDS strategy. For many customers, the introduction of VMware’s VSAN and EMC’s ScaleIO offerings will usher in an additional tier of storage. For others, this will solidify the adoption of virtualization within their datacenter, as small businesses invest in a distributed yet centrally managed storage platform that can scale and perform, without the required investment of a dedicated storage array, or the cost of tooling an administrator with storage expertise.<br />
<br />
<h4>
Software-Defined Networking</h4>
VMware’s acquisition in 2012 of Nicira piqued many people’s interest. As a “hypervisor vendor” why would they be interested in a networking product? VMware, through many of its recent offerings, wants to make it clear: we offer software-defined datacenter solutions, not just a virtualization hypervisor. Cisco is another great example of a vendor breaking its mold of “network vendor” – they are also focused in datacenter transformation, through the use of its converged technologies and its Application Centric Infrastructure, or ACI.<br />
<br />
It is important to remember that networking is not new to a vendor like VMware. Features and improvements such as Network I/O Control, Distributed Switching and vCloud Networking and Security are features customers are looking to adopt to increase performance and availability, and to ease administration. After companies realize these benefits, larger enterprises begin to recognize larger areas of concern: automation and scalability. Enter software-defined networking.<br />
<br />
Enterprise customers looking to automate IT operations and develop catalogs and workflows will naturally look at solutions such as VMware NSX to help provision and automate virtual networking services to their consumers. The goal of SDN aligns with the goal of SDS and SDDC: run enterprise services in software against commodity hardware. SDN isn’t just overlays, it’s a complex ecosystem comprising switching, routing, security, remote access, inter-site connectivity, load-balancing, policies, etc. The messaging remains the same though: what if I can run all of these services in virtual controllers, and the only hardware I need in the middle are high-speed interconnects?<br />
<br />
Ultimately, to justify SDN’s existence in the enterprise, it needs a problem to solve. Large-scale SDN platforms such as ACI and NSX are going to require that a company have an existing investment in a provisioning and automation tool, such as vCloud Automation Center. N-tier applications requiring fencing, firewalling or dedicated networking become automation challenges as customer private cloud environments grow. To that end, a key question arises: where does SDN fit for the mid-market?<br />
<br />
<h3>
Automation</h3>
The answer to the SDN/mid-market question lies in automation. As an organization, how much of IT operations have you automated? Many commercial customers today sit firmly in the camp of the creation of virtual machine templates, which are tied to distributed port groups with specific security and performance profiles, with virtual disks assigned to a storage profile that matches performance and capacity requirements to the appropriate datastores. The great news here is that ALL of these features are available to you with vSphere Enterprise Plus! So whether or not you believe you are automating your IT operations, chances are you have at least begun that journey.<br />
<br />
If your IT operations are expansive, and have grown to dedicated teams for networking, storage, compute and applications, automation and self-service provisioning may be in your future. In the interest of keeping this article focused on defining software-defined technologies and their fit for mid-market, I’ll avoid the tangent of private cloud, workflows and automation. But make no mistake, these technologies are closely tied and if your business is looking at building an automated, private cloud, you should also examine your software-defined networking strategy.<br />
<br />
<h3>
Which will the Commercial Space Adopt First?</h3>
Both!<br />
<br />
Many partners, customers and home tinkerers are already experimenting with technologies such as VMware’s VSAN. As the competitive market becomes more clear with these products headed towards their GA release, we will begin to see where they fit, capacity- and performance-wise, as well as architecturally and as part of organizations overall storage strategy. Will distributed technologies such as ScaleIO and VSAN become primary storage to back virtual machines? Or perhaps a secondary/tertiary tier for operating system virtual disks and data vaults? Another use case might be for disk-based virtual machine backups, which then tape-out if desired.<br />
<br />
With the maturation of many automation and private cloud offerings, businesses starting down the path or increasing their adoption of SDDC will reap the benefit of years of experience growing and evolving these products. For many mid-market VMware customers, the software-defined networking features in vCloud Suite will fill a huge gap in their service feature-set. For those customers already deep into automation and provisioning at scale, NSX or ACI might more closely align to their needs.<br />
<br />
For customers wondering how they can utilize software to scale their networking or storage services, this is a very exciting time in the industry to pose that question. For the new datacenter consumer, their question to traditional hardware vendors might not be “what features do you provide”, but “what constraints do you introduce?”<br />
<br />
<i>Kenny Garreau is a Cloud Architect for Lumenate, and is VMware Certified Design Expert #115.</i><br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/17603989154005354959noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-65711128490428313052013-11-27T09:50:00.004-08:002013-12-19T13:29:26.039-08:00Lumenate and XtremIO™ for Extreme VDI<h3>
<a href="http://www.lumenate.com/assets/docs/Lumenate-EMC_XtremIO_eBook.pdf" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"><img align="right" hspace="20" src="http://www.lumenate.com/assets/images/Lumenate-EMC_XtremIO_eBook.jpg" vspace="20" /></a>
Extreme VDI through Lumenate</h3>
<br />
Unpredictable workloads and changing demands on storage infrastructures are the greatest challenges to a successful implementation of virtual desktop infrastructure (VDI). EMC’s XtremIO, the industry’s first and only all-flash array, supports workloads that need predictable and consistent low latency across datasets that frequently change—a textbook solution for the challenges facing VDI implementation.<br />
<div>
<br />
<a name='more'></a><br />
XtremIO through Lumenate delivers breakthrough, scale-out architecture, consistent performance, data reduction, thin provisioning and manageability for extreme VDI.</div>
<div>
<br /></div>
<div>
<h4>
XtremIO™ delivers: </h4>
<div>
<ul>
<li>Astoundingly high IOPS and low latency all the time, without compromise </li>
<li>Up to 30% more usable capacity </li>
<li>Scale-out design for any level of performance or capacity </li>
<li>Enterprise reliability at a reasonable price > Simple, powerful graphical user interface (GUI) management dashboard </li>
<li>Faster, safer data protection with less overhead and the highest flash endurance</li>
</ul>
</div>
<div>
<i><br /></i>
<i><span class="Apple-style-span" style="font-size: large;">“XtremIO has the best numbers we’ve seen for virtual desktop infrastructure storage. It’s screaming fast.”</span></i><br />
— Jamie Shepard, VP, Lumenate<br />
<br />
Traditional arrays are not designed to efficiently handle the extreme performance that flash-based technologies can deliver. EMC XtremIO features several unique flash innovations that provide consistent and predictable performance regardless of whether the array is idle, busy, empty or full.</div>
<br />
<a href="http://www.lumenate.com/assets/docs/Lumenate-EMC_XtremIO_eBook.pdf" target="_blank"><b>Click here to download the Lumenate EMC XtremIO eBook to learn more. ></b></a></div>
<div>
<b><br /></b></div>
<div>
<a href="http://www.youtube.com/watch?v=u979HARMNSI" target="_blank"><b>Click here to view video featuring Lumenate's Brad Maltz ></b></a></div>
Anonymoushttp://www.blogger.com/profile/17603989154005354959noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-4693589706224057802013-09-11T04:22:00.001-07:002013-12-19T13:32:27.737-08:00The Lumenate Perspective on VMworld 2013The world of IT that we know has always been in a constant state of change. These changes are driven by customer’s needs, technology innovations and good old fashioned progress. There are some in the industry who think we are changing even faster as IT matures. Others say we have always been changing at the same rate but perception is in the eye of the beholder. Well at VMworld this year we got a glimpse of how the IT industry will be changing over the next few years. <a name='more'></a><br /><b>The main concepts at VMworld this year were:</b><br /><ul>
<li>Software Defined Networking </li>
<li>Software Defined Storage </li>
<li>Hybrid Cloud Services </li>
<li>Flash (SSD Arrays, PCIe Flash Cards and More)</li>
</ul>
Even though this was a VMware driven event, VMware has been a major player in the industry of innovation over the past 10 years and we expect these concepts and technologies to have wide reaching effects across the industry. <br /><br />Software Defined is the new “term of the day”. What VMware is introducing may not be the end all be all, it will help to push the industry to accept another way of working/thinking. <br /><br />Many people are going to confuse “Software Defined” as a new thing, it is not. The concept of Software Defined, is to move the control plane that has been traditionally tied to hardware and make it agnostic of the platform it is running on. The reason this isn’t new is because VMware introduced Software Defined Computing with the introduction of VMware ESX back in 1999. But back then the only aspects that were Software Defined was the CPU/memory. What VMware has introduced is the concept of moving the Networking Control Plane out of our traditional proprietary networking vendors into a software layer that will allow anyone to use any networking vendor as a more basic switch. Same goes for the Software Defined Storage introduction. Many of the storage features previously only available with external storage controllers will be available in software directly integrated at the Hypervisor. <br /><br />Lumenate is a Cisco Gold partner and have top level status with EMC, HDS and Netapp. We design and implement solutions for our clients using these technologies on a daily basis and more often than not these are deployed in conjunction with VMware technologies. From our standpoint these announcements from VMware are exciting, we’ve got more options and new and better ways to solve challenges for our clients. <br /><br />The other major topics at VMworld were definitely important, but just not as industry thought provoking. The VMware Hybrid Cloud Service is VMware’s Cloud Offering that allows a traditional VMware customer to manage their private and public deployments in the same fashion. As well customers will be able to more easily extend their existing VMware environments into the VMware Hybrid Public Cloud.Anonymoushttp://www.blogger.com/profile/03242847070389285091noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-7593398179345623922013-09-07T07:22:00.000-07:002013-12-19T13:34:57.647-08:00VMworld 2013 – VSANsOne of the most interesting things to come out at VMworld 2013 is VMware VSANs. At a high level VSANs aggregate the local storage either internal or Direct Attached to ESX servers and creates a VSAN Datastore. The VSAN datastore supports all of the capabilities of traditional external storage attached to ESX Clusters. To be clear this isn’t simply a virtual storage appliance, this is integrated at the Hypervisor level. VMware pointed to the numerous advantages of being able to manage storage that is integrated directly into the solution. It is inherently VM aware and more than that they have the ability to understand workloads in real time and make adjustments based on the SLAs you define. <a name='more'></a><br /><b>Here are some of the specific use cases that were highlighted:</b><ul>
<li>VDI environments </li>
<li>Test / DEV </li>
<li>ROBO </li>
<li>Tier 2 and Tier 3 Applications </li>
<li>DR Target </li>
</ul>
<br />VMware pointed out how their performance testing showed the VSAN approach would provide performance comparable to all Flash arrays at a significantly lower price point. <br /><br /><b>Here are some notes from the sessions I attended:</b><br /><ul>
<li>They really don’t want you to use intelligent storage arrays with VSANs. Their software works best when they have direct access to each physical disk. If you are using an internal RAID controller it needs to be setup in pass through or HBA mode. </li>
<li>You need at least 3 nodes with internal storage to setup a VSAN and each host must have at least one SSD and one magnetic disk. The SSD is used for caching not as a storage tier. </li>
<li>8 Nodes is the max. You can have more than 8 nodes in the cluster but you can only use the storage from 8 nodes. </li>
<li>Redundancy is based on having multiple copies of the data and you can tell it how many failures you want to be able to withstand. You also have the ability to do striping – RAID 0. These settings are applied at the virtual machine level. </li>
<li>GA Target is the first half of 2014 </li>
</ul>
<h3>
So what does all this mean?</h3>
Well with most new solutions it will take some time to see how it all fleshes out. What we know is that we are going to have more options, different ways we can provide storage and solve challenges. We know that VMware is proceeding down multiple paths. They know that storage is still a major challenge for most organizations and there is unlikely to be a single solution that meets every need which is why they are continuing to work with all of the storage manufacturers to more tightly integrate with their technologies. <br /><br />Storage whether internal and driven by software or external and using intelligent controllers needs to be integrated from a management standpoint. You need to be able to provision and consume storage as efficiently as you now can with compute resources. Storage needs to be more dynamic and able to adapt to workloads based on the requirements of the upper level services being provided. Storage management in general needs to be smarter, it needs to know more than just blocks of data, it needs to understand what the data is – this is a VM, this is an OLTP database, this is a data warehouse and these are the structures that make up those databases. This level of understanding allows the data management layer, wherever it resides to be more effective. <br /><br />VMware isn’t interested in selling internal storage versus external storage so much as they are interested in selling more VMware and making their solutions more capable, at a lower cost, is in their best interest. I don’t expect to get a lot of calls from clients that need help decommissioning their VMAX or VSP so that they can move everything to internal storage but I do expect VSANs to be a viable and accepted option in many cases. <br /><br />We’re signed up to get the beta and when we do we will put it through its paces in our lab and let you know what we find. <br /> Terry Mhttp://www.blogger.com/profile/18368896550741168548noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-1845082761517917812013-06-26T09:38:00.001-07:002013-12-19T13:36:48.618-08:00Thoughts on Integrated StacksOver the last couple of years there has been a lot of discussion around moving from the traditional methods of building out infrastructure to utilizing converged stacks. At this point nearly every manufacturer has gotten into the game, positioning their own technologies, setting up independent companies or partnering so that they too can have an offering. Engineered Systems, Integrated Stacks, Converged Systems, Reference Architectures or Validated Designs or whatever name or category they fall under are not identical but they strive to accomplish the same goals.<a name='more'></a><br /><ul>
<li><b>Certainty.</b> Provide solutions that are validated to have known performance and availability characteristics </li>
<li><b>Faster deployments.</b> Much of the design and architecture work is eliminated. Depending on the type of solution, the actual time to implement may also be decreased since it arrives preconfigured. At a minimum guides are available to walk the team through installation as a whole rather than piece by piece. </li>
<li><b>Ease of Management.</b> Converged solutions either come with or are validated to work with management and orchestration software that simplifies administration of the solution. </li>
<li><b>Improved Support.</b> These solutions are standardized so the vendor support organizations have fewer variables to worry about. There should also inherently be a broader number of organizations running the same configuration so you will not be stranded on an island as “the only ones doing it that way”. </li>
</ul>
There is no magic to these solutions, the approach is similar to what we all do today. If you have to develop a remote office solution and deploy it across 100 sites you don’t come up with a unique approach for each, you standardize the solution and implementation process so that deployment is efficient and support simplified. <br /><br />At Lumenate we apply these same techniques using what we call service factories. While we certainly get involved in a wide range of projects there are several solutions that we deploy over and over again. Just as an Internal IT department would, we standardize how we use and deploy these solutions. <br /><br />Now many of those in the trenches of IT, those that design and architect these solutions look at these converged stacks with a bit of skepticism. They point out that their requirements are unique and don’t fit neatly into these predesigned solutions. That’s certainly going to be true in certain cases and a senior architect or team of architects will be required. This is the type of work that most of us enjoy most, solving the hard problems. In many cases though, when looking at the most popular applications and use cases the workload is very well understood and the integrated approach can be used.<br /><br />The second comment I hear most frequently is that our internal team can design a better solution for our needs than something that was created generically. Again I would say this could be true. Perhaps a thought experiment might shed some light on why management and business leadership may be enamored with this new approach. <br /><br />Let’s say we started by going to 200 organizations and asking them to design and implement a solution. In each case we provided a list of requirements and parameters. The first 100 we would allow to use any methodology and any technologies they wanted. The second group we would instruct to use a reference architecture or integrated stack. <br /><br />My theory is that you may have a few in the first group that create an exceptional solution, they implement it efficiently and meet or exceed expectations. Of the remainder I believe you would have a higher percentage of successful implementations in the group using the integrated approach. <br /><br />If you have been in this industry for any length of time you have seen or more likely been a part of an implementation that didn’t go well, that cost more than expected, took longer to implement and failed to achieve the desired results. These are the memories in the heads of business leaders when they fall captive to the siren song of an integrated stack. <br /><br />If you’ve made it this far you may be under the impression that I think this new approach is the end all be all but that is not the case. As with nearly everything in IT there are tradeoffs and areas that should be carefully considered. <br /><br />One of the tradeoffs is a lack of flexibility. At the most extreme end you have engineered systems that are very locked down and rely on a single source. As you move towards the other end of the spectrum you have reference architectures that may allow more choice in the components used in the stack but the options will still be much less than we are accustomed to. During initial implementation this may not be much of a sacrifice but it could be when you want to leverage new technologies but cannot do so without breaking the reference architecture. It’s not that it wouldn’t work or that you would lose support but you would lose some of the value that took you down the reference architecture path in the first place. <br /><br />What has been interesting lately is watching the reference architectures getting broader and broader and providing more and more choices. As an architect I might like that because it puts me back in the driver’s seat but I wonder how that will work long term. If there are 10,000 reference architectures how much different is that than what we have today. Murphy’s law says that you still will end up selecting an architecture that wasn’t that popular and when you call support you will have the joy of hearing “you’re the only ones doing it that way!” Terry Mhttp://www.blogger.com/profile/18368896550741168548noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-75540300891237742272013-01-04T15:29:00.000-08:002013-12-19T13:38:01.943-08:00Musings of a NetApp Insight 2012 AttendeeAs has come to be expected, NetApp Insight consisted of 3 days packed with all things NetApp. This year the breakout sessions focused on areas such as Cloud, FlexPod, Big Data and of course Cluster-Mode just to name a few. <a name='more'></a><br />I attended an interesting discussion on Big Data. NetApp has their own issues with Big Data. They get somewhere around 800,000 Autosupports per week. The autosupport data has to land, be parsed & extracted before being pushed into a data warehouse. Apparently, the Oracle database solution couldn’t handle the growth. Their autosupport data load doubles every 16 months. Various applications have to access the autosupport data in varying forms. When we go to MyAutosupport and look up a customer system, the MyAutosupport application is accessing the data in one of their data marts. Many tools access this data for end users, support personnel and design engineering. The data must be available quickly for these organizations to be effective. NetApp found that it became increasingly difficult to meet its SLA’s around this solution.<div>
<br /></div>
<div>
So NetApp decided to implement a replacement solution based on Hadoop. Hadoop is an open framework designed to process large amounts of data in parallel. The solution encompasses both compute and storage. To manage the storage, Hadoop includes its own file system that is designed to store Petabytes of data and provide high speed access. Since Hadoop owns the file system, it knows the location of all the chunks of data. Hadoop can intelligently allocate compute resources according to data locality. In other words, the data doesn’t have to be moved to the compute node. The compute nodes are chosen because they have direct access to particular data chunks. NetApp chose to utilize their E-series (Engenio acquired) storage for the Hadoop Distributed File System, HDFS. In addition, NetApp utilized the low cost FAS2040 to store metadata from the HDFS Name nodes. The solution consists of 32 Data nodes with 7 x E2600 storage arrays. Each Data node accesses its own LUNs from the storage. The overall Autosupport solution is quite complex, but the Hadoop storage portion is a little less complicated. Interestingly, the data nodes are connected to the storage via eSAS rather than Fibre Channel or Ethernet. More info on Open Hadoop on E-series can be found here: <a href="http://www.netapp.com/us/library/technical-reports/tr-3969.html">http</a><a href="http://www.netapp.com/us/library/technical-reports/tr-3969.html">://</a><a href="http://www.netapp.com/us/library/technical-reports/tr-3969.html">www.netapp.com/us/library/technical-reports/tr-3969.html</a><br /><br />FlexPod is certainly getting a lot of attention. The FlexPod is based on a Cisco Validate Designs and NetApp Verified Architectures joint solution. Multiple FlexPod solutions are available for Virtual infrastructures, multi-tenancy, VDI etc. Of great benefit is that the designs are jointly supported by Cisco, NetApp and VMware. <br /><br />The original FlexPod was designed and sized to accommodate 1500 users running VDI, MS Exchange, SharePoint & MS SQL. It encompassed three Cisco UCS B-Series blade chassis, dual fabric interconnects, fabric extenders, Nexus switches plus the NetApp FAS3210. A pretty high entry level cost for smaller companies. <br /><br />Since then, NetApp and Cisco have announced an Entry level FlexPod. It is comprised of less the expensive FAS2240 storage, as few as one C-Series rackmount server utilizing iSCSI for boot. The Entry FlexPod does require the same caliber network switches, so it is still quite expensive for small businesses.<br /><br />Recently, NetApp and Cisco have introduced the ExpressPod. A scaled down entry level version of FlexPod aimed toward smaller businesses. The ExpressPod consists of either FAS2220 or FAS2240 storage (no FAS32xx), two 1Gb Nexus 3048 switches and C-Series rackmount servers. Since the design omits fabric interconnects, UCS manager is not included. The price is much lower for entry level and the cooperative support model is in force.<br /><br />Well last but not least, NetApp had a lot of discussion around “Cluster-mode.” Not sure how much everyone knows about “7-mode” vs. “Cluster-mode.” Seven mode is basically a high availability pair where a surviving controller will take over the personality of the failing controller to provide its services. Cluster mode on the other hand is horizontally scalable by adding more controllers to a cluster. A service runs from a virtual entity called a vserver which can physically run anywhere (theoretically). It’s similar to a VMware cluster. <br /><br />A little history here. NetApp had Ontap (their operating system) version 7.x for many years. Some of our customers are still running on 7.3.x. NetApp purchased Spinnaker Networks in 2003 primarily to acquire their clustering technology. In 2006 NetApp had integrated the technology from Spinnaker into their Ontap GX product. A separate code-based Ontap primarily focused on High Performance Computing solutions. NetApp’s goal has been to merge the two code bases into one, which was realized with Ontap 8.x. So with Ontap 8.x a customer has a choice of which MODE they desire to run; 7 or cluster. Unfortunately, it’s not quite that simple. Cluster mode does have some additional requirements above and beyond a traditional 7-mode implementation. NetApp would like all greenfield implementations to go cluster-mode. Currently, NetApp doesn’t allow/support partners doing migrations from 7-mode to C-mode. Traditional tools such as SnapMirror are not 100% compatible between the two modes due to volume structure. In the future, partners will be able to participate in migration services when NetApp produces end user migration tools. <br /><br />Another barrier to entry on Cluster-mode is the need for external 10Gb switches along with corresponding adapters in each controller. This hardware is solely for use by Ontap for cluster communication. This infrastructure is not to be used for customer data. So NetApp sells these additional switches for $1 currently. Don’t know when this “promo” will end, but certainly does help even the playing field between the two modes.<br /><br />In the not too distant future, NetApp will not develop anymore 7-mode releases. Customers will have to make the switch eventually, but will it be as soon as NetApp would like? Don’t know, but doubtful.</div>
stevekhttp://www.blogger.com/profile/07308754104687537983noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-2983878179079424592012-09-04T06:54:00.001-07:002013-12-19T13:39:05.710-08:00Array sizing in practiceAs I mentioned in the previous post (<a href="http://storagemeat.blogspot.com/2012/08/learning-to-love-uncertainty.html">here</a>) array sizing has become more complex with the advent of tiering and deduplication. It's not just a function of new technology - it's also that storage is handled differently from an architectural standpoint, so even with good performance data there are still inferences that have to be made.<a name='more'></a><br />As a specific example, consider moving from an HDS array without HDP (meaning one that doesn't do wide striping or thin provisioning) to one that does both HDP and HDT (dynamic tiering). While per-LUN statistics are available, both HDP and HDT work with 42 MB pages. As a practical matter this means that if your busiest LUN is 200 GB in size, but the majority of that activity is concentrated into several hundred MB then you can satisfy the I/O requirements with a relatively limited amount of SSD and let the remaining capacity reside on nearline-SAS (or SATA) drives.<br /><br />Recently we went through the exercise of sizing HDT for a customer considering an array refresh for an environment with roughly 2500 devices and 150 TB of usable storage, and I thought I'd share the approach and results of that exercise.<br /><br />In this environment we were able to leverage Hitachi Tuning Manager to pull the last month's worth of performance data, and we began by generating a report that included the IOPs and Transfer on a per-LDEV basis (Logical Device Performance Details(7.1), if you're curious). We then ran this data through a perl script to determine the total number of IOPs for the month as well as what percentage of those IOPs each LDEV generated. We then sorted this by the %IOPs, and graphed the %IOPs vs %capacity using <a href="http://www.fusioncharts.com/">FusionCharts</a>, as shown below:<br /> <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIo5Uc0TRKuOQGYoY38qq3_GOoTpEpUde0avunQaw1GvjW4hcb15EQpVaLxMVLOBLTSbcBqwPC6RGUMNpiz0mNzfu4zUResorxwPPKKWFf77k9OBwznfYUKnUP_3amLWWgBxoaOffnz6s/s1600/iops_vs_capacity_not_normalized.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIo5Uc0TRKuOQGYoY38qq3_GOoTpEpUde0avunQaw1GvjW4hcb15EQpVaLxMVLOBLTSbcBqwPC6RGUMNpiz0mNzfu4zUResorxwPPKKWFf77k9OBwznfYUKnUP_3amLWWgBxoaOffnz6s/s640/iops_vs_capacity_not_normalized.png" /></a><br /><br /><br />You don't have to be a math major to see that something doesn't look right. The reason for the dogleg in the chart is that we initially neglected to take different LDEV sizes into account. There are a number of larger LDEVs (200 GB vs 36 GB). Going back to the data we divided the % IOPs by the LDEV capacity to normalize IOP density and did the chart again:<br /> <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2gc390cND2bIsUueVbv2UXNjY_wk-K-4NOSb6nh79RWAOvJ5CfAt8TU4-RjoHKYxppYVNEp91IXCfTnOa76EqGat0TC3vZ1Klg16tXe3xEeJ2iJk_tRINy3L2YhciYOgFAtg7cTgVhpE/s1600/iops_vs_capacity.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2gc390cND2bIsUueVbv2UXNjY_wk-K-4NOSb6nh79RWAOvJ5CfAt8TU4-RjoHKYxppYVNEp91IXCfTnOa76EqGat0TC3vZ1Klg16tXe3xEeJ2iJk_tRINy3L2YhciYOgFAtg7cTgVhpE/s640/iops_vs_capacity.png" /></a><br /><br /><br />This gives a smoother curve, and is what we used to make recommendations for percentages of SSD vs SAS vs NL-SAS. Interestingly 20% of the capacity accounts for almost 90% of the IOPs making the key take away that a little bit of SSD makes a lot of difference.chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-81097234466944125752012-08-29T17:37:00.000-07:002013-12-19T13:40:42.887-08:00Reflections on VMworld 2012<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
</div>
<h3>
<span class="Apple-style-span" style="font-size: 19px; font-weight: bold;">“The Clone Wars” or “The Battle of Five [Platform] Armies”</span></h3>
Do you remember the Mac vs PC platform wars? Novell vs Microsoft? Token ring vs TCP/IP? iPhone vs Android? Java vs .NET (vs C#)? Betamax vs VHS?<a name='more'></a><br />Winners are “chosen” by developers and market share, and VMware has both and has a culture of innovation to boot. You should see the partner ecosystem these guys have created at VMworld 2012—it’s stunning and a bit overwhelming—and they have about 50% of the total x86 market share (source: IDC says 60% of x86 servers are virtual as of 2012, and VMware claims 80% market share in the virtual x86 market). As I see it, the Five Armies are Microsoft, Google, Apple, Amazon, and VMware; VMware’s advantage is they’re at the infrastructure layer.<br /><br />A while back I read <a href="https://plus.google.com/112678702228711889851/posts/eVeouesvaVX#112678702228711889851/posts/eVeouesvaVX">this</a> rant of a former Googler (warning: it’s got some profanity). The upshot: Amazon decoupled databases and applications, and Google hasn’t. What has that got to do with VMware? Well, I see signs that vCloud Director is similarly using software APIs to integrate and automate, "decoupling" the typically manual processes. What does this mean? It means infrastructure players who don’t integrate well with VMware risk becoming dial-up devices in a broadband world. For example, incumbent SAN players who provide only a base level of integration with VMware may lose their front-runner status as a result.<br /><h3>
<span class="Apple-style-span" style="font-size: 19px; font-weight: bold;">Innovation @ VMware</span></h3>
I had the opportunity to attend a session here at VMworld where Julia Austin shared some of VMware's secrets of innovation. Internally they use a venture capital model to fund “wild and crazy” ideas that “just might work.” Basically, someone with a crazy idea who’s crazy enough to bet their job gives the pitch. If successful, they quit their job and work under the CTO organization to make it happen. And they get equity in their idea.<br /><br />One of the most fascinating ideas I saw integrated SocialCast with the infrastructure to leverage information management techniques from social networks to eliminate redundant information, emphasize hierarchy and connectivity, and provide domain relevant alerting. Think of seeing a post once, with 10 "likes." One of the examples provided was loss of an NFS datastore. A typical question might be: which components were affected? The first server posts a message on the walls of followers, and the 10 others "like" it. Now you (and anyone else interested in the events) knows exactly who (er, what) is affected.<br /><br /> I also learned VMware publishes experimental tools—they work, but are not supported—as “<a href="http://labs.vmware.com/flings">flings</a>.”<br /><br />Another example of their culture of innovation involved the story of how VMware Fusion was a skunk works project that eventually saw the light of day.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-21613018335641467612012-08-29T00:51:00.000-07:002013-12-19T13:41:58.764-08:00Learning to love uncertaintyHistorically storage administration was a relatively straightforward endeavor. You could empirically measure how much capacity you needed, project anticipated growth, and plan accordingly. Likewise you could measure an application's existing IO requirements, extrapolate based on planned growth, and feel comfortable that you probably got the sizing right. Sure sometimes it felt more like art than science, but at the end of the day you could point to an Excel spreadsheet and some fudge factor you used to do your math. <a name='more'></a><br /> Lately, though, I find myself saying "it depends" even more than usual. It began with deduplicating backup appliances. While their initial claims seemed ludicrous (Whadya mean you can store 10x the actual physical space?), when you took the amount of redundancy inherent in backups the math made a lot of sense. The challenge of course is trying to find a way to effectively communicate to a customer and size appropriately for their environment.<br /><br /> The next place it started cropping up was in the WAN. Through a combination of techniques, including deduplication, it is possible to increase the effective bandwidth of a link. With our focus on disaster recovery these solutions are very attractive because the overriding cost in a solution is the recurring cost of bandwidth. Again, though, short of an actual benchmark it is impossible to quantify the impact of these devices. (Although I know at least one vendor will let you borrow the devices, expecting that you'll call them back to write a check once you realize the difference the devices make).<br /><br /> And now it's common in online storage as well. Not every vendor offers deduplication of primary storage, but most do offer the automatic migration of "hot" storage to different tiers. When sized appropriately (meaning that all of the "hot" data fits into the highest tier) the performance improvement is astounding. Unfortunately if the highest tier is undersized then the performance degradation is also astounding.<br /><br /><h3>
Here are a couple of decision points to consider:</h3>
<b><ul>
<li><span class="Apple-style-span" style="font-weight: normal;"><b>Predictability -</b></span><span class="Apple-style-span" style="font-weight: normal;"> For some customers it is more important that performance is predictable than that it is as fast as possible. I'm not suggesting that they don't want better performance, rather that given the choice between running a theoretical job in 30 minutes every time or having it run between 10 minutes and 30 minutes depending on other workload they would chose the scenario with a dependable 30 minute run time. </span></li>
<li><span class="Apple-style-span" style="font-weight: normal;"><b>Partition-ability -</b></span><span class="Apple-style-span" style="font-weight: normal;"> I like to joke that devices don't understand politics. All of these technologies (deduplication, storage tiering, etc.) will improve performance in the aggregate. Unfortunately the aggregate may include the media collection of Jill in accounting. It's not enough to have the technology - you have to have the tools to use it properly, and enough insight into the environment to architect its use as well. </span></li>
</ul>
</b>We live in interesting times - hope you're enjoying them.<br /><br /><i>(For more on storage performance and sizing, please see Terry's entries <a href="http://storagemeat.blogspot.com/2010/03/storage-performance-concepts-entry-1.html">here</a>, <a href="http://storagemeat.blogspot.com/2010/11/storage-performance-concepts-entry-2.html">here</a>, <a href="http://storagemeat.blogspot.com/2010/11/storage-performance-concepts-entry-3.html">here</a> <a href="http://storagemeat.blogspot.com/2010/12/storage-performance-concepts-entry-4.html">here</a>, <a href="http://storagemeat.blogspot.com/2011/07/storage-performance-concepts-entry-5.html">here</a>, <a href="http://storagemeat.blogspot.com/2011/08/storage-performance-concepts-entry-6.html">here</a>, and <a href="http://storagemeat.blogspot.com/2011/10/storage-mbps-performance-concepts.html">here</a>). Or, just search on Storage Performance Concepts</i>chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-474317225548547682012-08-18T23:15:00.000-07:002013-12-19T13:44:46.415-08:00Decoding WWIDs (or how to tell what's what)The difficulty of determining exactly which storage is presented is a common refrain in organizations where the storage and server teams are separate. At best this is an inconvenience (which LUN are you talking about?) while at worst it can be catastrophic (you put a file system on what!?).<a name='more'></a><br /> While it is possible to correlate LUN numbers to devices by talking to the storage administrator, it is also possible to identify devices using server-side tools that use the wwid. This post will be HDS-specific, although I suspect that most vendors do something similar. If you have a different vendor feel free to share in the comments.<br /><br /> The key is that most operating systems use the NAA IEEE Registered Extended Identifier format to identify devices. This format, documented in Table 7 of <a href="http://standards.ieee.org/develop/regauth/tut/fibre.pdf">http://standards.ieee.org/develop/regauth/tut/fibre.pdf</a>, specifies that the identifier begins with 0x6, followed by the IEE OUI (<a href="http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier">Organizationally Unique Identifier</a>). If you're curious you can search OUIs at <a href="http://standards.ieee.org/develop/regauth/oui/public.html">http://standards.ieee.org/develop/regauth/oui/public.html</a>.<br /><br /> After the OUI there is a vendor specific identifier and a vendor specific identifier extension.<br /><br /> Enough theory - what does this mean in practice?<br /><br /> Let's start with finding the number that we're talking about.<br /><br /> For VMware you can find the wwid by looking in vSphere at Storage under the Configuration tab for a physical server. Under the "Device" column there will be "naa.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" where the X's represent the WWID.<br /><br /> For Linux, you can consult the ouput from "multipath -ll" (if you're using native multipathing), or use "/sbin/scsi_id -g -u -s /block/sd#". In this instance the string will begin with "3" followed by 32 characters.<br /><br /> Finally if you're using Solaris with MPIO then the target ("Y" in cXtYdZ) will be the wwid.<br /><br /> Once you have this 32 character* identifier, it's possible to identify the make, serial number, and device. The following table shows a breakdown of wwids and their translation:<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Courier New, Courier, monospace;">6 0060e8 <span style="background-color: yellow;">004</span>2ae400 <span style="background-color: #6aa84f;">00002ae4</span><span style="background-color: white;"> </span>0000<span style="background-color: #6fa8dc;">0b20</span> USP S/N 10980</span><br />
<span style="font-family: Courier New, Courier, monospace;">6 0060e8 <span style="background-color: yellow;">005</span>bd3600 <span style="background-color: #6aa84f;">0000bd36</span><span style="background-color: white;"> </span>0000<span style="background-color: #6fa8dc;">15fd</span> USP-V S/N 48438</span><br />
<span style="font-family: Courier New, Courier, monospace;">6 0060e8 <span style="background-color: yellow;">006</span>d2ad00 <span style="background-color: #6aa84f;">0000d2ad</span><span style="background-color: white;"> </span>0000<span style="background-color: #6fa8dc;">0502</span> VSP S/N 53933</span><br />
<span style="font-family: Courier New, Courier, monospace;">6 0060e8 <span style="background-color: yellow;">010</span>4b6690 <span style="background-color: #6aa84f;">04f32571</span><span style="background-color: white;"> </span>0000<span style="background-color: #6fa8dc;">0000</span> AMS2100 S/N 83043697</span><br />
<span style="font-family: Courier New, Courier, monospace;">6 0060e8 <span style="background-color: yellow;">010</span>2b1e00 <span style="background-color: #6aa84f;">0511a568</span><span style="background-color: white;"> </span>0000<span style="background-color: #6fa8dc;">0003</span> AMS2300 S/N 85042536</span><br />
<span style="font-family: Courier New, Courier, monospace;">6 0060e8 <span style="background-color: yellow;">010</span>0afee0 <span style="background-color: #6aa84f;">053027f6</span><span style="background-color: white;"> </span>0000<span style="background-color: #6fa8dc;">002f</span> AMS2500 S/N 87042038</span><br />
<div>
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
The first column, 6, means that we're using the NAA IEE Registered Extended Identifier field format.<br /><br />The next 6 columns are the OUI. 0060e8 is registered to HITACHI COMPUTER PRODUCTS (AMERICA), INC.<br /><br />The next 3 columns, highlighted in <span class="Apple-style-span" style="background-color: yellow;">yellow</span>, identify the type of array, as follows:<br /><br />004 - USP<br />005 - USP-V<br />006 - VSP<br />010 - AMS 2000 family<br /><br />I'm not sure about the next 6 columns. For the enterprise arrays you have the serial number (in hexadecimal), while the AMS2000 line identifies the model number by the first character, with 0 = AMS2500, 2=AMS2300, and 4 = AMS2100.<br /><br />The next 8 columns, highlighted in <span class="Apple-style-span" style="background-color: #6aa84f;">green</span>, are the serial number of the array in hexadecimal.<br /><br /> The last 4 columns, highlighted in <span class="Apple-style-span" style="background-color: #6fa8dc;">blue</span>, are the LDEV (or CU:LDEV for enterprise). I suspect that the last 6 are LDKC:CU:LDEV, and that really all 8 are reserved for identifying the specific device, but have not been able to verify.<br /><br /><i>* If it seems like I'm being cagey here, it's because these are hexadecimal numbers and should technically be called nibbles. They're not really characters, since those are bytes (unless you're using unicode). Ok, enough digression...</i>chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com6tag:blogger.com,1999:blog-4755664707565425900.post-17983061245810349992012-08-11T00:47:00.000-07:002013-12-19T13:48:49.285-08:00Replicating a multipathed Linux boot deviceOne of our customers currently replicates an Oracle database that runs on top of RedHat Enterprise Linux 5.6 using HDS' TrueCopy product. While the system has been in place for awhile the replication is relatively new.<br />
<a name='more'></a><br />
To be sure that any changes in production make their way to the DR site, the customer is replicating not only the volumes associated with the database, but the root/boot device as well.<br />
<br />
In addition, all devices are multipathed using Linux native multipathing.<br />
<br />
In preparation for the initial DR test we split the TrueCopy pairs and tried to boot the system at the DR site off of the replicated device. Unfortunately the /boot filesystem failed to mount, causing the boot process to fail and the root device to be mounted read-only. We were able to successfully mount the devices using "mount -o remount,rw" against the underlying non-multipathed devices, but could not get the system to configure a multipath device for root at boot.<br />
<br />
Frustratingly, even trying to force multipathd to create an entry for the root device failed. Eventually we discovered that initrd includes a multipath configuration file (etc/multipath.conf) and that it blacklists everything except the root device. More specifically everything except the root device's wwid. Here's an example from a VirtualBox Guest:<br />
<br />
<br />
<script src="https://gist.github.com/3322144.js"> </script>
I plan to go into more detail on wwids in a future post, but for now it's enough to note that they are (typically) derived from a combination of the array's serial number and the LUN number (LDEV in HDS speak). Since we are replicating to a different array the wwid doesn't match and as a result the root device at the DR site is blacklisted. <br />
<br />
The fix was to extract initrd at the primary site, update multipath.conf to include the wwids for both sites and then recreate initrd.<br />
<br />
<i> NOTE: This was originally observed on RHEL 5.6. The listing above was taken from a CentOS 6 box, which uses initramfs instead of initrd, but the issue (and fix) are the same. </i>chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-71083040355721904022012-06-12T08:51:00.000-07:002013-12-19T13:57:40.033-08:00Marcel the Constitutional Sales EngineerRecently a storage vendor boasted that they could provide "1.08PB of raw capacity." Is it really 1PB?! I know most (if not all) of us understand what’s going on; this post is mainly to reinforce the “reality delta” that exists between what a disk vendor sells and what the computer actually uses. I wrote it mainly because this vendor’s claim struck me as so brazen.<a name='more'></a><div>
<span style="font-family: Georgia,serif;"><br /></span></div>
I call this “Disk Vendors Lie” or “Actual Formatted Capacity May Be Less (Snicker)”:<br /><ul>
<li>Disk vendors quote disk capacities in base-10 numbers; a drive advertised as “3TB” can store roughly 3,000,000,000,000 bytes of data. </li>
<li>Computer address memory and disk in base-2 addresses, so 1KB is actually 1024 bytes and 3TB is actually 3,298,534,883,328 bytes. </li>
<li>RAID formatting trades data storage capacity for the ability to recover data when a drive fails. </li>
<li>File system formatting uses a portion of (possibly) RAID protected storage capacity to store information about files (file names, disk locations, access times, permissions, etc). </li>
</ul>
By the math, what the disk vendor sells as a 3TB drive in actuality stores only 2.73TB of data. While that’s “only” 278GB less than the advertised capacity, that’s the equivalent usable capacity of a “300GB” drive. Over 15 trays of 24 disks (360 drives), the advertised 1.08PB drops to 983TB—a difference of 123TB! Note that this difference is due only to number conversion from base-10 to base-2; no formatting has taken place. Basically, drive manufacturers quote imaginary numbers and attribute the loss to "formatting" which hasn't even happened yet.<br /><br />From this point we trade usable capacity for various things like resiliency (RAID) and simplicity of management (file systems)—the only things that actually qualify as formatting.<br /><br />Disk drives will fail, and so some form of RAID is used to protect the data. If the above 360 drives are formatted in RAID6 (a best practice for 3TB SATA drives)—let’s say 8D+2P—the usable capacity of the storage arrays is “only” 786TB (2.73TB/drive * 8 data drives * 36 RAID groups), a whopping 317TB off of the advertised RAW capacity of 1.08PB. (And by the way, that was calculated with no spare drives configured, a definite No-No).<br /><br />317TB is enough SAN capacity for a good size enterprise—production and development. That’s outside the pale for a rounding error.<br /><br />The problem only gets worse as we talk larger and larger capacities. Here’s a table I put together to illustrate the difference between base-2 and base-10 in terms of storage capacity:<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184;"> <tbody>
<tr style="height: 12.75pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td nowrap="nowrap" style="border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
Capacity<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-left: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
Computer<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-left: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
Salesman<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-left: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
Difference<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-left: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"></td> </tr>
<tr style="height: 12.75pt; mso-yfti-irow: 1;"> <td nowrap="nowrap" style="border-top: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
1KB<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
1,024 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
1,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
2.3%<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"><div class="MsoNormal">
24 bytes<o:p></o:p></div>
</td> </tr>
<tr style="height: 12.75pt; mso-yfti-irow: 2;"> <td nowrap="nowrap" style="border-top: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
1MB<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
1,048,576 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
1,000,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
4.6%<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"><div class="MsoNormal">
47 KB<o:p></o:p></div>
</td> </tr>
<tr style="height: 12.75pt; mso-yfti-irow: 3;"> <td nowrap="nowrap" style="border-top: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
1GB<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
1,073,741,824 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
1,000,000,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
6.9%<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"><div class="MsoNormal">
70 MB<o:p></o:p></div>
</td> </tr>
<tr style="height: 12.75pt; mso-yfti-irow: 4;"> <td nowrap="nowrap" style="border-top: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
1TB<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
1,099,511,627,776 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
1,000,000,000,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
9.1%<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"><div class="MsoNormal">
93 GB<o:p></o:p></div>
</td> </tr>
<tr style="height: 12.75pt; mso-yfti-irow: 5;"> <td nowrap="nowrap" style="border-top: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
1PB<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
1,125,899,906,842,620 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
1,000,000,000,000,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
11.2%<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"><div class="MsoNormal">
115 TB<o:p></o:p></div>
</td> </tr>
<tr style="height: 12.75pt; mso-yfti-irow: 6; mso-yfti-lastrow: yes;"> <td nowrap="nowrap" style="border-top: none; border: solid windowtext 1.0pt; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;" valign="top" width="64"><div class="MsoNormal">
1EB<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 158.6pt;" valign="top" width="211"><div align="right" class="MsoNormal" style="text-align: right;">
1,152,921,504,606,850,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.0in;" valign="top" width="192"><div align="right" class="MsoNormal" style="text-align: right;">
1,000,000,000,000,000,000 <o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.4pt;" valign="top" width="79"><div class="MsoNormal">
13.3%<o:p></o:p></div>
</td> <td nowrap="nowrap" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.6pt;" valign="top" width="113"><div class="MsoNormal">
136 PB<o:p></o:p></div>
</td> </tr>
</tbody></table>
</div>
<div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
<br /></div>
<br />To make matters worse, in 1998 the <a href="http://physics.nist.gov/cuu/Units/binary.html">EIC attempted to unilaterally redefine</a> the terms kilobyte, megabyte, etc. to use base-10, coining obnoxious terms for base-2 numbers which understandably nobody uses. While I applaud the effort to standardize, such slow adoption in 14 years is evidence they made the wrong choice and muddied the water. I don't get the impression the IEC was too concerned about how capacity was measured "once upon a time," only that SI prefixes were changed, so it probably went something like <a href="http://www.youtube.com/watch?v=dOOTKA0aGI0">this</a> ("I am your king"... "I didn't vote for you"... "You don't vote for kings."...). A computer will only ever consume space in powers of two until someone figures out how to bring <a href="http://en.wikipedia.org/wiki/Quantum_computer">quantum computing</a> to the mainstream. Until then you'll have to pry my base-2 kilobytes out of my cold, dead fingers. "Help, help! I'm being repressed!"<br /><br />As sales engineers, it’s our responsibility to ensure we’re properly assessing customer need and architecting to meet those needs. In my experience, quoting capacities in base-2 numbers is the easiest way to communicate in a manner most likely to meet customer expectations. My personal preference is to quote usable RAID formatted capacity (ie, “13.3TB RAID5 usable”) to call out the difference from “raw” storage bids.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-68775416059629643882012-01-05T06:31:00.000-08:002013-12-19T13:59:37.679-08:00HDS Hitachi Content Platform HCPBack in 2007, HDS purchased a small software company named Archivas. Archivas was formed by some ex-EMC folks. They set out to create a product that was better than EMC's Centerra archive platform. The product became known as the HDS HCAP platform after the HDS acquisition. It was specifically designed to be an archive platform for fixed content. It answered the need to comply with recent regulations requiring certain industries to retain immutable copies of their data. The HCAP platform provided client access via standard network attached file system APIs such as CIFS and NFS.<a name='more'></a><br /><div>
HDS realized that the market desired more than just a strict compliance platform. Decreasing storage cost in the SATA and nearline disk technologies provided the cost justification for organizations to utilize online archive/repositories rather than cutting tapes. With the maturation of virtualization technology, why purchase multiple silos or platforms. Hence, HDS removed the "A" from HCAP and created HCP. <br /> <br />HCP can still provide the strict compliance archive functionality of its predecessor, but the new version adds the capability to have virtual entities for sharing the platform across business units, groups and even allows for service provisioning. The virtual entities are comprised of two levels: Tenants and Name Spaces. The Tenants provide an administration domain for its Name Spaces and the Name Spaces provide data space for authenticated users. <br /> <br />The supreme user for the platform is the Service Console Administrator which manages physical attributes of the platform and creates Tenants. Upon Tenant creation, an Admin user is specified along with a quota of storage space. From there, the administrator for the tenant can create Name Spaces with quotas carved from the Tenant quota. The Tenant administrator manages Data Access Accounts which are used to authenticate users for file manipulation in the name space. The Data Access Accounts are the actual end user accounts for storing and retrieving data from the Name Space. Quotas and access rights are inherited from the parent and can be reduced by the administrator at each level. So each administration level can tweak the permissions that it allows for its children. Note the Service Console Administrator does not have access to data in the Name Spaces, so security is maintained within a Tenant.<br /> <br />Two different operating modes are available for Tenants. They can be run in a strict Compliance mode or the default Enterprise mode. Compliance mode offers similar functionality to the original HCAP. The Enterprise mode offers more flexibility in a repository type implementation. In Enterprise mode a "Privileged Delete" function can be passed down to allow a Tenant Administrator to delete files that are under retention. All activities are recorded and the privileged delete function requires that a description of the activity be entered into the log. And on that note, the log is never truncated or deleted. So a permanent record exists for all administrative activities. <br /> <br />In order for HDS to provide the virtual functionality, they had to make a tradeoff on the APIs that would be available. Traditional CIFS and NFS access are provided for the "Default Name Space," which mimics the initial HCAP implementation. As for the Tenant name spaces, access is limited to the REST API interface via HTTP or HTTPS. REST (Representational State Transfer) is a software architecture that defines communications between clients and servers via HTTP(S). HDS provides a few utilities with the platform that can migrate and copy data to HCP via the REST interface. Otherwise, you need an application that can communicate with HCP. Many popular backup and archive packages support communication with HCP. In addition, HDS provides a product named Hitachi Data Ingestor (HDI) which provides a traditional CIFS/NFS interface, but communicates to the HCP via HTTPS/REST. The HDI appliance serves as a cache and can be used for remote site to central site archiving. <br /> <br />So how does HCP store data and ensure its integrity? In general, two types of HCP appliances are available: HCP300 & HCP500. Each utilizes Hitachi's CR220 – 2U rackmount server. The HCP300 uses the internal drive bays on the server for the repository data and appliance boot. In contrast, the HCP500 has no internal disks and uses a Hitachi disk array for both boot and data repository storage. The HCP500 Appliance version comes with an AMS2000 series array and the diskless version relies on customer provided Hitachi storage. Of course, the HCP500 is a little more cumbersome to setup, but provides more scaling and flexibility. Both versions checksum the data and keep two copies of the checksum. In the event of a disagreement, the data or checksum are repaired if possible. In replication configurations (one HCP replicates to another local or remote) corrupt data blocks can be recovered/repaired from the remote HCP system.<br /> <br />In order to locate and manage data, HCP provides a search function via Search Nodes. Search Nodes can be added to the cluster as necessary to increase search index scalability. The search function allows a Data Access Account user with search permission to locate files using a variety of metadata attributes and perform subsequent operations on the search set.<br /> <br />As for scaling, the HCP300 scales horizontally by adding nodes, whereas, the HCP500 can scale by adding nodes or mapping additional storage to existing nodes. The HCP300 requires that two copies of all data be stored, whereas, the HCP500 requires only one copy due to RAID technology in the AMS2000 array. Up to four copies of data can be stored depending on user requirements. Both configurations are configured as "clusters." Failure of a single node in either configuration will allow continued data access. Even failure of multiple nodes without loss of data access is possible, unless it is the wrong two nodes. In the HCP300 most likely some data will be inaccessible for a multiple node failure situation. Unaffected data will remain available. In the case of the HCP500, multiple node failures can bring the entire HCP "cluster" down due to loss of quorum. It depends on the number of nodes in the configuration.<br /> <br />So, what about the CLOUD? As discussed previously, the HCP300 or HCP500 can provide a central repository for remote locations utilizing HDI as a gateway. In addition to being just a gateway, the Hitachi HDI appliance provides local caching, compression and encryption. When we put all the pieces together, we have an internal storage cloud that is secure, searchable and maintains necessary compliance attributes.<br /> </div>
stevekhttp://www.blogger.com/profile/07308754104687537983noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-15448188469515201002011-10-28T09:00:00.000-07:002013-12-19T14:05:37.743-08:00Storage MBps Performance ConceptsWe recently had a reader post a question about the other aspect of storage performance – MBps. In most cases my clients are concerned with IOPS more so than transfer rate so it doesn’t come up that often. When it does it normally gets back to economics, applications such as streaming video, audio or even backups tend to be sequential and require a lot of capacity. As with IOPS the higher RPM drives tend to outperform the lower RPM drives but the difference in not nearly as substantial as it is with IOPS.<br />
<a name='more'></a><br />
Here are some data transfer performance numbers of a few modern disk drives. I’m using Seagate drives as a reference point simply because their website is user friendly. Note that this information is not listed directly on the website but it can be found in the product manual that you can download once you click on the specifications tab. Be aware that each manual includes the internal data rate as well as the sustained data rate. The internal data rate is often called the burst rate and represents the rate to / from the buffer cache on the drive. The sustained rate represents the actual transfer rates from the drive media itself. The sustained transfer rate is the number you should be focusing on.<br />
<br />
Seagate specifies the internal data rate numbers on their 15K and 10K drives in Gbps while their 7200RPM drives are listed in MBps. I’ve listed them all in Megabytes per second to make it easier to understand.<br />
<br />
<h3>
Cheetah 15K.7 SAS 6-Gb/s 600-GB Hard Drive Model # ST3600057SS</h3>
<div>
<ul>
<li>Internal data rate (Burst Rate) 190 -303MB/s</li>
<li>Sustained Transfer Rate 122 – 204 MB/s</li>
<li>Areal Density 225 Gbits/inch2</li>
</ul>
<br />
<h3>
Cheetah NS.2 SAS 6-GB/s 600-GB Hard Drive Model # ST3600002SS (10K RPM)</h3>
<ul>
<li>Internal data rate (Burst Rate) 129.28 – 235.52MB/s</li>
<li>Sustained Transfer Rate 82 – 150 MB/s</li>
<li>Areal Density 225 Gbits/inch2 </li>
</ul>
<br />
<h3>
Seagate® Constellation® ES.2 SAS 6Gb/s 3-TB Hard Drive Model # ST33000650SS (7200 RPM)</h3>
<ul>
<li>Internal data rate (Burst Rate) 113 to 239 MB/s</li>
<li>Sustained Transfer Rate Sustained Transfer Rate 82 – 150 MB/s</li>
<li>Areal density 444Gb/in2 </li>
</ul>
<br />
<h4>
A couple of things to note:</h4>
<ol>
<li>The 15K and 10K drives listed above are identical with the exception of RPMs. The RPMs on the 15K drive make it outperform the 10K drive. This is as expected. </li>
<li>What may be surprising is that the sustained transfer rates of the 10K drive and the 7200 RPM drive are identical. How can that be? The answer is that the 7200 RPM in this example has a higher recording density, or more correctly, areal density. Areal density describes how many tracks are on a platter and how many sectors are on each track. The number of tracks isn’t relevant to performance but the number of sectors per tracks is. Since the data is more tightly packed on the 7200 RPM drive it reads more sectors, per rotation than the 10K drive and therefore evens out the total transfer rates. By contrast the 15K drive operates at over twice the speed of the 7200 RPM drive and is able to maintain its performance advantage even with a smaller areal density.</li>
<li>The third element to consider is which tracks are being accessed during the IO. Outer tracks provide the highest performance and performance declines as you move towards the center of the drive.</li>
<li>The outer tracks contain more sectors than the innermost tracks. This concept is referred to zone bit recording, where the drive is divided into zones and each zone has X number of tracks with Y number of sectors per track. The results it that in a single rotation you can read more data from an outer track. To read the equivalent amount of data from the center of the drive would require accessing multiple tracks and you would experience the performance penalty associated with the extra read / write head positioning. </li>
</ol>
This is why the sustained transfer rates are always provided in a range, because it depends on which tracks are involved in the IO.<br />
<br />
So that’s the logic behind it, as for the math, you would need to look at the RPM of the drive and the sectors per track, which as we mentioned would vary depending on the zone. Here is an example using the Seagate 15K.7 drive listed above. <br />
<br />
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8cWRRJvtsAefARtsqgc5bLUDUzAUsYYXbgd9ggtbzI_cymmcU2As0aji2Usu0Gz5Ssq7jcXr-dI0U4wR1S8iar2noKCoaA2jea-jE3HaYtXfBfLVOvXBSyI92bDwYQkrtfMnAcNZwZZS/s320/MBps+Chart.png" style="float: right;" />Keep in mind that it is not always easy to find documentation that will provide the zoning information that will allow you to do this exercise. From a practical standpoint I deploy storage for a living and I’ve never had the occasion to calculate the MBps for a drive since the manufacturer provides this number as long as you know where to look, meaning the sustained transfer rate rather than the internal transfer rate. That being said I personally found this to be a very interesting exercise. When I first started writing these performance entries I envisioned a few simple posts that would cover the most common scenarios and questions we were asked. As more questions came in there always seemed to be another area to explore. As an example, from a practical standpoint I work with arrays not individual disk drives and I know that most storage arrays do not provide the type of MBps performance you would expect if you simply added up the capabilities of each drive in the array. This is a given and frankly I’ve never spent much time trying to determine why this is. I know some things that impact it and I have some suspicions but I’ve never satisfied the question in my mind. As organizations begin to shift from tape to disk based backups the MBps capabilities of an array will become more important. I guess I need to look into that question as well.<br />
<div>
</div>
</div>
Terry Mhttp://www.blogger.com/profile/18368896550741168548noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-59845979687103550592011-10-24T08:58:00.000-07:002013-12-19T14:06:33.938-08:00Cisco MDS switch interoperability with Brocade Access Gateway and Qlogic AdaptersDuring a recent SAN switch migration from McData directors to Cisco MDS 9509 switches, I came across two interoperability issues. The first issue involves certain Qlogic adapters connected to the Cisco MDS switches where the area portion of the Fiber Channel ID (FCID) is the same for the initiator and target. The second issue has to do with internal routing in the Brocade 4Gb switches running in "Access Gateway" mode. In my case the Brocades were embedded in blade chassis, but they could be stand alone. Note, the 8Gb version of the Brocade switches did not exhibit the routing issue.<br />
<a name='more'></a><br />
<br />Common to both issues are particular FCID combinations. The FCID is comprised of 3 bytes, 0xDDAAPP, where the letters stand for Domain, Area and Port numbers. The domain portion is unique between switches or VSANs in a fabric, but the same for all ports on a particular switch or VSAN. The area and port numbers are generated by the switch for each WWPN that logs into the switch. Each area can have 256 ports. Cisco begins with area 00 and sequentially assigns port numbers. <br /> <br />The first problem occurs with particular Qlogic adapters if the area portion is the same for the HBA and a zoned target. In this case, the adapter will not recognize the target. Cisco rectifies this issue by assigning a unique area for all Qlogic adapters that exhibit this issue. In our case, the WWPN begins with 21:00:00:1b:32… Each manufacturer device that is identified in the switches Organizationally Unique Identifier (OUI) table will be allocated a unique area for each WWPN. Each of the affected Qlogic adapters receives a unique area and the port number 0x00. So the area will never be the same as the target, but the port number portion will always be 0x00, which leads to the second issue.<br /> <br />First, the 4Gb Brocade switches in Access Gateway mode will not route to a WWPN with the port portion of the FCID being 0x00. Second it will not route to two or more ports with the same port number on the same switch. So Cisco's solution to the first issue is not compatible with routing on these switches. Brocade outlines 4 work arounds for the combined issue. Each recommendation depends on your configuration. The first two options are only available if you don't and will not have target devices connected to the Cisco MDS switch in question. If this is the case, you can undo Cisco's fix by deleting specific entries from the OUI table or putting the switch in flat-fcid allocation mode, which essentially ignores the table. It is probably best to avoid these two work a rounds in order to prevent future problems. <br /> <br />The third option is to basically swap the OUI entries of HBAs and targets. In other words, remove the HBA OUI IDs and add the target device OUI IDs. The HBAs will get sequential port numbers in the same area and the target devices will get unique area IDs resolving both issues. The overall problem with this solution is that the devices need to be connected after the OUI table manipulation. Devices connected before the table update will already have FCIDs assigned. If persistent FCID allocation is enabled, the FCIDs will not change without disconnecting the WWPN and manually deleting them. Otherwise, the VSAN needs to be restarted. <br /> <br />The last option is the option that we chose to implement. Basically, we manually assigned FCIDs to each of the affected HBAs connected via the Brocade switches in Access Gateway mode. We kept track of manually assigned FCIDs in a spreadsheet to ensure that no port numbers were duplicated on a switch. Actually, the switch will not allow you to assign duplicate FCIDs. An FCID is allocated the first time the HBA logs into the switch. The static FCID assignment can be performed in advance if the WWPNs for each HBA are known prior to connection. Otherwise, the host needs to be shutdown so that the FCID can be deleted and the static assignment performed. In my case, after the hosts were shutdown, I had to shut/no shut the interface to release the FCID. Prior, we did verify multipathing on other hosts accessing storage via the same FC port.<br /> <br />In the example below, first I list the free and allocated FCIDs in the VSAN in order to choose a range to assign. Next I check the FCIDs in use on the port that my Qlogic HBA is connected. If they are all the affected Qlogic HBAs, I can tell if they are in use by whether the FCID has been manually assigned. Otherwise, I need to consult the active zoneset. If another server is actively using SAN storage, I check the multipath software on that server. Now, I check to see if the initiator is logged into the switch. In my example, it is not logged in. Next, I proceed to shut the port as if the FCID was in use. Finally, I can delete the existing FCID and add a new one. Afterward, I bring the port back up, verify the new FCID and save the configuration. At this point, I am free to move onto creating aliases and zoning.<span xmlns=""><span style="font-family: 'Courier New';">sh fcdomain address-allocation vsan 5<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Free FCIDs: 0xc90028 to 0xc9002a<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90066 to 0xc900e3<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc900e5 to 0xc900ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc900f0 to 0xc900ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90200 to 0xc902e3<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc902e5 to 0xc902ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc902f0 to 0xc903ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc903f0 to 0xc904ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc904f0 to 0xc905ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc905f0 to 0xc905ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90e00 to 0xc90e01<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90e03 to 0xc90eee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90ef0 to 0xc90eff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91400 to 0xc914ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc914f0 to 0xc915ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc915f0 to 0xc916ee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc916f0 to 0xc919ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91d00 to 0xc91dee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91df0 to 0xc91eee<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91ef0 to 0xc92000<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92002<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc9201c to 0xc920ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92800 to 0xc929ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92b00 to 0xc92bff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92d00 to 0xc92eff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93000 to 0xc930ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93a00 to 0xc93aff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93c00 to 0xc93cff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93f00 to 0xc93fff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc94400 to 0xc944ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc94b00 to 0xc9fffe<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Assigned FCIDs: 0xc90000 to 0xc90027<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc9002b to 0xc90065<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc900e4<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc900ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90100 to 0xc901ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc902e4<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc902ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc903ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc904ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc905ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90600 to 0xc90dff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90e02<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90eef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc90f00 to 0xc913ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc914ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc915ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc916ef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91a00 to 0xc91cff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91def<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc91eef<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92001<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92003 to 0xc9201b<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92100 to 0xc927ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92a00 to 0xc92aff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92c00 to 0xc92cff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc92f00 to 0xc92fff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93100 to 0xc939ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93b00 to 0xc93bff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc93d00 to 0xc93eff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc94000 to 0xc943ff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc94500 to 0xc94aff<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 0xc9ffff<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Reserved FCIDs: 0xc9ffff<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Number of free FCIDs: 52852<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Number of assigned FCIDs: 12684<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Number of reserved FCIDs: 1<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS# show flogi database interface fc1/3<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">--------------------------------------------------------------------------------<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">INTERFACE VSAN FCID PORT NAME NODE NAME<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">--------------------------------------------------------------------------------<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">fc1/3 5 0xc90100 21:00:00:1b:32:06:f8:e7 20:00:00:1b:32:06:f8:e7<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">fc1/3 5 0xc92c00 21:00:00:1b:32:94:99:da 20:00:00:1b:32:94:99:da<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Total number of flogi = 2.<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS# show fcdomain fcid persistent unused vsan 5<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Total entries 1.<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Persistent FCIDs table contents:<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">VSAN WWN FCID Mask Used Assignment<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">---- ----------------------- -------- ----------- ---- ----------<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 5 21:00:00:1b:32:06:f8:e7 0xc90100 ENTIRE AREA NO DYNAMIC<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS# conf t<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS(config)# interface fc1/3<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS(config-if)# shut<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS</span><br />
<span style="font-family: 'Courier New';">(config-fcid-db)# fcdomain fcid database<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS</span><br />
<span style="font-family: 'Courier New';">(config-fcid-db)# no vsan 5 wwn 21:00:00:1b:32:06:f8:e7 fcid 0xc90100<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS</span><br />
<span style="font-family: 'Courier New';">(config-fcid-db)# vsan 5 wwn 21:00:00:1b:32:06:f8:e7 fcid 0xc92002<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS</span><br />
<span style="font-family: 'Courier New';">(config-fcid-db)# interface fc1/3<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS(config-if)# no shut<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS(config-if)# exit<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS(config)# exit<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS# show fcdomain fcid persistent vsan 5<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Total entries 188.<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Persistent FCIDs table contents:<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">VSAN WWN FCID Mask Used Assignment<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">---- ----------------------- -------- ----------- ---- ----------<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> …<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> 5 21:00:00:1b:32:06:f8:e7 0xc92002 SINGLE FCID YES STATIC<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"> …<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS# show flogi database interface fc1/3<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">--------------------------------------------------------------------------------<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">INTERFACE VSAN FCID PORT NAME NODE NAME<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">--------------------------------------------------------------------------------<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">fc1/3 5 0xc92002 21:00:00:1b:32:06:f8:e7 20:00:00:1b:32:06:f8:e7<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">fc1/3 5 0xc92c00 21:00:00:1b:32:94:99:da 20:00:00:1b:32:94:99:da<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';">Total number of flogi = 2.<br />
</span></span><br />
<span xmlns=""><br />
</span><br />
<span xmlns=""><span style="font-family: 'Courier New';">MDS# copy running-config startup-config<br />
</span></span><br />
<span xmlns=""><span style="font-family: 'Courier New';"><br />
</span> </span>stevekhttp://www.blogger.com/profile/07308754104687537983noreply@blogger.com2tag:blogger.com,1999:blog-4755664707565425900.post-54211087939457137002011-09-19T10:45:00.000-07:002013-12-19T14:14:01.053-08:00Recovering an NTFS Boot Sector in Symantec Storage Foundation for WindowsOne evening, I received a call from a customer who ran into an issue with Storage Foundation for Windows. They ran into a SFW bug while trying to shrink volumes for a disk space recovery project. FYI, unlike UNIX, SF volumes in Windows need to be offline before shrinking the volume. Long story short, the shrink process ended up corrupting the NTFS boot record on a 1.3TB volume. Even though the vxprint output showed the volumes ENABLED and ACTIVE with the correct volume boundaries, the volume showed up RAW, not NTFS from both VEA console and DISKPART.<br />
<a name='more'></a><br />
<br />
From the UNIX perspective, this would have been no big deal. Running a vxmksdpart would recreate the partition table. This process is not as easy with Windows. You need to locate the backup NTFS boot sector which is located at the end of the volume and copy it over the corrupted one. You then run an fsck of the file system (which can take FOR-E-VER!!), cross your fingers and pray. I emphasize that this is a LAST RESORT measure before recovering from backups. There is NO, I repeat, NO GUARANTEE that you will be free from data corruption. But, if you’re going to have to rebuild the file system and recover the data from tape/disk, you might as well give it a shot. As in my customer’s case, they were fortunate enough to recover the volume on the first try. When this issue appeared again, they ended up losing ACL’s to all files in the volume. However, recovery of the ACLs was still much faster recovering all the data!<br />
<br />
Here’s the detailed steps on the process of recovering the NTFS boot sector. I used the vxtool from Symantec to locate the backup boot sector and to perform the recovery. This tool can be downloaded from ftp://ftp.veritas.com/pub/support/vmtools. <br />
<br />
<h3>
1) Determine the location of the backup NTFS boot sector.</h3>
<br />
<h4>
a) Make a note of the harddisk number that contains the RAW volume.</h4>
<br />
<div class="MsoNormal" style="margin-left: .75in; mso-list: l1 level1 lfo1; text-align: justify; text-indent: -.25in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyeLWCNYdaR0T9owVN_YHhn1PNLW61TIfv7tq20jpGA_RIfGd1Hg3AMwhjoDvciq3XalnBovwz2eoA_FonV5PkahY0sKUNacuaX0m1Dd8wzVfmckV-vsDgJnlkISFBWvnV_AtHK34ps5Kx/s1600/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5621846394957315714" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyeLWCNYdaR0T9owVN_YHhn1PNLW61TIfv7tq20jpGA_RIfGd1Hg3AMwhjoDvciq3XalnBovwz2eoA_FonV5PkahY0sKUNacuaX0m1Dd8wzVfmckV-vsDgJnlkISFBWvnV_AtHK34ps5Kx/s400/1.jpg" style="display: block; height: 89px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /></a></div>
<br /><br /><h4>
b) In VEA, select the volume with the corrupt NTFS boot sector. In the right panel, select the Subdisks, tab. Highlight the affected subdisk, right-click and select “Properties”. Note the size of the volume in sectors and disk offset.</h4>
<br /><div align="center" class="MsoNormal" style="margin-left: 0.75in; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT7cMnHez7Xoe6ABwgaCokGrjMKYlYbWyqLVhPnp0Nzpvcnn_KIOl5WJ-_fYb5mR2g1u9kOQdtbixrkymu_4XWkSNmsPEj6mfUqN9r57l5NhA0jTGl7VArMVvCarPFlRZm6uliXJ0fKEe3/s1600/2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5621846190787621202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT7cMnHez7Xoe6ABwgaCokGrjMKYlYbWyqLVhPnp0Nzpvcnn_KIOl5WJ-_fYb5mR2g1u9kOQdtbixrkymu_4XWkSNmsPEj6mfUqN9r57l5NhA0jTGl7VArMVvCarPFlRZm6uliXJ0fKEe3/s400/2.jpg" style="cursor: pointer; display: block; height: 99px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 400px;" /></a><br />
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-left: .75in; mso-layout-grid-align: none; text-autospace: none;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-left: .75in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Trebuchet MS', sans-serif; font-size: 12pt;"><o:p> </o:p></span></div>
<br /><h4>
c) Jot down the Size and Disk offset.</h4>
<br /><div align="center" class="MsoNormal" style="margin-left: 0.75in; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_WT8S4HYxPWU5mfGgAdjXveOwR8qXSAD6ckkRjjnOyahhuqzL29LyHkW1mttsjd8UeEhoh3W_F1VDAIrzH2uD_frJulHM-M0DxAM3iNPGtu5qXlz_1USD9W8GfmXAhryUVJs4IyebK9f/s1600/3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5621846555577548962" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_WT8S4HYxPWU5mfGgAdjXveOwR8qXSAD6ckkRjjnOyahhuqzL29LyHkW1mttsjd8UeEhoh3W_F1VDAIrzH2uD_frJulHM-M0DxAM3iNPGtu5qXlz_1USD9W8GfmXAhryUVJs4IyebK9f/s400/3.jpg" style="cursor: pointer; display: block; height: 400px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 360px;" /></a></div>
<div>
<br /></div>
<div class="MsoNormal" style="margin-left: .75in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Trebuchet MS', sans-serif; font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></b></div>
<h4>
d) Add the size in sectors to the disk offset in sectors minus 1. This is the location of the backup boot sector.</h4>
<div class="MsoNormal" style="margin-left: .75in; text-indent: .25in;">
<span style="font-family: 'Courier New'; font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; text-indent: .25in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">Size=409600 Disk offset=65570<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; text-indent: .25in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">Backup boot sector = 409600 + 65570 – 1 = 475169</span><span style="font-family: 'Courier New'; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Trebuchet MS', sans-serif; font-size: 12pt; line-height: 115%;"> <o:p></o:p></span></div>
<div>
<br /></div>
<h3>
2) From a command window, use the vxtool utility to scan the range near the end of the problem volume.</h3>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">Hard disk size (sectors) = 10485760<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Courier New'; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="line-height: normal; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt;">Command:</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> vxtool disk sectorscan harddisk<#> <startoffset> <endoffset> <o:p></o:p></endoffset></startoffset></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">From a command window:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">vxtool disk sectorscan harddisk1 0 10485760<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> <o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-indent: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">Output:<o:p></o:p></span></b></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<o:p> </o:p></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8iaKPRWOFmIvSyhTQpl6lorqXLwcZxkM0-xE5pRmo5556M-tUjpbZirhpUatvT3YjmbwvtgzSrmCqrNq64M7eSrUsAbQQDNcFTRJl0mJwEHOlKVn9GrvlYdScSQovPEdW1W-N09fhNpCb/s1600/4.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5621846705881224402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8iaKPRWOFmIvSyhTQpl6lorqXLwcZxkM0-xE5pRmo5556M-tUjpbZirhpUatvT3YjmbwvtgzSrmCqrNq64M7eSrUsAbQQDNcFTRJl0mJwEHOlKVn9GrvlYdScSQovPEdW1W-N09fhNpCb/s400/4.jpg" style="cursor: pointer; display: block; height: 151px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /></a></div>
<div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><o:p> </o:p></span></div>
The Disk Offset number (65570) is the location of the original NTFS boot sector. The backup NTFS boot sector is the number calculated from Step 1d). Verify that this block is noted as “magic NTFS”.<br /><br /><br /> <h3>
3) Now, to restore the corrupted NTFS boot sector using the backup copy using the vxtool utility. The source and target disks may be different if the volume spans multiple disks.</h3>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Trebuchet MS', sans-serif; font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="line-height: normal; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt;">Command:</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-left: .5in; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;">
<span style="font-family: 'Courier New'; font-size: 10pt;">vxtool disk copyblock <i style="mso-bidi-font-style: normal;">sourcedisk offset targetdisk offset block </i></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">Example: <o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">vxtool disk copyblock harddisk1 65570 harddisk1 475169 1<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><o:p> </o:p></span></b></div>
<h3>
4) Perform a rescan from VEA and DISKPART.</h3>
<div class="MsoNormal" style="margin-left: .5in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgexD6iMfhTKF21mdxqqy0QodeYqmHtXjzARs6EUFN0oAfyTqZ9FN951YDNzVBgIag4dt5m0iPlWS8qyB4_IZNgnmofFfcD5akZkOTuoo4c3hSoNe_FA-BKQV3ist39BKYXt3euY3cVSAGq/s1600/5.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5621846878172067010" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgexD6iMfhTKF21mdxqqy0QodeYqmHtXjzARs6EUFN0oAfyTqZ9FN951YDNzVBgIag4dt5m0iPlWS8qyB4_IZNgnmofFfcD5akZkOTuoo4c3hSoNe_FA-BKQV3ist39BKYXt3euY3cVSAGq/s400/5.jpg" style="cursor: pointer; display: block; height: 221px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /></a></div>
<div>
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh99VKYJ0CafdAwo2h2z1ZkIX6vVrMsJ2ksyqa2PtYxr-1zFQ0PMqHKn2kAlardTET5gfhQGYSShgmAO76moE7fIrRcDSD7eJ0FWa7hd3FoQV-Vm5m3D0yj9pf2NsvW1IWFPkFIgcvSg6qw/s1600/6.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5621847001750121650" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh99VKYJ0CafdAwo2h2z1ZkIX6vVrMsJ2ksyqa2PtYxr-1zFQ0PMqHKn2kAlardTET5gfhQGYSShgmAO76moE7fIrRcDSD7eJ0FWa7hd3FoQV-Vm5m3D0yj9pf2NsvW1IWFPkFIgcvSg6qw/s400/6.jpg" style="cursor: pointer; display: block; height: 99px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /></a></div>
<div>
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: 'Trebuchet MS', sans-serif; font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></div>
<br /><br />The volume should show up as an NTFS volume. Cross your fingers and run a chkdsk to ensure file system data integrity.<br /><br /> <br />Here are some reference articles from Symantec that addresses the data corruption issues with volume shrinks. A patch has now been provided as of 06/01/2011.<br /><br /><br /><b>Tech Alert</b><a href="http://www.symantec.com/docs/AL1130">http://www.symantec.com/docs/AL1130</a><br /><br /><br /><b>Tech Article</b> <a href="http://www.symantec.com/docs/TECH160393">http://www.symantec.com/docs/TECH160393</a> <br /><br /><br /><b>Patch</b><br /> <a href="https://sort.symantec.com/patch/detail/5022">https://sort.symantec.com/patch/detail/5022</a><div class="MsoNormal">
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif; line-height: 18px;"> </span><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif; line-height: 18px;"> </span></div>
Gennyhttp://www.blogger.com/profile/01679111905514290044noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-16301068953457619972011-09-12T09:00:00.000-07:002011-09-12T09:00:02.420-07:00Integrating DB2 Advanced Copy Services with NetApp Snapshots<span xmlns="">IBM provides integration with NetApp snapshots via their Advanced Copy Services (ACS). ACS is available for DB2 on release 9.5 and newer. ACS supports NAS or SAN attached NetApp subsystems when running under AIX. Only NAS attachment is supported under Linux. ACS allows the DBA to issue backup & restore directives from the DB2 environment without involving the storage administrator. These backup and restore directives manipulate snaphots for the appropriate volumes on the NetApp filer. One caveat to using ACS is the 2 snapshot (backup) limit if you do not own a full TSM license. A full TSM license can be very pricy. Due to the 2 snapshot limit, I decided to use a hybrid approach where ACS provides two daily backups for quick recovery in conjunction with the traditional file based backup for longer retention periods.<br />
<br />
Setup of ACS is fairly easy in either a Linux or AIX environment. ACS uses RSH to communicate with the NetApp filer, so the RSH service must be enabled on the filer (options rsh.enable on). The database server can be included in the /etc/hosts.equiv file on the filer so that a password is not needed. ACS is intelligent enough to correlate the database and log file systems/volume groups on the server to the corresponding volumes/LUNs on the filer.<br />
<br />
During testing under AIX, I found an issue with the setup.sh script where the acscim program caused the script to fail. The acscim module is used to communicate to IBM storage such as the DS series and requires supporting libraries that were not available on my system. I commented out the acscim check and the setup script completed normally. The setup script needs to be executed as root, but from the database instance user's home directory. The database instance user in the example below is db2int2.<br />
<br />
ACS is installed under the database instance user's home directory. Go into the ACS directory and edit the setup.sh script to comment out the acscim binary check. <br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# cd /home/db2int2/sqllib/acs<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# grep cim setup.sh <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"> checkbin ${INST_DIR}/acs/acscim<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"> enableSUID ${INST_DIR}/acs/acscim<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# vi setup.sh<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# grep cim setup.sh <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"># checkbin ${INST_DIR}/acs/acscim<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"> enableSUID ${INST_DIR}/acs/acscim<br />
</span><br />
Execute the setup.sh script to provide the necessary parameters to configure ACS. I chose defaults for most of the questions. The ACS_REPOSITORY needs to be set to desired directory path which will be created by the script. The COPYSERVICES_HARDWARE_TYPE is either NAS_NSERIES or SAN_NSERIES under AIX or NAS_NSERIES for Linux. <br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# pwd <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">/home/db2int2/sqllib/acs<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# ./setup.sh <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">checking /home/db2int2/sqllib/acs/acsnnas ... <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">OK<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">checking /home/db2int2/sqllib/acs/acsnsan ... <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">OK<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">Do you have a full TSM license to enable all features of TSM for ACS ?[y/n]<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">n<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">****** Profile parameters for section GLOBAL: ******<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">ACS_DIR [/home/db2int2/sqllib/acs ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">ACSD [57329 ] 57328<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">TRACE [NO ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">****** Profile parameters for section ACSD: ******<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">ACS_REPOSITORY [/home/db2int2/sqllib/acs/acsrepository ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">****** Profile parameters for section CLIENT: ******<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">TSM_BACKUP [NO ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">MAX_VERSIONS [2 ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">LVM_FREEZE_THAW [YES ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">DEVICE_CLASS [STANDARD ] <br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">****** Profile parameters for section STANDARD: ******<br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">COPYSERVICES_HARDWARE_TYPE [SAN_NSERIES] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">COPYSERVICES_PRIMARY_SERVERNAME [netappcntl1 ] <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">COPYSERVICES_USERNAME [root ] <br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">======================================================================<br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">The profile has beeen successfully created.<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">Do you want to continue by specifying passwords for the defined devices? [y/n]<br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">y<br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">Please specify the passwords for the following profile sections:<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">STANDARD<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">master<br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">Creating password file at /home/db2int2/sqllib/acs/shared/pwd.acsd.<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">A copy of this file needs to be available to all components that connect to acsd.<br />
</span><br />
<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">BKI1555I: Profile successfully created. Performing additional checks. Make sure to restart all ACS components to reload the profile.<br />
</span><br />
After setup is complete, check to see if the daemons are configured to start in /etc/inittab. Note: acsnnas is for NetApp NAS volumes and acsnsan is for NetApp SAN volumes. <span style="font-family: 'Courier New'; font-size: 9pt;"><br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# grep acs /etc/inittab<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">ac00:2345:respawn /home/db2int2sqllib/acs/acsd<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">ac00:2345:respawn /home/db2int2sqllib/acs/acsnnas –D<br />
</span><br />
<span style="font-size: 15pt;"> OR<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">ac00:2345:respawn /home/db2int2sqllib/acs/acsnsan –D<br />
</span><br />
<br />
<br />
Check to see if the daemons are running:<span style="font-family: 'Courier New'; font-size: 9pt;"><br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00# ps -ef | grep acs<br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"> root 12255442 6225980 0 16:25:07 pts/2 0:00 grep acs <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"> db2int2 12451872 1 0 16:24:50 - 0:00 /home/db2int2/sqllib/acs/acsd <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;"> db2int2 12451873 1 0 16:26:35 - 0:00 /home/db2int2/sqllib/acs/acsnsan -D <br />
</span><br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00#<br />
</span><br />
Now that ACS is configured, we can perform snapshot backups and restores. As the database instance user execute the following commands to take backups, list backups or restore the database. <br />
<br />
<br />
<br />
Execute the following to take an offline backup:<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00$ db2 backup db mydb use snapshot</span><br />
<br />
You can specify the "online" parameter to take an online backup of the database:<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00$ db2 backup db mydb online use snapshot<br />
</span><br />
To list the backups of the database as follows:<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00$ db2acsutil query<br />
</span><br />
To restore the latest backup:<br />
<br />
<span style="font-family: 'Courier New'; font-size: 9pt;">bash-3.00$ db2 restore db mydb use snapshot</span></span>stevekhttp://www.blogger.com/profile/07308754104687537983noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-3546902266326484122011-09-05T09:00:00.000-07:002011-09-05T09:00:02.251-07:00"Unfortunately this has not been documented very well." Fun with VERITAS Cluster Server<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">So Justin and I are wrapping up a large refresh project for a client where we're moving them from an existing configuration running Oracle on Sun 6800s with VCS over to new M5000s. As you'd expect this includes a migration to Solaris 10 as well as upgrades to VERITAS Volume Manager, File System, and NetBackup (that's Symantec Storage Foundation and NetBackup to some of you).</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">The application team went through their testing over the last month or so and we completed our VCS test matrix in preparation for cutover. During the cutover, though, we noticed the following message in the alert <sid>log:</sid></span><br />
<br />
<span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">WARNING:Oracle instance running on a system with low open file descriptor</span><br />
<span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"> limit. Tune your system to increase this limit to avoid</span><br />
<span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"> severe performance degradation.</span><br />
<div><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">Thinking that we'd missed a resource control setting somewhere we went through the process of validating those settings. Then, seeing that they looked correct, we asked the DBA to stop and restart the database manually only to find that the error message above didn't appear. Using VCS to stop and start the database would generate this error every time, though.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">We opened a case with Symantec and started to troubleshoot. Thankfully we found that in VCS 5.1 SP1 Symantec added a file called vcsenv that hardcodes limits for CPU time, core file size, data segment size, file size, and the number of open file descriptors before we ran out of window for the cutover.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">The location and contents of the file are shown below, including where we set the number of file descriptors to 8192.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span></div><div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">bash-3.00# cd /opt/VRTSvcs/bin</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">bash-3.00# more vcsenv</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># $Id: vcsenv,v 2.8 2010/09/30 05:45:29 ptyagi Exp $ #</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># $Copyrights: Copyright (c) 2010 Symantec Corporation.</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># All rights reserved.</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">#</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND TRADE SECRETS OF</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># SYMANTEC CORPORATION. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SYMANTEC CORPORATION.</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">#</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># The Licensed Software and Documentation are deemed to be commercial</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># computer software as defined in FAR 12.212 and subject to restricted</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># rights as defined in FAR Section 52.227-19 "Commercial Computer</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># Software - Restricted Rights" and DFARS 227.7202, "Rights in</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># Commercial Computer Software or Commercial Computer Software</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># Documentation", as applicable, and any successor regulations. Any use,</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># modification, reproduction release, performance, display or disclosure</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># of the Licensed Software and Documentation by the U.S. Government</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># shall be solely in accordance with the terms of this Agreement. $</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># This is just a sample as to how you can specify various environment</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># variables you need to set. Uncomment/add/modify the values as per</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># your requirement.</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">#</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># Specify the default language in which you want to bring up the</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># VCS agents.</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># LANG=C; export LANG</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">VCSHOME="${VCS_HOME:-/opt/VRTSvcs}"</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">#This is required for agents which use dynamic VCSAPI libraries</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">LD_LIBRARY_PATH="$VCSHOME/lib:$LD_LIBRARY_PATH"</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">export LD_LIBRARY_PATH</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># Setting ulimit.</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"># Common For Linux, HP-UX, SunOS & AIX</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">ulimit -t unlimited # CPU Time</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">ulimit -c unlimited # Core File Size</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">ulimit -d unlimited # Data Seg Size</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">ulimit -f unlimited # File Size</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">ulimit -n 8192 # File Descriptor</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">if [ `uname` = "AIX" ];then</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"> RT_GRQ=ON</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;"> export RT_GRQ</span></div><div><span class="Apple-style-span" style="font-family: "Courier New", Courier, monospace; font-size: x-small;">fi</span></div></div><div><br />
</div>chadwickhttp://www.blogger.com/profile/04727175217279747418noreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-10843263423356170092011-08-29T09:00:00.000-07:002011-08-29T09:00:07.047-07:00Working with NetBackup CTIME Timestamps in ExcelNetBackup makes extensive use of timestamps for backup job start and stop times, expiration dates, etc. NetBackup appends a timestamp to the client name to create a backup id (myserver_1303936891). Don’t know about you, but I don’t natively understand CTIME timestamps.<br />
To convert between the timestamp and “human readable” time, Symantec provides the bpdbm command with the -ctime flag to convert from NetBackup’s timestamp to the current time zone. For example:<br />
<blockquote>bash-3.00# bpdbm -ctime 1303936891<br />
1303936891 = Wed Apr 27 15:41:31 2011</blockquote>Some of my favorite NetBackup reports output job start/stop times and other data using CTIME timestamps:<br />
<ul><li>bpmedialist shows the expiration date for tapes</li>
<li>bpimagelist shows the start and stop times for backup images in the catalog, as well as image expiration dates</li>
</ul>It’s just not feasible to run bpdbm on every timestamp for output that may contain 10K lines. Excel makes a far better tool.<br />
To convert from CTIME to “Excel” time you need the following information:<br />
<ol><li>The NetBackup timestamp (the number of seconds since 1/1/1970, in GMT)</li>
<li>The number of seconds per day (86,400)</li>
<li>The Excel serial number for 1/1/1970 (25,569)</li>
<li>Your current timezone offset in hours (for US/Central this is currently -5)</li>
</ol>Excel date/time stamps are real numbers where the integer portion represents the number of days since 1/1/1900 (where 1/1/1900 is day 1). The decimal portion of an Excel date/time value represents the portion of a single day (ie, 0.5 is 12 hours). Therefore, to convert from CTIME to Excel time use the following formula:<br />
<blockquote>timestamp/86400+25569+(-5/24)</blockquote>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-35844707861904640802011-08-22T09:00:00.000-07:002011-08-22T09:00:02.246-07:00How to Mount Cloned Volume Groups in AIX<span xmlns="">Today, most SAN storage vendors provide some kind of volume or LUN cloning capability. The name and underlying mechanics for each vendor differ, but the end result is pretty much the same. They take a primary volume or LUN and create an exact copy at some point in time. NetApp's name for this technology is FlexClone. <br />
<br />
Typically, creating a clone of a LUN and mounting the file system on the original server is a trivial process. The process becomes more complex if volume management is involved. Server based volume management software provides many benefits, but complicates matters where LUN clones are used. In the case of IBM's Logical Volume Management (LVM), mounting clones on the same server results in duplicate volume group information. Luckily, AIX allows LVM to have duplicate physical volume IDs (PVID) for a "short period" of time without crashing the system. Not sure exactly what a "short period" of time equates too, but in my testing I didn't experience a crash. <br />
<br />
The process to "import" a cloned volume group for the first time is disruptive in that the original volume group must be exported. It is necessary to have the original volume group exported so that the physical volume IDs (PVIDs) on the cloned LUNs can be regenerated. The recreatevg command is used to generate new PVIDs and to rename the volume names in the cloned volume group. Note that the /etc/filesystem entries need to be manually updated because the recreatevg command prepends /fs to the original mount point names for the clones. Once the /etc/filesystem file is updated, the original volume group can be re-imported with importvg. <br />
<br />
Subsequent refreshes of previously imported clones can be accomplished without exporting the original because ODM remembers the previous PVID to hdisk# association. It does not reread the actual PVID from the disk until an operation is performed against the volume group. The recreatevg command will change the PVIDs and volume names on the cloned volume group without affecting the source volume group.<br />
<br />
Process for initial import of cloned volume group:<br />
<br />
</span><br />
<span xmlns=""><ol><li><div>Clone the LUNs comprising the volume group</div><ol><li>Make sure to clone in a consistent state<br />
</li>
</ol></li>
<li><div>Unmount and export original volume groups</div><ol><li>Use df to associate file systems to volumes<br />
</li>
<li>Unmount file systems<br />
</li>
<li>Use lsvg to list the volume groups<br />
</li>
<li>Issue varoffvg to each affected volume group<br />
</li>
<li>Use lspv to view the PVIDs for each disk associated with the volume groups<br />
</li>
<li>Remember the volume group names and which disks belong to each VG that will be exported<br />
</li>
<li>Use varyoffvg to offline each VG<br />
</li>
<li>Use exportvg to export the VGs<br />
</li>
</ol></li>
<li><div>Bring in the new VG</div><ol><li>Execute cfgmgr to discover new disks<br />
</li>
<li>Use lspv to identify the duplicate PVIDs<br />
</li>
<li>Execute recreatevg on each new VG listing all disks associated with the volume group and –y option to name the VG<br />
</li>
<li>Use lspv to verify no duplicate PVIDs<br />
</li>
</ol></li>
<li><div>Import the original volume groups</div><ol><li>Execute importvg with the name of one member hdisk and the –y option with the original name<br />
</li>
<li>Mount the original file systems.<br />
</li>
</ol></li>
<li><div>Mount the cloned file systems</div><ol><li>Make mount point directories for the cloned file systems<br />
</li>
<li>Edit /etc/filesystems to update the mount points for the cloned VG file systems<br />
</li>
<li>Use mount command to mount the cloned file systems<br />
</li>
</ol></li>
</ol>The subsequent import of a cloned volume group differs in that only the cloned volume group needs to be unmounted and varied offline prior to the clone refresh. Remember the hdisk numbers involved in each clone volume group that is to be refreshed. Once refreshed use exportvg to export the volume group. Afterward, the recreatevg command is issued naming each hdisk associated with the volume group and its previous name. Now the volumes and file systems are available. Prior to mounting, the /etc/filesystem entries need to be updated to correct the mount points.<br />
<br />
Process to refresh cloned volume group:<br />
<br />
<ol><li><div>Unmount and vary off the cloned volume groups to be refreshed</div><ol><li>Execute umount on associated file systems<br />
</li>
<li>Use varyoffvg to offline each target VG<br />
</li>
</ol></li>
<li>Refresh the clones on the storage system<br />
</li>
<li><div>Bring in the refreshed clone VGs</div><ol><li><div>Execute cfgmgr</div><ol><li>Use lspv and notice that ODM remembers the hdisk/PVID and volume group associations<br />
</li>
</ol></li>
<li>Use exportvg to export the VGs noting the hdisk numbers for each VG<br />
</li>
<li>Execute recreatevg on each refreshed VG naming all disks associated with the volume group and –y option to name the VG to its original name<br />
</li>
<li>Now lspv displays new unique PVIDs for each hdisk<br />
</li>
</ol></li>
<li><div>Mounting the refreshed clone file systems</div><ol><li>Edit /etc/filesystem to correct the mount points for each volume<br />
</li>
<li>Issue mount command to mount the refreshed clones<br />
</li>
</ol></li>
</ol>See the example below for a first time import of two cloned volume groups, logvg2 and datavg2, consisting of 2 and 4 disks respectively:<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# df<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">Filesystem 512-blocks Free %Used Iused %Iused Mounted on<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd4 1048576 594456 44% 13034 17% /<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd2 20971520 5376744 75% 49070 8% /usr<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd9var 2097152 689152 68% 11373 13% /var<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd3 2097152 1919664 9% 455 1% /tmp<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd1 1048576 42032 96% 631 12% /home<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd11admin 524288 523488 1% 5 1% /admin<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/proc - - - - - /proc<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd10opt 4194304 3453936 18% 9152 3% /opt<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/livedump 524288 523552 1% 4 1% /var/adm/ras/livedump<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/pocdbbacklv 626524160 578596720 8% 8 1% /proddbback<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/fspoclv 1254359040 1033501496 18% 2064 1% /cl3data<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/fspocdbloglv 206438400 193491536 7% 110 1% /cl3logs<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/poclv 1254359040 1033501480 18% 2064 1% /proddb<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/pocdbloglv 206438400 193158824 7% 115 1% /proddblog<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/datalv2 836239360 615477152 27% 2064 1% /datatest2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/loglv2 208404480 195088848 7% 118 1% /logtest2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00#<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00$ umount /datatest2/<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# umount /logtest2/<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# lsvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">rootvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">pocdbbackvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">dataclvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">logsclvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">pocvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">pocdblogvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">datavg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">logvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# varyoffvg datavg2<br />
</span><br />
<br />
<br />
NOTE: remember the hdisk and vg names for the exported vg's.<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# lspv<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk0 00f62aa942cec382 rootvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk1 none None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk2 00f62aa997091888 pocvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk3 00f62aa9a608de30 dataclvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk4 00f62aa9a60970fc logsclvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk10 00f62aa9972063c0 pocdblogvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk11 00f62aa997435bfa pocdbbackvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk5 00f62aa9a6798a0c datavg2 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk6 00f62aa9a6798acf datavg2 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk7 00f62aa9a6798b86 datavg2 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk8 00f62aa9a6798c36 datavg2 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk9 00f62aa9a67d6c9c logvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk12 00f62aa9a67d6d51 logvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# varyoffvg logvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# lsvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">rootvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">pocdbbackvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">dataclvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">logsclvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">pocvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">pocdblogvg<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">datavg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">logvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# exportvg datavg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# exportvg logvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00#<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# exportvg datavg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# exportvg logvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# cfgmgr<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# lspv<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk0 00f62aa942cec382 rootvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk1 none None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk2 00f62aa997091888 pocvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk3 00f62aa9a608de30 dataclvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk4 00f62aa9a60970fc logsclvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk10 00f62aa9972063c0 pocdblogvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk11 00f62aa997435bfa pocdbbackvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk5 <span style="background-color: yellow;">00f62aa9a6798a0c</span> None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk6 00f62aa9a6798acf None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk7 00f62aa9a6798b86 None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk8 00f62aa9a6798c36 None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk13 <span style="background-color: yellow;">00f62aa9a6798a0c</span> None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk14 00f62aa9a6798acf None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk15 00f62aa9a6798b86 None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk9 00f62aa9a67d6c9c None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk12 00f62aa9a67d6d51 None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk16 00f62aa9a6798c36 None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk17 00f62aa9a67d6c9c None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk18 00f62aa9a67d6d51 None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00#<br />
</span><br />
<br />
<br />
Notice the duplicate PVIDs. Use the recreatevg command naming all of the new disks in each volume group of the newly mapped clones.<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# recreatevg -y dataclvg2 hdisk13 hdisk14 hdisk15 hdisk16<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">dataclvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# recreatevg -y logclvg2 hdisk17 hdisk18<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">logclvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# importvg -y datavg2 hdisk5<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">datavg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# importvg -y logvg2 hdisk9 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">logvg2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# lspv<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk0 00f62aa942cec382 rootvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk1 none None <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk2 00f62aa997091888 pocvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk3 00f62aa9a608de30 dataclvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk4 00f62aa9a60970fc logsclvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk10 00f62aa9972063c0 pocdblogvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk11 00f62aa997435bfa pocdbbackvg active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk5 00f62aa9a6798a0c datavg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk6 00f62aa9a6798acf datavg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk7 00f62aa9a6798b86 datavg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk8 00f62aa9a6798c36 datavg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk13 00f62aa9c63a5ec2 dataclvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk14 00f62aa9c63a5f9b dataclvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk15 00f62aa9c63a6070 dataclvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk9 00f62aa9a67d6c9c logvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk12 00f62aa9a67d6d51 logvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk16 00f62aa9c63a6150 dataclvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk17 00f62aa9c63bf6b2 logclvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">hdisk18 00f62aa9c63bf784 logclvg2 active<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# <br />
</span><br />
<br />
<br />
Notice the PVID numbers are all unique now.<br />
<br />
remount original file systems<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# mount /datatest2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# mount /logtest2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00#<br />
</span><br />
<br />
<br />
create new mount points and edit /etc/filesystems<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# mkdir /dataclone1test2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# mkdir /logclone1test2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# cat /etc/filesystems<br />
</span><br />
…<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">/fs/datatest2:<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> dev = /dev/fsdatalv2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> vfs = jfs2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> log = /dev/fsloglv03<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> mount = true<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> check = false<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> options = rw<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> account = false<br />
</span><br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">/fs/logtest2:<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> dev = /dev/fsloglv2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> vfs = jfs2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> log = /dev/fsloglv04<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> mount = true<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> check = false<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> options = rw<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> account = false<br />
</span><br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">/datatest2:<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> dev = /dev/datalv2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> vfs = jfs2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> log = /dev/loglv03<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> mount = true<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> check = false<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> options = rw<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> account = false<br />
</span><br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">/logtest2:<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> dev = /dev/loglv2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> vfs = jfs2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> log = /dev/loglv04<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> mount = true<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> check = false<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> options = rw<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;"> account = false<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00#<br />
</span><br />
<br />
<br />
Notice the cloned duplicates are prefixed with /fs on the mount point by the recreatevg command. Also the volume names were changed to prevent duplicate entries in /dev. Update /etc/filesysems with the mount points created previously.<br />
<br />
<br />
<br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# mount /dataclone1test2 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">Replaying log for /dev/fsdatalv2.<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# mount /logclone1test2 <br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">Replaying log for /dev/fsloglv2.<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00# df<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">Filesystem 512-blocks Free %Used Iused %Iused Mounted on<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd4 1048576 594248 44% 13064 17% /<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd2 20971520 5376744 75% 49070 8% /usr<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd9var 2097152 688232 68% 11373 13% /var<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd3 2097152 1919664 9% 455 1% /tmp<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd1 1048576 42032 96% 631 12% /home<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd11admin 524288 523488 1% 5 1% /admin<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/proc - - - - - /proc<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/hd10opt 4194304 3453936 18% 9152 3% /opt<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/livedump 524288 523552 1% 4 1% /var/adm/ras/livedump<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/pocdbbacklv 626524160 578596720 8% 8 1% /proddbback<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/fspoclv 1254359040 1033501496 18% 2064 1% /cl3data<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/fspocdbloglv 206438400 193491536 7% 110 1% /cl3logs<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/poclv 1254359040 1033501480 18% 2064 1% /proddb<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/pocdbloglv 206438400 193158824 7% 115 1% /proddblog<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/datalv2 836239360 615477152 27% 2064 1% /datatest2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/loglv2 208404480 195088848 7% 118 1% /logtest2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/fsdatalv2 836239360 615477160 27% 2064 1% /dataclone1test2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">/dev/fsloglv2 208404480 195744288 7% 114 1% /logclone1test2<br />
</span><br />
<span style="font-family: Courier New; font-size: 9pt;">bash-3.00#<br />
</span></span>stevekhttp://www.blogger.com/profile/07308754104687537983noreply@blogger.com2tag:blogger.com,1999:blog-4755664707565425900.post-47907823350321159262011-08-15T09:00:00.000-07:002011-08-15T09:00:02.187-07:00Virtual Machine Migration Fails<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">After recently upgrading a customer to vSphere 4.1 Update 1, I received a call from the customer because one of their guest VMs could not be migrated to a different VMFS datastore. The somewhat troubling, “unable to access file” error message indicated a problem with the VMDK for a specific snapshot.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<div style="text-align: center;"><a href="http://lh4.ggpht.com/_8EoUjQOWRt0/TbhrIENTCMI/AAAAAAAAA0k/3gUKosAvMHY/s1600-h/vsphere-migrate-unable-to-access-file%5B2%5D.png"><span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><img alt="vsphere-migrate-unable-to-access-file" border="0" height="162" src="http://lh6.ggpht.com/_8EoUjQOWRt0/TbhrIzoyaNI/AAAAAAAAA0o/kV30xabWDm4/vsphere-migrate-unable-to-access-file_thumb.png?imgmax=800" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="vsphere-migrate-unable-to-access-file" width="400" /></span></a></div><span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">Through an SSH session I validated the snapshot VMDK and VMDK flat file existed in the proper directory. The VMDK flat file had a non-zero size, suggesting to me this might be a configuration problem.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">Out of curiosity I examined the snapshot’s VMDK configuration file and noticed the parentFileNameHint entry contained the full pathname and used the VMFS GUID value. Hmm. Is that the proper GUID? No it wasn’t.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">Since the VM had other snapshots I reviewed those configuration files as well and noticed they used relative path names for the parentFileNameHint. Could it be that simple?</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">I edited the snapshot VMDK configuration file and removed the full path qualification. </span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">Problem solved.</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">In my example above (which was reproduced in my lab), I changed:</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">parentFileNameHint=”/vmfs/volumes/4ab3ebbc-46f3c941-7c14-00144fe69d58/retro-000001.vmdk"</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">To:</span><br />
<span class="Apple-style-span" style="font-family: "Trebuchet MS", sans-serif;">parentFileNameHint="retro-000001.vmdk"</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4755664707565425900.post-30705053863072173462011-08-08T09:00:00.001-07:002011-08-08T09:00:00.513-07:00FCIP considerations for 10 GigE on Brocade FX8-24<div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">While working with a client to architect a new FCIP solution, there were a number of considerations that needed to be addressed. With this particular implementation we are leveraging the FX8-24 blades in DCX chassis and attaching the 10Gbe xge links to the network core.</span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br />
</span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">With the current version of FOS (6.4.1a in this case), the 10Gbe interface is maximized by using multiple “circuits” which are combined in a single FCIP tunnel. Each circuit has a maximum bandwidth of 1Gb. To aggregate the multiple circuits you need the Advanced Extension License. Each of these circuits needs an IP address on either end of the tunnel. Additionally, there are two 10Gbe xge ports on each FX8-24 card; and they require placement in separate VLANs. Be sure to discuss and plan these requirements with your network team.<o:p></o:p></span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br />
</span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">There are other considerations as well, such as utilizing Virtual Fabrics to isolate and allow the FCIP fabrics to merge between switches or utilizing the Integrated Routing feature (additional licensing) to configure the FCIP tunnels with VEX ports without the requirement of merging the fabrics.<o:p></o:p></span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br />
</span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">Regardless of the architecture (Virtual fabric vs integrated routing) you will need to configure the 1Gbe circuits appropriately. You will want to understand the maximum bandwidth your link can sustain, and configure the FCIP tunnel in such a way that you consume just under the maximum bandwidth to prevent TCP/IP congestion and sliding window ramp up from slowing down your overall throughput. <o:p></o:p></span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br />
</span></div><div class="MsoNormal"><span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">In our example, we want to consume about 6 Gbe of bandwidth between their locations. We will need to configure six circuits within the FCIP tunnel, each configured just under the 1Gbe maximum bandwidth setting. </span><o:p></o:p></div>Justinhttp://www.blogger.com/profile/13999440637884152758noreply@blogger.com2