Novus storage system environment and processing
There are several important aspects of the Novus environment and its processing that you should understand.
Novus Data Director and ONTAP data server internal communication
The Novus Data Directors communicate with the ONTAP data servers to support file access and management. Most of this is initiated by the NDD rather than the ONTAP servers.
ONTAP data server discovery
The Novus Data Directors need to discover what data servers are available. ONTAP never initiates communication with the Novus Data Director. An operator or a tool registers each data server through the mds.conf configuration file, which is used at startup time; data servers can also be manually added using the command mds-admin ds add. Each data server is represented as a row in the distributed metadata store including its host, export, ports, state and capacity.
ONTAP data server availability
There are several processes used to determine the availability of each ONTAP data server.
- Heartbeat
-
The MDS sends an NFSv3 NULL RPC call over TCP to each online data server. By default it does this every 5 seconds using a heartbeat message.
- Going offline
-
After a set number of failures in a row, the data server is marked as offline. The MDS stops placing new files on it and informs clients to give back layouts that point to it.
- Coming back
-
After enough successful probes in succession, it returns to online. A cool down period stops it from flipping back and forth.
- Client errors don't count
-
When a client reports an error it's only logged. ONTAP data server health is decided by the probes alone.
- ONTAP failover is invisible
-
If an ONTAP HA pair does a takeover, the MDS only notices through probe timeouts.
ONTAP data server data content
The NDD doesn't ask ONTAP what it stores. It already knows, because it creates every backing file:
-
When a file is created, the MDS picks the data servers, creates the backing files on them, and saves the result in the stripe map in the distributed metadata store. The stripe map records which data server and NFS file handle hold each stripe and mirror.
-
Backing files on ONTAP have a specific name format in the NDD.
-
Capacity is the only operational value the NDD reads from ONTAP using statvfs() on each mounted export.
-
File size isn't verified against ONTAP. It's determined from the client's layout commit.
High-availability and resiliency for the NDD cluster
The metadata plane anchored by the Novus Data Directors ensures high availability and resilience in the system.
Cluster design
Novus uses a multi-host cluster to ensure high availability and fault tolerance for the NDD services.
- Three hosts with three failure domains
-
The minimum NDD cluster is three physical hosts or virtual machines (VMs) deployed on separate servers. Each host runs one MDS process and one metadata store node. The cluster is designed to survive the loss of one host.
- All replicas serve
-
Every MDS replica handles clients at the same time with none designated in standby mode. All healthy replicas announce the same VIP through BGP. BFD (fast link-failure detection) is required because BGP's own timers alone are not a completely acceptable failover mechanism. A replica announces the VIP only when its NFS service, gateway and metadata store connection are all ready for client handling.
- Metadata replication
-
The distributed metadata store keeps three synchronous copies. An arbitrator prevents a split-brain scenario by choosing to go unavailable rather than letting two sides both write.
- Restarts are safe
-
MDS processes keep no state of their own; the distributed metadata store holds the authoritative metadata.
Limitations and cautions
You should also be aware of the following limitations and cautions:
-
Subtree ownership doesn't fail over automatically. The namespace can be split into subtrees, each owned by one MDS. If an owner fails, its subtree hangs until the owner comes back, even though the VIP has already moved.
-
One host failure affects every tenant on that host because each tenant has one replica per host.
-
Clients must mount the VIP and not a host IP. Otherwise the client can't fail over.
-
Hard mounts may block during recovery. A blocked mount doesn't mean data was lost.
-
Always perform maintenance one replica at a time. Take the replica out of the VIP and drain it first.