xiRAID Opus Structure

The xiRAID storage engine is implemented as a single binary that runs as a service. This engine exposes a gRPC management API. An additional binary implements a CLI to represent the gRPC API as a management command-line interface. The CLI engine is a thin client that does not contain any logic. Therefore, another client (such as a GUI, customer CLI, or plugin) can connect directly to the gRPC API. The gRPC syntax is described in the gRPC API specification. Any engine command available in the CLI tool can be executed by a direct gRPC call.

The CLI uses the network layer to send commands to and receive responses from the data path engine via gRPC. This means that the CLI and xiRAID engine can operate on different network nodes, and the same CLI can manage multiple engines across various network nodes. To specify the destination engine for a command, the CLI tool needs to be provided with the network address (hostname/IP and port number). By default, if the engine and CLI are installed on the same node, the localhost and pre-configured port number are used.
Figure 1. Figure 1: Major parts of the xiRAID