Hi Greg,<br>  Thanks for the information. I have another question :). <br>  Is there some less flexibility if we use device mapper target?<br>  For example in block device driver you can use the api such that it won&#39;t use the OS io scheduler, so the io comes directly to the block device driver through the   &#39;make_request&#39; call. With the device mapper i don&#39;t think that happens(looking at the api calls). Does this mean that stuff like io scheduling. barrier control etc is done<br>
 by the device mapper itself and we can focus only on &#39;mapping&#39; the io.<br><br>Regards,<br>Neha<br><br><div class="gmail_quote">On Wed, May 8, 2013 at 8:11 AM, Greg Freemyer <span dir="ltr">&lt;<a href="mailto:greg.freemyer@gmail.com" target="_blank">greg.freemyer@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The block layers can be layered both ways.  DM is the newer<br>
infrastructure and was created in the early days of 2.6<br>
<br>
If what I was writing could fit into a dm-target, that is what I would do.<br>
<br>
There are significant projects like drbd and mdraid that are not<br>
dm-targets, but I think their is a long term goal to incorporate<br>
mdraid&#39;s functionality at a minimum into dm.  I doubt drbd is ever<br>
moved to dm.  It is just too big of a project and in use in lots of<br>
production server environments.<br>
<br>
Greg<br>
<br>
On Tue, May 7, 2013 at 1:46 AM, Gaurav Mahajan<br>
<div class="HOEnZb"><div class="h5">&lt;<a href="mailto:gauravmahajan2007@gmail.com">gauravmahajan2007@gmail.com</a>&gt; wrote:<br>
&gt; Hi  Neha,<br>
&gt;<br>
&gt; LVM uses device mapper. Advantages of using device mapper is that you can<br>
&gt; stack different dm-targets on each other.<br>
&gt; I am really not aware of block device drivers.<br>
&gt;<br>
&gt; May be Greg can help us understand the actual pros and cons.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Gaurav<br>
&gt;<br>
&gt;<br>
&gt; On Wed, May 1, 2013 at 9:45 PM, neha naik &lt;<a href="mailto:nehanaik27@gmail.com">nehanaik27@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Gaurav,<br>
&gt;&gt;  I went through your blog and it is really informative. But after reading<br>
&gt;&gt; that i realized that i have a question:<br>
&gt;&gt;   If I want to write a block device driver which is going to sit on lvm<br>
&gt;&gt; (and do some functionality on top of it) then should i go for the block<br>
&gt;&gt; device driver api<br>
&gt;&gt;   or write it as a device mapper target. What are the<br>
&gt;&gt; advantages/disadvantages of both the approaches.<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Neha<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Apr 30, 2013 at 4:24 AM, Gaurav Mahajan<br>
&gt;&gt; &lt;<a href="mailto:gauravmahajan2007@gmail.com">gauravmahajan2007@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi Amit,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I had compiled some notes on my blog.<br>
&gt;&gt;&gt; Here are some links on writing your own device mapper target.<br>
&gt;&gt;&gt; <a href="http://techgmm.blogspot.in/p/writing-your-own-device-mapper-target.html" target="_blank">http://techgmm.blogspot.in/p/writing-your-own-device-mapper-target.html</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Concept of device mapper target.<br>
&gt;&gt;&gt; <a href="http://techgmm.blogspot.in/p/device-mapper-layer-explored-every.html" target="_blank">http://techgmm.blogspot.in/p/device-mapper-layer-explored-every.html</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Gaurav.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Apr 30, 2013 at 5:05 AM, Anatol Pomozov<br>
&gt;&gt;&gt; &lt;<a href="mailto:anatol.pomozov@gmail.com">anatol.pomozov@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Apr 29, 2013 at 9:51 AM, amit mehta &lt;<a href="mailto:gmate.amit@gmail.com">gmate.amit@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt; On Sun, Apr 28, 2013 at 5:24 PM, Greg Freemyer<br>
&gt;&gt;&gt;&gt; &gt; &lt;<a href="mailto:greg.freemyer@gmail.com">greg.freemyer@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; A nice diagram of the overall storage subsystem is at<br>
&gt;&gt;&gt;&gt; &gt;&gt; <a href="http://www.thomas-krenn.com/en/oss/linux-io-stack-diagram.html" target="_blank">http://www.thomas-krenn.com/en/oss/linux-io-stack-diagram.html</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Dm is just a single block in it, but it can help to see where it fits<br>
&gt;&gt;&gt;&gt; &gt;&gt; in overall.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Btw: that diagram doesn&#39;t show the legacy ata driver that creates<br>
&gt;&gt;&gt;&gt; &gt;&gt; /dev/hdx style devices.  Has that been dropped while I wasn&#39;t paying<br>
&gt;&gt;&gt;&gt; &gt;&gt; attention?  I haven&#39;t used it in years, but I thought it was still used on<br>
&gt;&gt;&gt;&gt; &gt;&gt; embedded systems.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Thank you for sharing the link, but I&#39;m looking for more<br>
&gt;&gt;&gt;&gt; &gt; detailed information on I/O stack in Linux, dm-mapper and<br>
&gt;&gt;&gt;&gt; &gt; multipath in particular.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Some docs about multipath can be found here<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="http://www.sourceware.org/lvm2/wiki/MultipathUsageGuide" target="_blank">http://www.sourceware.org/lvm2/wiki/MultipathUsageGuide</a><br>
&gt;&gt;&gt;&gt; <a href="http://christophe.varoqui.free.fr/refbook.html" target="_blank">http://christophe.varoqui.free.fr/refbook.html</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The userspace part for tools is here<br>
&gt;&gt;&gt;&gt; <a href="http://sourceware.org/lvm2/" target="_blank">http://sourceware.org/lvm2/</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>