<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>isilon on Digi Hunch</title><link>https://static.digihunch.com/tag/isilon/</link><description>Recent content in isilon on Digi Hunch</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Wed, 02 Apr 2025 13:22:46 -0400</lastBuildDate><atom:link href="https://static.digihunch.com/tag/isilon/index.xml" rel="self" type="application/rss+xml"/><item><title>FSx ONTAP – Enterprise storage on AWS</title><link>https://static.digihunch.com/2022/05/fsx-ontap-enterprise-storage-on-aws/</link><pubDate>Sat, 14 May 2022 22:28:00 -0400</pubDate><guid>https://static.digihunch.com/2022/05/fsx-ontap-enterprise-storage-on-aws/</guid><description>&lt;img src="https://static.digihunch.com/wp-content/uploads/2025/04/feature-fsx-ontap.webp" alt="Featured image of post FSx ONTAP – Enterprise storage on AWS" /&gt;&lt;p class="wp-block-paragraph"&gt;Even though object storage has gained a lot of popularity, file storage is still prevalent. AWS has Elastic File System but the performance is insufficient for enterprise workload. The FSx product line has enterprise storage options and on Sept 2, 2021, AWS launched FSx ONTAP. &lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;This post is my impression about FSx ONTAP. As &lt;a href="https://static.digihunch.com/2021/09/file-storage-vs-object-storage/"&gt;previously discussed&lt;/a&gt;, &lt;a href="https://aws.amazon.com/fsx/netapp-ontap/"&gt;FSx ONTAP&lt;/a&gt;&amp;nbsp;is a managed NetApp storage service by AWS. Essentially, AWS installs NetApp arrays in their data centres, so that users can provision ONTAP volumes from AWS console, or using AWS CLI.&lt;/p&gt;&#10;&lt;h2 class="wp-block-heading"&gt;FSx ONTAP&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;ONTAP (or Data OONTAP) has been a very successful operating system to manage storage arrays. It was so successful that NetApp uses ONTAP as brandname for their storage arrays. This is similar to Isilon, a name of BSD based operating system to manage storage and later becomes brandname of EMC&amp;#8217;s storage products. ONTAP has been in competition with other enterprise storage players such as EMC Isilon, HP 3PAR, etc and AWS landed on ONTAP as their partner for enterprise storage. It appears that NetApp still owns their ONTAP storage technology. AWS operates the data centre and provides capability via the CLI layer and console.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Sometimes, people confuses FSx ONTAP with NetApps offering &lt;a href="https://cloud.netapp.com/ontap-cloud"&gt;Cloud volumes ONTAP&lt;/a&gt;. The two are fundamentally different. Cloud volumes ONTAP works with Cloud Manager (available as self-hosted or SaaS) as the management UI. It manages volumes provisioned from cloud vendor such as AWS, Azure, etc. Clients often configure these &amp;#8220;Cloud volumes&amp;#8221; as extension to an existing on-premise ONTAP storage deployment. When their on-prem ONTAP volumes fall short of space, the Cloud Manage is aware of a remotely available, cloud backed volume to move cold data off to. &lt;/p&gt;&#10;&lt;h2 class="wp-block-heading" id="h-client-tool"&gt;Client Tool&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;FSx ONTAP is essentially an ONTAP storage cluster sitting in AWS data centre. Users have the options of using AWS CLI or ONTAP CLI to manage the cluster. Users with storage administrator background are likely to prefer the latter. In my professional service experience, I have taken some iterations to come to best practice to use the right tool to interact with ONTAP resources. In a nut shell, it depends on the level of resource that we are interacting with. I categorize those resources into two classes:&lt;/p&gt;&#10;&lt;figure class="wp-block-table is-style-regular"&gt;&lt;table class="has-white-background-color has-background"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Identification&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AWS-level resource&lt;/td&gt;&lt;td&gt;FSx ONTAP file system, Storage Virtual Machine&lt;/td&gt;&lt;td&gt;These resources are from ONTAP but they are identified as AWS resources (with ARN). They are also exposed to AWS SDK and can be managed by AWS CLI.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ONTAP-native resource&lt;/td&gt;&lt;td&gt;Volume, Snapshot policy, Schedule, Snapmirror relationship, Vserver&lt;/td&gt;&lt;td&gt;These resources come from ONTAP and can only be managed using ONTAP CLI. The AWS CLI cannot manage &lt;sub&gt;these&lt;/sub&gt; resources simply because they are not exposed to AWS SDK. Some type of resource such as Volume, may be managed by AWS CLI with very limited options. So we still prefer ONTAP CLI to manage resources.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The AWS CLI (v 2.2.37) has very limited options when creating volumes. For example, the create-volume &lt;a href="https://docs.aws.amazon.com/cli/latest/reference/fsx/create-volume.html"&gt;documentation&lt;/a&gt; states that the OntapVolumeType section of output can display types of RW, DP (data protection), or LS. However, it doesn’t allow users to create a volume other than the default RW type. When we configure SnapMirror destination, we need a volume of DP type. We had to use ONTAP CLI to achieve that.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Our practice works out to be: use AWS CLI to create a file system and storage virtual machine. Then we use ONTAP CLI to create everything else. Even though AWS CLI intend to support volume creation, we prefer ONTAP CLI for full functionality support, and alignment with the ONTAP &lt;a href="https://docs.netapp.com/ontap-9/index.jsp"&gt;literature&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 class="wp-block-heading" id="h-administration-tasks"&gt;Administration Tasks&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;You should configure most of the administrative tasks with ONTAP CLI. We use the &lt;a href="https://docs.netapp.com/ontap-9/index.jsp"&gt;documentation&lt;/a&gt; by ONTAP as reference. For example, when a volume runs out of Inode, the AWS CLI reports that there is no space left. We need to increase the inode limit and this is, again, not something that AWS CLI can manage.&amp;nbsp; We’d have to use the volume modify command from ONTAP CLI.&lt;/p&gt;&#10;&lt;h2 class="wp-block-heading" id="h-nfs-version"&gt;NFS version&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The AWS document states that FSx ONTAP supports NFSv3.0, v4.0 and v4.1. However, FSx ONTAP is currently backed by NetApp ONTAP 9.10.0, which partially supports &lt;a href="https://docs.netapp.com/ontap-9/index.jsp?topic=%2Fcom.netapp.doc.cdot-famg-nfs%2FGUID-E0A4007F-B776-4A19-A6F1-A0C0EAA7B03A.html"&gt;NFSv4.2&lt;/a&gt;, with basic protocol and Labled NFS feature. NetApp’s ONTAP &lt;a href="https://www.netapp.com/media/10720-tr-4067.pdf"&gt;Best Practices and Implementation Guide&lt;/a&gt; suggests a method for clients to mount as NFSv4.2. In the POC we mount as NFS v4.2 in all of our testings.&lt;/p&gt;&#10;&lt;h2 class="wp-block-heading" id="h-clarity-of-terminology"&gt;Clarity of terminology&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The ONTAP storage system has been around for a while and many of its concepts are well known in the storage community. For example, A “Snapshot copy” is a read-only, point-in-time image of a volume. (ref: ONTAP 9 &lt;a href="https://docs.netapp.com/ontap-9/index.jsp"&gt;documentation&lt;/a&gt; -&amp;gt; ONTAP concepts -&amp;gt; Replication -&amp;gt; Snapshot copies) This concept becomes “Snapshot” in AWS &lt;a href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html"&gt;literature&lt;/a&gt;.&amp;nbsp; It took us some research to come to realize that “Snapshot” in AWS document, essentially maps to “Snapshot copy” in ONTAP literature.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;This creates confusion, because we use ONTAP documentation for operation guidance because we can’t get enough help from AWS documentation. The terminology in AWS documentation should align with ONTAP.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The other example is the difference between “&lt;a href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/using-backups.html"&gt;backup&lt;/a&gt;” and “&lt;a href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html"&gt;snapshot&lt;/a&gt;” in AWS documentation. It is my understanding that they both use the same underlying Snapshot technology on the ONTAP side. I’m not exactly sure what their difference is.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;ONTAP can create a Snapshot copy nearly instantaneously. However, when taking a snapshot using web console in AWS, it takes up to 10 minutes to update the status. This is confusing because it creates a perception that it takes 10 minutes to complete snapshot.&lt;/p&gt;&#10;&lt;h2 class="wp-block-heading" id="h-cross-region-replication"&gt;Cross Region Replication&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;There is a document &lt;a href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/scheduled-replication.html"&gt;page&lt;/a&gt; on AWS about using SnapMirror at a very high level. It points to two documents: using NetApp Cloud Manager and ONTAP CLI.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The former is not a viable option as we started natively on FSx ONTAP and do not have NetApp Cloud Manager. As to the latter, we managed to configure cross-region replication with ONTAP CLI following the document and identified some gaps in the documentation. Specifically, it would be helpful if AWS documentation calls out that:&lt;/p&gt;&#10;&lt;ol class="wp-block-list" type="1"&gt;&#10;&lt;li&gt;inter-cluster network connectivity is a prerequisite (e.g. via VPC peering, transit gateway)&lt;/li&gt;&#10;&lt;li&gt;Port 10000, 11104-11105 must be added to &lt;a href="https://kb.netapp.com/Advice_and_Troubleshooting/Data_Protection_and_Security/SnapMirror/What_are_the_firewall_requirements_for_intercluster_SnapMirror_with_ONTAP_9"&gt;security group&lt;/a&gt; for inter cluster communication.&lt;/li&gt;&#10;&lt;li&gt;The ONTAP CLI command to validate connectivity between clusters (using the ping command from ONTAP CLI).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p class="wp-block-paragraph"&gt;With AWS CLI alone it is not possible to configure cross-region replication.&lt;/p&gt;&#10;&lt;h2 class="wp-block-heading"&gt;Final words&lt;/h2&gt;&#10;&lt;p class="wp-block-paragraph"&gt;As someone who lived with enterprise storage for more than a decade, I&amp;#8217;m glad to see that cloud vendors brings enterprise storage into their data centre, acknowledging that consumer grade file storage are just insufficient for heavy storage use cases such as medical imaging. FSx ONTAP seems to be in early maturity level. However, since AWS exposes ONTAP CLI access to users, ONTAP professionals are able to leverage its full potential.&lt;/p&gt;&#10;&lt;nav class="wp-post-navigation" aria-label="Post navigation"&gt;&#10;&lt;a rel="prev" href="https://static.digihunch.com/2022/04/knative-introduction/"&gt;&lt;span class="wp-post-navigation-label"&gt;Previous Post&lt;/span&gt;&lt;strong class="wp-post-navigation-title"&gt;Knative Eventing Introduction&lt;/strong&gt;&lt;/a&gt;&#10;&lt;a rel="next" href="https://static.digihunch.com/2022/05/hosting-database-on-kubernetes/"&gt;&lt;span class="wp-post-navigation-label"&gt;Next Post&lt;/span&gt;&lt;strong class="wp-post-navigation-title"&gt;Hosting database on Kubernetes&lt;/strong&gt;&lt;/a&gt;&#10;&lt;/nav&gt;&#10;</description></item><item><title>EMC Isilon storage product</title><link>https://static.digihunch.com/2020/07/emc-productlines/</link><pubDate>Wed, 08 Jul 2020 20:04:00 -0400</pubDate><guid>https://static.digihunch.com/2020/07/emc-productlines/</guid><description>&lt;p class="wp-block-paragraph"&gt;EMC has several product lines for different use cases in enterprise data storage. Like may other IT solutions, the website is clouded with marketing terms and slogans, and is purposefully not technical. This makes it difficult for technical staff to grasp the advantage of its product in a glimpse. I personally have to know their product (mostly with Isilon and ECS) well in order to make integration decisions. So I&amp;#8217;m putting together this note (updated as of July 2020), with lots of details from their technical white paper.&lt;/p&gt;&#10;&lt;h3 class="wp-block-heading" id="h-overview-of-emc-storage"&gt;Overview of EMC storage&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;At the highest level, the EMC enterprise data storage product lines are categorized into two groups: &lt;strong&gt;primary storage&lt;/strong&gt; (along the lines of block-level storage) and &lt;strong&gt;unstructured storage&lt;/strong&gt; (mostly file and object storage). The &lt;span style="text-decoration: underline;"&gt;primary storage &lt;/span&gt;includes the following product:&lt;/p&gt;&#10;&lt;ul class="wp-block-list"&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;PowerMax&lt;/span&gt; for OLTP database (Oracle, MicrosoftSQL and SAP)&lt;/li&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;PowerFlex&lt;/span&gt;: for Software defined storage, Oracle RAC, Elastic Stack, Kubernetes, Splunk&lt;/li&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;XtremIO&lt;/span&gt; for VMware, VDI, SAP&lt;/li&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;PowerStore&lt;/span&gt; for Database, VMware&lt;/li&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;PowerVault&lt;/span&gt; for Entry-level SAN and DAS environment&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="wp-block-paragraph"&gt;This post only expands on the &lt;span style="text-decoration: underline;"&gt;unstructured storage&lt;/span&gt; product line, which mainly consists of PowerScale and ECS. &lt;strong&gt;ECS (elastic cloud storage) &lt;/strong&gt;is EMC&amp;#8217;s object storage. &lt;strong&gt;PowerScale (aka Isilon)&lt;/strong&gt; is scale-out NAS platform for high-volume storage (up to 50 PB in a single file system), backup and archiving of unstructured data. For the rest of this post, I will still refer to PowerScale as Isilon. &lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Dell&amp;#8217;s official support website is the most resourceful place to get information. For example, when I want to read about Isilon. I start with &lt;a href="https://www.dell.com/support/home/en-ca"&gt;Dell support&lt;/a&gt;, then click on &lt;a href="https://www.dell.com/support/home/en-ca?app=knowledgebase"&gt;knowledgebase&lt;/a&gt; at the top, then go to &amp;#8220;&lt;a href="https://www.dell.com/support/contents/en-ca/category/product-support/self-support-knowledgebase/enterprise-resource-center"&gt;servers, storage and networking&lt;/a&gt;&amp;#8220;, then &amp;#8220;&lt;a href="https://www.dell.com/support/article/en-ca/sln312354/storage-technical-documents-and-videos?lang=en"&gt;storage technical documents and videos&lt;/a&gt;&amp;#8220;. There I can select a productline such as &lt;a href="https://www.dell.com/support/article/en-ca/sln316985/powerscale-and-isilon-technical-documents-and-videos?lang=en"&gt;Isilon&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h3 class="wp-block-heading" id="h-overview-of-isilon-family"&gt;Overview of Isilon Family&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Isilon is a clustered storage system consisting of three or more nodes. A node is a server with OneFS as its operating system. Based on FreeBSD, OneFS is EMC&amp;#8217;s proprietary operating system to unify a cluster of nodes into a single shared resource. So &lt;a href="https://en.wikipedia.org/wiki/OneFS_distributed_file_system"&gt;OneFS&lt;/a&gt; is for Isilon only. It is the basis of Isilon. Isilon has three series of products:&lt;/p&gt;&#10;&lt;ul class="wp-block-list"&gt;&#10;&lt;li&gt;&lt;strong&gt;F series&lt;/strong&gt;: F200, F600, F800 and F810.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;H series&lt;/strong&gt;: typical models are H400, H500 and H600, which seeks to balance performance and capacity&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;A series&lt;/strong&gt;: typical models are A200 and A2000 for active and deep archive storage&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="wp-block-paragraph"&gt;In June 2020, Dell decoupled OneFS software (with 9.0 released) from server hardware (referred to as PowerScale). Going forward EMC will refer to Isilon as PowerScale for OneFS version newer than 9.0 in spec sheets and white papers.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;span style="text-decoration: underline;"&gt;F200&lt;/span&gt; is the cost-effective choice with SSD for remote office, small hospital, retail outlets, IOT or factory floor. &lt;span style="text-decoration: underline;"&gt;F600&lt;/span&gt; uses NVMe drives instead, and has more ECC memory and faster ethernet backend network. and is higher than F200 in its use case. Both F200 and F600 provide inline data compression and deduplication capabilities. &lt;span style="text-decoration: underline;"&gt;F800 and F810 &lt;/span&gt;both use SSD and they are similar. F800 comes with InfiniBand backend network and F810 provides inline data compression and deduplication capabilities. H series tries to strike a balance between performance and capacity so they are pretty much everything in betwee. On the other end, &lt;span style="text-decoration: underline;"&gt;A200 and A2000&lt;/span&gt; are almost the same except for capacity difference.&lt;/p&gt;&#10;&lt;h3 class="wp-block-heading" id="h-isilon-s-advantage"&gt;Isilon&amp;#8217;s advantage&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Isilon has lots of intelligence built into its solution compared to a traditional NAS. Here are some aspects from its product white paper:&lt;/p&gt;&#10;&lt;figure class="wp-block-table is-style-stripes"&gt;&lt;table class="has-background" style="background-color:#e9fbe5"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Aspects of Design&lt;/th&gt;&lt;th&gt;Isilon OneFS Scale-Out NAS&lt;/th&gt;&lt;th&gt;Traditional NAS&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Network&lt;/td&gt;&lt;td&gt;Separation of front-end and back-end network to isolate node-to-node communication to a private low-latency network. Front-end traffic load balanced with SmartConnect&lt;/td&gt;&lt;td&gt;Single network for both external and internal traffic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;File system structure and NameSpace&lt;/td&gt;&lt;td&gt;The storage is completely virtualized to users as a truly &lt;span style="text-decoration: underline;"&gt;single file system with one namespace&lt;/span&gt;. There is no partitioning or volumes. The single file tree can grow organically without requiring planning or oversight about how the tree grows. SmartPool handles tiering of files to appropriate disk, without disrupting the single file tree.&lt;/td&gt;&lt;td&gt;An appearance of single namespace is typically achieved through &lt;span style="text-decoration: underline;"&gt;namespace aggregation&lt;/span&gt;, where files are still managed in separate volumes, and a simple &amp;#8220;veneer&amp;#8221; layer glues individual directories to a &amp;#8220;top-level&amp;#8221; tree via symbolic links. LUNs and volumes, as well as volume limits are still present. Files have to be manually moved from volume-to-volume to load-balance.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Layout&lt;/td&gt;&lt;td&gt;OneFS controls the placement of file directly, down to the sector-level on any drive anywhere in the cluster. The addressing scheme for data and metadata is indexed at physical level by a tuple of {node, drive, offset}&lt;/td&gt;&lt;td&gt;Data are sent through RAID and volume management layers, introducing inefficiencies in data layout and providing non-optimized block access. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Redundancy Control&lt;/td&gt;&lt;td&gt;OneFS can flexibly control the type of striping as well as the redundancy level of the storage system at the system, directory and even file-levels.&lt;/td&gt;&lt;td&gt;The entire RAID volume is dedicated to a particular performance type and protection setting.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&#10;&lt;h3 class="wp-block-heading" id="h-isilon-terms"&gt;Isilon terms&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The Isilon technology re-implemented the read and write path during file storage and introduced several terms along with its technology.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;SmartPools &lt;/strong&gt;&amp;#8211; Job that runs and moves data between the tiers of nodes within the same cluster. Also executes the CloudPools functionality if licensed and configured. FilePolicy is changelist-based SmartPools file pool policy job. SmartPoolsTree enforces SmartPools file policies on a subtree. &lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Storage Pools &lt;/strong&gt;&amp;#8211; Storage pools provide the ability to define subsets of hardware within a single cluster, allowing file layout to be aligned with specific sets of nodes through the configuration of storage pool policies. The notion of Storage pools is an abstraction that encompasses disk pools, node pools, and tiers.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Disk Pools&lt;/strong&gt; &amp;#8211; Disk pools are the smallest unit within the storage pools hierarchy. OneFS provisioning works on the premise of dividing similar nodes’ drives into sets, or disk pools, with each pool representing a separate failure domain. Disk pools are laid out across all five sleds in each node.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Node Pools &lt;/strong&gt;&amp;#8211; groups of disk pools, spread across similar storage nodes (or equivalent classes). Multiple groups of different node types can work together in a single, heterogeneous cluster. For example, one node pool of all-flash F-Series anodes, one node pool of H-series, and one node pool of A-series. Each node pool only contains disk pools from the same type of storage nodes.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Tiers&lt;/strong&gt; &amp;#8211; groups of nodepools combined into a logical superset to optimize data storage, according to OneFS platform type. this allows customers who consistently purchase highest capacity nodes available to consolidate a variety of node styles within a single tier, and manage them as one logical group. SmartPools users typically deploy 2 to 4 tiers. different node pools under a tier needs to be compatible.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Global Namespace Acceleration (GNA)&amp;#8217;&lt;/strong&gt;s principal goal is to help accelerate metadata read operations by keeping a copy of a cluster&amp;#8217;s metadata on high performance, low latency SSD media.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;SmartConnect&lt;/strong&gt; is a load balancer that works at the front-end Ethernet layer to evenly distribute client connections across the cluster. SmartConnect supports dynamic NFS failover and failback to ensure that when a node failure occurs, or preventative maintenance is performed, all in-flight reads and writes are handed off to another node in the cluster to finish its operation without any user or application interruption.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Auto Balance&lt;/strong&gt; reallocates and rebalances data and make storage space more usable and efficient.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;SmartQuotas&lt;/strong&gt; is directory-level quota management. Note: there is no partitioning, and no need for volume creation in OneFS.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;SmartRead&lt;/strong&gt; creates a data &amp;#8220;pipeline&amp;#8221; from L2 cache, prefetching into a local &amp;#8220;L1&amp;#8221; cache, on the captain node, in order to greatly improve sequential-read performance. For high-sequential cases, SmartRead can very aggressively prefetch ahead. SmartRead can control how aggresive the pre-fetching is, and how long data stays in the cache, and optimizes where data is cached.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;In-line Data Reduction&lt;/strong&gt; &amp;#8211; the write path involves zero block removal, in-line deduplication, and in-line compression. This is supported in some models only.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;Smart Dedupe&lt;/strong&gt; &amp;#8211; post-process, asynchronous deduplication. Smart Dedupe scans the on-disk data for identical blcoks and then eliminate the duplicates. After duplicate blocks are discovered, SmartDedupe movees a single copy of those blocks to a special set of files known as shadow stored. With post-process deduplication, new data is first stored on the storage device and then a subsequent process analyzes the data looking for commonality. This means that initial file write or modify performance is not impacted, since no additional computation is required in the write path, as opposed to in-line deduplication. This is supported on some models only.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;&lt;strong&gt;OneFS SSD strategy&lt;/strong&gt; &amp;#8211; How OneFS leverage the SSD for performance. It has these options:&lt;/p&gt;&#10;&lt;ul class="wp-block-list"&gt;&#10;&lt;li&gt;L3 cache (implemented at nodepool level)&lt;/li&gt;&#10;&lt;li&gt;metadata read&lt;/li&gt;&#10;&lt;li&gt;metadata read/write&lt;/li&gt;&#10;&lt;li&gt;Global Namespace Acceleration (GNA)&lt;/li&gt;&#10;&lt;li&gt;Data on SSD&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="wp-block-paragraph"&gt;L3 cache consumes all the SSD in node pool. L3 cannot coexist with other SSD strategies, with the exception of GNA just because L3 cache node pool SSD cannot participate in GNA.&lt;/p&gt;&#10;&lt;h3 class="wp-block-heading" id="h-isilon-s-high-availability"&gt;Isilon&amp;#8217;s High Availability&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The OneFS is distributed across all nodes in the cluster and is accessible by clients connecting to any node in the cluster. Metadata and locking tasks are managed by all nodes collectively and equally in a peer-to-peer architecture. This symmetry is key to the simplicity and resiliency of the architecture. There is no single metadata server, lock manager or gateway node.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The entire cluster forms a single file system with a single namespace that runs across every node equally. No one node controls or &amp;#8220;masters&amp;#8221; the cluster; all nodes are true peers.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;During failover, clients are evenly redistributed across all remaining nodes in the cluster, ensuring minimal performance impact. If a node is brought down for any reason, including a failure, the virtual IP addresses on that node is seamlessly migrated to another node in the cluster. When the offline node is brought back online, SmartConnect automatically rebalances the NFS and SMB3 clients across the entire cluster to ensure maximum storage and performance utilization. This functionality allows for per-node rolling upgrades affording full-availability throughout the duration of the maintenance window.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;There are two logical roles in processing an I/O request from client:&lt;/p&gt;&#10;&lt;ul class="wp-block-list"&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;The initiator&lt;/span&gt;: the node that the client connects to with front-end protocol. The initiator acts as the &amp;#8216;captain&amp;#8217; for the entire I/O operation.&lt;/li&gt;&#10;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;The participant&lt;/span&gt;: Every node in the cluster is a participant for a particular I/O operation.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="wp-block-heading" id="h-file-write-in-isilon"&gt;File Write in Isilon&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;OneFS employs a patented transaction system during write to eliminate single point of failure. In a write operation, the initiator &amp;#8220;captains&amp;#8221; or orchestrates the layout of data and metadata, the creation of erasure codes, and the normal operations of lock management and permission control.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;When a client connects to a node to write a file, it is connecting to the Initiator. OneFS breaks the file down into atomic units. An atomic unit is a smaller logical chunk of data, also called stripe, or protection groups in the context of data protection. The size of each file chunk is referred to as the stripe unit size. After this division, OneFS then write the stripe individually to the Participant (with disks). This design ensures that data is protected at the specified level as soon as it is being written. Redundancy is built into protection groups, such that if every protection group of a file is safe, then the entire file is safe. In terms of protection mechanism, OneFS can use either Reed-Solomon erasure coding system, or simply mirroring for data protection. Erasure coding is the predominant mechanism with very high performance without sacrificing on-disk efficiency.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The initiator node uses a modified two-phase commit transaction to safely distribute writes to multiple &lt;a href="https://en.wikipedia.org/wiki/Non-volatile_random-access_memory"&gt;NVRAMs&lt;/a&gt; across the cluster. As client initiates write to OneFS cluster, instead of immediately writing to disk, OneFS temporarily writes the data to an NVRAM-based journal cache on the initiator node and acknowledge the write the client. As outlined above, these writes are also mirrored to participant nodes&amp;#8217; NVRANM journals to satisfy the file&amp;#8217;s protection requirement. Later, at a more convenient time, OneFS then flush these cached writes to disks asynchronously.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Since NVRADM journals all the transactions that are occurring across every node in the storage cluster. If a node fails mid-transaction, and then re-joins the cluster, the uncommitted cached writes are fully protected, and the only required actions for the node, are to replay its journal from NVRAM, and occasionally for AutoBalance to rebalance files that were involved in the transaction. Writes are never blocked due to a failure. There is no &amp;#8216;fsck&amp;#8217; or &amp;#8216;disk-check&amp;#8217; process.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;OneFS file system block size is 8KB. A file smaller than 8KB will use a full 8KB block. For larger files, OneFS can maximize sequential performance by taking advantage of a stripe unit consisting of 16 contiguous blocks, for a total of 128KB per stripe unit.&lt;/p&gt;&#10;&lt;h3 class="wp-block-heading" id="h-cache-in-isilon"&gt;Cache in Isilon&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;OneFS aggregates the cache present on each node in a cluster into one globally accessible pool of memory by using a messaging system similar to NUMA (non-uniform memory access). This allows all the nodes&amp;#8217; memory cache to be available to each and every node in the cluster. Remote memory is access over internal network with much lower latency than accessing hard disk drives. The internal network as distributed system bus, is a redundant, under-subscribed flat Ethernet up to 40Gb. The oneFS caching subsystem is coherent across the cluster, due to the use of MESI protocol to maintain cache coherency. If the same content exists in the private caches of multiple nodes, this cached data is consistent across all instances.&lt;br&gt;OneFS uses up to three levels of read cache, plus an NVRAM-backed write cache, or coalescer.&lt;/p&gt;&#10;&lt;figure class="wp-block-image size-large"&gt;&lt;img loading="lazy" decoding="async" width="1466" height="900" src="https://static.digihunch.com/wp-content/uploads/2020/07/image.png" alt="" class="wp-image-1131"/&gt;&lt;figcaption class="wp-element-caption"&gt;OneFS Caching Hierarchy&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p class="wp-block-paragraph"&gt;L1 cache &amp;#8211; prefetches data from remote nodes. Data is prefetched per file, and this is optimized in order to reduce the latency associated with the nodes’ back-end network. The L1 cache refers to memory on the same node as the initiator. It is only accessible to the local node, and typically the cache is not the master copy of the data.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;L1 is also known as remote cache because it contains data retrieved from other nodes in the cluster. It is coherent across the cluster but is used only by the node on which it resides and is not accessible by other nodes. Data in L1 cache on storage nodes is aggressively discarded after it is used. L1 cache uses file-based addressing, in which data is accessed via an offset into a file object.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;OneFS also uses a dedicated inode cache in which recently requested inodes are kept. The inode cache frequently has a large impact on performance, because clients often cache data, and many network I/O activities are primarily requests for file attributes and metadata, which can be quickly returned from the cached inode.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;L2 cache (backend cache) refers to local memory on the node on which a particular block of data is stored. L2 cache is globally accessible from any node in the cluster and is used to reduce the latency of a read operation by not requiring a seek directly from the disk drives.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;L2 cache is also known as local cache because it contains data retrieved from disk drives located on that node and then made available for requests from remote nodes. Data in L2 cache is evicted according to a Least Recently Used (LRU) algorithm.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;L3 cache, or Smart Flash, is configurable on nodes that contain solid state drives. Smart Flash (L3) is an eviction cache that is populated by L2 cache blocks as they are aged out from memory.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;During I/O request, clients talk to L1 cache and write coalescer; L1 cache talks to L2 cache on all cluster nodes. L2 cache buffers to and from disks. L3 cache is optionally enabled per node pool, as an extension from L2. L3 and L2 communicate in backend network.&lt;/p&gt;&#10;&lt;figure class="wp-block-table is-style-regular"&gt;&lt;table class="has-background" style="background-color:#e9fbe5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;Medium&lt;/td&gt;&lt;td&gt;Description&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;L1 Cache (aka front-end cache or remote cache)&lt;/td&gt;&lt;td&gt;RAM (volatile)&lt;/td&gt;&lt;td&gt;holds clean, cluster coherent copies of file system data and metadata blocks requested by clients via front-end network&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;L2 Cache (aka back-end cache or local cache)&lt;/td&gt;&lt;td&gt;RAM (volatile)&lt;/td&gt;&lt;td&gt;contains clean copies of file system data and metadata on a local node&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SmartCache (Write Coalescer)&lt;/td&gt;&lt;td&gt;Battery-backed NVRAM (Persistent)&lt;/td&gt;&lt;td&gt;a persistent journal cache that buffers any pending writes to front-end files that have not been committed to disk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SmartFlash or L3 Cache&lt;/td&gt;&lt;td&gt;SSD (persistent)&lt;/td&gt;&lt;td&gt;contains file data and metadata blocks evicted from L2 cache, effectively increasing L2 cache capacity&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&#10;&lt;h3 class="wp-block-heading" id="h-file-read-in-isilon"&gt;File Read in Isilon&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The high-level steps for fulfilling a read request with cache interaction involves:&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Step 1 &amp;#8211; on local node, determine whether part of the requested data is in the local L1 cache:&lt;/p&gt;&#10;&lt;ul class="wp-block-list"&gt;&#10;&lt;li&gt;if so, return to client&lt;/li&gt;&#10;&lt;li&gt;if not, request data from remote nodes&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="wp-block-paragraph"&gt;Step 2 &amp;#8211; on remote nodes, determine whether requested data is in the local L2 or L3 cache:&lt;/p&gt;&#10;&lt;ul class="wp-block-list"&gt;&#10;&lt;li&gt;if so, return to the requesting node&lt;/li&gt;&#10;&lt;li&gt;if not, read from disk and return to requesting node&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p class="wp-block-paragraph"&gt;During a read operation, the “captain” node gathers all of the data from the various nodes in the cluster and presents it in a cohesive way to the requestor. &lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;The cluster provides a high ratio of cache to disk (multiple GB per node) that is dynamically allocated for read and write operations as needed. This RAM-based cache is unified and coherent across all nodes in the cluster, allowing a client read request on one node to benefit from I/O already transacted on another node. As the cluster grows larger, the cache benefit increases. For this reason, the amount of I/O to disk on a cluster is generally substantially lower than it is on traditional platforms.&lt;/p&gt;&#10;&lt;p class="wp-block-paragraph"&gt;For files marked with an access pattern of concurrent or streaming, OneFS can take advantage of pre-fetching of data based on heuristics used by the SmartRead component&lt;/p&gt;&#10;&lt;h3 class="wp-block-heading" id="h-conclusion"&gt;Conclusion&lt;/h3&gt;&#10;&lt;p class="wp-block-paragraph"&gt;This post provided a high level introduction to EMC storage product line and expanded into some technical details in the read write operation in OneFS/Isilon. Some of the features can be seen in &lt;a href="https://www.youtube.com/watch?v=pCIrjAQJf2g&amp;amp;t=1903s"&gt;OneFS simulator&lt;/a&gt; which is a free tool from EMC.&lt;/p&gt;&#10;&lt;nav class="wp-post-navigation" aria-label="Post navigation"&gt;&#10;&lt;a rel="prev" href="https://static.digihunch.com/2020/07/dockersnetwork/"&gt;&lt;span class="wp-post-navigation-label"&gt;Previous Post&lt;/span&gt;&lt;strong class="wp-post-navigation-title"&gt;Docker network in different modes&lt;/strong&gt;&lt;/a&gt;&#10;&lt;a rel="next" href="https://static.digihunch.com/2020/07/nfs-network-file-system-and-rpc-remote-procedure-call/"&gt;&lt;span class="wp-post-navigation-label"&gt;Next Post&lt;/span&gt;&lt;strong class="wp-post-navigation-title"&gt;How RPC and NFS work&lt;/strong&gt;&lt;/a&gt;&#10;&lt;/nav&gt;&#10;</description></item></channel></rss>