{"id":4324,"date":"2023-10-09T17:19:41","date_gmt":"2023-10-09T22:19:41","guid":{"rendered":"https:\/\/www.jasemccarty.com\/blog\/?p=4324"},"modified":"2023-10-09T17:28:15","modified_gmt":"2023-10-09T22:28:15","slug":"add-pure-to-vsan-p1","status":"publish","type":"post","link":"https:\/\/www.jasemccarty.com\/blog\/add-pure-to-vsan-p1\/","title":{"rendered":"How do I add Pure Storage FlashArray to vSAN or VxRail? Part 1"},"content":{"rendered":"<p>It has been a while since posting, but hopefully that will change given I&#8217;m now in a technical role again.<\/p>\n<p>As an Architect\/Engineer at Pure who previously worked at VMware on the vSAN product, I&#8217;m often asked about using Pure Storage with vSAN. This is a common ask for customers who want to take advantage of some of our awesome features like local snapshots, native replication, offload to NFS\/Cloud, Safemode, and more.<\/p>\n<p>As of right now, we don&#8217;t have any specific documentation on how to &#8220;add Pure Storage FlashArray to vSAN&#8221;, so I thought I&#8217;d put something together to cover the process at a high level. It really is pretty simple. There isn&#8217;t anything special about adding non-vSAN storage to vSAN nodes (or VxRail nodes for that matter), other than to say, follow the normal process of adding external storage to vSphere.<\/p>\n<p>With that being said, I chose to go through this process in a fashion similar to customers with a dual-10G uplink configuration like that of some vSAN\/VxRail configurations.<\/p>\n<p>To illustrate the process, I configured a nested VMware vSphere 8.0 U2 vSAN environment.<br \/>\n<a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4325 size-large\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01-e1696447486347-1024x525.png\" alt=\"\" width=\"1024\" height=\"525\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01-e1696447486347-1024x525.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01-e1696447486347-300x154.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01-e1696447486347-768x394.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01-e1696447486347-1536x788.png 1536w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE01-e1696447486347-2048x1051.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h2>My vSAN Connectivity Configuration<\/h2>\n<p><!--more--><\/p>\n<p>I configured the environment with 2 &#8220;physical&#8221; NICs to mimic what might be seen in a small VxRail\/vSAN environment.<br \/>\n<a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4327 size-large\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02-e1696447440630-1024x338.png\" alt=\"\" width=\"1024\" height=\"338\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02-e1696447440630-1024x338.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02-e1696447440630-300x99.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02-e1696447440630-768x253.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02-e1696447440630-1536x507.png 1536w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE02-e1696447440630-2048x676.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Like many vSAN\/VxRail customers, I&#8217;m using a vSphere Distributed Switch to manage the uplinks and port groups.<br \/>\n<a href=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-4328\" src=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03-1024x314.png\" alt=\"\" width=\"1024\" height=\"314\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03-1024x314.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03-300x92.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03-768x236.png 768w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03-1536x471.png 1536w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2023\/10\/VSANPURE03-2048x628.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><strong>vSAN Network Configuration Summary<\/strong> &#8211; 2 physical NICs included in a vSphere Distributed Switch with Management, VM traffic, vMotion, and vSAN port groups. Out of the box, vSAN, iSCSI, and NFS traffic are all going to have the same priority from a resource allocation perspective within the VDS.<\/p>\n<h2>Adding Storage to vSAN\/VxRail Nodes<\/h2>\n<p>There are different tasks to attach external storage to vSphere, depending on things like the protocol, type of storage being used, access lists\/etc.<\/p>\n<p><strong>For iSCSI storage<\/strong>, with FlashArray, the basic process is essentially:<\/p>\n<ol>\n<li>Configure the iSCSI initiators on vSphere (Pure recommends DelayedAck = False and LoginTimeout = 30) and we typically use Dynamic targets to populate the controller uplinks with iSCSI traffic.<\/li>\n<li>Configure the vSphere Hosts in FlashArray by their IQN<\/li>\n<li>Configure the vSphere Hosts in a Cluster as part of a Host Group in FlashArray<\/li>\n<li>Create one or more volumes and assign it\/them to the Host Group<\/li>\n<li>Create one or more datastores from the vSphere Client using the native workflow.<\/li>\n<\/ol>\n<p><strong>Fibre Channel storage<\/strong> is essentially the same as Steps 2-5 above, but with host WWNs rather than IQNs.<\/p>\n<p>For vVols storage, we&#8217;ll first want to have either iSCSI or Fibre Channel connectivity in place and then:<\/p>\n<ol>\n<li>Register the VASA storage provider from FlashArray<\/li>\n<li>Ensure a Protocol Endpoint is present on FlashArray and attach it to the vSphere Host Group<\/li>\n<li>Create a vVol datastore using the vSphere Client native workflow.<\/li>\n<\/ol>\n<p><strong>For NFS storage<\/strong>, with FlashArray, the basic process is essentially:<\/p>\n<ol>\n<li>Configure FlashArray for File Services and create one or more file systems for use with NFS<\/li>\n<li>Configure a FlashArray File System export policy to include the VMkernel addresses of the hosts mounting NFS as a datastore<\/li>\n<li>Assign the export policy and quota policy to the file system presented from FlashArray<\/li>\n<li>Mount the NFS export(s) from FlashArray to vSphere as a datastore using the vSphere Client native workflow.<\/li>\n<\/ol>\n<p>Pretty straightforward process, regardless of whether vSAN, VxRail, or vanilla vSphere is used.<\/p>\n<p>Rather than going through these steps manually, I&#8217;m going to use the Pure Storage Plugin for VMware vSphere to accomplish these tasks.<\/p>\n<h2>Install the Pure Storage Plugin for VMware vSphere<\/h2>\n<p>Installing the Pure Storage Plugin for VMware vSphere will make things significantly easier to add FlashArray based datastores to your VMware environment.<\/p>\n<p>Pure customers can find complete documentation on how to download and install the Pure Storage Plugin <a href=\"https:\/\/support.purestorage.com\/Solutions\/VMware_Platform_Guide\/User_Guides_for_VMware_Solutions\/Using_the_Pure_Storage_Plugin_for_the_vSphere_Client\/vSphere_Plugin_User_Guide%3A_Installing_the_Remote_vSphere_Plugin_with_the_Pure_Storage_VMware_Appliance\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>Essentially, the process is:<\/p>\n<ol>\n<li>Download the OVA (or import directly into vSphere)<\/li>\n<li>Configure the OVA to install the plugin (<em>or choose none &amp; perform the offline installation for dark sites<\/em>)<\/li>\n<li>Register one or more FlashArray&#8217;s for use by vSphere<\/li>\n<\/ol>\n<h2>Next Steps<\/h2>\n<p>In <a href=\"\/blog\/add-pure-to-vsan-p2-iscsi\">Part 2<\/a> I will cover how to add iSCSI to the vSAN Cluster with the latest (5.3.4) plugin so it can be used to add one or more VMFS datastores.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It has been a while since posting, but hopefully that will change given I&#8217;m now in a technical role again. As an Architect\/Engineer at Pure &hellip; <\/p>\n","protected":false},"author":1,"featured_media":4325,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[209,135,10,168],"tags":[234,213,87,105,152,111,233],"class_list":["post-4324","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pure-storage","category-software-defined","category-storage-2","category-vsan","tag-external","tag-pure-storage","tag-storage","tag-vmware","tag-vsan","tag-vsphere","tag-vxrail"],"_links":{"self":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/4324","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=4324"}],"version-history":[{"count":16,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/4324\/revisions"}],"predecessor-version":[{"id":4377,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/4324\/revisions\/4377"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/media\/4325"}],"wp:attachment":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/media?parent=4324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/categories?post=4324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/tags?post=4324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}