Hi!

I have a bunch of questions related to storage in VDSM. I would be happy if anybody familiar with the subject can help me with them.

1. What is HSM? IRS?
2. What is SDM?
3. What hsm.spmSchedule() method does?
4. What does domainMonitor.getHostId(vol_info.sd_id) method return?

Storage domain

5. What is StorageDomainManifest? Why there are separate StorageDomain and StorageDomainManifest classes? (And the same with Volume and VolumeManifest.)
6. What does sd_manifest.domain_lock(host_id) guard? Why do we need the host_id parameter?
7. Why in HSM we are using vars.task.getSharedLock(STORAGE, sdUUID) sometimes instead of domain lock?
8. What does sd_manifest.get_volume_artifacts(img_id, vol_id) return?

Resource manager

9. What is ResourceManager?
10. What rmanager.acquireResource(image_res_ns, img_id, lockType) does? What types of resources it may be used with?

Images and volumes

11. What methods dom.linkBCImage(imgPath, imgUUID) and dom.unlinkBCImage(imgUUID) do?
12. What methods dom.activateVolumes(imgUUID, imgVolumes) and dom.deactivateImage(imgUUID) do?
13. What method dom.getVolumeLease(imgUUID, volUUID) does?
14. What methods volume.prepare() and volume.teardown() do?

Thanks in advance for your answers!

Shmuel