<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Shmuel Melamud</b> <span dir="ltr">&lt;<a href="mailto:smelamud@redhat.com" target="_blank">smelamud@redhat.com</a>&gt;</span><br>Date: Wed, Jun 22, 2016 at 4:51 PM<br>Subject: [ovirt-devel] Storage in VDSM questions<br>To: devel &lt;<a href="mailto:devel@ovirt.org" target="_blank">devel@ovirt.org</a>&gt;<br><br><br><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small">Hi!<br><br></div><div style="font-family:monospace,monospace;font-size:x-small">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.<br><br></div><div style="font-family:monospace,monospace;font-size:x-small">1. What is HSM? IRS?<br></div></div></div></div></blockquote><div><br></div><div>IRS = SPM</div><div>HSM=non SPM host</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"></div><div style="font-family:monospace,monospace;font-size:x-small">2. What is SDM?<br></div></div></div></div></blockquote><div>SDM= Storage Domain Management</div><div>A feature currently under development that provides alternate method to SPM</div><div>to manage shared storage.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small">3. What hsm.spmSchedule() method does?<br></div></div></div></div></blockquote><div>Schedules a task to be executed as SPM (used to perform operation that alter</div><div>the shared storage or data operations currently).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"></div><div style="font-family:monospace,monospace;font-size:x-small">4. What does domainMonitor.getHostId(vol_info.sd_id) method return?<br></div></div></div></div></blockquote><div>I&#39;d recomment to do some SANLock reading (see below).</div><div>Basically, its the id the host uses to acquire locks on the shared storage.</div><div><br></div><div><a href="http://linux.die.net/man/8/sanlock" target="_blank">http://linux.die.net/man/8/sanlock</a> </div><div><a href="http://old.ovirt.org/SANLock" target="_blank">http://old.ovirt.org/SANLock</a> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"><br>Storage domain<br><br>5. What is StorageDomainManifest? Why there are separate StorageDomain and StorageDomainManifest classes? (And the same with Volume and VolumeManifest.)<br></div></div></div></div></blockquote><div>Those are changes made in order to share &quot;SPM&quot; related code with &quot;SDM&quot; related code (as not all of the code is relevant for both).</div><div>alitke/nsoffer could share more information on the decisions behind adding those. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small">6. What does sd_manifest.domain_lock(host_id) guard? Why do we need the host_id parameter?<br></div></div></div></div></blockquote><div>see answer to question 4.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"></div><div style="font-family:monospace,monospace;font-size:x-small">7. Why in HSM we are using vars.task.getSharedLock(STORAGE, sdUUID) sometimes instead of domain lock?<br></div></div></div></div></blockquote><div>The task lock (which uses the resource manager) is used to acquire in memory logical lock within the current host.</div><div>Theoretical example- you wouldn&#39;t want to attempt to delete a domain while you create a volume on it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div><span style="font-family:monospace,monospace;font-size:x-small">8. What does sd_manifest.get_volume_artifacts(img_id, vol_id) return?<br><br></span></div><div style="font-family:monospace,monospace;font-size:x-small">Resource manager<br><br>9. What is ResourceManager?<br></div></div></div></div></blockquote><div>Resource manager is basically a in memory lock manager in vdsm. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"></div><div style="font-family:monospace,monospace;font-size:x-small">10. What rmanager.acquireResource(image_res_ns, img_id, lockType) does? What types of resources it may be used with?<br></div></div></div></div></blockquote><div><br></div><div>Well, the best answer would be the simple one - its used to acquire a resource, you can specify a namespace and id, the lock will be taken on namespace_ID</div><div>so basically you can acquire lock on the same id under different namespaces.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"><br></div><div style="font-family:monospace,monospace;font-size:x-small">Images and volumes<br><br>11. What methods dom.linkBCImage(imgPath, imgUUID) and dom.unlinkBCImage(imgUUID) do?<br></div></div></div></div></blockquote><div>Creates/Removes a symlink to a given image. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small">12. What methods dom.activateVolumes(imgUUID, imgVolumes) and dom.deactivateImage(imgUUID) do?</div></div></div></div></blockquote><div>Can you be a bit more specific in the question? I don&#39;t have much to add</div><div>over the method names.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"><span style="font-family:arial,sans-serif;font-size:small"> </span></div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small">13. What method dom.getVolumeLease(imgUUID, volUUID) does?<br></div></div></div></div></blockquote><div>see related SANLock question before. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:x-small"></div><div style="font-family:monospace,monospace;font-size:x-small">14. What methods volume.prepare() and volume.teardown() do?<br><br></div><div style="font-family:monospace,monospace;font-size:x-small">Thanks in advance for your answers!<span><font color="#888888"><br><br></font></span></div><span><font color="#888888"><div style="font-family:monospace,monospace;font-size:x-small">Shmuel<br></div></font></span></div>
<br>_______________________________________________<br>
Devel mailing list<br>
<a href="mailto:Devel@ovirt.org" target="_blank">Devel@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><br></div><br></div>
</blockquote></div><br></div></div>