{"id":432,"date":"2017-07-28T11:38:18","date_gmt":"2017-07-28T18:38:18","guid":{"rendered":"http:\/\/blog.gptnet.net\/?p=432"},"modified":"2017-07-28T11:43:05","modified_gmt":"2017-07-28T18:43:05","slug":"hpe-3par-adaptive-optimization-demystified","status":"publish","type":"post","link":"https:\/\/blog.gptnet.net\/?p=432","title":{"rendered":"HPE 3PAR Adaptive Optimization configuration demystified"},"content":{"rendered":"<p>Adaptive Optimization is disk tiering technology within 3PAR OS, which automatically moves the most frequently accessed data blocks to the fastest disks and infrequently accessed data blocks of data to slower disks.<\/p>\n<p><a href=\"http:\/\/blog.gptnet.net\/?attachment_id=445\" rel=\"attachment wp-att-445\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/storeservF15.png\" alt=\"\" width=\"634\" height=\"247\" class=\"alignnone size-full wp-image-445\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/storeservF15-300x117.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/storeservF15.png 634w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><\/a><\/p>\n<p>I will not try to recite official documentation to explain technology or best practices because I think official documentation from HPE does it very well. Where I see there is a huge confusion and lack of understanding from users is how to properly configure AO in production. Official documentation will leave very confused at best.<\/p>\n<p>In this post I will show with screenshots how AO could be used in a real world example.<\/p>\n<p><!--more--><\/p>\n<p>Grand Portion Corporation has a typical daily business cycle from 7am to 7pm, Monday to Friday. Daily business cycle is time-span when corporation\u2019s data is accessed to achieve business objective and ultimately generate revenue.<\/p>\n<h2>Step 1<\/h2>\n<p>Create CPGs for each tier. In example below we created 3 CPG, hence we will have 3-tier storage.<\/p>\n<p><a href=\"http:\/\/blog.gptnet.net\/?attachment_id=433\" rel=\"attachment wp-att-433\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-433\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf1.png\" alt=\"\" width=\"801\" height=\"284\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf1-300x106.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf1-768x272.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf1.png 801w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/a><\/p>\n<h2>Step 2<\/h2>\n<p>Create Adaptive Optimization Policy<\/p>\n<p><a href=\"http:\/\/blog.gptnet.net\/?attachment_id=434\" rel=\"attachment wp-att-434\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-434\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf2.png\" alt=\"\" width=\"689\" height=\"408\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf2-300x178.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf2.png 689w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.gptnet.net\/?attachment_id=435\" rel=\"attachment wp-att-435\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-435\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf3.png\" alt=\"\" width=\"711\" height=\"791\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf3-270x300.png 270w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf3.png 711w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><\/a><\/p>\n<p><em>Mode<\/em> \u2013 how \u201caggressive\u201d the policy is.<\/p>\n<p><strong><em>Performance<\/em><\/strong> \u2013 more data moved to higher tier<br \/>\n<strong><em>Balanced<\/em><\/strong> \u2013 balance in between<br \/>\n<strong><em>Cost<\/em><\/strong>\u2013 more data is moved to lower tier<\/p>\n<p><strong><em>Notes<\/em><\/strong><br \/>\nAll your writes will be going to Tier 1. You need to create LUNs in CPG defined in tier 1.<br \/>\nAlthough it is possible, <span style=\"color: #ff0000;\">do not<\/span> create 2 tier AO policy between NL and SSD disk as the speed difference is substantial and will impact response time on the workloads. You can create 2 tier AO between FC and SSD or FC and NL disk.<\/p>\n<h2>Step 3<\/h2>\n<p>Create Schedule for this AO policy. Without schedule this AO policy will not work.<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=436\" rel=\"attachment wp-att-436\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-436\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf4.png\" alt=\"\" width=\"646\" height=\"700\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf4-277x300.png 277w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf4.png 646w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/a><br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=437\" rel=\"attachment wp-att-437\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-437\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf5.png\" alt=\"\" width=\"711\" height=\"397\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf5-300x168.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf5.png 711w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><\/a><\/p>\n<ol>\n<li><em><strong>Optimization Schedule<\/strong><\/em> \u2013 when to start data move between tiers<\/li>\n<li><em><strong>Max run time<\/strong><\/em> \u2013 how long to run data move between tiers. In example below it will run from 1am to 6am every Tuesday to Saturday<\/li>\n<li><em><strong>Start analysis<\/strong><\/em> \u2013 when to start collect\/track how frequent data is accessed. Calculated the following way: <em><strong>Optimization schedule<\/strong><\/em> minus <em><strong>Start analysis<\/strong><\/em> value. So in our case:<br \/>\n1am minus 18 hours = 7am<br \/>\nHence is the example below if data move is set to run at 1am on Tuesday, our data analysis will start at 7am on Monday<\/li>\n<li><em><strong>Duration<\/strong><\/em> \u2013 when to end collect\/track how frequent data is accessed. Calculated the following way: <em><strong>Start analysis<\/strong><\/em> plus <em><strong>Duration<\/strong><\/em>. So in our case:<br \/>\n7am plus 12 hours = 7pm<br \/>\nHence in the example below if start of analysis is set to start at 7am on Monday, our data analysis will end at 7pm on Monday.<\/li>\n<\/ol>\n<h2>Step 4<\/h2>\n<p>Review schedule<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=439\" rel=\"attachment wp-att-439\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf6.png\" alt=\"\" width=\"1304\" height=\"430\" class=\"alignnone size-full wp-image-439\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf6-300x99.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf6-1024x338.png 1024w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf6-768x253.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf6.png 1304w\" sizes=\"auto, (max-width: 1304px) 100vw, 1304px\" \/><\/a><\/p>\n<h2>Step 5<\/h2>\n<p>Move existing volume or create new one in CPG assigned to tier 1<br \/>\n<a href=\"http:\/\/blog.gptnet.net\/?attachment_id=440\" rel=\"attachment wp-att-440\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8.png\" alt=\"\" width=\"792\" height=\"420\" class=\"alignnone size-full wp-image-440\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8-300x159.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8-768x407.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8.png 792w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.gptnet.net\/?attachment_id=441\" rel=\"attachment wp-att-441\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8-1.png\" alt=\"\" width=\"792\" height=\"420\" class=\"alignnone size-full wp-image-441\" srcset=\"https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8-1-300x159.png 300w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8-1-768x407.png 768w, https:\/\/blog.gptnet.net\/wp-content\/uploads\/2017\/07\/ao_conf8-1.png 792w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/a><\/p>\n<p><strong><em>CPG<\/em><\/strong> \u2013 specify AO policy name<br \/>\n<strong><em>Default CPG <\/em><\/strong>\u2013 pick tier 1 CPG. This where all new data writes will go.<br \/>\n<strong><em>Size<\/em><\/strong> \u2013 volume size<br \/>\n<strong><em>Copy CPG<\/em><\/strong> \u2013 where volume snapshot is created.<\/p>\n<p>Sounds simple, eh?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Adaptive Optimization is disk tiering technology within 3PAR OS, which automatically moves the most frequently accessed data blocks to the fastest disks and infrequently accessed data blocks of data to slower disks. I will not try to recite official documentation &hellip; <a href=\"https:\/\/blog.gptnet.net\/?p=432\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72],"tags":[61,103,104],"class_list":["post-432","post","type-post","status-publish","format-standard","hentry","category-3par","tag-3par","tag-adaptive-optimization","tag-ao"],"_links":{"self":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts\/432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=432"}],"version-history":[{"count":7,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts\/432\/revisions"}],"predecessor-version":[{"id":486,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=\/wp\/v2\/posts\/432\/revisions\/486"}],"wp:attachment":[{"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gptnet.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}