Abstract:
A technique is disclosed for non-disruptive migration of data between storage on hosts that do not share storage with each other. Aggregate relocation is enabled to operate between the hosts in the absence of shared storage connectivity. The technique includes mirroring an aggregate from storage of a first host to storage of a second host by using a sub-RAID level proxy in each of the first and second hosts to proxy data communications between the hosts. The proxy is used in lieu of the mirroring application in the first host having direct access to the storage devices of the second host. The technique further includes relocating the aggregate from the first host to the second host.
Abstract:
A technique is disclosed for providing high availability (HA) capability with a plurality of storage servers, which may be virtual storage servers (VSSs), in a shared-nothing storage environment. The technique uses a proxy mechanism to route requests originating at one storage server to an HA partner storage server, where the proxy is implemented inside a VSS logically below the RAID layer. The technique also involves distributing non-shared storage devices “owned” by a storage server so that existing storage device-based heartbeat and fencing mechanisms can function unmodified for HA VSSs in shared-nothing environments. For example, a third, external host can be used to provide and export its non-shared storage to first and second storage servers, where the first and second storage servers do not own the non-shared storage on their local physical host machine.
Abstract:
Methods and system for securely capturing workloads at a live network for replaying at a test network. The disclosed system captures file system states and workloads of a live server at the live network. In one embodiment the captured data is anonymized to protect confidentiality of the data. A file system of a test server at the test network is mirrored from a captured state of the live server. An anonymized version of the captured workloads is replayed as a request to the test server. A lost or incomplete command is recreated from the states of the live server. An order of the commands during replay can be based on an order in the captured workload, or based on a causal relationship. Performance characteristics of the live network are determined based on the response to the replayed command.
Abstract:
A novel technique for improving throughput in a multi-core system in which data is processed according to a producer-consumer relationship by eliminating latencies caused by compulsory cache misses. The producer and consumer entities run as multiple slices of execution. Each such slice has an associated execution context that comprises of the code and data that particular slice would access. The execution contexts of the producer and consumer slices are small enough to fit in the processor caches simultaneously. When a producer entity scheduled on a first core completed production of data elements as constrained by the size of cache memories, a consumer entity is scheduled on that same core to consume the produced data elements. Meanwhile, a second slice of the producer entity is moved to another core and a second slice of a consumer entity is scheduled to consume elements produced by the second slice of the producer.
Abstract:
Two or more virtual machines may be co-located on a same physical machine, and the virtual machines may communicate with each other. To establish efficient communication, memory mapping information for respective virtual machines can be exchanged between the respective virtual machines. An instance of a virtualized network interface can be established, and a direct communications channel can be mapped between respective virtualized network interfaces. Data packet routing information can be updated, such that data packets transferred between two of more co-located virtual machines can be transferred using the virtualized network interface communications channel.
Abstract:
A technique is disclosed for non-disruptive migration of data between storage on hosts that do not share storage with each other. Aggregate relocation is enabled to operate between the hosts in the absence of shared storage connectivity. The technique includes mirroring an aggregate from storage of a first host to storage of a second host by using a sub-RAID level proxy in each of the first and second hosts to proxy data communications between the hosts. The proxy is used in lieu of the mirroring application in the first host having direct access to the storage devices of the second host. The technique further includes relocating the aggregate from the first host to the second host.
Abstract:
A novel technique for improving throughput in a multi-core system in which data is processed according to a producer-consumer relationship by eliminating latencies caused by compulsory cache misses. The producer and consumer entities run as multiple slices of execution. Each such slice has an associated execution context that comprises of the code and data that particular slice would access. The execution contexts of the producer and consumer slices are small enough to fit in the processor caches simultaneously. When a producer entity scheduled on a first core completed production of data elements as constrained by the size of cache memories, a consumer entity is scheduled on that same core to consume the produced data elements. Meanwhile, a second slice of the producer entity is moved to another core and a second slice of a consumer entity is scheduled to consume elements produced by the second slice of the producer.
Abstract:
Two or more virtual machines may be co-located on a same physical machine, and the virtual machines may communicate with each other. To establish efficient communication, memory mapping information for respective virtual machines can be exchanged between the respective virtual machines. An instance of a virtualized network interface can be established, and a direct communications channel can be mapped between respective virtualized network interfaces. Data packet routing information can be updated, such that data packets transferred between two of more co-located virtual machines can be transferred using the virtualized network interface communications channel.