US Pat. No. 9,069,708

METHOD AND SYSTEM FOR IMPLEMENTING CONSISTENCY GROUPS WITH VIRTUAL MACHINES

NUTANIX, INC., San Jose,...

1. A method for implementing a consistency group, comprising:
locking resources associated with the members of a consistency group, wherein the members of the consistency group comprises
a group of related virtual machines;

generating a snapshot of the resources associated with the members of the consistency group; and
releasing locks on the resource after the snapshot has been generated.

US Pat. No. 9,286,344

METHOD AND SYSTEM FOR MAINTAINING CONSISTENCY FOR I/O OPERATIONS ON METADATA DISTRIBUTED AMONGST NODES IN A RING STRUCTURE

NUTANIX, INC., San Jose,...

1. A method for maintaining consistency for I/O operations on data distributed amongst a plurality of nodes forming a ring
structure, comprising:
introducing a new node into the plurality of nodes forming the ring structure, wherein the new node is introduced at a location
following a first node identified for a previous write operation of the data such that the new node may be recognized as a
replica node for a subsequent I/O operation to be performed on the first node;

placing the new node into a transition state while data values for the new node are not up to date;
receiving a request for performing the subsequent I/O operation on the first node;
determining a first set of nodes on which to perform the subsequent I/O operation based on a current replication factor;
increasing the current replication factor to establish a new replication factor upon determination that the first set of nodes
on which to perform the subsequent I/O operation includes the new node in the transition state; and

establishing quorum using a second set of nodes based on the new replication factor.

US Pat. No. 9,256,456

ARCHITECTURE FOR MANAGING I/O AND STORAGE FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system for communicating to a storage controller in a virtualization environment, comprising:
a plurality of nodes, wherein the plurality of nodes implements a virtualization environment, and comprises a hypervisor and
multiple user virtual machines;

a plurality of hardware storage devices that are accessed by the multiple user virtual machines; and
a first storage controller implemented as a service virtual machine on a first node of the plurality of nodes and a second
storage controller implemented as a service virtual machine on a second node of the plurality of nodes to manage access by
the user virtual machines to the plurality of storage devices, wherein the service virtual machines are dedicated to their
corresponding nodes; and

wherein the first storage controller is configured to identify the second storage controller, and wherein the first storage
controller is further configured to create an I/O request to be sent to the second storage controller that was identified
by the first storage controller to cooperatively perform storage controller operations for the first node and the second node.

US Pat. No. 9,407,433

MECHANISM FOR IMPLEMENTING KEY-BASED SECURITY FOR NODES WITHIN A NETWORKED VIRTUALIZATION ENVIRONMENT FOR STORAGE MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method for providing key-based security for adding a new node to an existing networked virtualization environment for
storage management, comprising:
discovering the new node in a cluster of existing nodes in the virtualization environment;
establishing communication with the new node via the cluster of existing nodes, the cluster of existing nodes establishing
communication with the new node using a factory public key;

requesting the new node to generate a new key pair comprising a new private key and a new public key;
receiving the new public key by the cluster of existing nodes, wherein subsequent communication with the new node by the cluster
of existing nodes is performed using the new public key; and

configuring the new node, in response to receiving the new public key, to become part of the cluster of existing nodes using
the new public key, and the new node is provided access to the virtualization environment only after deactivating both the
factory public key and the corresponding factory private key.

US Pat. No. 9,342,253

METHOD AND SYSTEM FOR IMPLEMENTING PERFORMANCE TIER DE-DUPLICATION IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A computer-implemented method for performing data de-duplication for one or more virtual machines in a virtualization environment,
comprising:
configuring the virtualization environment to perform de-duplication;
in response to one or more write requests from the one or more virtual machines to write data to one or more virtual disks:
generating one or more fingerprints corresponding to the data to be written; and
writing the data to one or more persistent storage devices associated with the one or more virtual disks,
wherein the data is written regardless of whether or not the one or more storage devices already contains data corresponding
to fingerprints matching the one or more generated fingerprints and whether the virtualization environment is configured to
perform de-deduplication, such that data on the one or more storage devices is not de-duplicated in response to or near a
time of the one or more write requests;

in response to a read request from the one or more virtual machines to read at least a portion of the data:
identifying fingerprints corresponding to the data to be read;
accessing a content cache that stores a cached set of data for the one or more virtual machines and fingerprints corresponding
to the cached set of data, wherein the content cache is configured such that it does not store more than one copy of data
corresponding to a particular fingerprint;

determining if any of the identified fingerprints corresponding to the requested portion of data match any of the fingerprints
corresponding to the cached set of data; and

if a match is found, retrieving data corresponding to the matched fingerprints from the cached set of data; and
at a later time, performing de-duplication on the one or more storage devices, such that that the one or more storage devices
do not store more than a specified number of copies of data corresponding to a particular fingerprint, wherein the specified
number is associated with a replication factor, and wherein the de-duplication is not performed in response to a particular
write request.

US Pat. No. 9,256,374

METADATA FOR MANAGING I/O AND STORAGE FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A method for performing lock free processing of metadata for storage devices in a virtualization system, comprising:
identifying a metadata structure hierarchy with a plurality of levels including at least a first level corresponding to a
virtual storage unit and a mapping between portions of the virtual storage unit to contiguous physical storage, and a second
level corresponding to information describing the physical storage;

reading from the metadata structure in a first order from the first level to the second level without locking; and
writing to the metadata structure in a second order from the second level to the first level without locking, wherein the
second order is opposite of the first order.

US Pat. No. 9,354,912

METHOD AND SYSTEM FOR IMPLEMENTING A MAINTENANCE SERVICE FOR MANAGING I/O AND STORAGE FOR A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for managing a virtual storage system implemented with a processor, comprising:
receiving information regarding metadata maintained by a plurality of nodes in the virtual storage system, wherein the plurality
of nodes comprise respective distributed maintenance components;

using the distributed maintenance components to manage the metadata for the virtual storage system, in which the metadata
relate to storage of data within the virtual storage system;

checking a state of the virtual storage system to identify inconsistencies within the metadata, wherein the checking is performed
in parallel by the distributed maintenance components to scan the metadata; and

maintaining the state of the virtual storage system based at least in part in results of checking the state of the virtual
storage system, wherein maintaining the state of the virtual storage system is performed in parallel by the distributed maintenance
components to fix the inconsistencies within the metadata distributed in the plurality of nodes.

US Pat. No. 9,256,475

METHOD AND SYSTEM FOR HANDLING OWNERSHIP TRANSFER IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A method for handling storage in a virtualization environment, comprising:
identifying a situation in which a storage controller ownership change is to occur for a virtual disk that is managed by a
storage controller in a first node that hosts one or more virtual machines,

identifying a candidate replacement owner for the virtual disk by performing a leadership election among a plurality of volunteer
storage controllers, wherein a volunteer storage controller of the plurality of volunteer storage controllers is elected as
the candidate replacement owner, wherein the volunteer storage controller is a storage controller in a second node that hosts
one or more virtual machines, wherein the second node is different from the first node; and

transferring ownership of the virtual disk to the candidate replacement owner, wherein after the transfer the virtual disk
is managed by the storage controller in the second node.

US Pat. No. 9,501,379

MECHANISM FOR PROVIDING REAL TIME REPLICATION STATUS INFORMATION IN A NETWORKED VIRTUALIZATION ENVIRONMENT FOR STORAGE MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method for providing real time replication status for a networked virtualization environment for storage management,
comprising:
scanning metadata to identify replication status for all virtual disks (vDisks) in the networked virtualization environment;
generating replication tasks for vDisks that are identified as under replicated based on the scan;
performing the replication tasks;
monitoring the progress of the replication tasks;
determining the real time replication status of the networked virtualization environment based on the scanned metadata and
the monitored progress of the replication tasks; and

identifying the vDisk with the lowest replication factor to determine a number of nodes supportable by the networked virtualization
environment to shut down.

US Pat. No. 9,424,059

SYSTEM AND METHODS FOR IMPLEMENTING QUALITY OF SERVICE IN A NETWORKED VIRTUALIZATION ENVIRONMENT FOR STORAGE MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method for implementing quality of service (QoS) for network communications sharing a network in a networked virtualization
environment for storage management, comprising:
receiving, from a first controller virtual machine (VM), a network communication to be sent to a second controller VM;
determining whether the network communication is a data communication type issued by a user virtual machine (VM) or a control
communication type issued by the first controller VM and addressed to the second controller VM;

applying a set of rules to the network communication based at least in part on whether the network communication is a data
type communication issued by a user VM or a control communication type issued by the first controller VM and addressed to
the second controller VM; and

placing the network communication in a prioritization class queue based on a result of applying the set of rules to the network
communication.

US Pat. No. 9,336,132

METHOD AND SYSTEM FOR IMPLEMENTING A DISTRIBUTED OPERATIONS LOG

NUTANIX, INC., San Jose,...

1. A method for managing storage devices, comprising:
receiving, at a first node, a write request to write data to a relatively slow back-end storage tier in a storage system,
the storage system further comprising a relatively fast storage tier comprising SSDs;

initially writing the write request to write data to the relatively slow back-end storage tier as temporary data to a first
operation log on the first node at the relatively fast storage tier, the temporary data being distributed across multiple
nodes by replicating the first operation log on the first node to one or more other operation logs on other nodes based on
a replication factor;

sending a confirmation of the write request to an originator of the write request at a point in time where data to be committed
in the write request has not been committed to the relatively slow back-end storage tier; and

transferring contents of the operation log to the relatively slow back-end storage tier.

US Pat. No. 9,772,866

ARCHITECTURE FOR IMPLEMENTING A VIRTUALIZATION ENVIRONMENT AND APPLIANCE

Nutanix, Inc., San Jose,...

1. A system, comprising:
an appliance for implementing a virtualization system comprising compute components and storage components, the appliance
having a plurality of serverboards, in which a respective serverboard corresponds to a single node of a plurality of nodes,
wherein the single node comprises a hypervisor, one or more virtual machines, a controller virtual machine and one or more
local storage devices, wherein the controller virtual machine runs as a virtual machine above the hypervisor and manages storage
and I/O activities for the one or more virtual machines, wherein the appliance is rack mountable and the plurality of serverboards
are inserted into the appliance, wherein one or more appliances operatively coupled to one another correspond to the virtualization
system;

a plurality of sets of storage units, wherein a set of storage units from the plurality of sets of storage units comprises
a local storage device that is locally attached to a corresponding serverboard of a node, and the plurality of sets of storage
units comprise a storage cluster that is structured from portions of local storage devices on separate nodes; and

wherein controller virtual machines, from the plurality of nodes in the virtualization system, in communication with each
other form a storage pool comprising the plurality of sets of storage units.

US Pat. No. 9,389,887

METHOD AND SYSTEM FOR MANAGING DE-DUPLICATION OF DATA IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system for managing de-duplication of data in a virtualization environment, comprising:
a plurality of nodes having multiple storage controllers implemented as virtual machines, the multiple storage controllers
distributed across multiple nodes, wherein the plurality of nodes implements a virtualization environment;

a plurality of primary storage devices that are accessed by virtual machines in the virtualization environment, wherein the
plurality of primary storage devices are managed by the multiple storage controllers; and

wherein the plurality of primary storage devices correspond to a global storage pool having a local storage device on a first
node of the plurality of nodes and a local storage device on a second node of the plurality of nodes, the second node being
different from the first node, and wherein a virtual disk is exposed to the virtual machines as a set of addressable storage
units corresponding to a plurality of virtual disks structured from the global storage pool and data within the set of addressable
storage units is organized as extents and the extents are grouped within extent groups, wherein data undergoes de-duplication
in the virtualization environment such that an instruction issued by a virtual machine to store a data item does not result
in the data item being duplicatively stored if the data item is already stored in the global storage pool, and de-duplication
is enabled on an extent group basis.

US Pat. No. 9,747,287

METHOD AND SYSTEM FOR MANAGING METADATA FOR A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer implemented method for managing metadata in a virtualization system, comprising:
identifying metadata to track data within storage devices for the virtualization system, the virtualization system comprising
a plurality of nodes that includes at least a first node having a first local storage device and a first service virtual machine
and a second node having a second local storage device and a second service virtual machine, the first local storage device
and the second local storage device forming part of a global storage pool such that any of the first node and the second node
can access virtual disks on both the first local storage device and the second local storage device, with the first node and
the second node concurrently accessing the metadata through their respective service virtual machines to manage the virtual
disks within the global storage pool the virtual disks being virtual structures implemented by the metadata managed by the
first and second service virtual machines;

performing a compare and swap operation to manage an update to the metadata maintained by service virtual machines on each
of the plurality of nodes in the virtualization system, the compare and swap operation addressing possible data inconsistencies
caused by multiple update operations generated by the plurality of nodes when concurrently updating the metadata for the data
in the global storage pool having the first local storage device and the second local storage device that are accessible by
both the first node and the second node through their respective service virtual machines, wherein validation information
for the metadata is processed by the first or second service virtual machines to perform the update;

receiving, from a node from among the plurality of nodes, an instruction to perform a read operation;
before performing the read operation, determining whether the plurality of nodes comprises a downed node;
if the plurality of nodes comprises the downed node, then incrementing a current consensus instance to a new instance count
and choosing a value for a prior instance to be associated with the new instance count; and

invalidating a write operation for the downed node if the downed node comes back up, wherein the write operation for the downed
node is invalidated as a result of a consensus instance corresponding to the write operation being different than the new
instance count.

US Pat. No. 9,699,251

MECHANISM FOR PROVIDING LOAD BALANCING TO AN EXTERNAL NODE UTILIZING A CLUSTERED ENVIRONMENT FOR STORAGE MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method for providing load balancing to a client node external to a clustered environment for storage management, comprising:
identifying a clustered environment having a plurality of nodes, wherein at least some of the plurality of nodes comprise
a controller virtual machine functioning as a storage controller for virtual machines hosted at respective nodes, the controller
virtual machine working with other controller virtual machines to form a distributed system within the clustered environment
to manage a storage pool comprising a plurality of storage resources spread across the at least some of the plurality of nodes;

deploying a load balancing component at the client node, wherein the client node is external to the clustered environment
and the client node hosts virtual machines;

receiving I/O requests issued by the virtual machines hosted at the client node by the load balancing component;
performing a hashing algorithm on content of the I/O requests by the load balancing component to identify one or more controller
virtual machines at the clustered environment for handling the I/O requests; and

dynamically distributing the I/O requests from the load balancing component to the one or more controller virtual machines
at the clustered environment for storage management, wherein the load balancing component maintains metadata related to I/O
requests issued by the virtual machines hosted at the client node, the metadata including information pertaining to which
controller virtual machines at the clustered environment previously handled I/O requests for virtual machines hosted at the
client node.

US Pat. No. 9,588,792

METHOD AND SYSTEM FOR SORTING AND BUCKETIZING ALERTS IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer-implemented method for managing alerts in a virtualization environment, comprising:
receiving alerts associated with entities in the virtualization environment;
identifying attributes associated with the entities;
defining buckets associated with the attributes, wherein a bucket corresponds to a value or value range of an attribute;
assigning the entities and their corresponding alerts into the buckets associated with the attributes;
for an attribute, sorting the buckets associated with the attribute, based at least in part upon a proportion of entities
assigned to a particular bucket, wherein the proportion of entities returning alerts in the particular bucket is determined
by a number of entities returning alerts within the particular bucket divided by a total number of entities associated to
the particular bucket; and

sorting the attributes based at least in part upon a distribution of alerts assigned to the buckets associated with the attributes.

US Pat. No. 9,052,936

METHOD AND SYSTEM FOR COMMUNICATING TO A STORAGE CONTROLLER IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system for communicating to a storage controller in a virtualization environment, comprising:
a plurality of nodes including at least a first node and a second node, wherein the plurality of nodes implements a virtualization
environment, and a node comprises a hypervisor and multiple user virtual machines;

a plurality of storage devices that are accessed by the multiple user virtual machines; and
a storage controller implemented as a service virtual machine on the node to manage access by the multiple user virtual machines
to the plurality of storage devices, wherein a networking protocol is used to communicate between the multiple user virtual
machines and the storage controller;

wherein a first service virtual machine on the first node and a second service virtual machine on the second node correspond
to a same IP address.

US Pat. No. 9,886,215

MECHANISM FOR PROVIDING BLOCK STORAGE AND OBJECT STORAGE FUNCTIONALITY FROM AN EXTERNAL STORAGE ENVIRONMENT TO A NETWORKED VIRTUALIZATION ENVIRONMENT FOR STORAGE MANAGEMENT

NUTANIX, INC., San Jose,...

1. A method for providing backup to a networked virtualization environment for storage management by a remote storage environment
having a block storage device and an object storage device, comprising:
deploying a controller virtual machine on a first node from among a cluster of one or more nodes at the remote storage environment,
the controller virtual machine being implemented as a storage controller on the first node to service storage requests from
other nodes of the network virtualization environment, wherein the controller virtual machine provides a block storage device
interface to the other nodes of the network virtualization environment for accessing an object storage device and a block
storage device;

receiving, at the controller virtual machine, a given write request from a second node from among the other nodes of the network
virtualization environment, the given write request comprising data in a block-based format and metadata associated with the
given write request, wherein: (a) the data is to be written and (b) the metadata comprises a copy of at least some metadata
maintained at the second node associated with the data to be written; and

implementing the given write request by:
(a) generating object data by translating the data or the given write request from the block-based format to an object-based
format;

(b) writing the object data corresponding to the given write request to the object storage device; and
(c) writing the metadata corresponding to the given write request to the block storage device.

US Pat. No. 9,910,774

SPONTANEOUS RECONFIGURATION OF DATA STRUCTURES USING BALLOON MEMORY ALLOCATION

Nutanix, Inc., San Jose,...

1. A method for managing a reconfigurable data structure, the method comprising:
configuring, at a virtual machine above a hypervisor, a first portion of a multi-level data structure to have a first area
comprising reserved memory and a second area comprising reconfigurable memory, wherein the reserved memory and the reconfigurable
memory are assigned to the virtual machine by the hypervisor;

managing the multi-level data structure at the virtual machine by at least populating at least a portion of the reserved memory
with pointers that address one or more portions of the second area;

receiving a release request from the hypervisor to release some or all of the reconfigurable memory;
reconfiguring at least a portion of the pointers to reflect release of the some or all of the reconfigurable memory from the
virtual machine; and

releasing the reconfigurable memory corresponding to the release request to the hypervisor.

US Pat. No. 9,720,921

MAPPING STRUCTURE FOR MAINTAINING METADATA FOR SNAPSHOTS IN A VIRTUALIZED STORAGE ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A method for maintaining a mapping structure for maintaining metadata for snapshots in a virtualized storage environment,
comprising:
taking a snapshot of a virtual disk;
generating an entry in a metadata structure for the snapshot, wherein the entry includes metadata for blocks in the snapshot
that have been modified since a preceding snapshot, wherein the metadata comprise information indicating locations of physical
data associated with the blocks in the snapshot; and

lazily generating an entry in the mapping structure for the snapshot, wherein the entry includes values for each block in
the snapshot, wherein a value for a block indicates a presence of metadata in the metadata structure for the block or an absence
of metadata in the metadata structure for the block, the value for the block is either an on-bit or an off-bit, wherein a
background process lazily generates the entry in the mapping structure for the snapshot at a later time after taking the snapshot.

US Pat. No. 9,613,119

UNIQUE IDENTIFIERS FOR DATA REPLICATION, MIGRATION, FAILOVER OPERATIONS AND FAILBACK OPERATIONS

Nutanix, Inc., San Jose,...

10. A system for performing a redundancy check for a data item residing at a first node to be replicated or migrated in a
networked environment, comprising:
a processor for:
determining a unique ID for the data item;
identifying a second node in the networked environment where the data item is to be replicated or migrated;
comparing the unique ID for the data item to be replicated or migrated with a list of unique IDs residing at the second node;
replicating or migrating an instance of the data item at the second node if the unique ID for the data item is not in the
list of unique IDs residing at the second node; and

wherein the unique ID is assigned to a first instance of the data item by:
determining a unique node identifier for a node of the networked environment where the first instance of the data item is
deployed,

atomically modifying a local counter value at the node of the networked environment where the first instance of the data item
is deployed, and

appending the unique node identifier to the atomically modified local counter value at the node of the networked environment
where the first instance of the data item is deployed to form a unique ID for the data item.

US Pat. No. 9,590,843

METHOD AND SYSTEM FOR PROVIDING DISTRIBUTED MANAGEMENT IN A NETWORKED VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for handling failure in a networked virtualization environment having distributed virtual machine management,
comprising:
identifying a failed management virtual machine instance of a plurality of management virtual machine instances in the networked
virtualization environment,

wherein the networked virtualization environment comprises a plurality of nodes, where a node of the plurality of nodes comprises
a hypervisor, one or more virtualization components and a management virtual machine instance that runs on top of the hypervisor,

wherein each management virtual machine instance of the plurality of management virtual machine instances services a subset
of virtualization components in the networked virtualization environment, and

wherein a management virtual machine instance of the plurality of management virtual machine instances has access to a corresponding
shard of a distributed database for the networked virtualization environment, the corresponding shard storing a subset of
management data for virtualization components managed by the management virtual machine instance;

designating one or more active management virtual machine instances of the plurality of management virtual machine instances
for replacing virtualization component management functionality of the failed management virtual machine instance,

wherein the one or more active management virtual machine instances replace virtualization component management functionality
of the failed management virtual machine instance by each accessing its subset of management data in its corresponding shard
of the distributed database, and

wherein the one or more active management virtual machine instances are configured to replace virtualization component management
functionality of another management virtual machine instance whenever the other management virtual machine instance fails;
and

distributing a workload of the failed management virtual machine instance amongst the one or more active management virtual
machine instances in response to identifying the failed management virtual machine instance.

US Pat. No. 10,089,144

SCHEDULING COMPUTING JOBS OVER FORECASTED DEMANDS FOR COMPUTING RESOURCES

Nutanix, Inc., San Jose,...

1. A method comprising:collecting measurements over a first time period, the measurements comprising at least time-series stimuli and time-series responses of a computing platform that is executing a set of foreground jobs;
forming an initial predictive model from the time-series stimuli and the time-series responses, wherein the initial predictive model is used to derive a respective degree of confidence which correlates to a respective percentage corresponding to a respective likelihood for a respective set of jobs to complete by a respective predicted finish time;
querying the initial predictive model to retrieve a time series of resource usage demand predictions for the set of foreground jobs;
receiving a set of job records that describe a set of background jobs to be invoked in a second time period, the set of background jobs having a latest finish time specification;
querying, for the set of background jobs, the initial predictive model to retrieve a predicted finish time and a percentage corresponding to a likelihood to complete by the predicted finish time based at least in part on the time series of the resource usage demand predictions for the set of foreground jobs;
associating a static schedule weighting factor to the set of background jobs, wherein the static schedule weighting factor is related to the percentage corresponding to the respective likelihood to complete at least one of the set of background jobs by the predicted finish time;
assigning a reward value to at least some of the set of background jobs, wherein the reward value is based at least in part on the static schedule weighting factor;
scheduling the second set of background jobs, based at least in part on the reward value;
forming an updated predictive model based on the initial predictive model and new time-series stimuli; and
automatically re-scheduling, based on the updated predictive model, at least some of the set of background jobs, wherein the re-scheduling causes a readjustment to the resources allocated to the at least some of the set of background jobs.

US Pat. No. 9,665,386

METHOD FOR LEVERAGING HYPERVISOR FUNCTIONALITY FOR MAINTAINING APPLICATION CONSISTENT SNAPSHOTS IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
deployed by a hypervisor, comprising:
exporting, by a service virtual machine (VM), one or more NFS server targets that appear as virtual disks to client virtual
machines (VMs), wherein the virtual disks are implemented by software running inside the service virtual machine (VM);

utilizing, by the service virtual machine (VM), the hypervisor to generate a hypervisor-specific application consistent snapshot
of a virtual disk from the virtual disks that corresponds to a virtual machine from the client virtual machines (VMs) running
in the virtualization environment, wherein the service virtual machine (VM) is a special VM deployed by the hypervisor that
functions as a storage controller;

in response to the utilizing, by the service virtual machine (VM), the hypervisor to generate the hypervisor-specific application
consistent snapshot, generating, by the service virtual machine (VM), a storage-controller specific application consistent
snapshot of the hypervisor-specific application consistent snapshot of the virtual disk to overcome inefficiencies of creating
and maintaining the hypervisor-specific application consistent snapshots using the hypervisor, wherein the storage-controller
specific application consistent snapshot replicates state information of the hypervisor-specific application consistent snapshot;
and

logically deleting the hypervisor-specific application consistent snapshot.

US Pat. No. 9,619,257

SYSTEM AND METHOD FOR IMPLEMENTING STORAGE FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system for implementing storage for a virtualization environment, comprising:
a plurality of nodes implementing a virtualization environment, the plurality of nodes comprising at least a first node and
a second node, the second node being different from the first node, and at least the first node and the second node including
a respective service virtual machine;

a plurality of storage devices that are accessed by virtual machines in the virtualization environment, the plurality of storage
devices comprising a first storage device tier and a second storage device tier,

the first storage device tier comprising local storage devices that are locally attached to respective nodes of the plurality
of nodes comprising at least a first local storage device on the first node and a second local storage device on the second
node,

the second storage device tier comprising network attached storage devices that are accessed through a network,
the first storage device tier and the second storage device tier being part of a global storage pool, and the global storage
pool being managed by the respective service virtual machines as a global resource pool; and

at least some of the service virtual machines of the respective nodes exposes one or more virtual disks to the virtual machines,
at least one of the one or more virtual disks are structured from both the first local storage device on the first node and
the second local storage device on the second node and the networked attached storage devices in the global storage pool.

US Pat. No. 10,055,219

DYNAMICALLY PREPARING SERVER-SPECIFIC INSTALLATION IMAGES USING A VIRTUAL MEDIA SOURCE NODE

Nutanix, Inc., San Jose,...

1. A method comprising:receiving, by a server node, a communication from at least one computing node from a plurality of computing nodes, the communication comprising an indication of an address range of a requested segment of a boot image in non-volatile storage accessed by the server node;
retrieving, by the server node, at least one patch to be applied to the requested segment in response to the communication from the at least one computing node;
applying the at least one patch without changing the boot image in the non-volatile storage by forming, in volatile memory of the server node, an in-memory patched segment of the boot image without storing the patched segment to non-volatile memory; and
responding, to the communication by sending at least the in-memory patched segment to the at least one computing node.

US Pat. No. 9,946,569

VIRTUAL MACHINE BRING-UP WITH ON-DEMAND PROCESSING OF STORAGE REQUESTS

Nutanix, Inc., San Jose,...

1. A method comprising:receiving a request to move a subject virtual machine from a first computing machine to a migrated virtual machine on a second computing machine;
determining a set of storage assets within a virtual disk that are accessible by the subject virtual machine, the virtual disk comprising a first portion and a second portion, the first portion corresponding to a bootable portion of an operating system and a second portion corresponding to a mountable volume;
determining volume metadata pertaining to the second portion of the virtual disk of the subject virtual machine, the volume metadata corresponding to a metadata map of the mountable volume within the virtual disk;
moving at least some of the first portion corresponding to a bootable portion of the virtual disk to the second computing machine;
moving the volume metadata pertaining to the second portion of the virtual disk from the first computing machine to the second computing machine;
starting the migrated virtual machine on the second computing machine by performing a boot sequence, the boot sequence comprising execution of at least some of the bootable portion of the virtual disk;
mounting the mountable volume on the second computing machine without moving the virtual disk in its entirety, wherein the mountable volume is mounted by accessing the volume metadata that was moved from the first computing machine to the second computing machine; and
processing storage asset block requests corresponding to the mountable volume that are issued by the migrated virtual machine, wherein the storage asset block requests comprise a retrieval operation for one or more storage asset blocks within the mountable volume that are served by the first computing machine.

US Pat. No. 9,652,265

ARCHITECTURE FOR MANAGING I/O AND STORAGE FOR A VIRTUALIZATION ENVIRONMENT WITH MULTIPLE HYPERVISOR TYPES

NUTANIX, INC., San Jose,...

1. A system comprising at least a processor for managing storage devices, comprising:
a plurality of nodes that implement a virtualization environment, a first node of the plurality of nodes comprising a first
hypervisor, a first service virtual machine and a first set of one or more user virtual machines, a second node of the plurality
of nodes comprises a second hypervisor, a second service virtual machine and a second set of one or more user virtual machines,

wherein the first hypervisor is of a first hypervisor type and the second hypervisor is of a second hypervisor type, the first
hypervisor type and the second hypervisor type being different hypervisor types that use different sets of commands to operate;
and

a plurality of storage devices that are accessed by the user virtual machines via the first service virtual machine and the
second service virtual machine, wherein the first service virtual machine and the second service virtual machine in communication
with each other through the first hypervisor of the first hypervisor type and the second hypervisor of the second hypervisor
type to virtualize the plurality of storage devices as a global resource pool, and wherein the first service virtual machine
communicates with the second service virtual machine to request relinquishment of ownership of a virtual disk managed by the
second service virtual machine.

US Pat. No. 9,244,713

METHOD AND SYSTEM FOR SORTING AND BUCKETIZING ALERTS IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A computer-implemented method for managing alerts in a virtualization environment, comprising:
receiving alerts associated with entities in the virtualization environment;
identifying attributes associated with the entities;
defining buckets associated with the attributes, wherein a bucket corresponds to a value or value range of an attribute;
assigning the entities and their corresponding alerts into the buckets associated with the attributes;
for an attribute, sorting the buckets associated with the attribute, based at least in part upon a number of alerts assigned
to the buckets;

sorting the attributes based at least in part upon a distribution of alerts assigned to the buckets associated with the attributes.

US Pat. No. 9,619,490

MECHANISM FOR PERFORMING LOCKLESS ROLLING UPGRADE OF NOSQL DATABASE

NUTANIX, INC., San Jose,...

1. A method for performing lockless lookups during a rolling upgrade of a column family from an old column family version
to a new column family version in a NoSQL database, comprising:
receiving a request to perform a lookup of the column family in the NoSQL database, wherein the NoSQL database is shared by
a plurality of controller virtual machines, wherein each controller virtual machine of the plurality of controller virtual
machines resides at a node in a networked virtualization environment and provides storage management functionality to a set
of user virtual machines residing in its corresponding node, and wherein the NoSQL database is utilized to maintain metadata
used by the plurality of controller virtual machines to provide storage management functionality to corresponding sets of
user virtual machines;

returning data read from the new column family version if it is determined to be available in the new column family version;
returning data read from the old column family version if it is determined to be unavailable in the new column family version;
attempting to update the new column family version with data read from the old column family version when data read from the
old column family version is returned; updating the new column family version with data read from the old column family version
when the request is a first lookup request on the column family during the rolling upgrade; and

returning a lookup timeout when the request is subsequent or concurrent with the first lookup request on the column family
during the rolling upgrade.

US Pat. No. 9,575,784

METHOD AND SYSTEM FOR HANDLING STORAGE IN RESPONSE TO MIGRATION OF A VIRTUAL MACHINE IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A method for handling storage in response to migration of a virtual machine in a virtualization environment, comprising:
receiving an I/O request for an unshared virtual disk owned by a first service virtual machine, wherein a second service virtual
machine receives the I/O request;

determining that the second service virtual machine which implements a storage controller is not registered as owner of the
unshared virtual disk, wherein only a service virtual machine registered as owner of the unshared virtual disk is permitted
to access the unshared virtual disk to implement the I/O request, and wherein the act of determining occurs in response to
the second service virtual machine receiving the I/O request for the unshared virtual disk owned by the first service virtual
machine;

transferring ownership of the unshared virtual disk from the first service virtual machine to the second service virtual machine;
and

the second service virtual machine implementing the I/O request after obtaining ownership of the unshared virtual disk.

US Pat. No. 10,129,241

HYPERVISOR AGNOSTIC BIDIRECTIONAL SECURE CHANNEL FOR GUEST AGENT TRANSPORT

Nutanix, Inc., San Jose,...

1. A method for providing a connection between a guest virtual machine and a service virtual machine comprising:initializing a security engine within the service virtual machine to protect against attacks directed at the service virtual machine;
receiving, by the service virtual machine, a request from the guest virtual machine to initiate a remote procedure call socket between the service virtual machine and the guest virtual machine;
in response to the request from the guest virtual machine, establishing a listening port on the service virtual machine without providing a corresponding listening port on the guest service machine;
indicating, in data structure of the remote procedure call socket, that the remote procedure call socket is to be used for remote procedure calls from the service virtual machine to the guest virtual machine rather than from the guest virtual machine to the service virtual machine;
generating an authority certificate by encoding into the authority certificate, at least a portion of identifying information received from the guest virtual machine; and
providing, to the guest virtual machine, the authority certificate.

US Pat. No. 9,971,785

SYSTEM AND METHODS FOR PERFORMING DISTRIBUTED DATA REPLICATION IN A NETWORKED VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for performing distributed data replication, the method comprising:maintaining at a source cluster of nodes, the source cluster of nodes comprising:
a plurality of source nodes, wherein the plurality of source nodes comprises a hypervisor and source user virtual machines,
a plurality of source storage devices that are accessed by the source user virtual machines, and
a source controller virtual machine on each of the plurality of source nodes to manage access by the source user virtual machines to the plurality of source storage devices, wherein a plurality of source controller virtual machines performs a method for performing distributed data replication from the source cluster of nodes to a destination cluster of nodes, the method comprising:
electing a master file management instance and slave file management instances for the source cluster of nodes,
identifying a set of files to be replicated,
assigning, by the master file management instance, work pertaining to the identified set of files to be distributed amongst the master file management instance and the slave file management instances,
processing the work pertaining to the identified set of files by both the master file management instance and the slave file management instances, wherein the work comprises determining differences between the identified set of files to be replicated and a previous set of files that were replicated, and
performing data replication on the processed work pertaining to the identified set of files by file replication instances corresponding to the master file management instance and slave file management instances at the source cluster of nodes;
maintaining at a destination cluster of nodes, the destination cluster of nodes comprising:
a plurality of destination nodes, wherein the plurality of destination nodes comprises a hypervisor and destination user virtual machines;
a plurality of destination storage devices that are accessed by the destination user virtual machines; and
a destination controller virtual machine on each of the plurality of destination nodes to manage access by the destination user virtual machines to the plurality of destination storage devices; and
wherein file replication instances belonging to the source controller virtual machines at the source cluster of nodes are assigned to file replication instances belonging to the destination controller virtual machines at the destination cluster of nodes on an any-to-any basis for data replication.

US Pat. No. 10,019,252

VIRTUALIZING INSTALLERS

Nutanix, Inc., San Jose,...

1. A method comprising:launching, on a subject processor instance that is running a first operating system, an installation hypervisor that forms a RAM disk comprising a target operating system boot image and respective one or more scripts, the installation hypervisor preparing the RAM disk as a first boot device comprising at least an installation hypervisor image, a target operating system boot image and installer virtual machine image;
launching, by the installation hypervisor, an installer virtual machine that prepares a second boot device comprising the target operating system boot image, wherein the installation hypervisor runs a target operating system from the first boot device as a virtual boot device;
exposing at least a portion of the RAM disk to the installer virtual machine as the virtual boot device that comprises the target operating system boot image;
exposing a boot device to the installer virtual machine to cause the installer virtual machine to boot;
booting, on the subject processor instance, the installer virtual machine from the target operating system boot image; and
executing the target operating system on the subject processor instance through initiating a boot operation to cause transfer of instruction execution, by the subject processor instance, to a BIOS entry point of the subject processor instance, such that the target operating system image is booted on the subject processor instance by the installer virtual machine, wherein the target operating system booted from the second boot device is different from the first operating system.

US Pat. No. 9,740,514

METHOD AND SYSTEM TO SHARE DATA WITH SNAPSHOTS IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for implementing decentralized access to data in a virtualization environment, comprising:
maintaining a virtualization environment that comprises at least a plurality of virtualization nodes, the plurality of virtualization
nodes each comprising physical components including at least a processor and one or more storage devices, two or more of the
plurality of virtualization nodes each comprising at least a hypervisor and a service virtual machine (SVM) running as a virtual
machine above the hypervisor, wherein the SVM manages at least a portion of one of the one or more storage devices as part
of a storage pool;

receiving a plurality of requests for access to data from the plurality of virtualization nodes including at least a first
virtualization node and a second virtualization node;

identifying the data that corresponds to a virtual disk structured from the one or more storage devices in the storage pool,
wherein the data is owned by the first virtualization node of the plurality of virtualization nodes; and

sharing the data with the plurality of virtualization nodes using snapshots by:
creating a first snapshot corresponding to the data at the first virtualization node of the plurality of virtualization nodes
and a second snapshot corresponding to the data at the second virtualization node of the plurality of virtualization nodes,
the first snapshot and the second snapshot each comprising metadata that points to an actual data of the virtual disk corresponding
to the data,

for the second virtualization node that does not own the data, the SVM on the second virtualization node manages access to
the data locally using a resource of the second virtualization node to access the second snapshot on the second virtualization
node that corresponds to the actual data of the virtual disk, and

for the first virtualization node that does own the data, the SVM on the first virtualization node manages access to the data
using a resource of the first virtualization node to access the first snapshot on the first virtualization node that corresponds
to the actual data of the virtual disk.

US Pat. No. 9,952,782

METHOD AND SYSTEM FOR ACCESSING DATA BETWEEN DIFFERENT VIRTUAL DISK FORMATS IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer-implemented method for accessing data using different virtual disk formats in a virtualization environment, comprising:moving a virtual machine from a first server to a second server, wherein the first server includes a first virtual disk format and the second server includes a second virtual disk format, the first virtual disk format and the second virtual disk format being different formats;
configuring a virtual disk of the virtual machine on the second server-, wherein the virtual disk remains in the first virtual disk format;
creating a plurality of mappings in real-time that map to data on the virtual disk, based at least in part upon the first virtual disk format and the second virtual disk format;
operating upon the virtual disk without converting the virtual disk from the first virtual disk format to the second virtual disk format by:
receiving an I/O request from the virtual machine running on the second server directed to the virtual disk, wherein the I/O request uses the second virtual disk format, and
processing the I/O request on the virtual disk via the mappings.

US Pat. No. 9,933,956

SYSTEMS AND METHODS FOR IMPLEMENTING STRETCH CLUSTERS IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A method for replicating data in a virtualization environment, comprising:receiving a request to replicate data of a first namespace type from a first node to a second node, wherein the data is to be replicated to the second node as a second namespace type, wherein the first namespace type and the second namespace type are different namespace protocols implemented within the virtualization environment;
translating, via a mapping table, the request to replicate the data of the first namespace type into a normalized format that is implemented by a storage system, the mapping table comprising information to map the data from the first namespace type to the normalized format;
translating, via the mapping table, the normalized format into another request corresponding to the second namespace type, the mapping table comprising information to map the data from the normalized format to the second namespace type; and
replicating the data to the second node in the second namespace type via the another request.

US Pat. No. 9,772,784

METHOD AND SYSTEM FOR MAINTAINING CONSISTENCY FOR I/O OPERATIONS ON METADATA DISTRIBUTED AMONGST NODES IN A RING STRUCTURE

Nutanix, Inc., San Jose,...

1. A method for maintaining consistency for read requests on data distributed amongst a plurality of nodes forming a ring
structure, comprising:
receiving a read request for data on a first node after the first node performed a previous write operation and after a new
node has been inserted into the ring structure following the first node, the new node being placed into a transition state
while data values for the new node are not up to date;

identifying a first set of nodes to perform the read request for data comprises selecting the first node and one or more nodes
immediately following the first node in the ring structure such that a total number of nodes in the first set is equal to
a current replication factor;

upon determination that the first set of nodes include the new node in the transition state, increasing the current replication
factor to establish a new replication factor; and

establishing quorum by identifying a second set of nodes based on the new replication factor.

US Pat. No. 9,672,106

ARCHITECTURE FOR IMPLEMENTING ERASURE CODING

NUTANIX, INC., San Jose,...

1. A computer implemented method, comprising:
identifying a plurality of storage units;
determining a number of storage unit failures to be tolerated;
configuring a matrix having rows and columns, wherein a first set of columns corresponds to the plurality of storage units
and a second set of columns having an amount of columns corresponding to the number of storage unit failures to be tolerated,
the second set of columns comprising one or more parity data, wherein a first set of rows corresponds to data from respective
storage units and a second set of rows comprising one or more additional rows having preset values, the one or more additional
rows corresponding to the number of storage unit failures to be tolerated minus one;

computing the one or more parity data to populate the second set of columns of the matrix, wherein the one or more parity
data comprises a row parity, a first diagonal parity, and a second diagonal parity, wherein the first diagonal parity and
the second diagonal parity are computed from the preset values in the one or more additional rows; and

wherein the first diagonal parity comprises a different slope from the second diagonal parity.

US Pat. No. 9,565,189

METHOD AND SYSTEM FOR PROVIDING ACCESS TO ADMINISTRATIVE FUNCTIONALITY A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A computer-implemented method for providing access to administrative functionality in a virtualization environment, comprising:
identifying an administrative functionality to access;
communicating from a virtual machine over a secure communications channel to access the administrative functionality;
wherein implied authentication corresponding to communications mechanisms in an underlying virtualization infrastructure is
used to authenticate access to the administrative functionality from the virtual machine;

wherein the secure communications channel comprises a virtual NIC at the virtual machine that communicates to the administrative
functionality via a virtual switch; and

wherein the implied authentication is implemented by permitting only a correct MAC address to communicate over the secure
communications channel.

US Pat. No. 9,946,657

SPILLING SMALL CACHE ENTRIES TO A SOLID STATE DEVICE

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a multi-tier caching system comprising a first tier and a second tier, the first tier comprising a subset addressable storage media accessed using a random access address on a subset by subset basis and the second tier comprises a input/output (I/O) block addressable storage media accessed using an I/O block address on a I/O block by I/O block basis, wherein a size of the I/O block is at least a multiple of a size of the subset, and the multi-tier caching system is managed by at least maintaining a location map comprising a plurality of records that map a set of keys to a set of locations of multiple tiers of the multi-tier caching system;
storing a plurality of entries into the first tier corresponding to at least one or more subsets, wherein at least some of the plurality of entries are smaller than the size of the I/O block, and storing the plurality of entries into the first tier further comprises generating one or more records in the location map corresponding to the one or more subsets, wherein the one or more records map one or more corresponding keys to one or more locations of the subset addressable storage media;
determining that an entry of the at least some of the plurality of entries smaller than the size of the I/O block is to be spilled into a second tier, the entry corresponding to a record of the one or more records in the location map;
packing the entry of the at least some of the plurality of entries smaller than the size of the I/O block with one or more additional entries from the first tier into a packed block the size of the I/O block, wherein packing the entry with one or more additional entries comprises at least selecting the entry and the one or more additional entries using the location map; and
storing the packed block as an I/O block into an I/O block location on the second tier, wherein storing the packed block further comprises updating one or more records in the location map corresponding the packed block to map a corresponding key to a block location and an offset corresponding to respective entry locations within the block location.

US Pat. No. 9,552,211

METHOD FOR PERFORMING HOT-SWAP OF A STORAGE DEVICE IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer implemented method implemented with a processor for performing a hot-swap of a storage device for a node in
a virtualization environment having a plurality of storage devices, comprising:
performing pass-thru of a storage manager managing the plurality of storage devices to a service virtual machine, such that
the service virtual machine communicates with the plurality of storage devices without going through a storage software layer
of its corresponding hypervisor;

booting the hypervisor from a device other than the plurality of storage devices; and
performing the hot-swap of the storage device.

US Pat. No. 10,120,812

MANIPULATION OF VIRTUAL MEMORY PAGE TABLE ENTRIES TO FORM VIRTUALLY-CONTIGUOUS MEMORY CORRESPONDING TO NON-CONTIGUOUS REAL MEMORY ALLOCATIONS

Nutanix, Inc., San Jose,...

1. A method for performing virtual paging register remap operations to manipulate a set of two or more contiguous paging registers to map them onto contiguous virtual addresses of virtual address spaces, the method comprising:maintaining a paging register structure of a cache management system, the paging register structure having a set of paging, each paging register in the set of paging registers comprising a first portion and a second portion, the first portion of at least one of the paging registers in the paging register structure holding a virtual address for a virtual memory, the second portion of the at least one of the paging registers holding a physical address for a physical memory for the virtual address stored in the first portion of the same paging register, the paging registers of the set of paging registers being arranged contiguously within the paging register structure such that the set of paging registers form a sequence of paging registers, wherein entries in the paging registers are arranged based upon an increasing or decreasing order of virtual addresses in corresponding first portions of the paging registers;
managing paging table data using the paging register structure to map virtual addresses to physical addresses for a virtual address space, at least by:
initializing a first paging register of the set of paging registers by writing a first virtual address in the first portion of the first paging register and a first physical address of a first physical memory segment in the second portion of the first paging register, the first paging register associating the first virtual address with the first physical memory segment of the virtual address space;
receiving a request to allocate a second physical memory segment to a second virtual address, the second physical memory segment corresponding to a second physical address;
determining that the second virtual address corresponds to the virtual address space and is contiguous with the first virtual address stored in the first portion of the first paging;
allocating the second physical memory segment by:
identifying a second paging register that is contiguous to the first paging register;
determining that the first portion of the second paging register is populated with a third virtual address that is non-contiguous with the first virtual address in the first portion of the first paging register;
moving contents of the second paging register into a third paging register by writing the third virtual address stored in the first portion of the second paging register to the first portion of the third paging register and by writing a third physical memory address in the second portion of the second paging register to the second portion of the third paging register; and
storing the second virtual address into the second paging register by writing the second virtual address in the first portion of the second paging register and the second physical address in the second portion of the second paging register; and
receiving a memory access request to the first virtual address stored in the first portion of the first paging register;
servicing the memory access request by at least accessing the first physical memory address stored in the second portion of the first paging register; and
prefetching data at the second physical memory segment using the second physical address stored in the second portion of the second paging register as a result of receiving the memory access request to the first virtual address.

US Pat. No. 10,002,173

SYSTEM AND METHODS FOR DYNAMICALLY ADJUSTING BETWEEN ASYNCHRONOUS AND SYNCHRONOUS DATA REPLICATION POLICIES IN A NETWORKED VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment, comprising:identifying a plurality of nodes in the networked virtualization environment,
wherein at least some of the plurality of nodes comprise a plurality of user virtual machines, a hypervisor, and a service virtual machine (VM),
wherein the service VM is a storage controller for the plurality of user virtual machines, and
wherein the service VM working with other service VMs manages a storage pool comprising a plurality of storage resources spread across the at least some of the plurality of nodes;
identifying a current data replication policy for the plurality of user virtual machines that are managed by a source service virtual machine (VM);
determining a load level for the source service VM and a destination service virtual machine (VM) associated with the source service VM, the load level indicating a current amount of resources being utilized by both the source service VM and the destination service VM, wherein the source service VM and the destination service VM are virtual machines running above respective hypervisors;
calculating a desired data replication policy for the plurality of user virtual machines based on at least the load level that indicates the current amount of resources being utilized by both the source service VM and the destination service VM, wherein when the desired data replication policy is an asynchronous data replication policy, indicating an amount of time for performing an asynchronous data replication operation, the amount of time determined from a replication time history of previous data replications performed for the user VM;
dynamically adjusting from the current replication policy, by the source service virtual machine, to the desired data replication policy of the asynchronous data replication policy;
replicating data from the source service virtual machine to the destination service virtual machine based at least in part on the desired data replication policy; and
monitoring information corresponding to the desired data replication policy dynamically adjusted for performing a subsequent change in data replication policy.

US Pat. No. 9,671,967

METHOD AND SYSTEM FOR IMPLEMENTING A DISTRIBUTED OPERATIONS LOG

Nutanix, Inc., San Jose,...

1. A method for managing storage devices, comprising:
receiving, at a first node, a write request to write data to a first storage tier in a storage system, the storage system
further comprising a second storage tier, wherein writing the write request to the second storage tier is faster than writing
the write request to the first storage tier;

initially writing the write request as temporary data to a current operation log on the first node at the second storage tier,
the temporary data being distributed across multiple nodes by replicating the current operation log on the first node to one
or more other operation logs on other nodes based on a replication factor;

sending a confirmation of the write request to an originator of the write request at a point in time at which the write data
to be committed in the write request has not been committed to the first storage tier;

setting a portion of the current operation log as read-only; and
transferring contents of the portion of the current operation log set as read-only to the first storage tier.

US Pat. No. 9,575,783

SYSTEM AND METHOD FOR IMPLEMENTING STORAGE FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system for implementing storage for a virtualization environment, comprising:
a plurality of nodes implementing a virtualization environment, the plurality of nodes comprising at least a first node and
a second node, the second node being different from the first node, and at least the first node and the second node including
a respective service virtual machine;

a plurality of storage devices that are accessed by virtual machines in the virtualization environment, the plurality of storage
devices comprising a first storage device tier and a second storage device tier,

the first storage device tier comprising local storage devices that are locally attached to respective nodes of the plurality
of nodes comprising at least a first local storage device on the first node and a second local storage device on the second
node,

the second storage device tier comprising network attached storage devices that are accessed through a network,
the first storage device tier and the second storage device tier being part of a global storage pool, and the global storage
pool being managed by the respective service virtual machines as a global resource pool; and

at least some of the service virtual machines of the respective nodes exposes one or more virtual disks to the virtual machines,
at least one of the one or more virtual disks are structured from both the first local storage device on the first node and
the second local storage device on the second node and the networked attached storage devices in the global storage pool.

US Pat. No. 10,168,953

DYNAMIC SCHEDULING OF DISTRIBUTED STORAGE MANAGEMENT TASKS USING PREDICTED SYSTEM CHARACTERISTICS

Nutanix, Inc., San Jose,...

1. A method for scheduling storage management tasks over predicted user tasks in a distributed storage system, the method comprising:receiving a set of historical stimulus records, comprising system task data records that characterize one or more system tasks that have been executed on the distributed storage system that comprises at least a first node and a second node, wherein the distributed storage system comprising a plurality of storage devices of a cluster, wherein any node distributed across the cluster of nodes that has a controller virtual machine utilizes its respective controller virtual machine to read and write to content on the plurality of storage devices in a storage pool;
receiving, a set of historical response records comprising one or more system metrics associated with execution of the system tasks on the first node of the distributed storage system of the cluster, wherein a user task executed at the first node is observable at different nodes within the cluster, the one or more system metrics comprising a first portion that corresponds to measured metrics at the first node and a second portion that corresponds to results measured at a second node that are produced by executing the user task on the first node:
generating a prediction model for the distributed storage system of the cluster based on a learning model formed from at least two stimulus records of the set of historical stimulus records and at least two response records of the set of historical response records; generating a set of forecasted user tasks predicted to be executed on the distributed storage system of cluster;
applying the set of forecasted user tasks as new stimulus records to the prediction model to determine a set of forecasted system metrics for the distributed storage system of cluster, the set of forecasted system metrics being predicted to result from running the set of forecasted user tasks on the distributed storage system of cluster the distributed storage system of cluster; and
selecting one or more distributed storage management tasks to be scheduled for execution on certain nodes of the distributed storage system of cluster based at least in part on a comparison between management task parameters and the set of forecasted system metrics, wherein the certain nodes of the distributed storage system are identified as being relevant to the one or more distributed storage management tasks.

US Pat. No. 9,817,606

SYSTEM AND METHODS FOR DYNAMICALLY ADJUSTING BETWEEN ASYNCHRONOUS AND SYNCHRONOUS DATA REPLICATION POLICIES IN A NETWORKED VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for transitioning a data replication policy from an asynchronous data replication policy to a synchronous data
replication policy for data replication between a source virtual disk (vDisk) at a source and a destination vDisk at a destination,
wherein the source vDisk and the destination vDisk are at one or more networked virtualization environments, comprising:
taking a first snapshot of the source vDisk at a first point in time where the source vDisk has a same state as the destination
vDisk prior to the data replication policy transitioning from the asynchronous data replication policy to the synchronous
data replication policy;

taking a second snapshot of the source vDisk at a second point in time when a replication policy for data replication between
the source vDisk and the destination vDisk transitions from the asynchronous data replication policy to the synchronous data
replication policy;

providing metadata from the source to the destination at the second point in time;
generating, at the destination, a shell destination vDisk from the metadata received from the source;
synchronously replicating write operations performed on the source vDisk after the second point in time at the shell destination
vDisk, wherein synchronously replicating write operations performed on the source vDisk after the second point in time at
the shell destination vDisk begins without having to first place the shell destination vDisk into a same state as the source
vDisk at the second point in time; and

populating the shell destination vDisk by lazily transmitting differences between the first snapshot and the second snapshot
to the destination, wherein lazily transmitting the differences occurs at a later point in time after the replication policy
transitions to the synchronous data replication policy.

US Pat. No. 9,740,472

MECHANISM FOR PERFORMING ROLLING UPGRADES IN A NETWORKED VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A method for performing rolling updates in a cluster of nodes, comprising:
performing a leadership election to elect any node from among the cluster of nodes as a master, the cluster of nodes comprising
multiple storage controllers distributed across the cluster of nodes, the cluster of nodes being implemented as a networked
virtualization environment, the multiple storage controllers being implemented as controller virtual machines to manage access
by the cluster of nodes to a global storage pool comprising a plurality of storage devices distributed across the cluster
of nodes, the global storage pool having a first local storage on a first node from amongst the cluster of nodes and a second
local storage on a second node from amongst the cluster of nodes, wherein any storage controllers distributed across the cluster
of nodes utilize controller virtual machines to read and write to the plurality of storage devices in the global storage pool;

acquiring update data by some or all of the cluster of nodes, wherein update data information is stored in any local storage
on a node from amongst the cluster of nodes accessible by any storage controllers within the networked virtualization environment,
including the master, to identify an existence of update data to all nodes;

determining whether an upgrade status at a node is acceptable by the master or by individual nodes in the cluster of nodes;
and

granting approval to complete installation of the update data at the node by the master when the upgrade status at the node
is acceptable.

US Pat. No. 10,120,764

EFFICIENT DISASTER RECOVERY ACROSS HETEROGENEOUS STORAGE SYSTEMS

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a source storage system and a target storage system that comprises a storage pool comprising a plurality of storage devices distributed across a cluster of nodes, wherein nodes distributed across the cluster of nodes utilize controller virtual machines to read and write to the storage pool comprising the plurality of storage devices;
installing a data mover agent on the source storage system;
capturing target disaster recovery data at the target storage system transmitted from the data mover agent for storage in the storage pool, wherein the target disaster recovery data corresponds to at least one user virtual machine operating on the source storage system;
receiving a failover event signal;
creating at least one replica user virtual machine on a node from the cluster of nodes in the target storage system, wherein the at least one replica user virtual machine is creatable on any node among the cluster of nodes in the target storage system, the at least one replica user virtual machine serving to replicate functions of the user virtual machine; and
converting, by a controller virtual machine on the node from the cluster of nodes in the target storage system, at least a portion of the target disaster recovery data in the storage pool from a first format to a second format to facilitate access to the portion of the target disaster recovery data by the node having the replica user virtual machine.

US Pat. No. 10,114,751

METHOD AND SYSTEM FOR IMPLEMENTING CACHE SIZE ESTIMATIONS

Nutanix, Inc., San Jose,...

1. A method implemented with a processor for performing cache estimation, comprising:generating a list of cache sizes, the list of cache sizes corresponding to different sizes of caches, the caches comprising one or more storage components;
initializing a hyperloglog (HLL) for each cache size on the list of cache sizes, wherein a first HLL is initialized for a first cache having a first cache size and a second HLL is initialized for a second cache having a second cache size, wherein the first cache size is different than the second cache size;
performing cache estimation using the HLL by representing a change of state of the HLL as a cache miss and a non-change of state of the HLL as a cache hit;
computing, using the HLL, a miss rate curve (MRC) from a count of the cache miss and the cache hit; and
changing a size of a cache based at least in part on a MRC value determined from the MRC computed by the HLL.

US Pat. No. 9,933,971

METHOD AND SYSTEM FOR IMPLEMENTING HIGH YIELD DE-DUPLICATION FOR COMPUTING APPLICATIONS

Nutanix, Inc., San Jose,...

1. A computer-implemented method for selectively performing data de-duplication in a storage device, comprising:generating, by a storage management system of the storage device, a non-deduplication reference count for a fingerprint;
generating a de-duplication reference count for the fingerprint;
computing scores for a plurality of extents from the non-deduplication reference count and the de-duplication reference count;
ordering the plurality of extents from the scores to generate an ordered list of extents;
selecting at least some of the plurality of extents from the ordered list of the extents for de-duplication; and
removing copies of data from the at least some of the plurality of extents selected for de-duplication by replacing the copies of data removed with a reference to one or more remaining copies stored on another extent, wherein removing the copies of data from the at least some of the plurality of extents removes a contiguous portion of data from the storage device.

US Pat. No. 10,095,506

VIRTUALIZED FILE SERVER DATA SHARING

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a plurality of host machines, wherein each of the host machines comprises a hypervisor, one or more user virtual machines (user VMs), and a virtual machine controller;
one or more virtual disks comprising a plurality of storage devices, the one or more virtual disks being accessible by the virtual machine controllers, wherein the virtual machine controllers conduct I/O transactions with the one or more virtual disks; and
a first virtualized file server, while running on one or more processors, is configured to:
receive a request to access a storage item located at a second virtualized file server;
determine that the storage item is designated as being accessible by the first virtualized file server;
identify a File Server Virtual Machine (FSVM) of the second virtualized file server, wherein the storage item is located in a storage resource served by the identified FSVM; and
send the request to the identified FSVM of the second virtualized file server.

US Pat. No. 9,971,548

STORAGE RESOURCE MANAGEMENT EMPLOYING PERFORMANCE ANALYTICS

NUTANIX, INC., San Jose,...

1. A method comprising:generating by a storage resource manager a performance profile for a destination storage controller, wherein the performance profile comprises peak read input/output operations per second (IOPS) values for at least two different read input/output (I/O) request block sizes and peak write IOPS values for at least two different write I/O request block sizes;
generating by the storage resource manager a workload profile for the destination storage controller, wherein the workload profile comprises contribution values for each of the at least two different read I/O request block sizes and contribution values for each of the at least two different write I/O request block sizes;
calculating by the storage resource manager a performance utilization value for the destination storage controller using the performance profile and the workload profile;
selecting by the storage resource manager a new placement configuration for a storage resource using the performance utilization value, wherein the new placement specifies adding the storage resource to the destination storage controller; and
directing by the storage resource manager, in response to selecting the new placement configuration, the destination storage controller to perform a system management action to add the storage resource to the destination storage controller,
wherein calculating the performance utilization value for the destination storage controller comprises:
calculating a peak total read IOPS value according to a sum of products, wherein each product is calculated by multiplying a peak read IOPS value for each of the at least two different read I/O request block sizes by a corresponding ratio, wherein the ratio is calculated by dividing a read contribution value for the I/O request block size by a sum of read contribution values summed over a set of read I/O request block sizes;
calculating a peak total write IOPS value according to a sum of products, wherein each product is calculated by multiplying a peak write IOPS value for each of the at least two different write I/O request block sizes by a corresponding ratio, wherein the ratio is calculated by dividing a write contribution value for the I/O request block size by a sum of write contribution values summed over a set of write I/O request block sizes;
assigning a peak net IOPS value to be either a sum of the peak total read IOPS value and the peak total write IOPS value, or a weighted minimum of the peak total read IOPS value and the peak total write IOPS value; and
calculating a ratio of total IOPS at the destination storage controller and the peak net IOPS value.

US Pat. No. 9,733,958

MECHANISM FOR PERFORMING ROLLING UPDATES WITH DATA UNAVAILABILITY CHECK IN A NETWORKED VIRTUALIZATION ENVIRONMENT FOR STORAGE MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method for performing rolling updates with data unavailability checks in a networked virtualization environment for storage
management, comprising:
performing a leadership election amongst controller virtual machines distributed across a cluster of nodes in the networked
virtualization environment to elect a controller virtual machine from amongst the controller virtual machines as a master
controller virtual machine, the cluster of nodes being implemented as a networked virtualization environment, wherein controller
virtual machines not elected are slave controller virtual machines, the controller virtual machines managing access by the
cluster of nodes to a global storage pool comprising a plurality of storage devices distributed across the cluster of nodes,
wherein any node distributed across the cluster of nodes that has a controller virtual machine utilizes its respective controller
virtual machine to read and write to the plurality of storage devices in the global storage pool;

acquiring update data by a node from among the cluster of nodes, wherein any node in the cluster of nodes having a controller
virtual machine is capable of initially acquiring the update data on behalf of the cluster of nodes for distribution to the
cluster of nodes in the networked virtualization environment, wherein update data information to identify an existence of
update data to all nodes is stored in a global storage pool accessible by any node distributed across the cluster of nodes
that has a controller virtual machine, including a node having the master controller virtual machine;

determining whether a replication status at the node in the networked virtualization environment is acceptable by the master
controller virtual machine or a corresponding slave controller virtual machine; and

granting approval to complete installation of the update data at the node in the networked virtualization environment by the
master controller virtual machine when the replication status at the node is acceptable.

US Pat. No. 10,019,321

UNIQUE IDENTIFIERS FOR DATA REPLICATION, MIGRATION, FAILOVER OPERATIONS AND FAILBACK OPERATIONS

Nutanix, Inc., San Jose,...

1. A computer implemented method implemented with a processor for assigning a unique identifier for a data item initially deployed at a cluster of nodes of a networked environment, comprising:determining a unique cluster identifier for a first cluster of a plurality of clusters interconnected over network connections, clusters of the plurality of clusters comprising pluralities of nodes in networked environments, wherein the unique cluster identifier uniquely identifies the first cluster, individual nodes of the pluralities of nodes comprise both hardware and software, the hardware comprising a processor, a memory, and one or more storage devices, the software comprising a hypervisor and a controller virtual machine above the hypervisor, and the controller virtual machine manages at least some of the one or more storage devices as a single logical collection of storage devices comprising a storage pool;
atomically modifying a local counter value at the first cluster of the networked environment, the local counter value comprising a cluster level counter shared by a plurality of nodes that make up the first cluster, wherein the local counter value is atomically modified when a data item is initially deployed at any node of the plurality of nodes that make up the first cluster, the data item being stored on a first storage pool of the first cluster;
forming a unique ID for the data item by appending the unique cluster identifier to the atomically modified local counter value, wherein the data item is immutable after the unique ID for the data item has been formed; and
performing replication or migration of the data item to a second cluster of the plurality of clusters upon determining that the unique ID for the data item is not in a list of unique IDs residing at the second cluster, the data item being replicated at a second storage pool of the second cluster, wherein any identical instance of the data item in the networked environment is associated with the unique ID and a modified instance of the data item is associated with a different unique ID.

US Pat. No. 9,930,029

HYPERVISOR AGNOSTIC BIDIRECTIONAL SECURE CHANNEL FOR GUEST AGENT TRANSPORT

Nutanix, Inc., San Jose,...

1. A method for providing a connection between a guest virtual machine and a service virtual machine comprising:providing access to a driver code function that serves to establish a listening port on the service virtual machine without providing a listening port on the guest virtual machine;
receiving, by the service virtual machine, a request from the guest virtual machine to initiate a remote procedure call socket between the service virtual machine and the guest virtual machines;
indicating, in data structures of the remote procedure call socket, that the remote procedure call socket is to be used for remote procedure calls from the service virtual machine to the guest virtual machine rather than from the guest virtual machine to the service virtual machine;
formatting a first instance of an authority certificate by encoding into the first instance, at least a portion of identifying information received from the request from the guest virtual machine, wherein the authority certificate authority is generated using a certificate authority; and
providing, to the guest virtual machine, the first instance of the authority certificate.

US Pat. No. 9,984,004

DYNAMIC CACHE BALANCING

Nutanix, Inc., San Jose,...

1. A method comprising:defining a first cache having a first cache size and a second cache having a second cache size;
receiving one or more data element attributes corresponding to one or more data elements that are stored in at least one of the caches;
defining a first tail portion and a first head portion of the first cache and defining a second tail portion and a second head portion of the second cache, wherein incoming data elements are initially stored in a respective head portion and wherein evicted data elements are evicted from a respective tail portion;
generating a first normalized cache performance metric pertaining to the first cache, wherein the first normalized cache performance metric is based at least in part on a predicted miss cost to be incurred after evicting one or more of the evicted data elements from the first tail portion;
generating a second normalized cache performance metric pertaining to the second cache, wherein the second normalized cache performance metric is based at least in part on a predicted miss cost to be incurred after evicting one or more of the evicted data elements from the second tail portion;
determining at least one cache reallocation amount by equating the first normalized cache performance metric with the second normalized cache performance metric; and
balancing the caches by increasing the first cache size by the cache reallocation amount and decreasing the second cache size by the cache reallocation amount.

US Pat. No. 9,886,443

DISTRIBUTED NFS METADATA SERVER

Nutanix, Inc., San Jose,...

1. A computer-implemented method for operating upon distributed metadata in a distributed file system environment, comprising:
maintaining a plurality of servers in a distributed file system environment, wherein the distributed file system comprises
data correlating to metadata distributed across the plurality of servers;

receiving, at a server of the plurality of servers, a request to perform an operation on metadata stored in a metadata repository
of the distributed file system environment;

reading, by the server, the metadata from the metadata repository associated with the received request;
attempting, by the server, to update the metadata at the metadata repository corresponding to the metadata read from the metadata
repository, based at least in part upon the received request, wherein attempting to update the metadata at the metadata repository
comprises:

retrieving the metadata from the metadata repository,
comparing newly retrieved metadata to originally retrieved metadata, and
updating the metadata at the metadata repository only if the newly retrieved metadata matches the originally retrieved metadata;
and

in response to an unsuccessful attempt to update the metadata at the metadata repository, executing a garbage collection at
a later time to remove metadata entities that lack a valid parent metadata entity by detecting inconsistencies between a reference
count of metadata corresponding to a file and an actual number of other metadata entities that reference the file.

US Pat. No. 10,007,646

METHOD AND SYSTEM FOR PRESENTING MULTIPLE LEVELS OF CONTENT FOR A DOCUMENT

Nutanix, Inc., San Jose,...

1. A method implemented with a processor, comprising:generating a plurality of flattened documents corresponding to different of levels of a plurality of levels of a source document prior to providing access to the plurality of flattened documents corresponding to the source document, respective documents of the plurality of flattened documents comprise at least flattened contents for a highest level of the respective document and a recursive concatenation of flattened contents for sub-levels to the highest level of the respective document, wherein the plurality of flattened documents are generated by recursively processing a hierarchical document to concatenate content of a respective document level and contents of any sub-levels;
maintaining the plurality of flattened documents in a database prior to providing access for display;
identifying a first flattened document of the plurality of flattened documents maintained in the database for display having a plurality of different levels; and
displaying, for each level of the plurality of levels, all of the contents of a respective level as well as all sublevels to that level inline, wherein addressability for the plurality of different levels is preserved.

US Pat. No. 10,210,010

NETWORK RECONFIGURATION IN HYPERVISOR-AGNOSTIC DISASTER RECOVERY SCENARIOS

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a disaster recovery plan for restarting a set of virtual machines from a first system on a second system, the disaster recovery plan including at least reconfiguration of one or more virtual machines of the set of virtual machines, the first system comprising a first hypervisor and the second system comprising a second hypervisor, the first hypervisor and the second hypervisor being different types of hypervisors, wherein the set of virtual machines from the first system accesses storage devices at the first system through a first controller virtual machine at the first system;
invoking, by the second system, a set of acts to store, at a location accessible to the second system, a set of network configuration directives comprising adapter specific configurations for providing access to a network of the second system through adapters present in the second system, the set of network configuration directives pertaining to the second system;
detecting a failure event at the first system;
accessing, on the second system, the one or more virtual machines a list of the set of virtual machines from the first system that are to be deployed on the second system in response to detecting the failure event at the first system;
implementing a virtual machine at the second system to provide the set of network configuration directives to the one or more virtual machines, wherein the virtual machine provides access to the one or more virtual machines by:
accessing the set of network configuration directives at the second system in response to detecting the failure event at the first system, and
writing the set of network configuration directives to locations accessible to the one or more virtual machines; and
reconfiguring the one or more virtual machines from the first system and on the second system to access the network of the second system using adapters present in the second system, wherein the one or more virtual machines from the first system access storage devices at the second system through a second controller virtual machine at the second system.

US Pat. No. 10,176,550

GPU RESOURCE USAGE DISPLAY AND DYNAMIC GPU RESOURCE ALLOCATION IN A NETWORKED VIRTUALIZATION SYSTEM

Nutanix, Inc., San Jose,...

1. A method for reallocating resources of a graphics processing unit (GPU) to a virtual machine currently supported on one or more nodes of a networked virtualization system, the method comprising:retrieving information describing an initial allocation of GPU resources to a plurality of virtual machines, the initial allocation of GPU resources to the plurality of virtual machines corresponding to a first profile associated with a graphics board of one or more graphics boards installed on the one or more nodes;
retrieving information describing a current usage of GPU resources by the plurality of virtual machines;
comparing the initial allocation of GPU resources with the current usage of GPU resources;
determining whether a difference between the initial allocation of GPU resources and the current usage of GPU resources is within a threshold difference; and
responsive to determining the difference between the initial allocation of GPU resources and the current usage of GPU resources is within the threshold difference, for each of the plurality of virtual machines:
retrieving information describing a workload of a virtual machine of the plurality of virtual machines;
comparing the workload of the virtual machine to a workload profile, the workload profile corresponding to a second profile associated with the one or more graphics boards installed on the one or more nodes; and
responsive to determining the workload of the virtual machine has at least a threshold measure of similarity to the workload profile, reallocating GPU resources to the virtual machine, the GPU resources reallocated to the virtual machine corresponding to the second profile associated with the one or more graphics boards installed on the one or more nodes.

US Pat. No. 10,061,669

MECHANISM FOR PROVIDING REAL TIME REPLICATION STATUS INFORMATION IN A NETWORKED VIRTUALIZATION ENVIRONMENT FOR STORAGE MANAGEMENT

NUTANIX, INC., San Jose,...

1. A method for monitoring replications for storage management, comprising:identifying one or more virtual disks (vDisks) and one or more replication factors associated with the one or more vDisks;
identifying a vDisk with a lowest replication factor;
locating a replica for the vDisk with the lowest replication factor; and
determining a number of failure nodes or a number of failure racks based at least on the location of the replica for the vDisk with the lowest replication factor, wherein the number of failure nodes or the number of failure racks correspond to a number of nodes or a number of racks supportable by a networked virtualization network to shut down while providing that at least one replica of the vDisk is available.

US Pat. No. 9,952,889

CONNECTION MANAGEMENT

Nutanix, Inc., San Jose,...

1. A system for managing communication connections in a virtualization environment, comprising:a plurality of host machines implementing a virtualization environment, wherein each of the plurality of host machines comprises a hypervisor, at least one user virtual machine (UVM), a connection agent, and an I/O controller; and
a virtual disk comprising a plurality of storage devices, the virtual disk being accessible by the I/O controllers of each of the plurality of host machines to conduct I/O transactions with the virtual disk, wherein:
the connection agent of each of the plurality of host machines is configured to maintain a list of all of the I/O controllers that are available from the plurality of host machines; and
the connection agent is configured to select one of the I/O controllers on the list in response to receiving an I/O request from the at least one UVM and direct the I/O request to the selected one of the I/O controllers.

US Pat. No. 10,628,980

HIGH-PERFORMANCE GRAPH RENDERING IN BROWSERS

Nutanix, Inc., San Jose,...

1. A method comprising:receiving a set of descriptions for a node and an edge in a graph for rendering the graph by separately processing nodes in a first layer from edges in a second layer and superimposing the first layer and the second layer on top of each other, wherein
the first layer including the node and the second layer including the edge are separately processed;
rendering the graph at least by:
processing the first layer at least by assigning an HTML (hypertext markup language) graphic primitive to the node in the first layer;
processing the second layer at least by assigning a non-HTML graphic primitive to the edge in the second layer;
superimposing the first layer and the second layer into a superimposed layer; and
sending the superimposed layer for rendering the graph.

US Pat. No. 10,542,049

MECHANISM FOR PROVIDING EXTERNAL ACCESS TO A SECURED NETWORKED VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for providing external access into a secured networked virtualization environment, comprising:performing a first leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs an external communication from an external entity to a node within the secured networked virtualization environment;
assigning a cluster virtual IP address to the leader node, wherein the cluster virtual IP address is a different IP address than an IP address of the leader node;
generating a reverse tunnel, using a processor of the leader node, based at least in part on the cluster virtual IP address, wherein the external communication from the external entity to the node within the secured networked virtualization environment is sent via the reverse tunnel associated with the cluster virtual IP address;
identifying failure of the leader node;
performing a second leadership election amongst the nodes of the secured networked virtualization environment to elect a new leader node;
assigning the cluster virtual IP address to the new leader node; and
generating another reverse tunnel by the new leader node to allow the external entity to communicate with the secured networked virtualization environment.

US Pat. No. 10,509,584

SYSTEM AND METHOD FOR USING HIGH PERFORMANCE STORAGE WITH TUNABLE DURABILITY

NUTANIX, INC., San Jose,...

1. A method comprising:transferring data from a shared storage space to a local virtual disk based upon determining that the data is located in the shared storage space, wherein the transferring comprises:
identifying an access range from an access data structure corresponding to the data;
determining, based upon a first value of the access range, that the data is not in use;
setting the first value to a second value indicating that the data is in use during the transfer; and
resetting the second value to the first value after the transfer.

US Pat. No. 10,228,975

ADAPTING A PRE-TRAINED DISTRIBUTED RESOURCE PREDICTIVE MODEL TO A TARGET DISTRIBUTED COMPUTING ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a computing system to operate in a first computing environment characterized by a training system configuration;
training, on the computing system, a resource performance predictive model to form a trained resource performance predictive model that comprises a set of trained model parameters to capture at least computing and storage IO parameters that are responsive to execution of one or more workloads that consume computing and storage resources in the first computing environment;
deploying the resource performance predictive model to a second computing environment characterized by a target system configuration, wherein the resource performance predictive model is used to perform resource scheduling, and the training system configuration comprises at least a portion of the target system configuration;
detecting at least one environment change event, the at least one environment change event based at least in part on one or more environment differences between the first computing environment and the second computing environment; and
modifying the set of trained model parameters based at least in part on the at least one environment change event, wherein at least some acts of modifying the set of trained model parameters adapt the resource performance predictive model to the second computing environment.

US Pat. No. 10,261,706

METHOD FOR PERFORMING HOT-SWAP OF A STORAGE DEVICE IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer implemented method for maintaining access to a storage pool during a hot-swap operation, comprising:managing a storage pool comprising a logical collection of storage devices constructed from a local storage device of a plurality of nodes, the storage pool being manage at a node of the plurality of nodes having a local service virtual machine, wherein the local service virtual machine receive an input/output request from another service virtual machine through a corresponding hypervisor; and
in response to an initiation of a hot-swap operation at a node of the plurality of nodes:
performing pass-thru of a storage manager to a service virtual machine at the node, and
servicing, by the service virtual machine at the node, an input/output request received from another service virtual machine during the hot-swap operation, wherein the service virtual machine performs a read or write operation corresponding to the input/output request without the input/output request going through a storage software layer of the corresponding hypervisor at the node during the hot-swap operation.

US Pat. No. 10,176,061

HANDLING MIGRATION IN A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system for migrating virtual machines in a virtualization environment, the system comprising:a plurality of host machines implementing the virtualization environment, wherein each of the host machines comprises a hypervisor, one or more virtual machines (UVMs) and a virtual machine controller;
a virtual disk comprising a plurality of storage devices, the virtual disk being accessible by the virtual machine controllers, wherein the virtual machine controllers conduct I/O transactions with the virtual disk; and
a migration controller configured to:
determine a segment size of a computing resource;
for each host machine, determine a number of reserved segments required for the one or more UVMs running on the host machine; and
compute a total number of reserved segments based on:
a total number of host machines, and
a maximum number of the reserved segments required for the one or more UVMS; and
assign the total number of reserved segments among the plurality of host machines.

US Pat. No. 10,133,619

CLUSTER-WIDE VIRTUAL MACHINE HEALTH MONITORING

Nutanix, Inc., San Jose,...

1. A computer-implemented method for managing a clustered virtualization environment, comprising:identifying a cluster of computing nodes that are interconnected by at least one communication path, wherein at least two of the computing nodes are further interconnected to a storage pool comprising at least one node-local storage device and at least one networked storage device;
invoking, on a first node, a first health module comprising at least one first node data collection unit that accesses the storage pool;
invoking, on a second node, a second health module comprising at least one second data collection unit that accesses the storage pool;
storing, in the storage pool, a first set of collected data generated by the first health module, the first set of collected data tracking a health status for the first node or the cluster of computing nodes by receiving observations taken at the first node; and
storing, in the storage pool, a second set of collected data generated by the second health module, the second set of collected data tracking a health status for the second node or the cluster of computing nodes by receiving observations taken at the second node.

US Pat. No. 10,101,989

VIRTUALIZED FILE SERVER BACKUP TO CLOUD

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a plurality of host machines, wherein each of the host machines comprises a hypervisor, one or more user virtual machines (user VMs), and a virtual machine controller;
one or more virtual disks comprising a plurality of storage devices, the one or more virtual disks being accessible by the virtual machine controllers, wherein the virtual machine controllers conduct I/O transactions with the one or more virtual disks;
a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is running on one of the host machines and conducts I/O transactions with the one or more virtual disks, and the host machines form a cluster; and
a backup system configured to:
provide, by at least one of the FSVMs, an object store interface to an object store;
back up data stored in the VFS to the object store via the object store interface; and
retrieve the backed-up data via the object store interface as needed to restore the data in the VFS.

US Pat. No. 10,509,567

SYSTEM AND METHOD FOR MIGRATING STORAGE WHILE IN USE

NUTANIX, INC., San Jose,...

1. A method comprising:receiving, by a storage space transfer system, a request to transfer first data from a first storage space to a second storage space;
receiving, by the storage space transfer system, a write request during the transfer of the first data to write second data to a location;
determining, by the storage space transfer system, from an access data structure that the location is not in use;
determining, by the storage space transfer system, from a location data structure whether the location is in the first storage space or the second storage space; and
writing, by the storage space transfer system, the second data in the first storage space if the location is in the first storage space or in the second storage space if the location is in the second storage space.

US Pat. No. 10,423,399

VIRTUALIZED FILE SERVER UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines; and
an upgrade system configured to:
receive a request to upgrade the virtualized file server from a first program code version to a second program code version;
generate a snapshot of a code image associated with the second program code version, wherein the code image comprises a boot disk image; and
provide the snapshot to at least a selected host machine of the host machines via a_virtual disk to cause a virtual machine controller located on the selected host machine to store the snapshot on a first storage device associated with the selected host machine, wherein the snapshot comprises metadata identifying a location of the code image on the first storage device.

US Pat. No. 10,367,883

COMPUTING RESOURCE MANAGEMENT USING DEDICATED LEADERSHIP POOL

Nutanix, Inc., San Jose,...

1. A method comprising:responsive to a request for an instance of a service to serve in a leadership role, requesting, by the instance of the service, an amount of resources from a dedicated leadership resource pool based on an expected increase in resources to perform the leadership role, wherein the dedicated leadership resource pool is available only to services serving in leadership roles;
accepting the request to serve in the leadership role when the amount of resources are available in the dedicated leadership resource pool; and
denying the request to serve in the leadership role when the amount of resources are unavailable in the dedicated leadership resource pool.

US Pat. No. 10,203,897

DYNAMIC DATA COMPRESSION

Nutanix, Inc., San Jose,...

19. A system for performing one or more in-line data compression operations over one or more data units during execution of a storage input-output (IO) operation, the system comprising:a storage medium having stored thereon a sequence of instructions; and
one or more processors that execute the sequence of instructions to cause the one or more processors to perform a set of acts, the set of acts comprising:
receiving at least one storage IO operation associated with at least one data group comprising one or more data units, the at least one storage IO operation being received from an application and comprising a read request or a write request;
applying one or more compression rules in-line with the at least one storage IO operation to the data units to determine one or more compression parameters, wherein actions performed in-line are actions completed prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation;
executing the at least one storage IO operation in accordance with the compression parameters, wherein the storage IO operation performs at least one in-line data compression operations on at least a portion of the data group, the at least one in-line data compression operations comprising compressing or decompressing at least the portion of the data group according to the compression parameters prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; and
returning a status to the application, the status pertaining to the execution of the storage IO operation.

US Pat. No. 10,198,323

METHOD AND SYSTEM FOR IMPLEMENTING CONSISTENCY GROUPS WITH VIRTUAL MACHINES

Nutanix, Inc., San Jose,...

1. A method for restoring a consistency group, comprising:recognizing a failure of a first computing system that has brought down a virtual machine within a consistency group such that the virtual machine is no longer accessible to a user, the virtual machine previously being run on the first computing system before the failure; and
implementing disaster recovery by:
identifying the consistency group associated with the virtual machine that is no longer accessible to the user, the consistency group linking a group of related virtual machines that are managed together after the failure at the first computing system;
identifying a snapshot of resources associated with the consistency group in which an application associated with the resources does not have a native functionality to generate the snapshot, the snapshot previously generated in a process comprising locking the resources associated with the group of related virtual machines; and
restoring, at a second computing system, the group of related virtual machines in the consistency group from the snapshot to a state of the group of related virtual machines at a time the snapshot was generated, the second computing system not sharing a common point of failure with the first computing system.

US Pat. No. 10,152,386

EFFICIENT DISASTER ROLLBACK ACROSS HETEROGENEOUS STORAGE SYSTEMS

Nutanix, Inc., San Jose,...

1. A method comprising:implementing a disaster recovery operation across heterogeneous distributed storage systems by:
identifying a source storage system having a first hypervisor type and a target storage system having a second hypervisor type, wherein at least the first hypervisor type or the second hypervisor type is at least one of VMware ESXi, Microsoft Hyper-V, RedHat KVM, or Nutanix AHV, wherein the first hypervisor type and the second hypervisor type are different;
installing a data mover agent on the source storage system, the data mover agent to send snapshot data from the source storage system to the target storage system to form a snapshot file comprising target disaster recovery data;
updating by at least one process on the target storage system, the target disaster recovery data to form updated target disaster recovery data;
receiving, by the target storage system, a failback event signal;
calculating, by the target storage system, calculated differences between the updated target disaster recovery data and the snapshot file; and
sending the calculated differences to the source storage system; and
performing a failback restoration on the source storage system by applying the calculated differences to a registered snapshot that was registered prior to occurrence of the failback event signal.

US Pat. No. 10,567,009

DYNAMIC ERASURE CODING

Nutanix, Inc., San Jose,...

1. A method comprising:accessing a fault tolerance policy attribute describing a fault tolerance policy associated with a computing system;
accessing a computing node topology attribute that describes a location of a computing node of the computing system;
generating a plurality of candidate erasure coding configurations, wherein the candidate erasure coding configurations are generated based at least in part on at least one of, the fault tolerance policy attribute or the computing node topology attribute;
computing respective configuration scores corresponding to respective candidate erasure coding configurations of the plurality of candidate erasure coding configurations; and
selecting an erasure coding configuration from the plurality of candidate erasure coding configurations, the selecting being based at least in part on the respective configuration scores.

US Pat. No. 10,558,579

SYSTEM AND METHOD FOR ADAPTIVE CACHE

NUTANIX, INC., San Jose,...

1. An adaptive cache system comprising:a cache that stores a plurality of clusters and a first cache entry; and
a processing unit that:
receives a first feature value associated with the first cache entry;
for each cluster of the plurality of clusters:
calculates a cluster feature mean;
computes a variance from the cluster feature mean of feature instances in the cluster; and
calculates a distance of a plurality of distances based on the first feature value, the cluster feature mean, and the variance; and
assigns the first cache entry to a first cluster of the plurality of clusters, the first cluster having a lowest distance of the plurality of distances; and
evicts the first cache entry upon determining that a first amount of available memory of the cache to create the first cache entry is less than a second amount of memory needed to create the first cache entry.

US Pat. No. 10,416,996

SYSTEM AND METHOD FOR TRANSLATING AFFLICTION PROGRAMMING INTERFACES FOR CLOUD PLATFORMS

NUTANIX, INC., San Jose,...

1. A method comprising:by a computer system,receiving a request to call a requested application programming interface (API) at a target cloud platform;
determining that the requested API is unsupported by the target cloud platform;
generating responsive to determining that the requested API is unsupported by the target cloud platform, a first workflow associated with the requested API;
generating a first task based on the first workflow;
generating a first target API associated with the target cloud platform based on the first task and an identity of the target cloud platform;
communicating the first target API to the target cloud platform;
maintaining a first state associated with a first object associated with the first target API;
receiving a status API directed to the target cloud platform for requesting a status of the first object; and
responding to the status API with the maintained first state associated with the first object.

US Pat. No. 10,372,354

HIGH RELIABILITY IN STORAGE ARRAY SYSTEMS

Nutanix, Inc., San Jose,...

1. A system comprising:a first controller having a first timer and a first drive interface;
a second controller having a second timer and second drive interface; and
a set of dual channel drives electrically coupled to both the first drive interface and the second drive interface, wherein the first controller writes a controller status to a status area on one or more of the set of dual channels drives based on at least the first timer, and the second controller reads the status area based on at least the second timer to determine if the first controller reported operational status during a first time period of the first timer corresponding to a second time period of the second timer.

US Pat. No. 10,248,654

VIRTUAL MACHINE OBJECT VERSION CONTROL

Nutanix, Inc., San Jose,...

1. A method for implementing a virtual machine snapshot index in a virtualization environment, the method comprising:receiving an initiation signal that initiates sending of at least one quiescence request to at least one user virtual machine;
quiescing the at least one user virtual machine by at least transmitting the at least one quiescence request to the at least one user virtual machine;
confirming that the at least one user virtual machine is quiesced based on at least receipt of an acknowledgement signal from the at least one user virtual machine, the acknowledgement signal indicating that the at least one user virtual machine has quiesced;
requesting and receiving a set of virtual machine attribute values from the at least one user virtual machine while the at least one user virtual machine is quiesced;
generating a volume index data structure comprising at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced; and
storing the volume index data structure comprising the at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced.

US Pat. No. 10,552,192

ENTITY DATABASE TIMESTAMPS

NUTANIX, INC., San Jose,...

1. An apparatus having programmed instructions to:store an entity trail comprising configuration information associated with an entity in a virtualization environment, the configuration information associated with a first timestamp;
record additional configuration information of the entity in the entity trail, the additional configuration information received after the first timestamp and associated with a second timestamp;
enable selection of a time period on a user interface for returning at least a portion of the entity trail corresponding to the selected time period; and
periodically analyze information in the entity trail to determine a resource usage statistic over time of an element associated with the entity, wherein the statistic is related to a CPU utilization, a memory availability, or a storage availability;
wherein the selected time period comprises a past time period and a future time period, wherein the portion of the entity trail returned comprises an observed value for the past time period and an extrapolated value for the future time period.

US Pat. No. 10,552,209

SYSTEM AND METHOD FOR THROTTLING FOR LIVE MIGRATION OF VIRTUAL MACHINES

NUTANIX, INC., San Jose,...

1. A method comprising:copying, using a migration tool, initial data stored in a first host machine to a second host machine;
identifying, using the migration tool, a set of modified data stored in the first host machine;
determining, using the migration tool, that an expected amount of time for transferring the set of modified data to the second host machine would exceed a downtime limit for a virtual machine executing on the first host machine;
determining, using the migration tool, that an increased throttling of the virtual machine would not exceed a throttling limit, wherein the increased throttling is applied to the virtual machine; and
copying, using the migration tool, the set of modified data to the second host machine while the increased throttling is applied to the virtual machine.

US Pat. No. 10,552,483

MECHANISM FOR PERFORMING LOCKLESS ROLLING UPGRADE OF NOSQL DATABASE

Nutanix, Inc, San Jose, ...

1. A method comprising:receiving a request to perform a lockless modification of a column family in a NoSQL database during a rolling upgrade of the column family from an old column family version to a new column family version, wherein the NoSQL database is shared by a controller virtual machine, wherein the controller virtual machine resides at a node in a networked virtualization environment and provides storage management functionality to a user virtual machine residing at the node, and wherein the NoSQL database is utilized to maintain metadata used by the controller virtual machine to provide storage management functionality to the user virtual machine;
determining whether the old column family version is marked, wherein a marked old column family version indicates that data from the old column family version has been migrated to the new column family version;
returning a notification of an unsuccessful modification when the old column family version is not marked; and
fulfilling the request to perform the modification of the column family by modifying the new column family version when the old column family version is marked.

US Pat. No. 10,496,390

VIRTUALIZED FILE SERVER RESILIENCE

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is running on one of a plurality of host machines configured to form a cluster, and wherein each of the FSVMs is configured to conduct I/O transactions with one or more virtual disks, wherein a health monitoring service is running on each of the host machines running a FSVM, and wherein the VFS is configured to:
by the distributed health monitoring service, monitor the and detect that a plurality of the FSVMs have failed; and
for each of the failed FSVMs, reassign an IP address corresponding to the failed FSVM to a live one of a plurality of live ones of the FSVMs.

US Pat. No. 10,467,115

DATA CONSISTENCY MANAGEMENT IN LARGE COMPUTING CLUSTERS

Nutanix, Inc., San Jose,...

19. A system comprising:a storage medium having stored thereon a sequence of instructions; and
one or more processors that execute the instructions to cause the one or more processors to perform a set of acts, the acts comprising,
determining a rebuild time parameter that characterizes a time for copying stored data from a first storage device to a second storage device of a computing system, the computing system comprising a plurality of computing nodes;
determining a data loss parameter corresponding to a storage device of a computing node of the plurality of computing nodes;
determining a storage device group having a maximum number of storage devices selected from storage devices of the plurality of computing nodes by:
identifying a maximum data loss probability value determined based at least in part on the rebuild parameter and a data loss parameter corresponding to the storage device,
incrementally adding the storage device to the storage device group, and
comparing an estimated data loss probability value of the storage device group having the storage device added against the maximum data loss probability value, wherein the maximum number of storage devices for the storage device group is determined when the estimated data loss probability value exceeds the maximum data loss probability value; and
assigning a dataset to the storage device group, wherein the dataset and a replica of the dataset are stored in the storage device group.

US Pat. No. 10,445,085

VIRTUALIZED FILE SERVER UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines; and
an upgrade system configured to:
receive a request to upgrade the virtualized file server from a first program code version to a second program code version;
generate a snapshot of a code image associated with the second program code version, wherein the code image comprises a boot disk image; and
provide the snapshot to at least a selected host machine of the host machines via a_virtual disk to cause a virtual machine controller located on the selected host machine to store the snapshot on a first storage device associated with the selected host machine, wherein the snapshot comprises metadata identifying a location of the code image on the first storage device.

US Pat. No. 10,423,400

VIRTUALIZED FILE SERVER ROLLING UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines;
a deployment server configured to upgrade the VFS from a first code version to a second code version by performing actions comprising:
generating a snapshot of a code image associated with the second program code version;
providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time;
detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine;
attaching the snapshot to the selected user VM; and
causing the selected user VM to boot from the snapshot.

US Pat. No. 10,416,983

VIRTUALIZED FILE SERVER HIGH AVAILABILITY

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is configured to and conduct I/O transactions with one or more virtual disks, and is configured to run on one or more host machines which form a cluster, wherein the VFS is configured to:
monitor the FSVMs, wherein each of the FSVMs of the VFS is configured to monitor at least another one of the FSVMs of the VFS;
detect a failure of at least a portion of a first one of the FSVMs on a first one of the host machines; and
for each resource lock associated with the at least a portion of the first FSVM, reassign the resource lock to a second one of the FSVMs.

US Pat. No. 10,416,984

VIRTUALIZED FILE SERVER BLOCK AWARENESS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized server managers hosted on a computing node cluster and configured to manage storage items maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a centralized coordination service hosted on the computing node cluster and configured to, in response to detection of a failure of the first virtualized file server manager:
determine whether a first computing node block of the computing node cluster on which the first virtualized file server manager is hosted has failed;
based on the determination and identification of a second computing node block of the computing node cluster on which the second virtualized file server manager is hosted, identify a failover path to the second virtualized file server manager; and
migrate I/O transaction management associated with the first storage item to the second virtualized file server manager.

US Pat. No. 10,412,119

MECHANISM FOR PROVIDING EXTERNAL ACCESS TO A SECURED NETWORKED VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method for providing external access into a secured networked virtualization environment, comprising:performing a leadership election amongst nodes of the secured networked virtualization environment that elects a leader node that directs external communication from an external entity to one or more nodes within the secured networked virtualization environment;
assigning a cluster virtual IP address to the leader node, wherein the cluster virtual IP address is a different IP address than an IP address of the leader node;
generating a reverse tunnel, using a processor of the leader node, based at least in part on the cluster virtual IP address, wherein the external communication from the external entity into the one or more nodes within the secured networked virtualization environment is sent via the reverse tunnel associated with the cluster virtual IP address;
identifying failure of the leader node;
performing the leadership election amongst the nodes of the secured networked virtualization environment to elect a new leader node;
assigning the cluster virtual IP address to the new leader node; and
generating another reverse tunnel by the new leader node to allow the external entity to communicate with the secured networked virtualization environment.

US Pat. No. 10,409,581

VIRTUALIZED FILE SERVER RESILIENCE

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is running on one of a plurality of host machines configured to form a cluster, and wherein each of the FSVMs is configured to conduct I/O transactions with one or more virtual disks, wherein a health monitoring service is running on each of the host machines running a FSVM, and wherein the VFS is configured to:
by the distributed health monitoring service, monitor the and detect that a plurality of the FSVMs have failed; and
for each of the failed FSVMs, reassign an IP address corresponding to the failed FSVM to a live one of a plurality of live ones of the FSVMs.

US Pat. No. 10,382,359

DYNAMIC RESOURCE DISTRIBUTION USING PERIODICITY-AWARE PREDICTIVE MODELING

Nutanix, Inc., San Jose,...

1. A method, comprising:maintaining, at a storage pool, measurements corresponding to prior usage of a distributed storage resource of a cluster by a plurality of nodes in the cluster, the storage pool comprising an aggregation of one or more storage devices directly attached to respective nodes in the cluster;
receiving, at a first node of the plurality of nodes in the cluster, the measurements from the storage pool;
determining, at the first node, a time period for a training window corresponding to a portion of the measurements, wherein the training window bounds a periodically recurring portion of the measurements;
training, at the first node, a predictive model based at least in part on the periodically recurring portion of the measurements to produce a trained predictive model;
determining a resource allocation operation based at least in part on a prediction from the trained predictive model.

US Pat. No. 10,656,990

DYNAMICALLY ADJUSTING RESERVE PORTION AND ALLOCATION PORTIONS OF DISASTER RECOVERY SITE IN A VIRTUAL COMPUTING SYSTEM

NUTANIX, INC., San Jose,...

1. A method comprising:determining, by a capacity allocation system, a reserve portion capacity of a reserve portion, and an allocation portion capacity of an allocation portion, of a first site based upon a probability of failure associated with a second site, wherein the reserve portion receives a first cluster from the second site when disaster conditions are detected, and wherein the allocation portion enables a second cluster from the second site to run on the first site under non-disaster conditions;
determining, by the capacity allocation system, that a number of failures at the second site exceeds a first pre-determined threshold; and
dynamically adjusting, by the capacity allocation system, the reserve portion capacity and the allocation portion capacity of the first site based upon the number of the failures.

US Pat. No. 10,599,416

VIRTUALIZED FILE SERVER BLOCK AWARENESS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized server managers hosted on a computing node cluster and configured to manage storage items maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a centralized coordination service hosted on the computing node cluster and configured to, in response to detection of a failure of the first virtualized file server manager:
determine whether a first computing node block of the computing node cluster on which the first virtualized file server manager is hosted has failed;
based on the determination and identification of a second computing node block of the computing node cluster on which the second virtualized file server manager is hosted, identify a failover path to the second virtualized file server manager; and
migrate I/O transaction management associated with the first storage item to the second virtualized file server manager.

US Pat. No. 10,574,723

WEB SERVICES COMMUNICATION MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method, comprising:receiving a batch message that comprises a plurality of Web service requests, wherein the batch message reduces a redundancy in the plurality of Web service requests by consolidating information shared by multiple Web service requests into a single information instance;
generating a service message derived at least in part from the batch message; and
dispatching the service message to a target Web service.

US Pat. No. 10,552,139

VIRTUALIZED FILE SERVER BLOCK AWARENESS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized server managers hosted on a computing node cluster and configured to manage storage items maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a centralized coordination service hosted on the computing node cluster and configured to, in response to detection of a failure of the first virtualized file server manager:
determine whether a first computing node block of the computing node cluster on which the first virtualized file server manager is hosted has failed;
based on the determination and identification of a second computing node block of the computing node cluster on which the second virtualized file server manager is hosted, identify a failover path to the second virtualized file server manager; and
migrate I/O transaction management associated with the first storage item to the second virtualized file server manager.

US Pat. No. 10,552,427

SEARCHING FOR INFORMATION RELATING TO VIRTUALIZATION ENVIRONMENTS

NUTANIX, INC., San Jose,...

1. A method comprising:identifying, by a search system in a virtualization environment, a first entity-type node from an entity-relationship graph representing a plurality of entities of the virtualization environment;
forming, by the search system, one or more chains of entity-type nodes and activity-type nodes associated with the first entity-type node;
ranking, by the search system, each of the one or more chains based upon a score assigned to each of the entity-type nodes, wherein the respective score of each of the entity-type nodes is updated by incrementing a counter number associated with the entity-type nodes and each of any child entity-type nodes associated with the entity-type nodes; and
converting, by the search system, the ranked one or more chains into one or more structured queries based at least in part on the activity-type nodes associated with the first entity-type node.

US Pat. No. 10,552,199

SYSTEM AND METHOD FOR BINARY THROTTLING FOR LIVE MIGRATION OF VIRTUAL MACHINES

NUTANIX, INC., San Jose,...

1. A method comprising:copying, using a migration tool, initial data stored in a memory of a first host machine to a memory of a second host machine;
identifying, using the migration tool, a set of modified data stored in the memory of the first host machine;
determining, using the migration tool, that an expected amount of time for transferring the set of modified data to the second host machine would exceed a downtime limit for a virtual machine executing on the first host machine;
calculating, using the migration tool, an increased throttling amount for the virtual machine based on a rate of copying the initial data to the memory of the second host machine, wherein the increased throttling amount does not exceed a throttling limit of the virtual machine, and wherein the increased throttling amount is applied to the virtual machine; and
copying, using the migration tool, the set of modified data to the memory of the second host machine while the increased throttling amount is applied to the virtual machine executing on the first host machine.

US Pat. No. 10,552,200

SYSTEM AND METHOD FOR DYNAMIC THROTTLING FOR LIVE MIGRATION OF VIRTUAL MACHINES

NUTANIX, INC., San Jose,...

1. A method comprising:initiating a migration of a virtual machine from a first host machine to a second host machine;
calculating, a data limit for transfer from the first host machine to the second host machine, wherein the data limit is based on a data transfer rate;
determining that a set of modified data stored in the memory of the first host machine equals or exceeds the data limit;
pausing operation of the virtual machine upon determining the set of modified data stored in the memory of the first host machine equals or exceeds the data limit; and
aborting the migration upon determining the data limit is below a minimum limit.

US Pat. No. 10,496,391

VIRTUALIZED FILE SERVER BLOCK AWARENESS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized server managers hosted on a computing node cluster and configured to manage storage items maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a centralized coordination service hosted on the computing node cluster and configured to, in response to detection of a failure of the first virtualized file server manager:
determine whether a first computing node block of the computing node cluster on which the first virtualized file server manager is hosted has failed;
based on the determination and identification of a second computing node block of the computing node cluster on which the second virtualized file server manager is hosted, identify a failover path to the second virtualized file server manager; and
migrate I/O transaction management associated with the first storage item to the second virtualized file server manager.

US Pat. No. 10,489,181

ENTITY DATABASE BROWSER

NUTANIX, INC., San Jose,...

1. A method comprising:by a computing device, receiving a request from a client device to perform an operation on at least two entities of a virtualization environment;
by the computing device, performing the operation using a vendor-agnostic, heterogeneous data center without tying the client device to a particular hypervisor;
by the computing device, providing visualization on a user interface of the client device of progress of the operation as performed by each of the at least two entities; and
by the computing device, performing workflow of the operation using only one process thread for a number of target entities, wherein the number of target entities is equal to or more than two.

US Pat. No. 10,489,215

LONG-RANGE DISTRIBUTED RESOURCE PLANNING USING WORKLOAD MODELING IN HYPERCONVERGED COMPUTING CLUSTERS

NUTANIX, INC., San Jose,...

1. A method comprising:receiving a first set of workload parameters corresponding to a first workload executing on a first node of a first type in a first cluster;
receiving a second set of workload parameters corresponding to a second workload executing on a second node of the first type in a second cluster;
generating a single predictive model based at least on both the first set of workload parameters associated with the first cluster and the second set of workload parameters associated with the second cluster;
emitting a first resource deployment recommendation and a second resource deployment recommendation based at least in part on resource usage predictions generated by the single predictive model;
wherein the second resource deployment recommendation is different from the first resource deployment recommendation; and
displaying the first resource deployment recommendation or the second resource deployment recommendation.

US Pat. No. 10,481,894

VIRTUALIZED FILE SERVER UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines; and
an upgrade system configured to:
receive a request to upgrade the virtualized file server from a first program code version to a second program code version;
generate a snapshot of a code image associated with the second program code version, wherein the code image comprises a boot disk image; and
provide the snapshot to at least a selected host machine of the host machines via a_virtual disk to cause a virtual machine controller located on the selected host machine to store the snapshot on a first storage device associated with the selected host machine, wherein the snapshot comprises metadata identifying a location of the code image on the first storage device.

US Pat. No. 10,481,895

VIRTUALIZED FILE SERVER ROLLING UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines;
a deployment server configured to upgrade the VFS from a first code version to a second code version by performing actions comprising:
generating a snapshot of a code image associated with the second program code version;
providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time;
detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine;
attaching the snapshot to the selected user VM; and
causing the selected user VM to boot from the snapshot.

US Pat. No. 10,474,656

REPURPOSING LOG FILES

NUTANIX, INC., San Jose,...

1. A method, comprising:receiving a data record comprising a key-value pair;
storing the key-value pair in an in-memory data structure in a first storage tier, wherein the in-memory data structure is used to access the data record;
storing a log entry for the key-value pair in a log file in a second storage tier;
renaming the log file in place in the second storage tier, said renaming comprising assignment of a new filename to the log file, wherein an index file points to the log entry in the log file corresponding to the new filename, the index file being used to access the key-value pair; and
storing a new log entry in a new log file, the new log file storing the new log entry comprising a key-value pair.

US Pat. No. 10,476,757

ARCHITECTURE FOR IMPLEMENTING CENTRALIZED MANAGEMENT FOR A COMPUTING ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method, comprising:receiving a request to display a management UI of a local node from a first cluster of nodes to manage the first cluster of nodes from a management console user interface (UI) of a central management node, the management console UI of the central management node managing a second cluster of nodes;
determining, based on the request received, a UI version of the management UI for the local node, wherein the UI version corresponds to a version of the management UI executing at the local node for managing the first cluster of nodes; and
executing a cached copy of the management UI of the local node within a browser of the management console UI at the central management node, wherein a request made from the cached copy of the management UI of the local node is proxied to the local node to be executed by the local node to manage the first cluster of nodes.

US Pat. No. 10,467,103

EFFICIENT CHANGE BLOCK TRAINING

Nutanix, Inc., San Jose,...

1. A method comprising:dividing an address space for a copy of a source data at a second storage location into a plurality of ranges, wherein each range of the plurality of ranges corresponds to a block of data for tracking block level IO activity performed on the copy of the source data copied from a first storage location to the second storage location;
performing a data operation to the copy of the source data at the second storage location, the data operation being performed during a periodic timeframe, wherein the data operation creates changed content in the copy of the source data that corresponds to the block of data that is tracked by a data structure that associates the changed content with the block to identify a changed block; and
sending, from the second storage location to the first storage location, the changed content and the data structure that associates the changed content with the block corresponding to individual ones of the plurality of ranges, wherein the changed content and the data structure correspond to multiple block changes that are sent at one time rather than sending the multiple block changes one-by-one in the periodic timeframe.

US Pat. No. 10,469,318

STATE TRACKING IN DISTRIBUTED COMPUTING SYSTEMS

NUTANIX, INC., San Jose,...

1. A method, comprising:receiving a resource usage specification for a computing system, the resource usage specification describing deployment of one or more virtual machines on one or more nodes of the computer system, the resource usage specification describing the deployment of the one or more virtual machines using one or more attributes and corresponding values;
generating a snapshot of data stored in the computing system, the snapshot of data representing one or more virtual disks corresponding to respective virtual machines of the one or more virtual machines described by the resource usage specification;
associating the resource usage specification with the snapshot; and
committing an association of the resource usage specification with the snapshot to a version control system, wherein the association is one of a plurality of associations managed at the version control system.

US Pat. No. 10,459,713

VIRTUALIZED FILE SERVER BLOCK AWARENESS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized server managers hosted on a computing node cluster and configured to manage storage items maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a centralized coordination service hosted on the computing node cluster and configured to, in response to detection of a failure of the first virtualized file server manager:
determine whether a first computing node block of the computing node cluster on which the first virtualized file server manager is hosted has failed;
based on the determination and identification of a second computing node block of the computing node cluster on which the second virtualized file server manager is hosted, identify a failover path to the second virtualized file server manager; and
migrate I/O transaction management associated with the first storage item to the second virtualized file server manager.

US Pat. No. 10,454,773

VIRTUAL MACHINE MOBILITY

NUTANIX, INC., San Jose,...

1. A system, comprising:a cluster of host machines implementing a virtualization environment based on a first platform, wherein each of the host machines comprises a first hypervisor, and a virtual machine (VM); and;
a target host machine capable of implementing the virtualization environment based on a second platform, wherein the target host machine comprises a second hypervisor and a management module having programmed instructions that detect failure of the first hypervisor and perform steps to move one of the virtual machines from the cluster of host machines to the target host machine by:
checking whether the target host machine comprises installed required drivers; and
if the target host machine comprises the installed required drivers, activating the installed required drivers and sending a confirmation signal back to a control plane in the cluster of host machines.

US Pat. No. 10,452,379

VIRTUALIZED FILE SERVER HIGH AVAILABILITY

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is configured to and conduct I/O transactions with one or more virtual disks, and is configured to run on one or more host machines which form a cluster, wherein the VFS is configured to:
monitor the FSVMs, wherein each of the FSVMs of the VFS is configured to monitor at least another one of the FSVMs of the VFS;
detect a failure of at least a portion of a first one of the FSVMs on a first one of the host machines; and
for each resource lock associated with the at least a portion of the first FSVM, reassign the resource lock to a second one of the FSVMs.

US Pat. No. 10,452,380

VIRTUALIZED FILE SERVER RESILIENCE

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is running on one of a plurality of host machines configured to form a cluster, and wherein each of the FSVMs is configured to conduct I/O transactions with one or more virtual disks, wherein a health monitoring service is running on each of the host machines running a FSVM, and wherein the VFS is configured to:
by the distributed health monitoring service, monitor the and detect that a plurality of the FSVMs have failed; and
for each of the failed FSVMs, reassign an IP address corresponding to the failed FSVM to a live one of a plurality of live ones of the FSVMs.

US Pat. No. 10,447,806

WORKLOAD SCHEDULING ACROSS HETEROGENEOUS RESOURCE ENVIRONMENTS

Nutanix, Inc., San Jose,...

1. A method for deploying computing workloads across heterogeneous computing systems, the method comprising:establishing network communications between an on-premises computing system associated with an on-premises resource and a cloud computing system associated with a cloud-based resource;
collecting resource data corresponding to the on-premises resource and the cloud-based resource;
receiving a workload placement request, the workload placement request being described by workload placement request attribute;
generating a workload placement plan;
evaluating the workload placement plan, wherein the evaluating of the workload placement plan considers at least a portion of the resource data corresponding to the on-premises resource and considers at least a portion of the resource data corresponding to the cloud-based resource;
generating a scheduling command to carry out the workload placement plan; and
deploying computing workloads by executing the scheduling command on the on-premises resource or the cloud-based resource.

US Pat. No. 10,379,759

METHOD AND SYSTEM FOR MAINTAINING CONSISTENCY FOR I/O OPERATIONS ON METADATA DISTRIBUTED AMONGST NODES IN A RING STRUCTURE

Nutanix, Inc., San Jose,...

1. A method, comprising:maintaining a network virtualization environment comprising a plurality of nodes forming a ring structure, wherein a storage pool is formed from locally attached storage devices from the plurality of nodes;
adding a new node that is adjacent to an existing node in the plurality of nodes forming the ring structure, wherein the new node is placed in a state that identifies the new node for non-inclusion in a quorum;
receiving an I/O request for data in the storage pool stored at the existing node;
and
establishing a quorum that corresponds to a threshold number of nodes, wherein the new node is operational at a time when the quorum is formed and is not selected as a member of the quorum.

US Pat. No. 10,365,651

CONTROL SYSTEM FOR AUTONOMOUS LOCOMOTION DEVICES

NUTANIX, INC., San Jose,...

1. A system comprising:a plurality of host machines forming a virtual cluster in a virtualization environment, each of the plurality of host machines forming an autonomous locomotion device of a plurality of autonomous locomotion devices, each of the plurality of autonomous locomotion devices comprising:
a hardware module comprising a virtual machine configured as a flight controller; and
a device controller communicably connected to the hardware module for operating an associated one of the plurality of autonomous locomotion devices based upon an instruction from the hardware module,
wherein the plurality of host machines form a distributed system in which user data, application data, or sensor data associated with each of the plurality of host machines is replicated dynamically by other ones of the plurality of host machines in response to instructions to perform a new task, mission, or to enable another host machine to join, separate from, or take over leadership of the virtual cluster;
wherein one of the plurality of host machines is a leader of the virtual cluster, and wherein the leader dynamically varies a number of the plurality of host machines that form part of the virtual cluster.

US Pat. No. 10,346,065

METHOD FOR PERFORMING HOT-SWAP OF A STORAGE DEVICE IN A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer implemented method for maintaining access to a storage pool during a hot-swap operation, comprising:managing a storage pool comprising a logical collection of storage devices constructed from a local storage device of a plurality of nodes, the storage pool being manage at a node of the plurality of nodes having a local service virtual machine, wherein the local service virtual machine receive an input/output request from another service virtual machine through a corresponding hypervisor; and
in response to an initiation of a hot-swap operation at a node of the plurality of nodes:
performing pass-thru of a storage manager to a service virtual machine at the node, and
servicing, by the service virtual machine at the node, an input/output request received from another service virtual machine during the hot-swap operation, wherein the service virtual machine performs a read or write operation corresponding to the input/output request without the input/output request going through a storage software layer of the corresponding hypervisor at the node during the hot-swap operation.

US Pat. No. 10,642,603

SCHEDULING UPGRADES IN DISTRIBUTED COMPUTING SYSTEMS

Nutanix, Inc., San Jose,...

1. A method performed by a clustered computing system having at least one processor, the method comprising:detecting current versions of a plurality of components including software components, firmware components, or combinations thereof, wherein the plurality of components are hosted on the clustered computing system having a first computing node and a second computing node, and wherein the first computing node is configured to host an upgrade manager;
obtaining a plurality of update modules based on the current versions of the plurality of components;
collecting data indicating a type of state change utilized by at least two of the plurality of update modules; and
scheduling installation of the plurality of update modules with the upgrade manager including grouping together installation of selected ones of the plurality of update modules based on the collected data, such that update modules utilizing one or more same state changes of one of the first computing node or the second computing node are grouped together for the installation.

US Pat. No. 10,614,380

DYNAMICALLY ADJUSTING SYSTEM METRIC THRESHOLDS BASED ON USER SPECIFIED SYSTEM PERFORMANCE FEEDBACK

NUTANIX, INC., San Jose,...

1. A method comprising:receiving a system measurement corresponding to a system metric associated with a computing system;
receiving a user sentiment indication that corresponds to a user performance sentiment;
detecting, by the computing system, a system metric threshold breach event wherein a detected threshold breach value breaches a respective system metric threshold;
accessing a learning model comprising user sentiment correlations between system measurements and user sentiment indications to determine a tracking value between the user sentiment indication and the system metric pertaining to the system metric threshold; and
adjusting the respective system metric threshold based on the tracking value.

US Pat. No. 10,613,893

SYSTEM AND METHOD FOR REDUCING DOWNTIME DURING HYPERVISOR CONVERSION

NUTANIX, INC., San Jose,...

1. A method comprising:receiving, by a migration tool, an indication for hypervisor conversion from a first hypervisor type to a second hypervisor type;
migrating a first virtual machine (VM) from a first node to another node having another hypervisor of the first hypervisor type;
converting, by the migration tool, a first hypervisor on the first node from the first hypervisor type to the second hypervisor type in response to the indication;
converting the first VM to the second hypervisor type and migrating the converted first VM back to the first node from the another node; and
converting a second virtual machine (VM) on a second node to operate on the second hypervisor type before converting a second hypervisor on the second node to the second hypervisor type;
wherein the first hypervisor and the first VM are converted on the first node before starting conversion of the second another hypervisor and the second VM on the second node.

US Pat. No. 10,609,177

CONSOLIDATED CLOUD SYSTEM FOR VIRTUAL MACHINE

NUTANIX, INC., San Jose,...

1. A non-transitory computer readable medium comprising instructions when executed by a processor cause the processor to:receive a user request in a request format to access content in a consolidated cloud system that is associated with a plurality of cloud systems, wherein the request format is suitable for communicating with a user device from which the user request is generated;
identify a first cloud system storing a first portion of the content in a first format and identifying a second cloud system storing a second portion of the content in a second format;
convert the user request from the request format to the first format that is suitable for communicating with the first cloud system and convert the request format to a second format that is suitable for communicating with the second cloud system;
retrieve the first portion of the content from the first cloud system in accordance with the first format and the second portion of the content from the second cloud system in accordance with the second format; and
provide the first portion and the second portion of the content in response to the user request in the request format.

US Pat. No. 10,606,630

SYSTEM AND METHOD FOR PRESERVING ENTITY IDENTIFIERS

NUTANIX, INC., San Jose,...

1. A method comprising:assigning, by an identifier management system, a hypervisor agnostic identifier to a virtual machine;
creating, by the identifier management system, a mapping of the hypervisor agnostic identifier to a first hypervisor specific identifier of the virtual machine, including storing the mapping in a database;
updating, by the identifier management system, the mapping of the hypervisor agnostic identifier to a second hypervisor specific identifier in response to a hypervisor conversion in which a hypervisor associated with the virtual machine is converted from a first type to a second type, wherein the first hypervisor specific identifier is associated with the first type and the second hypervisor specific identifier is associated with the second type; and
making available, by the identifier management system, the hypervisor agnostic identifier for use by other elements instead of the first hypervisor specific identifier and the second hypervisor specific identifier,
wherein the first hypervisor specific identifier and the second hypervisor specific identifier are hypervisor specific and wherein the hypervisor agnostic identifier is not hypervisor specific.

US Pat. No. 10,599,415

VIRTUALIZED FILE SERVER RESILIENCE

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is running on one of a plurality of host machines configured to form a cluster, and wherein each of the FSVMs is configured to conduct I/O transactions with one or more virtual disks, wherein a health monitoring service is running on each of the host machines running a FSVM, and wherein the VFS is configured to:
by the distributed health monitoring service, monitor the and detect that a plurality of the FSVMs have failed; and
for each of the failed FSVMs, reassign an IP address corresponding to the failed FSVM to a live one of a plurality of live ones of the FSVMs.

US Pat. No. 10,599,459

ENTITY DATABASE DISTRIBUTED REPLICATION

NUTANIX, INC., San Jose,...

1. An apparatus comprising a processor having programmed instructions to:store, in a first entity trail in a first memory, a first modification to a first entity having a first timestamp, wherein the first memory is in a first node of a plurality of disjoint sets of nodes;
record, in a second entity trail in a second memory, a second modification to a second entity having a second timestamp that is non-adjacent to the first timestamp; and
replicate the second modification to the first entity trail.

US Pat. No. 10,599,462

AUTOMATIC DETECTION OF NETWORK HOTSPOTS IN A CLOUD INFRASTRUCTURE VIA AGGREGATE GEOLOCATION INFORMATION OF USER DEVICES

NUTANIX, INC., San Jose,...

1. A method comprising:receiving, by a leader node, a request to launch a virtual machine executing on behalf of a first user device;
retrieving, in response to the request and by the leader node, a first set of identifiers of recovery data from a first data center and a second set of identifiers of recovery data from a second data center;
generating, by the leader node, a first distribution of geolocations based on the first set of identifiers of recovery data and a second distribution of geolocations based on the second set of identifiers of recovery data;
selecting, by the leader node, the first data center based on the first distribution and the second distribution; and
replicating, by the leader node and at the first data center, recovery data associated with the virtual machine executing on behalf of the first user device.

US Pat. No. 10,599,463

SYSTEM AND METHOD FOR CREATING VIRTUAL MACHINES FROM CONTAINERS

NUTANIX, INC., San Jose,...

1. A method comprising:receiving a container file as an input at a computer system, wherein the container file is part of a hierarchy of container files defined in a container file specification;
parsing the container file to obtain information regarding resources needed for a container application in the container file;
identifying a parent file of the container file in the hierarchy;
parsing the parent file to obtain information regarding resources needed for a parent application in the parent file;
repeating identifying and parsing at least one container file at each level in the hierarchy until a base of the hierarchy is reached; and
caching a virtual machine image at each level in the hierarchy.

US Pat. No. 10,572,365

VERIFICATION FOR DEVICE MANAGEMENT

NUTANIX, INC., San Jose,...

1. A method for controlling endpoints, the method comprising:sending, by a computing device, a request to a cloud controller to create an entity, the request causing operations comprising i) creating, by an endpoint responsive to a receipt of an interface request from the cloud controller, the entity, ii) receiving, by the cloud controller from the endpoint, response data generated by the entity, the response data indicating the creation of the entity, and iii) generating, by the cloud controller, control data based on the response data;
receiving, by the computing device, the control data from the cloud controller;
sending, by the computing device responsive to a second receipt of the control data, a call to the endpoint for entity data;
receiving, by the computing device, entity data from the endpoint;
comparing, by the computing device, the response data to the entity data to validate the response data; and
generating, by the computing device responsive to the comparison, a status.

US Pat. No. 10,572,239

VIRTUALIZED FILE SERVER DISTRIBUTION ACROSS CLUSTERS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized file server managers hosted on a combination of a first computing node cluster and a second computing node cluster, wherein the cluster of virtualized file server managers is configured to manage storage items of a share maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a virtualized file server cluster manager configured to, in response to a request from the first virtualized file server manager to identify a storage location for a new storage item to be added to the storage items:
identify one of the first computing node cluster or the second computing node cluster at which the new storage item is to be located based on a respective cluster storage statistic;
select a third virtualized file server manager of the cluster of virtualized file server managers to be assigned to manage an I/O transaction associated with the new storage item based on a compute usage statistic, wherein the third virtualized file server manager is hosted on the identified one of the first computing node cluster or the second computing node cluster; and
provide an address of the third virtualized file server manager to the first virtualized file server manager.

US Pat. No. 10,558,478

SPECIFICATION-BASED COMPUTING SYSTEM CONFIGURATION

NUTANIX, INC., San Jose,...

1. A method comprising:receiving one or more specification parameters that describe at least one resource entity state associated with a computing environment;
generating one or more resource management commands to achieve the resource entity state at the computing environment;
scheduling execution of at least one of the resource management commands at the computing environment;
monitoring an execution status of the at least one of the resource management commands;
determining remediation actions to be taken, the remediation actions being determined based at least in part on the execution status; and
performing one or more processing operations to carry out the remediation actions.

US Pat. No. 10,552,272

MAINTAINING HIGH AVAILABILITY DURING N-NODE FAILOVER

NUTANIX, INC., San Jose,...

1. An apparatus comprising:a scheduling module that reserves a resource for a virtual machine of a first node on a second node for operation of the virtual machine during failure of the first node, wherein to reserve the resource, the scheduling module includes programmed instructions to:
identify a list of candidate nodes;
rank the candidate nodes;
determine the candidate nodes that satisfy a high availability threshold; and
select a highest-ranked candidate node that satisfies the high availability threshold as the second node, wherein the high availability threshold is based upon the resource needed by the virtual machine, resources available on the candidate nodes, and adding additional nodes to the list of candidate nodes.

US Pat. No. 10,540,112

SYSTEM AND METHOD FOR MIGRATING VIRTUAL MACHINES WITH STORAGE WHILE IN USE

NUTANIX, INC., San Jose,...

1. A method comprising:receiving a request to migrate a virtual machine from a first host machine to a second host machine;
transferring data associated with the virtual machine from the first host machine to a shared storage space in response to the request, wherein the shared storage space is separate from and shared by the first host machine and the second host machine;
preventing access to at least a portion of the data during the transfer from the first host machine to the shared storage space;
allowing access to the portion of the data in the shared storage space after the transfer;
creating an access data structure on the first host machine for the data before the transfer, the access data structure having an access value indicative of whether the data is in use on the first host machine; and
determining that the access value is set to a first value before starting the transfer, wherein the first value is indicative of the data not being in use.

US Pat. No. 10,540,165

VIRTUALIZED FILE SERVER ROLLING UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines;
a deployment server configured to upgrade the VFS from a first code version to a second code version by performing actions comprising:
generating a snapshot of a code image associated with the second program code version;
providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time;
detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine;
attaching the snapshot to the selected user VM; and
causing the selected user VM to boot from the snapshot.

US Pat. No. 10,540,166

VIRTUALIZED FILE SERVER HIGH AVAILABILITY

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is configured to and conduct I/O transactions with one or more virtual disks, and is configured to run on one or more host machines which form a cluster, wherein the VFS is configured to:
monitor the FSVMs, wherein each of the FSVMs of the VFS is configured to monitor at least another one of the FSVMs of the VFS;
detect a failure of at least a portion of a first one of the FSVMs on a first one of the host machines; and
for each resource lock associated with the at least a portion of the first FSVM, reassign the resource lock to a second one of the FSVMs.

US Pat. No. 10,521,116

SYSTEM AND METHOD FOR MANAGING OBJECT STORE

NUTANIX, INC., San Jose,...

1. A method comprising:receiving, by an object store virtual machine, multiple user requests for updating an element of an object store, each of the multiple user requests comprising a compare and swap value;
updating, by the object store virtual machine, each compare and swap value to obtain an updated compare and swap value for each compare and swap value;
comparing, by the object store virtual machine, each of the updated compare and swap value with a current compare and swap value;
accepting, by the object store virtual machine, one of the multiple user requests for updating the element and rejecting other ones of the multiple user requests based upon the comparison; and
when the updated compare and swap value is greater than the current compare and swap value: updating, by the object store virtual machine, the element; and replacing, by the object store virtual machine, the current compare and swap value with the updated compare and swap value.

US Pat. No. 10,514,975

PREVENTING CORRUPTION BY BLOCKING REQUESTS

NUTANIX, INC., San Jose,...

1. A system comprising:a first host machine having programmed instructions to:
determine that a second host machine is unreachable;
request a third host machine to block requests from the second host machine upon determining that the second host machine is unreachable;
determine that the second host machine has become reachable; and
request the third host machine to stop blocking requests from the second host machine upon determining that the second host machine has become reachable.

US Pat. No. 10,489,140

VIRTUALIZED FILE SERVER HIGH AVAILABILITY

Nutanix, Inc., San Jose,...

1. A system for managing a virtualization environment, the system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), wherein each of the FSVMs is configured to and conduct I/O transactions with one or more virtual disks, and is configured to run on one or more host machines which form a cluster, wherein the VFS is configured to:
monitor the FSVMs, wherein each of the FSVMs of the VFS is configured to monitor at least another one of the FSVMs of the VFS;
detect a failure of at least a portion of a first one of the FSVMs on a first one of the host machines; and
for each resource lock associated with the at least a portion of the first FSVM, reassign the resource lock to a second one of the FSVMs.

US Pat. No. 10,489,518

VIRTUAL MACHINE OBJECT VERSION CONTROL

NUTANIX, INC., San Jose,...

1. A method for implementing a virtual machine snapshot index in a virtualization environment, the method comprising:receiving an initiation signal that initiates sending of at least one quiescence request to at least one user virtual machine;
quiescing the at least one user virtual machine by at least transmitting the at least one quiescence request to the at least one user virtual machine;
confirming that the at least one user virtual machine is quiesced based on at least receipt of an acknowledgement signal from the at least one user virtual machine, the acknowledgement signal indicating that the at least one user virtual machine has quiesced;
requesting and receiving a set of virtual machine attribute values from the at least one user virtual machine while the at least one user virtual machine is quiesced;
generating a volume index data structure comprising at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced; and
storing the volume index data structure comprising the at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced.

US Pat. No. 10,467,145

MANAGEMENT OF CACHING OPERATIONS IN A UNIFIED CACHE

NUTANIX, INC., San Jose,...

1. A method comprising:determining, by a unified cache management circuit, that a cache hit rate ratio of a unified cache is lower than a first pre-determined threshold;
preventing, by the unified cache management circuit, a first receipt of a type of data by the unified cache in response to determining that a number of times the cache hit rate ratio is lower than the first pre-determined threshold is equal to a pre-determined limit; and
allowing, by the unified cache management circuit, the first receipt of the type of data by the unified cache in response to the cache hit rate ratio being greater than a second pre-determined threshold.

US Pat. No. 10,467,038

ALERTS NOTIFICATIONS FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

10. A method comprising:configuring an alert policy using a graphical user interface, wherein the alert policy is associated with an operating status of a component of a virtualization environment;
creating an alert notification subscription based on severity, category, and originating cluster;
determining what action to take based on an input received relating to the operating status of the component and the alert policy associated with the component;
sending an alert of the action based on the alert notification subscription; and
modifying the graphical user interface to display the alert and to group the alert on a per-cluster, per-entity, and per-resource basis;
receiving another input via the graphical user interface to change the alert policy; and
changing the alert policy based on the another input.

US Pat. No. 10,452,378

VIRTUALIZED FILE SERVER ROLLING UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines;
a deployment server configured to upgrade the VFS from a first code version to a second code version by performing actions comprising:
generating a snapshot of a code image associated with the second program code version;
providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time;
detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine;
attaching the snapshot to the selected user VM; and
causing the selected user VM to boot from the snapshot.

US Pat. No. 10,419,548

EFFICIENT SCALING OF COMPUTING RESOURCES BY ACCESSING DISTRIBUTED STORAGE TARGETS

Nutanix, Inc., San Jose,...

1. A method, comprising:identifying a workload sent for execution to an external computing device located external to a virtualization environment,
the virtualization environment comprising a computing node having a storage device and a virtualized controller managing access to the storage device, and data for the external computing device is stored within the storage device in the virtualization environment,
wherein the virtualization environment comprises multiple computing nodes and a storage pool having multiple storage devices, the multiple computing nodes comprising respective virtualized controllers that manage access to the storage pool;
configuring a user virtual machine or user executable container to execute at least a portion of the workload on the computing node, wherein the data for the external computing device is accessible to the user virtual machine or user executable container using the virtualized controller, wherein the user virtual machine or user executable container accesses a snapshot on at least one of the multiple storage devices; and
redirecting execution of the at least a portion of the workload from the external computing device to the user virtual machine or the user executable container.

US Pat. No. 10,360,044

MASSIVELY PARALLEL AUTONOMOUS REIMAGING OF NODES IN A COMPUTING CLUSTER

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a plurality of nodes in a cluster to be reimaged with an operating system image;
identifying a selected node from the plurality of nodes of the cluster to initiate reimaging on one or more other nodes of the plurality of nodes, the selected node not having the operating system image already installed; and
performing a rolling installation of the operating system image on the plurality of nodes of the cluster by reimaging a first node of the plurality of nodes from the selected node, wherein the first node that is reimaged with the operating system image initiates reimaging on at least a second node from among the plurality of nodes, and wherein the selected node is subsequently reimaged by a node within the cluster that has already been reimaged with the operating system image by the rolling installation.

US Pat. No. 10,362,101

MECHANISM FOR PROVIDING LOAD BALANCING TO AN EXTERNAL NODE UTILIZING A CLUSTERED ENVIRONMENT FOR STORAGE MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method, comprising:maintaining a first controller virtual machine and a second controller virtual machine, the first controller virtual machine located at a first node that is external to a clustered virtualization environment, the second controller virtual machine located at a second node in the clustered virtualization environment, the first controller virtual machine providing storage management by communicating with the second controller virtual machine, wherein the second controller virtual machine runs as a virtual machine on the second node, the second controller virtual machine operating with another controller virtual machine to form a storage pool;
receiving an I/O request at the first controller virtual machine from a user virtual machine; and
distributing, by the first controller virtual machine, the I/O request to second controller virtual machine within the clustered virtualization environment.

US Pat. No. 10,359,952

METHOD AND SYSTEM FOR IMPLEMENTING WRITABLE SNAPSHOTS IN A VIRTUALIZED STORAGE ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a parent snapshot of a virtual disk;
creating a read snapshot of the parent snapshot, wherein the read snapshot is accessed in place of the parent snapshot without immediately copying all contents of the parent snapshot to the read snapshot;
designating the read snapshot as a copy of the parent snapshot, wherein future data requests for the parent snapshot are directed to the read snapshot, the contents of the parent snapshot are copied to the read snapshot at a later time after creating the read snapshot;
creating a writable snapshot of the parent snapshot, in which modifications are made to data items of the writable snapshot, wherein the writable snapshot can be accessed without immediately copying all of the contents of the parent snapshot to the writable snapshot, wherein an unchanged data item of the parent snapshot is copied to the writable snapshot at a later time after creating the writable snapshot; and
directing future data write requests for the parent snapshot to the writable snapshot instead of the parent snapshot or the read snapshot, wherein a particular data item that is not in the writable snapshot is copied to the writable snapshot from the parent snapshot upon a request to modify the particular data item.

US Pat. No. 10,642,718

FRAMEWORK FOR TESTING DISTRIBUTED SYSTEMS

NUTANIX, INC., San Jose,...

1. A method, comprising:providing a switchboard interface that displays a plurality of test workloads from a workload catalog;
receiving from the switchboard interface a first configuration selection of a test workload to test from available jobs in the workload catalog;
receiving a second configuration selection of system resources to test, wherein the second configuration selection includes a configuration of a protection domain of virtual machines for disaster recover testing;
allocating system resources according to the second configuration selection to form a system under test;
executing the test workload to perform testing in the system under test including resolving configuration inconsistencies and optimizing configuration parameters; and
establishing scheduling times for when backups of the protection domain of virtual machines are done to achieve optimized configuration parameters.

US Pat. No. 10,642,507

PULSED LEADER CONSENSUS MANAGEMENT

Nutanix, Inc., San Jose,...

1. A method for managing storage, the method comprising:receiving a read request for data managed by a group of two or more nodes at a node of the group of two or more nodes, wherein a leader node is elected from the group of two or more nodes;
determining that a sync state of the leader node is expired, the sync state corresponding to the read request and to the group of two or more nodes, wherein the sync state is expired at least because the leader node has failed or is unresponsive; and
reading from two or more storage devices using a plurality of nodes in response to the read request while the leader node has failed or is unresponsive, the node implementing a consensus scheme before a new leader node is elected to identify data to transmit to one or more users associated with the read request.

US Pat. No. 10,635,547

GLOBAL NAMING FOR INTER-CLUSTER REPLICATION

Nutanix, Inc., San Jose,...

1. A method comprising:replicating a snapshot from a source computing cluster to a target computing cluster wherein the snapshot is associated with a global snapshot ID that is consistent across multiple clusters; and
performing disaster recovery by:
determining whether the target computing cluster has a copy of the snapshot that is associated with the global snapshot ID;
initiating virtual entity replication at the target computing cluster using the copy of the snapshot that is associated with the global snapshot ID when the target computing cluster does have the copy of the snapshot; and
initiating snapshot replication at the target computing cluster to create a newly-replicated copy of the snapshot that is associated with the global snapshot ID when the target computing cluster does not have the copy of the snapshot.

US Pat. No. 10,635,639

MANAGING DEDUPLICATED DATA

Nutanix, Inc., San Jose,...

19. A system comprising:a non-transitory storage medium having stored thereon a sequence of instructions; and
one or more processors that execute the sequence of instructions to cause the one or more processors to perform a set of acts, the set of acts comprising;
generating a map entry in a mapping metadata to map a data unit to a physical storage location, wherein the data unit is a deduplicated data unit and corresponds to a deduplicated entry in deduplication metadata, the mapping metadata and the deduplication metadata are different data structures, and a non-deletion state is set in the deduplication metadata for the data unit when the map entry exists in the mapping metadata for the data unit; and
performing a scan of the mapping metadata for the data unit, wherein an in-use state is set in the deduplication metadata for the data unit when the map entry is detected for the data unit in the mapping metadata, a not-in-use state and a deletion state are set for the data unit in the deduplication metadata when the map entry is not detected in the mapping metadata for the data unit,
and the data unit is deleted from the physical storage location based at least in part on a result of the scan when the data unit is determined to correspond to the not-in-use state and the deletion state.

US Pat. No. 10,635,648

ENTITY IDENTIFIER GENERATION IN DISTRIBUTED COMPUTING SYSTEMS

Nutanix, Inc., San Jose,...

1. A method in a virtualized environment comprising multiple virtualized entities in multiple namespaces, each virtualized entity of the multiple entities identified by an identifier key, the method comprising:receiving a request for uniquely identifying, from amongst multiple virtualized entities in multiple namespaces, a virtualized entity for avoiding a conflict in referencing the multiple virtual entities within a virtualization environment, wherein
the conflict that is avoided corresponds to a plurality of requests that refer to different virtualized entities with an identifier key;
generating a unique identifier that uniquely identifies the virtualized entity from the multiple virtualized entities in the multiple namespaces to satisfy the request, wherein
the request refers to the virtualized entity as the identifier key, and
the unique identifier is used to create the virtualized entity in the virtualization environment; and
storing a relationship between the virtualized entity, the identifier key, and the unique identifier in a data structure accessible by the virtualization environment.

US Pat. No. 10,635,424

VIRTUALIZED FILE SERVER SPLITTING AND MERGING

Nutanix, Inc., San Jose,...

38. A method, comprising:selecting a particular virtualized server manager of a cluster of virtualized server managers of a virtualized file server (VFS) to be removed from the VFS, wherein each virtualized server manager of the cluster of virtualized server managers is configured to manage an input/output operation directed to a respective storage item of storage items of the VFS maintained on virtual disks;
identifying an available virtualized file service manager;
providing a resource of the particular virtualized file service manager to the available virtualized file service manager;
incorporating the available virtualized file service manager into a new VFS of a plurality of new VFSs; and
removing the particular virtualized file service manager from the VFS.

US Pat. No. 10,635,425

VIRTUALIZED FILE SERVER BLOCK AWARENESS

Nutanix, Inc., San Jose,...

1. A virtualized file server, comprising:a cluster of virtualized server managers hosted on a computing node cluster and configured to manage storage items maintained on virtual disks, the cluster of virtualized server managers including a first virtualized file server manager configured to manage an input/output (I/O) transaction directed to a first storage item of the storage items and a second virtualized file server manager configured to manage an I/O transaction directed to a second storage item of the storage items; and
a centralized coordination service hosted on the computing node cluster and configured to, in response to detection of a failure of the first virtualized file server manager:
determine whether a first computing node block of the computing node cluster on which the first virtualized file server manager is hosted has failed;
based on the determination and identification of a second computing node block of the computing node cluster on which the second virtualized file server manager is hosted, identify a failover path to the second virtualized file server manager; and
migrate I/O transaction management associated with the first storage item to the second virtualized file server manager.

US Pat. No. 10,613,947

SAVING AND RESTORING STORAGE DEVICES USING APPLICATION-CONSISTENT SNAPSHOTS

Nutanix, Inc., San Jose,...

1. A method comprising:quiescing multiple virtual machines in a group for an application at least by sending, from a controller virtual machine to the group a request to stop receiving a new application activity to be performed for the application, wherein
the controller virtual machine runs as a virtual machine above a hypervisor and functions as a storage controller that manages a storage pool,
the storage pool is accessible by the multiple virtual machines in the group for an application via at least the storage controller, and
a virtual machine in the group stores, via the hypervisor, data associated with the application in a volatile memory area on a computing node;
capturing a snapshot of a portion of the storage pool associated with the group; and
after capturing the snapshot, resuming receiving the new application activity on the group.

US Pat. No. 10,616,707

METHOD OF SHOWING AVAILABILITY ZONES ON A MAP FOR CUSTOMER-OWNED AND CLOUD PROVIDER-OWNED DATACENTERS

NUTANIX, INC., San Jose,...

1. A computer-implemented method comprising:receiving, by an infrastructure management server and from an application executing on a user device, a request for geographic region data of a first data center of a data center cluster, wherein the first data center includes a first virtual machine and a first host machine;
identifying, by the infrastructure management server, a second host machine of a second data center of the data center cluster based on the request;
sending, by the infrastructure management server, a discovery request to the second host machine of the second data center to determine a geographic distance from the first data center to the second data center;
generating, by the infrastructure management server, display data based on discovery data received in response to the discovery request;
sending, by the infrastructure management server, the display data to the user device, the display data causes the user device to display geographic region data of the first data center and the second data center in a single-view of a window of the application; and
establishing a networking rule to redirect a resource request from the second host machine to a local data center in the data center cluster that is geographically local to the geographic region of the second host machine.

US Pat. No. 10,613,890

EFFICIENT I/O REQUEST HANDLING

NUTANIX, INC., San Jose,...

1. A method comprising:receiving a first input/output (I/O) request and a second I/O request from a ring buffer;
receiving an absence of further I/O requests within a pre-determined amount of time from a receipt of the second I/O request;
generating a combined message, in response to an aggregate size of a first message and the second I/O request being less than a maximum transmission unit, wherein the combined message comprises the first message and the second I/O request, wherein the first message comprises the first I/O request and a first protocol overhead; and
forwarding the combined message to an I/O target.

US Pat. No. 10,609,158

EFFICIENT SCALING OF COMPUTING RESOURCES BY ACCESSING DISTRIBUTED STORAGE TARGETS

Nutanix, Inc., San Jose,...

1. A method, comprising:identifying a workload sent for execution to an external computing device located external to a virtualization environment,
the virtualization environment comprising a computing node having a storage device and a virtualized controller managing access to the storage device, and data for the external computing device is stored within the storage device in the virtualization environment,
wherein the virtualization environment comprises multiple computing nodes and a storage pool having multiple storage devices, the multiple computing nodes comprising respective virtualized controllers that manage access to the storage pool;
configuring a user virtual machine or user executable container to execute at least a portion of the workload on the computing node, wherein the data for the external computing device is accessible to the user virtual machine or user executable container using the virtualized controller, wherein the user virtual machine or user executable container accesses a snapshot on at least one of the multiple storage devices; and
redirecting execution of the at least a portion of the workload from the external computing device to the user virtual machine or the user executable container.

US Pat. No. 10,606,627

ALERTS ANALYSIS FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. An apparatus comprising:a processor having programmed instructions to:
define an operational rule to monitor an operating status of a component, wherein the operational rule is based on a severity level and category and an entity type of a virtualization node, wherein the entity type includes a cluster type, a host type, a virtual machine type, or a container type;
group exceptions to the operational rule based on similarity and on a per-cluster, per-entity, and per-resource basis;
associate a notification subscription with the operational rule;
initiate an alert upon determining that data associated with the operating status of the component satisfies the operational rule;
in response to initiating the alert, display information associated with the alert in a graphical user interface, wherein the information displayed includes a root cause analysis identifying a cause of the alert, a recommendation for resolving the alert, and detailed actions to carry out the recommendation; and
send a notification of the alert to a recipient based upon the alert satisfying a condition defined in the notification subscription.

US Pat. No. 10,606,649

WORKLOAD IDENTIFICATION AND DISPLAY OF WORKLOAD-SPECIFIC METRICS

Nutanix, Inc., San Jose,...

1. A method for generating a workload-specific user interface, the method comprising:receiving information describing a workload of a computer system, the information comprising an attribute of the workload;
predicting a classification of the workload of the computer system based at least in part on the attribute of the workload, wherein predicting the classification of the workload of the computer system is further based at least in part on a rule describing a correlation between the attribute of the workload and the classification of the workload, the rule describing the correlation between the attribute of the workload and the classification of the workload correlates an identifier associated with the computer system and the classification of the workload;
identifying a template associated with a metric specific to the classification of the workload;
generating a user interface based at least in part on the template, the user interface comprising the metric specific to the classification of the workload; and
displaying the user interface comprising the metric specific to the classification of the workload.

US Pat. No. 10,599,512

SYSTEM AND METHOD FOR CREATING AND USING HYBRID VIRTUAL COMPUTING SYSTEMS INCLUDING A RESERVED PORTION OF A CAPACITY BASED ON CLUSTER FAILURE PROBABILITY

NUTANIX, INC., San Jose,...

1. A method comprising:determining, by a processor of a capacity allocation system, a total number of clusters across a first computing site and a probability of failure of each of the clusters;
computing, by the processor, a storage capacity of a reserve portion of a second computing site based upon the total number of the clusters and the probability of failure of each of the clusters, wherein the reserve portion is part of a total storage capacity of the second computing site and reserved for migrating a first subset of the clusters from the first computing site to the second computing site post-disaster;
determining, by the processor, the storage capacity of an allocation portion of the second computing site based upon the total storage capacity and the storage capacity of the reserve portion; and
migrating, by the processor, a second subset of the clusters from the first computing site to the allocation portion for operating the second subset of the clusters from the second computing site pre-disaster.

US Pat. No. 10,540,164

VIRTUALIZED FILE SERVER UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines; and
an upgrade system configured to:
receive a request to upgrade the virtualized file server from a first program code version to a second program code version;
generate a snapshot of a code image associated with the second program code version, wherein the code image comprises a boot disk image; and
provide the snapshot to at least a selected host machine of the host machines via a_virtual disk to cause a virtual machine controller located on the selected host machine to store the snapshot on a first storage device associated with the selected host machine, wherein the snapshot comprises metadata identifying a location of the code image on the first storage device.

US Pat. No. 10,521,217

VIRTUALIZED FILE SERVER ROLLING UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of user virtual machines (VMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines;
a deployment server configured to upgrade the VFS from a first code version to a second code version by performing actions comprising:
generating a snapshot of a code image associated with the second program code version;
providing the snapshot to a selected user VM of the one or more user VMs when the selected user VM has acquired an upgrade token, the upgrade token configured for association with a single one of the user VMs at a time;
detaching an existing code image from the selected user VM, wherein the selected user VM is located on a host machine;
attaching the snapshot to the selected user VM; and
causing the selected user VM to boot from the snapshot.

US Pat. No. 10,524,028

VALIDATING LIVE METERING SERVICE IN A CLOUD INFRASTRUCTURE

Nutanix, Inc., San Jose,...

1. A method performed associated with a cloud infrastructure hosting a plurality of clouds, said method comprising:receiving a request to validate metering of a first cloud during processing of user requests, said first cloud being contained in said plurality of clouds;
collecting from a metering service of said cloud infrastructure, measured values representing the actual resources consumed by a reference cloud provisioned in said cloud infrastructure in corresponding durations;
comparing the measured values with corresponding reference values expected during the operation of said reference cloud in the corresponding durations; and
sending a response to said request based on a result of said comparing.

US Pat. No. 10,514,944

ALERTS FOR A VIRTUALIZATION ENVIRONMENT

NUTANIX, INC., San Jose,...

1. A system comprising:a leader node corresponding to one host machine in a cluster of host machines, wherein the leader node includes a programmed processor that:
receives data associated with an operating status of components in the cluster;
initiates an alert in response to determining that the data associated with the operating status of the components satisfies a rule in a monitoring policy dictating operation of components in the cluster;
performs a root cause analysis by automatically identifying a cause for the alert and a recommendation for the cause;
modifies the monitoring policy according to inputs received; and
creates a cluster-level exception to the rule for the cluster of host machines in the monitoring policy, whereby critical-level alerts are provided.

US Pat. No. 10,514,899

VIRTUALIZED FILE SERVER UPGRADE

Nutanix, Inc., San Jose,...

1. A system comprising:a virtualized file server (VFS) comprising a plurality of file server virtual machines (FSVMs), the virtualized file server configured to provide file services to additional virtual machines hosted by one or more host machines; and
an upgrade system configured to:
receive a request to upgrade the virtualized file server from a first program code version to a second program code version;
generate a snapshot of a code image associated with the second program code version, wherein the code image comprises a boot disk image; and
provide the snapshot to at least a selected host machine of the host machines via a_virtual disk to cause a virtual machine controller located on the selected host machine to store the snapshot on a first storage device associated with the selected host machine, wherein the snapshot comprises metadata identifying a location of the code image on the first storage device.

US Pat. No. 10,484,301

DYNAMIC RESOURCE DISTRIBUTION USING PERIODICITY-AWARE PREDICTIVE MODELING

NUTANIX, INC., San Jose,...

1. A method, comprising:maintaining, at a storage pool, measurements corresponding to prior usage of a distributed storage resource of a cluster by a plurality of nodes in the cluster, the storage pool comprising an aggregation of one or more storage devices directly attached to respective nodes in the cluster;
receiving, at a first node of the plurality of nodes in the cluster, the measurements from the storage pool;
determining, at the first node, a time period for a training window corresponding to a portion of the measurements, wherein the training window bounds a periodically recurring portion of the measurements;
training, at the first node, a predictive model based at least in part on the periodically recurring portion of the measurements to produce a trained predictive model;
determining a resource allocation operation based at least in part on a prediction from the trained predictive model.

US Pat. No. 10,362,030

METHOD AND SYSTEM FOR PROVIDING ACCESS TO ADMINISTRATIVE FUNCTIONALITY A VIRTUALIZATION ENVIRONMENT

Nutanix, Inc., San Jose,...

1. A computer-implemented method for providing access to administrative functionality in a virtualization environment, comprising:identifying an administrative functionality to access;
communicating from a user virtual machine over a secure communications channel to access the administrative functionality, wherein implied authentication corresponding to communications mechanisms in an underlying virtualization infrastructure is used to authenticate access to the administrative functionality from the user virtual machine;
configuring a virtual disk that only permits a particular user virtual machine to read from and write to the virtual disk, wherein the user virtual machine corresponds to the particular user virtual machine that is associated with the virtual disk; and
implementing the implied authentication by only permitting the user virtual machine that corresponds to the particular user virtual machine to communicate with the virtual disk.

US Pat. No. 10,362,092

ENTITY MANAGEMENT IN DISTRIBUTED SYSTEMS

Nutanix, Inc., San Jose,...

1. A method, comprising:forming, by a node in a first cluster, a migration request to migrate subject entity metadata;
receiving, by a second cluster, the migration request to migrate the subject entity metadata to a cluster other than the first cluster;
generating parent entity metadata, the parent entity metadata being a current representation of the subject entity metadata that is delivered to a central access point within the second cluster, wherein read-write access by the central access point is granted by receipt of the migration request;
modifying, by the first cluster, at least a portion of the subject entity metadata to cause the subject entity metadata to be read-only accessible by the first cluster;
receiving, by the second cluster, a request to modify the parent entity metadata;
modifying the parent entity metadata to produce updated parent entity metadata; and
sending, by the second cluster, at least a portion of the updated parent entity metadata.

US Pat. No. 10,361,917

STATE CONTROL IN DISTRIBUTED COMPUTING SYSTEMS

Nutanix, Inc., San Jose,...

1. A method, comprising:identifying a version control system at least by:
identifying a source code versioning system; and
interfacing the source code versioning system with a state management service located on a computing cluster;
selecting, at the state management service, a first state of the computing cluster from a set of states stored in the source code versioning system;
determining, by the source code versioning system, an intent state and a data state associated with the first state; and
altering a current state of computing resources of the computing cluster to the first state at least by executing, by at least the source code versioning system and the state management service, instructions that cause performance of a set of acts, the set of acts comprising:
restoring the data state to the computing cluster; and
applying the intent state to the computing cluster.

US Pat. No. 10,361,925

STORAGE INFRASTRUCTURE SCENARIO PLANNING

Nutanix, Inc., San Jose,...

1. A method comprising:identifying a cluster in a distributed storage system, the cluster comprising one or more nodes, the distributed storage system comprising a storage pool having a first local storage on a first node of the one or more nodes and a second local storage on a second node of the one or more nodes, wherein the first node utilizes a first virtualized controller to manage storage and I/O activities on a plurality of storage devices in the storage pool and the second node utilizes a second virtualized controller to manage storage and I/O activities on the plurality of storage devices in the storage pool; and
implementing, on any node with a virtualized controller in the cluster of nodes, a scenario planning engine to manage the distributed storage system, the scenario planning engine having a user interface to facilitate interactions with the scenario planning engine by at least one user, and the scenario planning engine to perform operations comprising,
collecting one or more system performance measurements that are stored in any local storage in the storage pool, the system performance measurements characterizing respective occurrences of measured system performance metrics of the distributed storage system, wherein the storage pool is accessible by any virtualized controller on a node of the one or more nodes;
generating a predictive model comprising one or more predictive model parameters derived from the system performance measurements by accessing the system performance measurements stored in the storage pool;
receiving one or more scenario input parameters, at least some of the scenario input parameters that quantify aspects of one or more planning scenarios;
generating one or more predicted system performance parameters by applying the scenario input parameters to the predictive model parameters; and
presenting the one or more predicted system performance at the user interface to facilitate selecting one or more selected system management parameters.

US Pat. No. 10,356,131

SERVICE CHAINING FOR MULTIPLE UPLINK BRIDGES

NUTANIX, INC., San Jose,...

8. A method comprising:transmitting first data from a client to a local bridge connected to the client;
combining the first data from the local bridge with another data from another local bridge in a first multiplexing bridge for obtaining combined first data;
splitting the combined first data in a second multiplexing bridge for obtaining individual first data and individual another data;
transferring the individual first data to an uplink bridge;
transmitting the individual first data from the uplink bridge to an external device; and
applying a first network rule to the combined first data via a network security rules bridge between the first multiplexing bridge and the second multiplexing bridge.

US Pat. No. 10,223,150

ENTITY DATABASE FRAMEWORK

NUTANIX, INC., San Jose,...

1. A system for managing clustered systems in a virtualization environment, the system comprising:a plurality of host machines, wherein each of the host machines comprises a hypervisor, one or more user virtual machines (UVMs) and a virtual machine controller;
one or more virtual disks comprising a plurality of storage devices, the one or more virtual disks being accessible by the virtual machine controllers, wherein the virtual machine controllers conduct I/O transactions with the one or more virtual disks,
wherein the system is further operable to:
store an entity-relationship graph representing elements in the virtualization environment, wherein each of the elements is represented by an entity-type node in the entity-relationship graph, and wherein relationships between the elements are represented by edges between the nodes; and
transform schemas of a plurality of entity databases in the virtualization environment into a unified schema having virtualization environment information by:
converting entity identifiers of entity data in the plurality of entity databases into globally unique identifiers;
re-naming attributes in the plurality of entity databases according to the unified schema; and
converting attributes of the plurality of entity databases to metrics to reduce needed fail-safe updates.

US Pat. No. 10,656,877

VIRTUAL STORAGE CONTROLLER

NUTANIX, INC., San Jose,...

1. A method comprising:by a virtual storage controller running on a host machine,
receiving an input/output (I/O) command using a native drive communications protocol from a software application on a user virtual machine running on the host machine;
determining whether a local service virtual machine on a same node as the virtual storage controller is unresponsive to the virtual storage controller by:
pinging the local service virtual machine; and
detecting whether the local service virtual machine fails to respond to the virtual storage controller within a pre-determined amount of time after pinging by the virtual storage controller;
embedding an Internet Protocol (IP)-based storage communications protocol in the I/O command to create an embedded I/O command, in response to the local service virtual machine being unresponsive to the virtual storage controller;
sending the embedded I/O command to a remote service virtual machine, wherein the remote service virtual machine is configured to send the embedded I/O command to a local storage and receive a response from the local storage; and
receiving the response from the remote service virtual machine.

US Pat. No. 10,652,020

SWITCHING DATA SOURCES DURING ROLLING UPGRADE OF A LEADER-BASED DISTRIBUTED SERVICE WITH MINIMAL DISRUPTIONS

NUTANIX, INC., San Jose,...

1. A method comprising:determining, by each of a plurality of computing devices of a cluster, that an upgrade is complete on all of the plurality of computing devices of the cluster;
in response to the determining, restarting each of the plurality of computing devices upon completion of the upgrade on all of the plurality of computing devices; and
upon restarting of all of the plurality of computing devices:
designating one of the plurality of computing devices as a leader device;
switching each of the plurality of computing devices from a first data source to a second data source;
migrating, by the leader device, a task in the first data source to the second data source;
in response to the determining, by a non-leader device that the migration of tasks is complete, executing, by the non-leader device of the plurality of computing devices, the task from the second data source instead of the first data source upon migration of the task to the second data source.

US Pat. No. 10,649,679

CONTAINERIZED APPLICATION EXTENSIONS IN DISTRIBUTED STORAGE SYSTEMS

Nutanix, Inc., San Jose,...

1. A method comprising:maintaining a distributed virtualization system comprising a plurality of nodes connected over a network, the distributed virtualization system having a first node comprising a virtualized controller and a virtualized container service machine, the virtualized controller managing a storage pool that aggregates a first storage device locally attached to the first node and a second storage device locally attached to a second node;
receiving, at the virtualized controller, a command to invoke a containerized application extension from a graphical user interface, wherein the containerized application extension extends capabilities afforded to the distributed virtualization system by adding application features to an existing application; and
executing, at the virtualized container service machine, the containerized application extension, wherein the containerized application extension is invoked and accessed using the graphical user interface and the virtualized container service machine operates the containerized application extension by at least accessing data on the storage pool through the virtualized controller.