The next part of ScaleIO that I want to cover is the ScaleIO Data Server (SDS) and the ScaleIO Data Client (SDC). These components provide the storage as well as access the storage in ScaleIO. You could consider the SDS as storage and SDC as a host, but they can reside on the same server.
The ScaleIO Data Server (SDS) – A software daemon that enables a server in the ScaleIO cluster to contribute its local storage to ScaleIO Storage. An instance of the SDS runs on every server that contributes some or all of its local storage space, which can be HDDs, SSDs, or PCIe flash cards to the aggregated pool of storage within the ScaleIO virtual SAN. The SDS manages the capacity of a single server and performs the Backend I/O. You have SDS only nodes, where the node just serves out storage, or you can have a node that is both a SDS and SDC.
The ScaleIO Data Client (SDC) – A lightweight block device driver that gives the capability to access ScaleIO shared block volumes to applications. The SDC runs on the same server as the application. The SDC communicates with other node over TCP/IP-based protocol and it is fully routable. When installed in a server, it presents ScaleIO volumes as block devices to any application on the server. Note that the SDC is a Block device driver that can run alongside other Block device drivers. The only I/Os in the stack that are intercepted by the SDC are those I/Os that are directed at the volumes that belong to ScaleIO. There is no interference with I/Os directed at traditional SAN LUNs that are not part of the ScaleIO. Users may modify the default ScaleIO configuration parameter to allow two SDCs to access the same data. The SDC is the only ScaleIO component that applications see in the data path.
On the next post I will go into some more of the fundamental terms and start getting deeper into the technology.