{"id":2133,"date":"2012-05-18T15:09:24","date_gmt":"2012-05-18T21:09:24","guid":{"rendered":"http:\/\/www.jasemccarty.com\/blog\/?p=2133"},"modified":"2012-12-30T14:50:08","modified_gmt":"2012-12-30T20:50:08","slug":"configuring-emc-isilon-smartconnect-part-ii-smartconnect-advanced","status":"publish","type":"post","link":"https:\/\/www.jasemccarty.com\/blog\/configuring-emc-isilon-smartconnect-part-ii-smartconnect-advanced\/","title":{"rendered":"Configuring EMC Isilon SmartConnect &#8211; Part II: SmartConnect Advanced"},"content":{"rendered":"<p>In <strong><a title=\"Configuring EMC Isilon SmartConnect \u2013 Part I: SmartConnect Basic\" href=\"http:\/\/www.jasemccarty.com\/blog\/?p=2131\">Part I<\/a><\/strong>, I covered SmartConnect Basic, an included feature of OneFS, that handles connections to Isilon node IP addresses based on a Round Robin connection policy.<\/p>\n<p>What do you do if you want a more dynamic, more resilient, and better load balanced solution? You implement SmartConnect Advanced. Remember, that SmartConnect Advanced requires an additional license.<\/p>\n<p>So why is SmartConnect Advanced so much better than SmartConnect Basic?\u00a0 From a <strong><a title=\"VMware vSphere and EMC Isilon \u2013 One datastore or many?\" href=\"http:\/\/www.jasemccarty.com\/blog\/?p=2014\">previous post<\/a><\/strong>, I mentioned:<\/p>\n<p><strong>SmartConnect Basic<\/strong> has the following features:<\/p>\n<ul>\n<li>Static IP allocation to nodes<\/li>\n<li>Connection Policy Algorithms\n<ul>\n<li>Round Robin (which node is next)<\/li>\n<\/ul>\n<\/li>\n<li>No Rebalancing<\/li>\n<li>No IP Failover<\/li>\n<\/ul>\n<p><strong><!--more-->SmartConnect Advanced<\/strong> has the following features:<\/p>\n<ul>\n<li>Dynamic IP allocation to nodes<\/li>\n<li>Connection Policy Algorithms\n<ul>\n<li>Round Robin (which node is next)<\/li>\n<li>Connection Count (which is next given connections each node has)<\/li>\n<li>Network Throughput (which is next given the amount of throughput each node has)<\/li>\n<li>CPU Usage (which is next given the amount of CPU usage each node has)<\/li>\n<\/ul>\n<\/li>\n<li>Automatic or Manual Rebalancing<\/li>\n<li>IP Failover Policy\n<ul>\n<li>Round Robin (which node is next)<\/li>\n<li>Connection Count (which is next given connections each node has)<\/li>\n<li>Network Throughput (which is next given the amount of throughput each node has)<\/li>\n<li>CPU Usage (which is next given the amount of CPU usage each node has)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>As can be seen by the feature set, SmartConnect Advanced allows for Dynamic IP allocation, more Connection Policies, Rebalancing, and Failover Policies.\u00a0 Quite a few more features.<\/p>\n<p><strong>Dynamic IP allocation to nodes<\/strong><br \/>\nDyanmic IP allocation to nodes gives some additional capabilities to the mix that may or may not be readily apparent.\u00a0 In Part I, the front end network (subnet0) had a range of 172.16.1.11-13.\u00a0 With SmartConnect Basic each node had a single address.\u00a0 If the range had been 172.16.1.11-172.16.1.16, each node would still only have 1 IP address each.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SB132.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2197\" title=\"SB13\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SB132.png\" alt=\"\" width=\"436\" height=\"293\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SB132.png 436w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SB132-300x201.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/a><\/p>\n<p>With SmartConnect Advanced, all of the addresses are added to the pool.\u00a0 In my 3 node cluster, all 6 addresses are evenly distributed when using SmartConnect Advanced. I only have to change my IP allocation method from Static to Dynamic.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2194\" title=\"SA01\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA01.png\" alt=\"\" width=\"441\" height=\"318\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA01.png 441w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA01-300x216.png 300w\" sizes=\"auto, (max-width: 441px) 100vw, 441px\" \/><\/a><\/p>\n<p>With IP addresses being statically allocated (SmartConnect Basic), I can only use 1 IP for each node in the cluster.\u00a0 With SmartConnect Advanced, I can use multiple IP addresses per node.\u00a0 As I add more nodes to the cluster, the IP addresses are automatically distributed across the nodes.\u00a0 In short, I configure my range up front, and as I grow the cluster, I don&#8217;t have to make configuration changes to my clients.<\/p>\n<p><strong>Connection Policy Algorithms<\/strong><br \/>\nSmartConnect Basic only has a Round Robin connection policy.\u00a0 There is no intelligence on the decisioning of which IP to give out by SmartConnect, other than to say which IP is next in, what I would call a &#8220;hunt group.&#8221; Yeah, an old PBX analogy, but pretty accurate here.\u00a0 With Round Robin, we go to the first IP, then the second, then the third, and so on.\u00a0 Not much intelligence there&#8230;<\/p>\n<p>SmartConnect Advanced adds a couple more connection policies, including Connection Count, Network Throughput, and CPU Usage.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2199\" title=\"SA02\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA02.png\" alt=\"\" width=\"470\" height=\"336\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA02.png 470w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA02-300x214.png 300w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/a>These additional options add a lot of flexibility to determining which node is going to answer next for the cluster.<\/p>\n<ul>\n<li><strong>Round Robin:<\/strong> The cluster issues the IP address for the next node in the &#8220;hunt group&#8221;<\/li>\n<li><strong>Connection Count:<\/strong> The cluster issues the IP address for the node that has the least number of connections.<\/li>\n<li><strong>Network Throughput:<\/strong> The cluster issues the IP address for the node that has the least amount of network throughput<\/li>\n<li><strong>CPU Usage:<\/strong> The cluster issues the IP address for the node that has the lowest CPU utilization<\/li>\n<\/ul>\n<p>Looking at these connection policy algorithms, we can see that there are, based on our use case\/workload\/etc, options that can add some intelligence to the balancing of connections to the cluster.<\/p>\n<p>After changing my Connection policy to Connection Count, and running my PowerShell script mentioned in Part I, I can see that I am no longer using Round Robin for the resolution of cluster.isilon.jasemccarty.com.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2200\" title=\"SA03\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA03.png\" alt=\"\" width=\"598\" height=\"535\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA03.png 598w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA03-300x268.png 300w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/a>In the graphic above, not only do I have additional IP addresses, I also have a different connection policy being demonstrated.\u00a0 Despite only having 3 nodes in my cluster, my cluster answers for 6 addresses. This is because SmartConnect Advanced is balancing all of the IP addresses all of the nodes.\u00a0 Also notice that the IP addresses are not simply moving from IP to IP as a Round Robin connection policy would use.<\/p>\n<p>Based on the EMC Isilon whitepaper I mentioned in my <strong><a title=\"VMware vSphere and EMC Isilon \u2013 One datastore or many?\" href=\"http:\/\/www.jasemccarty.com\/blog\/?p=2014\">VMware vSphere and EMC Isilon \u2013 One datastore or many?<\/a><\/strong> post, it would be easy to configure multiple, let&#8217;s say 6, NFS datastores on 3 nodes.\u00a0 It would look something like this:<\/p>\n<ul>\n<li>nfs1 on 172.16.1.11<\/li>\n<li>nfs2 on 172.16.1.12<\/li>\n<li>nfs3 on 172.16.1.13<\/li>\n<li>nfs4 on 172.16.1.14<\/li>\n<li>nfs5 on 172.16.1.15<\/li>\n<li>nfs6 on 172.16.1.16<\/li>\n<\/ul>\n<p>But I only have 3 nodes? SmartConnect Advanced will spread the load out for me, automatically.\u00a0 And later, when I decide to add 3 more nodes&#8230; Wait for it&#8230; I don&#8217;t have to change my vSphere configuration, I only have perform a rebalance operation (I&#8217;ll go into that next) and each datastore will be on its own node.<\/p>\n<p><strong>Rebalancing<\/strong><br \/>\nAnother cool feature with SmartConnect Advanced is Rebalancing. This can be done either manually or automatically. By default the policy is Automatic Failback.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2203\" title=\"SA04\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA04.png\" alt=\"\" width=\"466\" height=\"344\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA04.png 466w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA04-300x221.png 300w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><\/a>With the Rebalance policy set to Automatic Failback, the only times that a rebalance operation is triggered is when there is a change to<\/p>\n<ul>\n<li>the cluster membership<\/li>\n<li>the cluster&#8217;s external network configuration<\/li>\n<li>a member network interface<\/li>\n<\/ul>\n<p>When set to Manual Failback, the policy does not redistribute IP addresses until a rebalance command is issued via the command line or Administrative Web Interface.\u00a0 I have even seen situations where a cron job has been used to rebalance IPs on the cluster during scheduled times of less activity, including maintenance windows, etc.<\/p>\n<p><strong>IP Failover Policy<\/strong><br \/>\nThe other feature that SmartConnect Advanced adds, is IP Failover Policy.\u00a0 This has also been referred to as NFS failover.\u00a0 It determines how to redistribute the IP addresses to the nodes in the SmartConnect pool in the event that one of the other nodes becomes unavailable.\u00a0 For this to work, the IP allocation method has to be set to Dynamic.\u00a0 All four connection policies are available to the failover policy.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2205\" title=\"SA05\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA05.png\" alt=\"\" width=\"452\" height=\"397\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA05.png 452w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA05-300x263.png 300w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/a>An example of the IP failover policy would be:<\/p>\n<ul>\n<li>The nfs3 datastore is mapped to 172.16.1.13<\/li>\n<li>The IP 172.16.1.13 is assigned to Node 3<\/li>\n<li>Node 3 is no longer available<\/li>\n<li>The IP 172.16.1.13 is reassigned to Node 1 based on the IP failover policy<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2210\" title=\"SA07\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA07-300x103.png\" alt=\"\" width=\"300\" height=\"103\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA07-300x103.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA07.png 828w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Think of a situation where multiple vSphere hosts are accessing nfs3 on IP 172.16.1.13 and that node needs to be brought offline for maintenance, a rolling upgrade, or other administrative action.\u00a0 It would require significant planning and possibly downtime, if that IP address could not be moved to anther node.\u00a0 SmartConnect Advanced can accommodate for times when nodes are no longer available.<\/p>\n<p><strong>Additional SmartConnect Advanced additions<\/strong><br \/>\nIn addition to the above features, SmartConnect Advanced adds the ability to have multiple SmartConnect zones.\u00a0 Yes, multiple SmartConnect Zones. SmartConnect Basic only allows for a single zone, but SmartConnect Advanced provides the ability to\u00a0 have multiple zones. Imagine having a cluster with a combination of X, S, or NL series Isilon nodes&#8230; We would create a General Use SmartConnect zone with the NL series nodes assigned, as well as a performance zone with the X or S series nodes.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA061.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2216\" title=\"SA06\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA061-300x102.png\" alt=\"\" width=\"300\" height=\"102\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA061-300x102.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2012\/05\/SA061.png 904w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>The ability to have multiple zones gives the flexibility of pointing clients that require the most performance to the fastest nodes in a cluster, while pointing clients that require general use to general purpose nodes in a cluster.\u00a0 When using SmartConnect Basic all clients access the same SmartConnect zone.<\/p>\n<p>I didn&#8217;t mention it in Part I, but it is entirely possible,<em> with either version of SmartConnect<\/em>, to have more nodes in a zone than IP addresses available.\u00a0 Node membership in a SmartConnect zone is configurable, but does not require all nodes to be in the zone.\u00a0 The ability to choose which nodes are in a particular zone coupled with the ability to present multiple zones (SmartConnect Advanced), provides a huge amount of flexibility.<\/p>\n<p><strong>More Information on SmartConnect<\/strong><br \/>\nIf you would like more information about SmartConnect, check out this whitepaper: <strong><a title=\"SMARTCONNECT Optimize Scale-out Storage Performance and Availability\" href=\"http:\/\/simple.isilon.com\/doc-viewer\/1806\/smartconnect-osmartconnect-optimize-scale-out-storage-performance-and-availability.pdf\" target=\"_blank\">SMARTCONNECT Optimize Scale-out Storage Performance and Availability<\/a><\/strong><\/p>\n<p>If you are attending EMC World 2012, come by the Hands On Labs and take <strong>HOL16 \u2013 Isilon Setup, Scaling, and Management Simplicity<\/strong> to have hands on experience with SmartConnect.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Part I, I covered SmartConnect Basic, an included feature of OneFS, that handles connections to Isilon node IP addresses based on a Round Robin &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,12],"tags":[32,35,47,125,124],"class_list":["post-2133","post","type-post","status-publish","format-standard","hentry","category-storage-2","category-virtualization","tag-dns","tag-emc","tag-isilon","tag-round-robin","tag-smartconnect"],"_links":{"self":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/2133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/comments?post=2133"}],"version-history":[{"count":27,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/2133\/revisions"}],"predecessor-version":[{"id":2488,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/2133\/revisions\/2488"}],"wp:attachment":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/media?parent=2133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/categories?post=2133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/tags?post=2133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}