After a snapshot is created, there are two scenarios for the VM to read data:
If the data to be read existed before snapshot creation and has not been modified since the snapshot was taken, it will be read from the source virtual disk.
If the data to be read is newly added or modified after snapshot creation, it will be read from the snapshot space.
The data read process after snapshot creation is as follows:
①The VM issues a data read command.
②To read data "a" corresponding to the original address "1" — which is data existing before snapshot creation and whose address "1" does not exist in the mapping table — the system directly reads and returns data "a" from the original virtual disk.
③To read data "c" corresponding to the original address "2" — which is a data area that has been written to after snapshot creation — the system queries the mapping table. The source address "2" corresponds to the snapshot address "ii" in the snapshot, so the system reads from snapshot address "ii" and returns data "E".