On Mon, 2018-08-27 at 18:34 +0800, Bob Chen wrote:
Is the any possibility (even if very small), that a SPDK storage will
totally corrupted and lose all data?
I mean it in both of the software and hardware perspective.
In the old days when we rely on RAID for SATA SSDs, we are able to recover
data even if one disk fails. Now, however, I rarely see any vendor which
provides RAID solutions for NVMe SSDs.
And in terms of software, don't know if SPDK has the concept of partition
table. Because that's what needs to be concerned in case someone mess it up
by manually operation. Does it have a backup, like xfs?
I'm looking for some documents on the reliability of data persistence.
SPDK is composed of a very wide range of components these days - it's nearing
the point where it contains all of the things you'd expect to find in a typical
operating system block stack, all as user space libraries. Each component may
have different data integrity guarantees, depending on what the component is
doing. That said, the majority of components in SPDK are providing *access* to a
storage device, not managing data, and so the integrity of the data is managed
by some higher level logic outside of SPDK. I'll give a few examples:
1) SPDK NVMe driver - this just provides access to an NVMe device. The drives
themselves may provide some data integrity guarantees or power loss protection,
but the device driver in SPDK is not responsible for that.
2) SPDK NVMe-oF target - this is exposing a storage device over the network.
Again, it is a higher level piece of software coupled with the physical SSDs
that are responsible for data integrity. This software is primarily an I/O path.
3) SPDK's logical volume bdev - this software places data for logical volumes
onto an underlying physical disk. It does deal with metadata, it does do CRC
checks and is concerned with atomicity, etc. Currently this software focuses on
catching data integrity errors (in its metadata) and not necessarily on having
backups available to recover from them.
4) SPDK's raid bdev - this implements RAID 0 currently, which doesn't help the
data corruption problem. It also is not configured via on-disk metadata just
yet. But eventually it could implement RAID 1 mirroring and on-disk metadata and
it would need to perform a recovery on a data corruption.
So the answer to your question depends on which part of SPDK you're concerned
with. I hope that helps answer the question.
SPDK mailing list