Certain specific compute hardware shapes that you can use in OCI come with local storage in the form of local NVMe devices. These local storage devices give the best I/O performance in terms of IOPS and MBps that you need for heavy I/O operation based data that you need to access. But at the same time, any compute instance you create will use the block storage to create boot volumes. When you use block storage or file storage, there is redundancy implemented at the storage layer itself. So you don't need to worry about device failures that might happen in such services. Whereas when you use these local storages, those are tied to the hardware where your compute instance is running. Which means it is your responsibility to protect data that you keep in them by implementing RAID. How do you do these? The local devices that are there in these DenseIO shapes are accessible to the OS that runs. We at OCI don't have access to your operating system, hence, we cannot implement RAID. It is your responsibility to implement RAID such that whatever data is put in such local devices is retained to at least two devices. Redundant Array of Independent Disks or RAID, as it is commonly called, can be implemented at the operating system so that you use the local devices you get with your compute instance and protect your data so that if one of your devices fail, the data has been mirrored into another device, so your data is still accessible. But what do you do when a device fails is what we are going to see next. Once you have implemented RAID by protecting device failures, it is your responsibility to detect whenever a device failure occurs, then immediately spin up another compute instance of a similar shape, implement RAID in those local devices, and copy our data using tools such as rsync from the old instance to the new instance and start using the new instance, terminate the old instance. By doing this, you have protected your data from another device failure, which can result in a data loss. Under rare circumstances, the entire compute hardware can fail or under even more rare circumstances, the entire datacenter or availability domain can also fail beyond the control of us at Oracle Cloud. Under such circumstances, if you need to protect your data, just implementing RAID is insufficient, you have two choices. Choice 1, take a backup of your data from time-to-time from these local devices into one of the other storage services, or you setup two compute instances up-front. Let us see how you use these under what circumstances they come in of help. The first choice is to take a frequent backup at a predetermined interval and you can put the data backups into either block storage or object storage or file storage. Block storage and file storage are automatically replicated in Oracle Cloud within the datacenter. If you want, you may copy the data into another availability domain or you could take backups to Object Storage. Object Storage is a regional service, which means the data that you put in there is automatically replicated to all the datacenters or availability domains within that region. If you want to protect your data from a disaster of a region itself going down, which could be a very remote occurrence, you could copy the backup to another region. When you do this, you get a lower recovery time objective and a lower recovery point objective, wherein you could have a data loss, but it is much cheaper compared to option 2, which we are going to see next. When you are running mission-critical workloads and you cannot tolerate any data loss and if you are keeping such data in the local NVMe devices, the best way to protect your data is that you upfront create two compute instances. You put your data in the first instance and immediately replicate it to another compute instance, which is of a similar shape so that even if the entire hardware fails, your data has been continuously replicated to the other compute instance. In case the availability domain fails, keeping these two instances within the same AD would not help you, thus, you can make it highly available within the region by keeping the second compute instance in another availability domain within the same region. Whereas if you want to protect your data from a disaster wherein the entire region goes down, you can set up another compute instance in another region and ensure you replicate your data between the local devices to those two compute instances. Now you get a much better RPO and RTO, but of course, it's going to cost you more. Finally, depending on your business need and availability needs for your data, you can choose which implementation you want to protect your data in these local NVMe devices.