Hey everyone! My name is Steven Poitras, Solutions Architect here at Nutanix, and
today we're going to be talking a little bit about data protection and how that's
managed on the Nutanix platform. So as we mentioned in the prior session, the
Oplog is essentially a persistent write buffer which is stored on an SSD.
When a new incoming write comes in, it's going to be facilitated by the local
node's CVM and that's the local Oplog. So in this example, say I write piece of data A,
that's going to be stored on the local Oplog. From there, we synchronously
replicate that to another node's Oplog within the cluster before we acknowledge
the write. This ensures that if a node were to go down or if this node were to
go down, I would still have another copy of the data within the cluster. So this
is a typical example of an RF2 or dual copy scenario for data. However, say for
example, I write data B which is configured to be RF3 or N+2,
essentially what would happen is, its going to be written to the local
Oplog and then synchronously replicated to 2 Oplogs before the
actual writes are acknowledged. Once both remote Oplogs have actually
acknowledged the write, then I will come back and actually acknowledge that the
write has been completed. In this case, I actually have three copies of the data
so if I were to lose a node, I would actually still have two copies of the
data which would be available. As we previously mentioned, the Oplog is
really a persistent write buffer which allows us to handle bursts of random
writes, coalesce them, and then sequentially drain them on the back end.
So in this example, if we have data A and B here, that would then be drained down
into our extent store. In here I would have my copies of A and B, similar over
here.
One of the key things to highlight here is during the synchronous replication
for the data protection and Oplog, all nodes within the cluster participate,
there is no mirroring, there's no pairing, or anything like that. So if I were to
have an 8 node cluster and write seven chunks of data here to this node 1,
all other of the 7 nodes would actually handle one of those remote replications.
So that's one of the key things when we start talking about the scale out
performance is as I actually scale out my cluster, I actually scale up the
number of remote Oplogs and controllers which can actually facilitate those
replication requests. Another one of the key things in terms of data protection
is ensuring data quality. In this example where I write both A and B, when the write
actually occurs I take a checksum of that data. That checksum is then stored
in the metadata and the key thing with that is whenever I read a piece of data,
say for example here, I wrote data A to node 1 and I want to perform a read
request for this piece of data, what I'll do is before the read is actually
returned to the virtual machine or hypervisor, I'll actually perform a
checksum and check that against what is actually stored in the metadata. If it's
stored, meaning the data is what I expect it to be, I'll directly return it. However
in the case where the checksums do not match, I would actually go to one of
the remote nodes which stored that data, perform the same process again, perform
the checksum validated against the metadata, then before I return the data
to the VM. This is extremely important when we start talking about data quality.
It's not just about storing the data persistently but it's also about
ensuring that the quality of the data and consistency is there. We also perform
things in terms of proactive scrubbing on the disk devices. This includes our
Curator framework which will actually scan through, check all sectors on the
actual physical disk devices and perform proactive scrubbing. So this
concludes data protection on the Nutanix platform.
Thanks for watching.