<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

<channel>
	<title>SAN Artisan</title>
	
	<link>http://sanartisan.wordpress.com</link>
	<description>Curiosities of a Storage Architect</description>
	<lastBuildDate>Wed, 02 May 2012 21:21:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="sanartisan.wordpress.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>SAN Artisan</title>
		<link>http://sanartisan.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sanartisan.wordpress.com/osd.xml" title="SAN Artisan" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sanartisan" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="sanartisan" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://sanartisan.wordpress.com/?pushpress=hub" /><item>
		<title>RecoverPoint Initial Synchronization with DD</title>
		<link>http://sanartisan.wordpress.com/2012/05/02/recoverpoint-initial-synchronization-with-dd/</link>
		<comments>http://sanartisan.wordpress.com/2012/05/02/recoverpoint-initial-synchronization-with-dd/#comments</comments>
		<pubDate>Wed, 02 May 2012 21:21:10 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[RecoverPoint]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=225</guid>
		<description><![CDATA[The Downlow While some companies may be equipped with an abundance of bandwidth between their production and disaster recovery sites, many others are limited with their site-to-site bandwidth. As such, many implement data replication technologies that also perform data compression, de-duplication, and even fast-write capabilities in IP and fibre channel protocols. In this particular case [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=225&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>The Downlow</strong><br />
While some companies may be equipped with an abundance of bandwidth between their production and disaster recovery sites, many others are limited with their site-to-site bandwidth. As such, many implement data replication technologies that also perform data compression, de-duplication, and even fast-write capabilities in IP and fibre channel protocols.</p>
<p>In this particular case study, I&#8217;m working with a customer with two data centers, New York and Washington DC with a 50 Mb/s line between the two data centers. EMC RecoverPoint is the replication technology of choice, and the customer is doing bi-directional replication. The Washington DC site has about 4TB of data that needs to replicate to New York, and the New York site had about 10TB of data that needs to replicate to Washington DC.</p>
<p>In a perfect world (no latency, no packet loss, 100% utilization of the link), it would take roughly 7 days to replicate the 4TB and roughly 18 days to replicate the 10TB. That&#8217;s almost a month to move the data with the link fully saturated. Unfortunately, that link was also used for other business uses, e.g. VoIP traffic, internal application traffic, server monitoring traffic, etc. Thus the CIO mandated that we find another method to perform the initial synchronization, as using the link (even throttled) was not an option for this duration.</p>
<p><strong>The Approach</strong><br />
The EMC RecoverPoint Release 3.4 Administrator Guide (P/N 300-012-256) documents a method for performing first-time initialization from backup. The primary kicker here though, is that the backup must be a block-level backup, not a file-level backup. This is because the target RecoverPoint image will be seeded with that block-level backup and then RecoverPoint will perform a full volume sweep to synchronize the incremental changes since the block-level backup.</p>
<p>Most companies, however, do not perform block-level backups of their servers. Rather, they perform file-level backups, which then gets catalogued for easy restores. Below is a summary of the process I used to perform the RecoverPoint initial synchronization using dd as the block-level backup.</p>
<p><strong>Pre-requisites/Setup</strong></p>
<ul>
<li>Downloaded dd on a Windows utility server
<ul>
<li><a title="http://www.chrysocome.net/downloads/dd-0.6beta3.zip" href="http://www.chrysocome.net/downloads/dd-0.6beta3.zip" target="_blank">http://www.chrysocome.net/downloads/dd-0.6beta3.zip</a></li>
<li>This is the tool we will use for the block-level backups.
<pre>dd if=[vol_source] of=[vol_target] bs=512k</pre>
</li>
<li>Note: I did some very rudimentary performance tests to see what block size would be optimal for these backups. I found 512k to be the sweet spot.</li>
</ul>
</li>
<li>Configured clones for all volumes that will be seeded with RecoverPoint. The main reason for this is two fold:
<ul>
<li>I didn&#8217;t want to impact the performance of the production volume while dd reads from the source volume to create the backup.</li>
<li>dd cannot operate against volumes with open files. Thus, we&#8217;d need to bring down the applications for the duration of the dd backup. When performing a dd against a mounted clone and against the PHYSICALDRIVE address, I did not get open file errors. Below is an example of the errors you will see with dd if there are open files.
<pre>C:\Utilities&gt;dd if=\\.\H: of=z:\testvolume.img bs=512k
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin &lt;jn@it.swin.edu.au&gt;
This program is covered by terms of the GPL Version 2.
Error opening input file: 32 The process cannot access the file because it is being used by another process</pre>
</li>
<li>The source volumes were on 15k drives and the target volumes were on 7.2k SATA drives. I was able to copy roughly 5 GB/min (+/-0.5) with this process.</li>
</ul>
</li>
</ul>
<p><strong>The Process </strong></p>
<ol>
<li>For new source volumes, confirm that all the data has first been migrated before proceeding.</li>
<li>Configure the consistency group(s) for the volumes in scope
<ul>
<li>When finishing the consistency group, do not start the transfer. Leave the transfer paused.</li>
</ul>
</li>
<li>Right-click the consistency group, select &#8220;Clear Markers&#8221;
<ul>
<li>This will let RP know that the remote site is known to be identical to its corresponding production volume. Thus a full volume sweep is not required.</li>
<li>When the dialog box pops up, select both copies.</li>
<li>Note: had to do this via command line because the GUI was only letting me clear the markers in the DR location. The command line without the copy=XYZ option allows you to clear all markers on both sides.
<pre>clear_markers group=RPSyncTest</pre>
</li>
</ul>
</li>
<li>Create the block-level copy with dd</li>
<li>Transfer the copy to the secondary site. In our case, we shipped the USB drives to the secondary site.</li>
<li>Enable image access on the secondary volume
<ul>
<li>Select the latest image</li>
<li>After access goes to logged access, enable direct access</li>
</ul>
</li>
<li>Restore the backup to the secondary volume
<ul>
<li>Remember, you already did the clear markers before you did the first dd copy. If you do it again, it will mess up tracking where the replication should resume.</li>
<li>No need to give the drive a drive letter or format it, as you can access it via the \\.\PHYSICALDRIVE2 address.</li>
</ul>
</li>
<li>Disable image access and start the transfer
<ul>
<li>Check the &#8220;Start data transfer immediately&#8221; checkbox to resume replication</li>
<li>Monitor the consistency group. The traffic you see will be the changes to the source volume since the block-level dd copy was made. The duration should be significantly less than if it was a full copy, depending on how much data has changed since the original dd backup.</li>
</ul>
</li>
</ol>
<p><strong>The Results</strong><br />
Below are some of the results from the initial synchronization process. Note that between the dd on the source and the reverse dd on the secondary volume, roughly two days elapsed.</p>
<ul>
<li>330GB consistency group 1
<ul>
<li>At 50 Mb/s, it would have taken roughly 15 hours to perform a full sync.</li>
<li>Initial synchronization took 58 minutes, transferring roughly 21GB (6.36%).</li>
<li>We saved roughly 14 hours and 309GB of transfer.</li>
</ul>
</li>
<li>330GB consistency group 2
<ul>
<li>Initial synchronization took 43 minutes, transferring roughly 10GB (3.03%).</li>
<li>We saved a little over 14 hours and 320GB of transfer.</li>
</ul>
</li>
<li>330GB consistency group 3
<ul>
<li>Initial synchronization took 50 minutes, transferring roughly 18GB (5.45%).</li>
<li>We saved a little over 14 hours and 312GB of transfer.</li>
</ul>
</li>
<li>330GB consistency group 4
<ul>
<li>Initial synchronization took 53 minutes, transferring roughly 19GB (5.76%).</li>
<li>We saved a little over 14 hours and 311GB of transfer.</li>
</ul>
</li>
</ul>
<div>I would post the initialization graphs of the above consistency groups, but the window for the graphs is 5 minutes and would just show constant transfer. Instead, below are graphs of a 1GB test volume that I configured.</div>
<div></div>
<div>This is a graph of the initialization traffic without the data pre-seeded. Note that the green line for site-to-site traffic hovers between 35-50 Mb/s for almost 2 minutes.</div>
<div><img class="alignnone" title="RecoverPoint Initialization 1" src="http://sanartisan.files.wordpress.com/2012/05/rpinit1.jpg?w=484&#038;h=201" alt="" width="484" height="201" /></div>
<div></div>
<div>This is a graph of the initialization traffic with the data pre-seeded. Note that the green line spikes for a short duration of time to do the full volume sweeps but lasts for only 30 seconds.</div>
<div><img class="alignnone" title="RecoverPoint Initialization 2" src="http://sanartisan.files.wordpress.com/2012/05/rpinit2.jpg?w=483&#038;h=200" alt="" width="483" height="200" /></div>
<div></div>
<p><strong>The Commands</strong></p>
<pre>plink -l admin -pw admin 192.168.10.10 "enable_group group=RPSyncGroup start_transfer=no"
plink -l admin -pw admin 192.168.10.10 "clear_markers group=RPSyncGroup"
dd if=\\.\[PHYSICALDRIVE##] of=z:\[PHYSICALDRIVE##.img] bs=512k
[transfer the images to the secondary site via USB drive]
plink -l admin -pw admin 192.168.10.10 "enable_image_access group=RPSyncGroup copy=DR_RPSyncGroup image=latest"
plink -l admin -pw admin 192.168.10.10 "set_image_access_mode group=RPSyncGroup copy=DR_RPSyncGroup mode=direct"
dd if=z:\[PHYSICALDRIVE##.img] of=\\.\[PHYSICALDRIVE##] bs=512k
plink -l admin -pw admin 192.168.10.10 "disable_image_access group=RPSyncGroup copy=DR_RPSyncGroup start_transfer=no"
plink -l admin -pw admin 192.168.10.10 "start_transfer group=RPSyncGroup"
[monitor initial synchronization traffic]</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=225&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2012/05/02/recoverpoint-initial-synchronization-with-dd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>

		<media:content url="http://sanartisan.files.wordpress.com/2012/05/rpinit1.jpg" medium="image">
			<media:title type="html">RecoverPoint Initialization 1</media:title>
		</media:content>

		<media:content url="http://sanartisan.files.wordpress.com/2012/05/rpinit2.jpg" medium="image">
			<media:title type="html">RecoverPoint Initialization 2</media:title>
		</media:content>
	</item>
		<item>
		<title>Apache on CentOS 6.2 with Sub-directories</title>
		<link>http://sanartisan.wordpress.com/2012/04/19/apache-on-centos-6-2-with-sub-directories/</link>
		<comments>http://sanartisan.wordpress.com/2012/04/19/apache-on-centos-6-2-with-sub-directories/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 16:09:50 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=182</guid>
		<description><![CDATA[I built a CentOS 6.2 virtual machine on my VMware Workstation as a utility server (192.168.1.135). I used the CentOS-6.2-i386-minimal.iso to do the install and then installed a LAMP stack on it. After that, the next step was to get phpMyAdmin to manage the MySQL database. I did the following to do so: 1. Downloaded [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=182&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I built a CentOS 6.2 virtual machine on my VMware Workstation as a utility server (192.168.1.135). I used the CentOS-6.2-i386-minimal.iso to do the install and then installed a LAMP stack on it. After that, the next step was to get phpMyAdmin to manage the MySQL database. I did the following to do so:</p>
<p>1. Downloaded the latest package from http://www.phpmyadmin.net/home_page/downloads.php onto my laptop (192.168.1.119).<br />
2. Used WinSCP to copy the file to my home directory.<br />
3. Logged in and sudo&#8217;ed to root.<br />
4. Copied the file from my home directory to /var/www/html, untarred the package, and renamed the directory to phpmyadmin.<br />
5. I then went to access the server at http://192.168.1.135/phpmyadmin. I then encountered the following 403 error.</p>
<p>Forbidden<br />
You don&#8217;t have permission to access /phpmyadmin on this server.</p>
<p>The error logs (/var/log/httpd/error_log) showed the following:</p>
<pre>[Thu Apr 19 06:28:22 2012] [error] [client 192.168.1.119] (13)Permission denied: access to /phpmyadmin/ denied</pre>
<p>I then sought the counsel of Google. Many web sites talk about either permissions on the directory/files or the httpd.conf configuration. My issue was none of those. It had to do with selinux which apparently comes built into the minimal CentOS 6.2 install.</p>
<pre>[root@sandbox conf]# yum list | grep selinux
libselinux.i686 2.0.94-5.2.el6 @anaconda-CentOS-201112130233.i386/6.2
libselinux-utils.i686 2.0.94-5.2.el6 @anaconda-CentOS-201112130233.i386/6.2
selinux-policy.noarch 3.7.19-126.el6 @anaconda-CentOS-201112130233.i386/6.2
selinux-policy-targeted.noarch 3.7.19-126.el6 @anaconda-CentOS-201112130233.i386/6.2
ipa-server-selinux.i686 2.1.3-9.el6 base
libselinux-devel.i686 2.0.94-5.2.el6 base
libselinux-python.i686 2.0.94-5.2.el6 base
libselinux-ruby.i686 2.0.94-5.2.el6 base
libselinux-static.i686 2.0.94-5.2.el6 base
pki-selinux.noarch 9.0.3-21.el6_2 updates
selinux-policy.noarch 3.7.19-126.el6_2.10 updates
selinux-policy-doc.noarch 3.7.19-126.el6_2.10 updates
selinux-policy-minimum.noarch 3.7.19-126.el6_2.10 updates
selinux-policy-mls.noarch 3.7.19-126.el6_2.10 updates
selinux-policy-targeted.noarch 3.7.19-126.el6_2.10 updates</pre>
<p>The problem was that the phpmyadmin package that I copied via WinSCP took the wrong context, which therefore didn&#8217;t have the appropriate permissions for apache to display.</p>
<pre>[root@sandbox html]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 info.php
drwxr-xr-x. root root unconfined_u:object_r:<span style="color:#ff0000;">user_tmp_t:s0</span> phpmyadmin</pre>
<p>To fix this, I needed to do the following:</p>
<pre>chcon -R -t httpd_sys_content_t phpmyadmin</pre>
<p>Note: be sure to use the -R to recursively apply that context against all files. Otherwise you will get a server misconfiguration error.</p>
<pre>[root@sandbox html]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 info.php
drwxr-xr-x. root root unconfined_u:object_r:<span style="color:#ff0000;">httpd_sys_content_t</span>:s0 phpmyadmin</pre>
<p>In retrospect, had I downloaded the file via wget directly into the /var/www/html directory, it would have already taken the proper context, and I would not have had the issue.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=182&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2012/04/19/apache-on-centos-6-2-with-sub-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Coming Soon</title>
		<link>http://sanartisan.wordpress.com/2012/04/16/coming-soon/</link>
		<comments>http://sanartisan.wordpress.com/2012/04/16/coming-soon/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 22:06:35 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=179</guid>
		<description><![CDATA[It&#8217;s been a while since posting here but I&#8217;ll try to start posting some new info up on this blog. Stay tuned!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=179&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since posting here but I&#8217;ll try to start posting some new info up on this blog. Stay tuned!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=179&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2012/04/16/coming-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Best Practices for Symmetrix Configuration</title>
		<link>http://sanartisan.wordpress.com/2010/05/13/best-practices-for-symmetrix-configuration/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/13/best-practices-for-symmetrix-configuration/#comments</comments>
		<pubDate>Thu, 13 May 2010 15:58:02 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Symmetrix]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=177</guid>
		<description><![CDATA[Considerations Configure enough resources for your workload Use resources evenly for best overall performance Spread across all available components Includes FE, BE and disks Path management can help FE FAST/Optimizer can help BE Commonly asked questions What size system do I need? Each resource has a limit of I/Os per second and MBs per second [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=177&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Considerations</p>
<ul>
<li>Configure enough resources for your workload</li>
<li>Use resources evenly for best overall performance
<ul>
<li>Spread across all available components</li>
<li>Includes FE, BE and disks</li>
<li>Path management can help FE</li>
<li>FAST/Optimizer can help BE</li>
</ul>
</li>
</ul>
<p>Commonly asked questions</p>
<ul>
<li>What size system do I need?
<ul>
<li>Each resource has a limit of I/Os per second and MBs per second
<ul>
<li>Disks</li>
<li>Back-end controllers (DAs)</li>
<li>Front-end controllers (Fibre, FICON, GigE)</li>
<li>SRDF controllers</li>
<li>Slices (CPU complexes)</li>
</ul>
</li>
<li>Configure enough components to support workload peaks</li>
<li>Use those resources as uniformly as possible</li>
<li>CPU utilization
<ul>
<li>As a rule of thumb, a limit of no more than 50-70% utilization is good if response time is critical</li>
<li>A higher utilization can be tolerated if only IOPS or total throughput matters</li>
</ul>
</li>
<li>Memory considerations
<ul>
<li>Ideal to have same size memory boards and same memory between engines</li>
<li>Imbalance will make little or no difference with OLTP type workloads</li>
<li>Imbalance will create more accesses to boards or engines with large amount of memory, creating a skewed distribution over the hardware resources</li>
</ul>
</li>
<li>Front-end connections
<ul>
<li>Go wide before you go deep
<ul>
<li>Use all 0 ports on director first and then the 1 ports</li>
<li>Spread across directors first, then on same director</li>
<li>Two active ports on one FA slice do not generally do more I/Os</li>
</ul>
</li>
<li>Ratios (random read hit normalized at 1)
<ul>
<li>Random read hit 1</li>
<li>Random read miss 1/2</li>
<li>Random Overwrite I/O&#8217;s 1/2</li>
<li>Random new write 1/4</li>
</ul>
</li>
<li>Worst connection for a host with 8 connections
<ul>
<li>All on one director</li>
<li>Instead do one connection per director</li>
</ul>
</li>
</ul>
</li>
<li>Disks
<ul>
<li>Performance will scale linearly as you add drives
<ul>
<li>You can see up to 510 IOPS per drive when benchmarking at 8KB, but 150 IOPS is a reasonable design number for real world situations</li>
</ul>
</li>
<li>Note that with higher IOPS comes higher response times as well as queues will grow</li>
<li>Until some back-end director limit is reaches</li>
<li>With smaller I/O sizes (&lt;32KB), the limit reaches is the CPU limit</li>
<li>With largest I/O sizes (&gt;32KB), we can reach a throughput limit in the plumbing instead</li>
</ul>
</li>
<li>Engine Scaling
<ul>
<li>Scales nearly linear, though not quite.</li>
<li>From 1 to 8 engines, it&#8217;s 6.8 to 7.8x WRT to IOPS (8KB I/O)</li>
<li>From 1 to 8 engines, it&#8217;s 4.2 to 7.1x WRT to bandwidth (64KB I/O)</li>
<li>Scaling from 1 to 8 shows worst numbers. 4 to 8 showed better numbers.</li>
</ul>
</li>
</ul>
</li>
<li>What&#8217;s the optimum size of a hyper or number per disk?
<ul>
<li>General rule of thumb, fewer larger hypers will give better overall system performance.
<ul>
<li>There is a system overhead to manage a logical volume so it makes sense that more logical volumes could lead to more overhead.</li>
</ul>
</li>
<li>Frequently legacy hyper size is carried forward because of migration</li>
<li>Virtual Provisioning will make the size of the hyper on the physical disk
<ul>
<li>You can create very large hypers for the TDATs and still present small LUNs to the host</li>
</ul>
</li>
<li>There can be a case of having too few hypers per drive
<ul>
<li>Because it could limit concurrency</li>
<li>Set a minimum of 4 to 8 hypers</li>
<li>Not an issue with large drives or protections other than R1</li>
</ul>
</li>
</ul>
</li>
<li>What is the optimum queue depth?
<ul>
<li>Single threaded (or 1 I/O at a time), the I/O rate is simply the inverse of the service time.
<ul>
<li>For a 5.8ms service time your maximum IOPS is 172.</li>
<li>Same drive with 128 I/Os queued can get nearly 500 IOPS</li>
</ul>
</li>
<li>We need 1-4 I/Os queued to the disk to achieve the maximum throughput with reasonable latencies
<ul>
<li>Lower queue lengths if response time is CRITICAL</li>
</ul>
</li>
<li>Higher if total IOPS is more important than response time</li>
<li>With VP, the LUN could be spread over 1000s of drives
<ul>
<li>Queue depth of 32 per VP LUN is probably a reasonable start</li>
</ul>
</li>
<li>As IOPS go up, response time will exponentially get worse</li>
</ul>
</li>
<li>What is the optimum number of members in a meta volume?
<ul>
<li>255 maximum supported</li>
<li>Reasonable sizes for meta member counts are something like 4, 8, 16, 32</li>
<li>Even numbers are preferred
<ul>
<li>Powers of 2 fit nicely into back-end configurations</li>
<li>Powers of 2 not important for VP thin metas</li>
</ul>
</li>
<li>Getting enough I/O into a very large meta can be a problem
<ul>
<li>32-way R5 7+1 meta volume would need at least 256 I/Os queued to have 1 I/O per physical disk</li>
</ul>
</li>
</ul>
</li>
<li>Should I use meta volumes or host-based striping? Or both?
<ul>
<li>Avoid too many levels of striping (plaid)</li>
<li>One large meta volume may outperform serveral smaller meta volumes that are grouped in a host stripe</li>
<li>In many cases, host-based striping is preferred over meta volumes
<ul>
<li>One reason is because there will be more host-based queues for concurrency that the host can manage before even getting to the array.</li>
</ul>
</li>
<li>However, meta volumes can reduce complexity at the host level</li>
<li>So it all depends</li>
<li>24-way meta versus 6 host x 4-way meta &#8211; average read response time was better with host-based stripe</li>
</ul>
</li>
<li>Striped or Concatenated Metas?
<ul>
<li>In most cases, striped meta volumes will give you better performance than concatenated
<ul>
<li>Because they reside on more spindles</li>
<li>Some exceptions exist where concatenated may be better
<ul>
<li>If you don&#8217;t have enough drives for all the meta members to be on separate drives (wrapping)</li>
<li>If you plan to re-stripe many meta volumes again at the host-level</li>
<li>If you are making a very large R5/R6 meta and your workload is largely sequential</li>
</ul>
</li>
<li>Concatenated meta volumes can be placed on the same RAID group</li>
<li>Don&#8217;t place striped meta volumes on the same RAID group (wrapped)</li>
</ul>
</li>
<li>Virtual Provisioning
<ul>
<li>Back-end is already striped over the virtual provisioning pool so why re-stripe the thin volume (TDEV)</li>
<li>May be performance reasons to have a striped meta on VP</li>
<li>Device WP &#8220;disconnect&#8221; between front-end and backend
<ul>
<li>5874 Q210SR, 5773 future SR fixes this</li>
</ul>
</li>
<li>Number of random read requests we can send to a single device
<ul>
<li>Single device can have 8 outstanding reads per slice per device (TDEV on FA slice)</li>
</ul>
</li>
<li>Number of outstanding SRDF/S writes per device
<ul>
<li>Single device can have 1 outstanding write per path per device</li>
</ul>
</li>
<li>If it is important to be able to expand a meta, choose concatenated</li>
</ul>
</li>
</ul>
</li>
<li>What stripe and I/O size should I choose?
<ul>
<li>For most host-based striping, 128KB or 256KB is good</li>
<li>May want to consider a smaller stripe size for database logs, 64KB or smaller may be advised by a Symmetrix performance guru</li>
<li>I/O sizes about 64KB or 128KB show little to no performance boost (flattens out). 256KB may actually decrease throughput. This is because everything is managed internally at 64KB chunks.</li>
</ul>
</li>
<li>Segregation
<ul>
<li>For the most optimal system performance, you should not segregate applications/BCVs/Clones onto separate physical disks/DAs or engines</li>
<li>For the most predictable system performance, you should segregate</li>
<li>Tiers should share DA resources so that one tier will not consume resources for another tier</li>
</ul>
</li>
<li>What disk drive class should I choose?
<ul>
<li>EFD provide the best response time and maximum IOPS of all drives</li>
<li>15k provide 30% faster performance than 10k (random read miss)</li>
<li>15k provide 56% faster than SATA, 10k provide 39% faster than SATA (random read miss)</li>
<li>SATA still does well in sequential read (with single threaded and larger block sizes) (basically good in single stream, bad with multi-thread and therefore disk seeks)</li>
</ul>
</li>
<li>What RAID protection should I choose?
<ul>
<li>Performance of reads similar across all protection types (number of drives is what matters)</li>
<li>Major difference with random write performance
<ul>
<li>Mirrored: 1 host write = 2 writes</li>
<li>R5: 1 host write = 2 reads + 2 writes</li>
<li>R6: 1 host write = 3 reads + 3 writes</li>
</ul>
</li>
<li>Cost is also a factor
<ul>
<li>R5/R6 are best at 12.5% and 25% protection overhead</li>
<li>R1 has 50% protection overhead</li>
</ul>
</li>
</ul>
</li>
<li>How much cache do I need?
<ul>
<li>Easiest method is to utilize the Dynamic Cache Partition White If (DCPwi) tool</li>
<li>Put like devices together in cache partitions</li>
<li>Start analysis mode and collect DCP stats</li>
</ul>
</li>
<li>How do I know when I&#8217;m getting close to limits?
<ul>
<li>Watch for growth trends in your workload with SPA</li>
<li>Look out for increasing response time (host-based tools like iostat, sar, RMF)</li>
<li>Monitor utilization metrics in WLA/STP</li>
<li>Better to be pro-active than waiting to hit th ewall</li>
<li>Any utilizations well over 50% should be considered a possible source of future issues with growth</li>
</ul>
</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/177/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=177&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/13/best-practices-for-symmetrix-configuration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Performance as a Function of Utilization on CLARiiON</title>
		<link>http://sanartisan.wordpress.com/2010/05/12/performance-as-a-function-of-utilization-on-clariion/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/12/performance-as-a-function-of-utilization-on-clariion/#comments</comments>
		<pubDate>Wed, 12 May 2010 23:00:08 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[VNX/CLARiiON]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=167</guid>
		<description><![CDATA[Measurements Utilization = 100% * busy time in period / (idle + busy) time in period Throughput = total number of visitors in periods / period in length in seconds Average Busy Queue Length = sum of queue upon arrive of visitor x / total number of visitors Queue length = ABQL * utilization/100% Response [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=167&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Measurements</p>
<ul>
<li>Utilization = 100% * busy time in period / (idle + busy) time in period</li>
<li>Throughput = total number of visitors in periods / period in length in seconds</li>
<li>Average Busy Queue Length = sum of queue upon arrive of visitor x / total number of visitors</li>
<li>Queue length = ABQL * utilization/100%</li>
<li>Response time = queue length / throughput (Little&#8217;s Law)</li>
</ul>
<p>For low LUN throughput (&lt;32 IOPS), response time might be inaccurate</p>
<ul>
<li>Response time here is calculated, lazy writes will skew the LUN busy counter</li>
<li>RBA actually measures the response time</li>
</ul>
<p>Dual SP ownership of a disk</p>
<ul>
<li>Can also impact response time</li>
<li>Each SP only knows about its own ABQL, throughput and utilization for the disk</li>
<li>At poll time, they exchange views. The utilization is max(SPA,SPB)</li>
<li>ABQL is computed from the sum of the sum</li>
<li>And SP throughput is the sum of SPA and SPB throughput</li>
</ul>
<p>Be wary of confusing SP response time in Analyzer with the average response time of all LUNs on that SP</p>
<ul>
<li>Response time is calculated and based on utliization</li>
<li>A LUN is busy (not resting) as long as something is queued to it</li>
<li>An SP is busy (not resting) as long as it is not in the OS idle loop</li>
<li>While a disk is busy getting a LUN request, the LUN is still busy</li>
<li>While a disk is busy getting a LUN request, the SP might be idle</li>
<li>The SP response time is generally smaller than the average response time of all the LUNs on that SP</li>
<li>Host response time is approximated by LUN response time</li>
</ul>
<p>Recall from last year:</p>
<ul>
<li>Rules of Thumb</li>
<li>Multiplier (CPUM)</li>
<li>CX4-960 &#8211; 1.00</li>
<li>CX4-480 &#8211; 0.65</li>
<li>CX4-240 &#8211; 0.55</li>
<li>CX4-120 &#8211; 0.30</li>
<li>CX3-80 &#8211; 0.50</li>
<li>A &#8211; CPUM x 50k reads/s standard lun</li>
<li>B &#8211; CPUM x 16k write/s R5</li>
<li>C &#8211; CPUM x 20k writes/s R10</li>
<li>D &#8211; CPUM x 40k reads/s, Snaps, MV/s, clone source</li>
<li>E &#8211; CPUM x 7.5k writes/s MV/s</li>
<li>F &#8211; CPUM x 6k writes/s, clone-in-sync</li>
<li>G &#8211; CPUM x 2.5k writes/s, Snap COFW</li>
<li>H- CPUM x 6k writes/s, Snap non-COFW</li>
<li>Data logging % = Number of LUNs / Max LUNs * 10%</li>
<li>One SP&#8217;s utilization will be the sum of the proportional contributions of each I/O type</li>
<li>Use 4KB for IOPS and 512KB for Bandwidth</li>
<li>I = CPUM x 1500MB/s read</li>
<li>J = CPUM x 600MB/s write (cache on)</li>
<li>Note: ASAP rebuilt, background verify, mirror syncs count against this number</li>
<li>Example: CX4-960, RAID 5, 9000 IOPS, 2:1 R:W, 8KB &#8211;&gt; 38% utilization</li>
<li>6000 read IOPs, 3000 write IOPs, 48MB/s read, 23MB/s write, RAID 5, CX4-960</li>
<li>6000/50000 + 3000/16000 + 48/1500 + 24/600 = 12% + 19% + 3.2% + 4.0% = 38.2% SP utilization</li>
</ul>
<p>His formula is low</p>
<ul>
<li>Configuration polling
<ul>
<li>Pre-FLARE 26.31 configuration polling is another low priority internal function that affects utilization</li>
<li>Go to http://ipaddress/setup</li>
<li>Set Update Parameters in the Setup Menu and pick 300s. Update Interval to 300s.</li>
<li>Performance Interval (for statistics logging) is ok at 60. This does nothing compared to configuration polling and data logging.</li>
<li>Also include the -np (no poll) option whenever possible in CLI scripts</li>
</ul>
</li>
<li>Data logging
<ul>
<li>7-10% differential comes from default data logging settings in older FLARE revisions with a lot of LUNs</li>
<li>Throughput was still unaffected because Analyzer threads run at a lower priority than I/O threads</li>
<li>Navisphere commands could be sluggish because they would be at the same level</li>
<li>Fix it by changing from 60/60 or 60/120 to 300/300.</li>
<li>Data logging poll rate is the lower of the two.</li>
<li>This will signficantly reduce pre-FLARE 29 utilization</li>
</ul>
</li>
<li>Navisphere operations, especially without -np (no pool)</li>
<li>Background verify, rebuild, LUN migration, zeroing operations</li>
<li>Snap, Clone, Mirror, SAN Copy overhead</li>
<li>Disk or bus bottlenecks</li>
<li>Heavy flushing</li>
</ul>
<p>His formula is too high</p>
<ul>
<li>Coalesced backend writes</li>
<li>Pre-fetch</li>
<li>Nature of the load</li>
</ul>
<p>In FLARE 26.31, FLARE 28, FLARE 29, FLARE 30</p>
<ul>
<li>Delta polling was introduced in FLARE 28 and back-revved to FLARE 26.31</li>
<li>Significantly reduces Navisphere overhead</li>
<li>FLARE 30, CLI commands without -np are given more processor time</li>
<li>FLARE 29, data logging utilization has been reduced 80%</li>
<li>FLARE 30 introduces fully provisioning virtual LUNs in pools of storage (thick LUNs)</li>
<li>H6099 document</li>
<li>NDU now uses % PrivilegedTime not % Processor Time as shown by Analyzer, 65% is safe (instead of 50%).</li>
</ul>
<p>What will happen with SP utilization in the presence of EMC Flash Cache?</p>
<ul>
<li>64KB is the base element for analysis for migration into Flash Cache</li>
<li>There is a considerable amount of promotions (HDD &gt; EFD) that will cost SP utilization. After the bulk of those initial promotions occur, it will be about 8-10% increased SP utilization for Flash Cache after warmup.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=167&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/12/performance-as-a-function-of-utilization-on-clariion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>VMotion over Distance with VPLEX</title>
		<link>http://sanartisan.wordpress.com/2010/05/12/vmotion-over-distance-with-vplex/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/12/vmotion-over-distance-with-vplex/#comments</comments>
		<pubDate>Wed, 12 May 2010 19:57:31 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=164</guid>
		<description><![CDATA[Vmotion without VPLEX Cannot directly perform Vmotion since storage is not shared Must first perform storage Vmotion Vmotion with VPLEX Enables direct Vmotion between data centers Storage Vmotion is no longer required Replicate the data once then move the VMs at will Use Cases Data Center Load Balancing Optimize resources across several data centers Disaster [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=164&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vmotion without VPLEX</p>
<ul>
<li>Cannot directly perform Vmotion since storage is not shared</li>
<li>Must first perform storage Vmotion</li>
</ul>
<p>Vmotion with VPLEX</p>
<ul>
<li>Enables direct Vmotion between data centers</li>
<li>Storage Vmotion is no longer required</li>
<li>Replicate the data once then move the VMs at will</li>
</ul>
<p>Use Cases</p>
<ul>
<li>Data Center Load Balancing
<ul>
<li>Optimize resources across several data centers</li>
</ul>
</li>
<li>Disaster Avoidance and Data Center Maintenance
<ul>
<li>Evacuate data center ahead of a probable disaster</li>
<li>Move applicatoin to remote data center to perform maintenance on local data center</li>
</ul>
</li>
<li>Zero-downtime Data Center moves
<ul>
<li>Move VMs and data to new data center then decommission old data center</li>
</ul>
</li>
</ul>
<p>Three Basic Configurations</p>
<ul>
<li>Common configurations
<ul>
<li>Maximum supported distance, 100km (with 5ms latency)</li>
<li>ESX hosts in both data centers have common IP subnets (stretched layer 2 network)</li>
<li>ESX servers can participate in local HA and DRS-enabled clusters</li>
</ul>
</li>
<li>VMFS volume built on a VPLEX distributed device</li>
<li>VMFS volume is then shared between ESX servers in two locations</li>
<li>Scenario 1 (distributed device)
<ul>
<li>Best practice</li>
<li>Continuous data protection and transparently protects against storage failures in either location</li>
<li>Continuous IO on biased cluster after WAN link failure</li>
<li>Continuous IO on biased cluster after non-biased site failure</li>
<li>Suspend IO on non-biased cluster after biased site failure</li>
</ul>
</li>
<li>Scenario 2 (built on remote device)
<ul>
<li>Not highly available, only good for temporary use when VM must move immediately</li>
</ul>
</li>
<li>Scenario 3 (temporary distributed device)
<ul>
<li>Storage Vmotion to a distribute device while in transit to the remote site</li>
<li>Then Storage Vmotion back to local storage in the remote site</li>
<li>Do this to regain some array functionality that VPLEX might not have</li>
</ul>
</li>
</ul>
<p>Failure Cases</p>
<ul>
<li>N+1 configuration handles director failures transparently</li>
<li>Any WAN or remote cluster failure while Vmotion is in progress simply results in Vmotion being aborted</li>
</ul>
<p>Rule-set Best Practices</p>
<ul>
<li>Manage your rule-sets very carefully
<ul>
<li>Be aware of which cluster will win in the event of a failure</li>
</ul>
</li>
<li>Place related VMs on the same data store so that they will move together</li>
<li>For any given data store, move all VMs at the same time</li>
<li>For the most critical applications, dedicate a data store to the VM</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=164&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/12/vmotion-over-distance-with-vplex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Converged Data Center: FCoE, iSCSI, and the Future of Storage Networking</title>
		<link>http://sanartisan.wordpress.com/2010/05/12/converged-data-center-fcoe-iscsi-and-the-future-of-storage-networking/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/12/converged-data-center-fcoe-iscsi-and-the-future-of-storage-networking/#comments</comments>
		<pubDate>Wed, 12 May 2010 19:53:08 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Storage Networking]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=157</guid>
		<description><![CDATA[The Journey to Convergence Stuart Miniman, Office of the CTO The iSCSI Story Transport SCSI over standard Ethernet Reliability through TCP SCSI has limited distance, iSCSI extended the distance Non-Ethernet Convergence Options Infiniband Used broadly for High Performance Computing (HPC) environment Low cost and ultra-low latency geared for server to server cluster Separate use from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=157&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>The Journey to Convergence<br />
</strong>Stuart Miniman, Office of the CTO</p>
<p>The iSCSI Story</p>
<ul>
<li>Transport SCSI over standard Ethernet</li>
<li>Reliability through TCP</li>
<li>SCSI has limited distance, iSCSI extended the distance</li>
</ul>
<p>Non-Ethernet Convergence Options</p>
<ul>
<li>Infiniband
<ul>
<li>Used broadly for High Performance Computing (HPC) environment</li>
<li>Low cost and ultra-low latency geared for server to server cluster</li>
<li>Separate use from general network (Ethernet) or storage (FC or Ethernet)</li>
</ul>
</li>
<li>PCIe
<ul>
<li>Extension of the server bus to an I/O aggregation box</li>
<li>Not a standard, small players</li>
<li>Still using Etherhet and FC network and storage from an aggregation box</li>
</ul>
</li>
</ul>
<p>Maturation of 10Gb Ethernet</p>
<ul>
<li>Allows replacement of n x 1Gb with must smaller number of 10Gb adapters</li>
<li>Single network allows for easier mobility for virtualization/cloud deployments</li>
<li>Simplifies server, network and storage infrastructure</li>
</ul>
<p>Standards</p>
<ul>
<li>40Gb and 100Gb Ethernet (IEEE) standards will be completed in June 2010</li>
<li>16Gb FC (T11) standard is targeted for completion at the end of 2010</li>
<li>32Gb is in the works</li>
<li>Server Adoption of FC ~3+ years, of Ethernet ~5+ years</li>
</ul>
<p><strong>Protocols and Standards</strong><br />
Fibre Channel over Ethernet</p>
<ul>
<li>Developed by T11, International Committee for Information Technology Standards (INCITS) T11 Fibre channel Interfaces Technical Committee</li>
<li>FC-BB-5 standard ratified in June 2009</li>
</ul>
<p>Converged Enhanced Ethernet</p>
<ul>
<li>Developed by IEEE Data Center Bridging (DCB) Task Group</li>
<li>Commonly referred to as Lossless Ethernet</li>
<li>IEEE standards targeting ratification mid-2010</li>
</ul>
<p>iSCSI and FCoE Framing</p>
<ul>
<li>iSCSI is SCSI functionality transported using TCP/IP for delivery and routing</li>
<li>FCoE is FC frames encapsulated in Layer 2 Ethernet frames over Lossless Ethernet</li>
</ul>
<p>FCoE Frame Formats</p>
<ul>
<li>Ethernet frames give a 1:1 encapsulation of FC frames, no segmenting FC frames across multiple Ethernet frames</li>
</ul>
<p>FC-BB-6</p>
<ul>
<li>Next step</li>
<li>Not required for multi-hope FCoE or other current deployments</li>
<li>Likely to support point-to-point configuration which allows two FCoE devices to communicate without going through an FCF (or switch)</li>
<li>Today initiator cannot talk directly to a target without a switch in between. FC-BB-6 is investigating this.</li>
</ul>
<p>Lossless Ethernet</p>
<ul>
<li>IEEE 802.1 Data Center Bridging (DCB) is the standards task group</li>
<li>Converged Enhanced Ethernet (CEE) is the industry consensus term</li>
<li>Link level enhancements (Priority Flow Control, Enhanced Transmission Selection, Data Center Bridging Exchange Protocol) are shipping in products today
<ul>
<li>PAUSE and Priority Flow Control
<ul>
<li>Classic 802.3x PAUSE is rarely implemented since it stops all traffic</li>
<li>New PAUSE known as PFC that can halt traffic according to priority tag while allowing traffic at other priority levels to continue. This creates lossless virtual lanes.</li>
</ul>
</li>
<li>Enhanced Transmission Selection
<ul>
<li>Maintain low latency treatment of certain traffic classes</li>
</ul>
</li>
<li>Data Center Bridging Exchange Protocol
<ul>
<li>Auto-negotiation for devices as they determine the link parameters</li>
</ul>
</li>
</ul>
</li>
<li>The CEE cloud or DCB-enabled LAN is only for the portion of your network that requires lossless Ethernet</li>
</ul>
<p>Beyond Link Level</p>
<ul>
<li>End-to-end</li>
<li>Congestion notification
<ul>
<li>IEEE 802.1Qau ratified</li>
<li>Allows a switch to notify attached ports to slow down transmission due to heavy traffic</li>
</ul>
</li>
<li>Layer 2 multipathing
<ul>
<li>IETF TRILL &#8211; Transparent Interconnection of Lots of Links</li>
<li>Used with STP to provide more efficient bridging and bandwidth aggregation</li>
<li>Focuses on bridging capability that will increase bandwidth by allowing and aggregating multiple network paths</li>
</ul>
</li>
</ul>
<p>Solution Evolution<br />
iSCSI</p>
<ul>
<li>iSCSI was &gt;15% of revenue ($1.8B in 2009) and &gt;20% capacity in SAN market in 2009</li>
<li>10Gb iSCSI solutions are available</li>
<li>iSCSI natively routable (IP)</li>
<li>iSCSI solutions are much smaller scale than FC</li>
</ul>
<p>FCoE</p>
<ul>
<li>FCoE with direct attach of server to Converged Network Switch at top of rack or end of row</li>
<li>Tightly controlled in 2009</li>
<li>First solutions are with FcoE aware Ethernet switch (FIP snooping)</li>
<li>Blade &gt; FCoE switch &gt; FC switch &gt; Storage</li>
</ul>
<p>Rack Area Network (RAN)</p>
<ul>
<li>Cisco UCS</li>
<li>Vblock</li>
<li>VCE (virtual computing environment)</li>
</ul>
<p>Timeline</p>
<ul>
<li>End of year, you will see FCoE native in CX and DMX</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=157&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/12/converged-data-center-fcoe-iscsi-and-the-future-of-storage-networking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Flash Architecture</title>
		<link>http://sanartisan.wordpress.com/2010/05/11/flash-architecture/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/11/flash-architecture/#comments</comments>
		<pubDate>Tue, 11 May 2010 20:14:09 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=129</guid>
		<description><![CDATA[Flash drives are like little storage systems Memory buffer Buffers hold index of all locations Buffers incoming writes Buffer resiliency Power capacitors maintain power to the buffer in the event of system power failure Contents are then written to the persistent store if power fails Pages Cells are addressed by pages 73GB and 200GB use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=129&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Flash drives are like little storage systems</p>
<ul>
<li>Memory buffer
<ul>
<li>Buffers hold index of all locations</li>
<li>Buffers incoming writes</li>
<li>Buffer resiliency
<ul>
<li>Power capacitors maintain power to the buffer in the event of system power failure</li>
<li>Contents are then written to the persistent store if power fails</li>
</ul>
</li>
</ul>
</li>
<li>Pages
<ul>
<li>Cells are addressed by pages</li>
<li>73GB and 200GB use 4KB pages</li>
<li>400GB use 16KB pages</li>
<li>Page contents are contiguous address space, like SP cache pages</li>
<li>Two 2KB IO in a 4KB flash page but must be contiguous WRT LBA</li>
</ul>
</li>
<li>Blocks
<ul>
<li>NAND storage is mapped like a filesystem</li>
<li>Pages are grouped together into blocks
<ul>
<li>Not to be confused with SCSI or filesystem blocks</li>
<li>Multiple page sin a block jumpled together</li>
<li>Addresses of pages in a block do not have to be contiguous</li>
</ul>
</li>
<li>Writes to NAND are done at block level</li>
<li>Block images are held in buffer until the block is full, then written to previously erased block on disk</li>
<li>There must be an erased block available for the write</li>
</ul>
</li>
<li>Channels
<ul>
<li>Paths to physical devices (chips)</li>
<li>Flash drives have multiple channels, discrete devices can be read from or written to simultaneously</li>
<li>Large I/O is striped across the channels</li>
</ul>
</li>
</ul>
<p>Page States</p>
<ul>
<li>Flash as Mapped Device
<ul>
<li>Workload can affect page state</li>
<li>Page state can affect availability of blocks</li>
<li>Availability of free (erased) blocks determines write performance</li>
</ul>
</li>
<li>Valid state: contains good data (referenced by host and flash)</li>
<li>Invalid state: contains stale data</li>
<li>Erased state: block is not in use</li>
<li>Pages become randomized due to random writes</li>
<li>Valid or invalid if referenced by flash meta data</li>
<li>For example
<ul>
<li>A file that occupied two blocks on the chip gets written to</li>
<li>The first block gets written to the buffer and the block in the NAND gets marks as invalid</li>
</ul>
</li>
</ul>
<p>Reserve Capacity</p>
<ul>
<li>Some percentage of capacity is reserved and not included as user addressable capacity</li>
<li>The capacity will be used to provide ready blocks for incoming writes</li>
<li>Sustained heavy writes can saturate a Flash drive</li>
<li>Now the drive will need to perform erase operations in idle cycles</li>
</ul>
<p>Erasing Blocks</p>
<ul>
<li>The drive will erase blocks during idle periods</li>
<li>To be erased, a block must have all invalid pages
<ul>
<li>Every valid page in a block must first be written to another block</li>
<li>That requires additional activity
<ul>
<li>Read in pages to buffered block</li>
<li>Erased old locales in NAND</li>
<li>Write out consolidated block to NAND</li>
<li>Basically this is defragmentation (housekeeping)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Consolidation</p>
<ul>
<li>Do flash drives slow down over time?</li>
<li>Free space is a factor but so is time because it gets more and more fragmented over time</li>
<li>Total capacity utilization can affect the response time of sustained writes
<ul>
<li>Higher capacity utilization results in more valid pages in each block</li>
<li>Over time, distribution of valid pages becomes more random and capacity utilization increases</li>
<li>If blocks have a high percentage of valid pages, it is more difficult to consolidate and erase a block</li>
<li>The drive therefore needs more time to do housekeeping</li>
</ul>
</li>
</ul>
<p>Issues</p>
<ul>
<li>&gt;20% random write workload can have pretty significant affect on flash drive importance</li>
</ul>
<p>Backfill</p>
<ul>
<li>Small writes and backfill, aka write amplification</li>
<li>Writing an I/O smaller than the page requires read-modify-write</li>
<li>This therefore doubles the workload on the drive</li>
<li>This makes 73GB and 200GB flash drives better as they use 4KB page sizes and don&#8217;t suffer from this penalty as much as 400GB drives do with 16KB page sizes</li>
</ul>
<p>Flash and Write Cache</p>
<ul>
<li>Original guidance: flash does not need SP cache</li>
<li>New guidance: flash can help SP cache in many cases</li>
<li>Experience: many uses of flash + SP cache in the field</li>
<li>OK to use the SP cache for flash drives now and is a benefit in many cases</li>
</ul>
<p>Best Practices</p>
<ul>
<li>Best use
<ul>
<li>High random read rates</li>
<li>Smaller I/O</li>
<li>I/O patterns that are not optimal for cached FC implementations</li>
</ul>
</li>
<li>Databases: 4-15 flash drives typical
<ul>
<li>Indexes and busy tables
<ul>
<li>Biggest disk-for-disk increase in ready-heavy tables (10-20x)</li>
</ul>
</li>
<li>Temp space
<ul>
<li>But turn on SP write cache because of the write/re-read/write nature of temp databases</li>
</ul>
</li>
<li>Some clients using Flash for write-heavy loads
<ul>
<li>Use SP cache for better response time</li>
<li>Flash flushes cache faster</li>
</ul>
</li>
</ul>
</li>
<li>Really big databases are a little different
<ul>
<li>Up to 30 flash drives</li>
<li>These bypass SP write cache to maximize write throughput</li>
</ul>
</li>
<li>Oracle ASM 11gR2
<ul>
<li>Users can differentiate groups as FAST, AVERAGE, SLOW</li>
</ul>
</li>
<li>Messaging (Exchange, Notes)
<ul>
<li>Database to flash and all users benefit</li>
<li>Use R5 for Exchange on flash
<ul>
<li>Turn on SP write cache</li>
<li>Writes flush to R5 on flash faster than R10 on FC</li>
<li>Reads are likely better distributed than from R10 on flash</li>
<li>Flash rebuilds faster than FC and impact is less</li>
</ul>
</li>
</ul>
</li>
<li>Ok to use
<ul>
<li>Databases
<ul>
<li>Oracle Flash Recovery: SATA do fine here, more economical</li>
<li>Redo logs: FC is sufficient, cost less</li>
<li>Archive logs: FC even SATA do fine</li>
</ul>
</li>
<li>Media
<ul>
<li>Editing configurations are the best fit for flash in media</li>
<li>Some advantage to multi-stream access</li>
<li>FC will give more predictable write performance at a micro level due to flash&#8217;s internal structure</li>
</ul>
</li>
<li>Any time power/cooling is an issue</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=129&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/11/flash-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Architecture Deep Dive for VPLEX</title>
		<link>http://sanartisan.wordpress.com/2010/05/11/architecture-deep-dive-for-vplex/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/11/architecture-deep-dive-for-vplex/#comments</comments>
		<pubDate>Tue, 11 May 2010 18:41:20 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=126</guid>
		<description><![CDATA[What is it? Storage federation platform that extends storage beyond the boundaries of the data center Distributed, peer-to-peer, fault-tolerant storage system What problem does it solve? Simultaneous access to storage devices from two distinct locations Planned data mobility within, across and between data centers What&#8217;s unique? Clusters can scale out and scale up Distributed coherent [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=126&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>What is it?</p>
<ul>
<li>Storage federation platform that extends storage beyond the boundaries of the data center</li>
<li>Distributed, peer-to-peer, fault-tolerant storage system</li>
</ul>
<p>What problem does it solve?</p>
<ul>
<li>Simultaneous access to storage devices from two distinct locations</li>
<li>Planned data mobility within, across and between data centers</li>
</ul>
<p>What&#8217;s unique?</p>
<ul>
<li>Clusters can scale out and scale up</li>
<li>Distributed coherent cache enabling distributed storage access</li>
<li>Designed for asynchronous distances and multiple clusters</li>
</ul>
<p>VPLEX Director</p>
<ul>
<li>8x 8Gb/s FC front-end</li>
<li>8x 8Gb/s backend</li>
<li>Dual quad-core processors (2.33Ghz)</li>
<li>32GB memory, about 25GB for cache</li>
<li>4x 8Gb/s FC com ports (intra- and inter-cluster)</li>
<li>4x 1Gb/s Ethernet com ports (inter-cluster)</li>
<li>Standard EMC hardware</li>
<li>GeoSynchrony is the operating system</li>
<li>Looks like a VMAX engine</li>
</ul>
<p>VPLEX Cluster</p>
<ul>
<li>Rack containing 1, 2, or 4 engines</li>
<li>Plus a management server (and standby)</li>
<li>Intra-director fibre channel switches</li>
<li>Power and battery backup for each engine</li>
<li>Cabling for management and intra-cluster com</li>
<li>VPLEX Local is one cluster</li>
<li>VPLEX Metro is two clusters</li>
</ul>
<p>Major Subsystems</p>
<ul>
<li>Front-end &#8211; storage view</li>
<li>Cache &#8211; distributed coherent cache</li>
<li>Device Virtualization &#8211; virtual volumes</li>
<li>Back-end &#8211; storage volumes</li>
</ul>
<p>Lease Rollover</p>
<ul>
<li>Can be used to migrate data from one array to a new array</li>
<li>Import new storage array/volumes</li>
<li>Production volumes are mirrored</li>
<li>Original array can be pulled out while the virtual devices now point to the new array</li>
</ul>
<p>Application Migration</p>
<ul>
<li>Enable application at the remote site</li>
<li>Cache activity now functions at source and remote site</li>
<li>Disable application at source site</li>
<li>Cache activity migrates to the remote site</li>
</ul>
<p>Cluster failure and cluster partition</p>
<ul>
<li>Cluster failure and partition is hard
<ul>
<li>What does A know and when does it notice it can talk to B any more?</li>
<li>Easy if B&#8217;s really dead (then it can&#8217;t mess us up), but what if it&#8217;s still alive?</li>
<li>How do A and B decide what to do?</li>
</ul>
</li>
<li>Cluster Bias
<ul>
<li>Each distributed volume has a bias that favors one site over another</li>
</ul>
</li>
<li>What happens to all the writes to the other side?</li>
</ul>
<p>A Closer Look at Distributed Mirrors</p>
<ul>
<li>Each disributed mirror has two dirty region logs
<ul>
<li>One records writes that couldn&#8217;t be committed locally</li>
<li>One records writes that couldn&#8217;t be committed to the remote site</li>
</ul>
</li>
<li>Each distributed mirror also has a bias and timeout for applying that bias</li>
</ul>
<p>Failure of cluster without bias</p>
<ol>
<li>IO goes to cluster A and B</li>
<li>Something bad happens to A. A can&#8217;t talk to B and thus starts a timer. IO pauses briefly</li>
<li>The timer expires, IO resumes for hosts at A. Writes are logged to the DRL.</li>
<li>Eventually B is repaired and brought back online. A and B reconnect.</li>
<li>A begins to resynchronze B based on DRL. Distributed mirror and cache coherency present A&#8217;s version of the data</li>
<li>Resynchronization finishes, DRLs are now empty</li>
</ol>
<p>Failure of cluster with bias</p>
<ol>
<li>IO goes to cluster A and B</li>
<li>B can&#8217;t talk to A. IO pauses indefinitely.</li>
<li>Admin instructs B to resume IO, and starts passive application at B. Writes are logged in B&#8217;s DRL</li>
<li>A is repaired and brough back online. And B reconnect. A notices B continued in spite of bias settings.</li>
<li>B begins to resynchronze A based on DRL. Distributed mirror and cache coherency present B&#8217;s version of the data</li>
<li>Resynchronization finishes, DRLs are now empty</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=126&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/11/architecture-deep-dive-for-vplex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
		<item>
		<title>Transitioning to Auto-Provisioning Groups</title>
		<link>http://sanartisan.wordpress.com/2010/05/11/transitioning-to-auto-provisioning-groups/</link>
		<comments>http://sanartisan.wordpress.com/2010/05/11/transitioning-to-auto-provisioning-groups/#comments</comments>
		<pubDate>Tue, 11 May 2010 16:54:30 +0000</pubDate>
		<dc:creator>sanartisan</dc:creator>
				<category><![CDATA[Symmetrix]]></category>

		<guid isPermaLink="false">http://sanartisan.wordpress.com/?p=123</guid>
		<description><![CDATA[Auto-provisioning groups look to replace the traditional symmasking functionality and definitely simplifies the provisioning process. 3 Grouping Objects Storage groups: symaccess -sid 1234 create -type storage -name mystorage -devs 050:053 Port groups: symaccess -sid 1234 -type port -name myports -dirport 7e:0, 8:e0 Initiator groups: symaccess -sid 1234 create -type initiator -name myinit -file initiator_list Must [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=123&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Auto-provisioning groups look to replace the traditional symmasking functionality and definitely simplifies the provisioning process.</p>
<p>3 Grouping Objects</p>
<ul>
<li>Storage groups: symaccess -sid 1234 create -type storage -name mystorage -devs 050:053</li>
<li>Port groups: symaccess -sid 1234 -type port -name myports -dirport 7e:0, 8:e0</li>
<li>Initiator groups: symaccess -sid 1234 create -type initiator -name myinit -file initiator_list</li>
</ul>
<p>Must define a masking view</p>
<ul>
<li>Associates devices in the storagr group to the port groups to the intiator group</li>
<li>Uses dynamic lun addressing, same lun address for all paths</li>
<li>symaccess -sid 1234 create view -name dbserver -storgrp mystorage -portgrp myports -initgrp myinit</li>
<li>Simplifies updates/changes</li>
</ul>
<p>AccessLogix Database</p>
<ul>
<li>ACLX gatekeeper device (instead of the VCM database)</li>
</ul>
<p>Limited symmask Compatibility Mode</p>
<ul>
<li>Both the VCM and ACLX database contain masking entires, resides in SFS, accessed through gatekeeper device</li>
<li>However, data structures are completely different</li>
<li>VCM database entries are based on one-to-one relationship between initiators and front-end ports</li>
<li>ACLX database entries are based on many-to-many relationship between groups of initiators and ports</li>
<li>Compatibility mode will take the traditional VCM symmask command but it still convert it to the auto-provisioning groups above but with one entry in each group</li>
<li>Restrictions: once you start using symmask, you have to continue using symmask. If you use symaccess, symmask will no longer work because symmask is looking for one-to-one relationship</li>
<li>Best practice is to transition over to auto-provisioning groups</li>
</ul>
<p>Storage Templates</p>
<ul>
<li>Define capacity, protection, drive type, and other criteria</li>
<li>Specify template rather than specific devices when initially provisioning storage or adding new capacity</li>
<li>If the devices do not exist, it can optionally create the device</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sanartisan.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sanartisan.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sanartisan.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sanartisan.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sanartisan.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sanartisan.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sanartisan.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sanartisan.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sanartisan.wordpress.com&amp;blog=1810009&amp;post=123&amp;subd=sanartisan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sanartisan.wordpress.com/2010/05/11/transitioning-to-auto-provisioning-groups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9561d1daf8390f728a3c236775c62ae?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">sanartisan</media:title>
		</media:content>
	</item>
	</channel>
</rss>

