* lvm volume like support
@ 2013-02-25 23:35 Suman C
2013-02-26 0:59 ` Mike Fleetwood
0 siblings, 1 reply; 22+ messages in thread
From: Suman C @ 2013-02-25 23:35 UTC (permalink / raw)
To: linux-btrfs
Hi,
I think it would be great if there is a lvm volume or zfs zvol type
support in btrfs. As far as I can tell, there's nobody actively
working on this feature. I want to know what the core developers think
of this feature, is it technically possible? any strong opinions?
implementation ideas?
I'd be happy to work towards this feature, but want your feedback
before proceeding.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-25 23:35 lvm volume like support Suman C
@ 2013-02-26 0:59 ` Mike Fleetwood
2013-02-26 1:46 ` Fajar A. Nugraha
0 siblings, 1 reply; 22+ messages in thread
From: Mike Fleetwood @ 2013-02-26 0:59 UTC (permalink / raw)
To: Suman C; +Cc: linux-btrfs
On 25 February 2013 23:35, Suman C <schakrava@gmail.com> wrote:
> Hi,
>
> I think it would be great if there is a lvm volume or zfs zvol type
> support in btrfs. As far as I can tell, there's nobody actively
> working on this feature. I want to know what the core developers think
> of this feature, is it technically possible? any strong opinions?
> implementation ideas?
>
> I'd be happy to work towards this feature, but want your feedback
> before proceeding.
Btrfs already has capabilities to add and remove block devices on the
fly. Data can be stripped or mirrored or both. Raid 5/6 is in
testing at the moment.
https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
https://btrfs.wiki.kernel.org/index.php/UseCases#RAID
Which specific features do you think btrfs is lacking?
Mike
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 0:59 ` Mike Fleetwood
@ 2013-02-26 1:46 ` Fajar A. Nugraha
2013-02-26 5:35 ` Suman C
2013-02-26 10:30 ` Martin Steigerwald
0 siblings, 2 replies; 22+ messages in thread
From: Fajar A. Nugraha @ 2013-02-26 1:46 UTC (permalink / raw)
To: Mike Fleetwood; +Cc: Suman C, linux-btrfs
On Tue, Feb 26, 2013 at 11:59 AM, Mike Fleetwood
<mike.fleetwood@googlemail.com> wrote:
> On 25 February 2013 23:35, Suman C <schakrava@gmail.com> wrote:
>> Hi,
>>
>> I think it would be great if there is a lvm volume or zfs zvol type
>> support in btrfs.
> Btrfs already has capabilities to add and remove block devices on the
> fly. Data can be stripped or mirrored or both. Raid 5/6 is in
> testing at the moment.
> https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
> https://btrfs.wiki.kernel.org/index.php/UseCases#RAID
>
> Which specific features do you think btrfs is lacking?
I think he's talking about zvol-like feature.
In zfs, instead of creating a
filesystem-that-is-accessible-as-a-directory, you can create a zvol
which behaves just like any other standard block device (e.g. you can
use it as swap, or create ext4 filesystem on top of it). But it would
also have most of the benefits that a normal zfs filesystem has, like:
- thin provisioning (sparse allocation, snapshot & clone)
- compression
- integrity check (via checksum)
Typical use cases would be:
- swap in a pure-zfs system
- virtualization (xen, kvm, etc)
- NAS which exports the block device using iscsi/AoE
AFAIK no such feature exist in btrfs yet.
--
Fajar
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 1:46 ` Fajar A. Nugraha
@ 2013-02-26 5:35 ` Suman C
2013-02-26 5:48 ` Remco Hosman - Yerf-IT
2013-02-26 5:57 ` Roman Mamedov
2013-02-26 10:30 ` Martin Steigerwald
1 sibling, 2 replies; 22+ messages in thread
From: Suman C @ 2013-02-26 5:35 UTC (permalink / raw)
To: Fajar A. Nugraha; +Cc: Mike Fleetwood, linux-btrfs
Yes, zvol like feature where a btrfs subvolume like construct can be
made available as a LUN/block device. This device can then be used by
any application that wants a raw block device. iscsi is another
obvious usecase. Having thin provisioning support would make it pretty
awesome.
Suman
On Mon, Feb 25, 2013 at 5:46 PM, Fajar A. Nugraha <list@fajar.net> wrote:
> On Tue, Feb 26, 2013 at 11:59 AM, Mike Fleetwood
> <mike.fleetwood@googlemail.com> wrote:
>> On 25 February 2013 23:35, Suman C <schakrava@gmail.com> wrote:
>>> Hi,
>>>
>>> I think it would be great if there is a lvm volume or zfs zvol type
>>> support in btrfs.
>
>
>> Btrfs already has capabilities to add and remove block devices on the
>> fly. Data can be stripped or mirrored or both. Raid 5/6 is in
>> testing at the moment.
>> https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
>> https://btrfs.wiki.kernel.org/index.php/UseCases#RAID
>>
>> Which specific features do you think btrfs is lacking?
>
>
> I think he's talking about zvol-like feature.
>
> In zfs, instead of creating a
> filesystem-that-is-accessible-as-a-directory, you can create a zvol
> which behaves just like any other standard block device (e.g. you can
> use it as swap, or create ext4 filesystem on top of it). But it would
> also have most of the benefits that a normal zfs filesystem has, like:
> - thin provisioning (sparse allocation, snapshot & clone)
> - compression
> - integrity check (via checksum)
>
> Typical use cases would be:
> - swap in a pure-zfs system
> - virtualization (xen, kvm, etc)
> - NAS which exports the block device using iscsi/AoE
>
> AFAIK no such feature exist in btrfs yet.
>
> --
> Fajar
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 5:35 ` Suman C
@ 2013-02-26 5:48 ` Remco Hosman - Yerf-IT
2013-02-26 5:57 ` Roman Mamedov
1 sibling, 0 replies; 22+ messages in thread
From: Remco Hosman - Yerf-IT @ 2013-02-26 5:48 UTC (permalink / raw)
To: Suman C; +Cc: Fajar A. Nugraha, Mike Fleetwood, linux-btrfs
Can't thus be done with a regular file and a loop back device?
Remco
On 26 Feb 2013, at 06:35, Suman C <schakrava@gmail.com> wrote:
> Yes, zvol like feature where a btrfs subvolume like construct can be
> made available as a LUN/block device. This device can then be used by
> any application that wants a raw block device. iscsi is another
> obvious usecase. Having thin provisioning support would make it pretty
> awesome.
>
> Suman
>
> On Mon, Feb 25, 2013 at 5:46 PM, Fajar A. Nugraha <list@fajar.net> wrote:
>> On Tue, Feb 26, 2013 at 11:59 AM, Mike Fleetwood
>> <mike.fleetwood@googlemail.com> wrote:
>>> On 25 February 2013 23:35, Suman C <schakrava@gmail.com> wrote:
>>>> Hi,
>>>>
>>>> I think it would be great if there is a lvm volume or zfs zvol type
>>>> support in btrfs.
>>
>>
>>> Btrfs already has capabilities to add and remove block devices on the
>>> fly. Data can be stripped or mirrored or both. Raid 5/6 is in
>>> testing at the moment.
>>> https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
>>> https://btrfs.wiki.kernel.org/index.php/UseCases#RAID
>>>
>>> Which specific features do you think btrfs is lacking?
>>
>>
>> I think he's talking about zvol-like feature.
>>
>> In zfs, instead of creating a
>> filesystem-that-is-accessible-as-a-directory, you can create a zvol
>> which behaves just like any other standard block device (e.g. you can
>> use it as swap, or create ext4 filesystem on top of it). But it would
>> also have most of the benefits that a normal zfs filesystem has, like:
>> - thin provisioning (sparse allocation, snapshot & clone)
>> - compression
>> - integrity check (via checksum)
>>
>> Typical use cases would be:
>> - swap in a pure-zfs system
>> - virtualization (xen, kvm, etc)
>> - NAS which exports the block device using iscsi/AoE
>>
>> AFAIK no such feature exist in btrfs yet.
>>
>> --
>> Fajar
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 5:35 ` Suman C
2013-02-26 5:48 ` Remco Hosman - Yerf-IT
@ 2013-02-26 5:57 ` Roman Mamedov
2013-02-26 6:25 ` Suman C
1 sibling, 1 reply; 22+ messages in thread
From: Roman Mamedov @ 2013-02-26 5:57 UTC (permalink / raw)
To: Suman C; +Cc: Fajar A. Nugraha, Mike Fleetwood, linux-btrfs
[-- Attachment #1: Type: text/plain, Size: 895 bytes --]
On Mon, 25 Feb 2013 21:35:08 -0800
Suman C <schakrava@gmail.com> wrote:
> Yes, zvol like feature where a btrfs subvolume like construct can be
> made available as a LUN/block device. This device can then be used by
> any application that wants a raw block device. iscsi is another
> obvious usecase. Having thin provisioning support would make it pretty
> awesome.
I think what you are missing is that btrfs is a filesystem, not a block device
management mechanism.
For your use case can simply create a snapshot and then make a sparse file
inside of it.
btrfs sub create foobar
dd if=/dev/zero of=foobar/100GB.img bs=1 count=1 seek=100G
If you need this to be a block device, use 'losetup' to make foobar/100GB.img
appear as one (/dev/loopX). But iSCSI/AoE/NBD can export files as well as block
devices, so this is not even necessary.
--
With respect,
Roman
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 5:57 ` Roman Mamedov
@ 2013-02-26 6:25 ` Suman C
2013-02-26 6:28 ` Remco Hosman - Yerf IT
2013-04-19 18:13 ` Andy Grover
0 siblings, 2 replies; 22+ messages in thread
From: Suman C @ 2013-02-26 6:25 UTC (permalink / raw)
To: Roman Mamedov; +Cc: Fajar A. Nugraha, Mike Fleetwood, linux-btrfs
Thanks for the sparse file idea, I am actually using that solution
already. I am not sure if its the best way, however.
Suman
On Mon, Feb 25, 2013 at 9:57 PM, Roman Mamedov <rm@romanrm.ru> wrote:
> On Mon, 25 Feb 2013 21:35:08 -0800
> Suman C <schakrava@gmail.com> wrote:
>
>> Yes, zvol like feature where a btrfs subvolume like construct can be
>> made available as a LUN/block device. This device can then be used by
>> any application that wants a raw block device. iscsi is another
>> obvious usecase. Having thin provisioning support would make it pretty
>> awesome.
>
> I think what you are missing is that btrfs is a filesystem, not a block device
> management mechanism.
>
> For your use case can simply create a snapshot and then make a sparse file
> inside of it.
>
> btrfs sub create foobar
> dd if=/dev/zero of=foobar/100GB.img bs=1 count=1 seek=100G
>
> If you need this to be a block device, use 'losetup' to make foobar/100GB.img
> appear as one (/dev/loopX). But iSCSI/AoE/NBD can export files as well as block
> devices, so this is not even necessary.
>
> --
> With respect,
> Roman
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 6:25 ` Suman C
@ 2013-02-26 6:28 ` Remco Hosman - Yerf IT
2013-02-26 6:37 ` Alex Elsayed
2013-02-26 7:08 ` Dave Chinner
2013-04-19 18:13 ` Andy Grover
1 sibling, 2 replies; 22+ messages in thread
From: Remco Hosman - Yerf IT @ 2013-02-26 6:28 UTC (permalink / raw)
To: Suman C; +Cc: linux-btrfs
would be really cool if a TRIM to the loopback device would do a 'hole punch' on the file
Remco
On Feb 26, 2013, at 7:25 AM, Suman C <schakrava@gmail.com> wrote:
> Thanks for the sparse file idea, I am actually using that solution
> already. I am not sure if its the best way, however.
>
> Suman
>
> On Mon, Feb 25, 2013 at 9:57 PM, Roman Mamedov <rm@romanrm.ru> wrote:
>> On Mon, 25 Feb 2013 21:35:08 -0800
>> Suman C <schakrava@gmail.com> wrote:
>>
>>> Yes, zvol like feature where a btrfs subvolume like construct can be
>>> made available as a LUN/block device. This device can then be used by
>>> any application that wants a raw block device. iscsi is another
>>> obvious usecase. Having thin provisioning support would make it pretty
>>> awesome.
>>
>> I think what you are missing is that btrfs is a filesystem, not a block device
>> management mechanism.
>>
>> For your use case can simply create a snapshot and then make a sparse file
>> inside of it.
>>
>> btrfs sub create foobar
>> dd if=/dev/zero of=foobar/100GB.img bs=1 count=1 seek=100G
>>
>> If you need this to be a block device, use 'losetup' to make foobar/100GB.img
>> appear as one (/dev/loopX). But iSCSI/AoE/NBD can export files as well as block
>> devices, so this is not even necessary.
>>
>> --
>> With respect,
>> Roman
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 6:28 ` Remco Hosman - Yerf IT
@ 2013-02-26 6:37 ` Alex Elsayed
2013-02-26 7:08 ` Dave Chinner
1 sibling, 0 replies; 22+ messages in thread
From: Alex Elsayed @ 2013-02-26 6:37 UTC (permalink / raw)
To: linux-btrfs
Remco Hosman - Yerf IT wrote:
> would be really cool if a TRIM to the loopback device would do a 'hole
> punch' on the file
There are patches on the scsi target mailing list to make this happen for
the FILEIO backend. This has the added benefit that if you set it up via
LIO, it appears as a full SCSI device, and can be exported via iSCSI,
firewire, FC, USB, etc as well as being visible as a local disk.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 6:28 ` Remco Hosman - Yerf IT
2013-02-26 6:37 ` Alex Elsayed
@ 2013-02-26 7:08 ` Dave Chinner
1 sibling, 0 replies; 22+ messages in thread
From: Dave Chinner @ 2013-02-26 7:08 UTC (permalink / raw)
To: Remco Hosman - Yerf IT; +Cc: Suman C, linux-btrfs
On Tue, Feb 26, 2013 at 07:28:43AM +0100, Remco Hosman - Yerf IT wrote:
> would be really cool if a TRIM to the loopback device would do a
> 'hole punch' on the file
dfaa2ef loop: add discard support for loop devices
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 1:46 ` Fajar A. Nugraha
2013-02-26 5:35 ` Suman C
@ 2013-02-26 10:30 ` Martin Steigerwald
2013-02-27 2:23 ` Fajar A. Nugraha
1 sibling, 1 reply; 22+ messages in thread
From: Martin Steigerwald @ 2013-02-26 10:30 UTC (permalink / raw)
To: linux-btrfs; +Cc: Fajar A. Nugraha, Mike Fleetwood, Suman C
Am Dienstag, 26. Februar 2013 schrieb Fajar A. Nugraha:
> On Tue, Feb 26, 2013 at 11:59 AM, Mike Fleetwood
>
> <mike.fleetwood@googlemail.com> wrote:
> > On 25 February 2013 23:35, Suman C <schakrava@gmail.com> wrote:
> >> Hi,
> >>
> >> I think it would be great if there is a lvm volume or zfs zvol type
> >> support in btrfs.
> >
> > Btrfs already has capabilities to add and remove block devices on the
> > fly. Data can be stripped or mirrored or both. Raid 5/6 is in
> > testing at the moment.
> > https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devic
> > es https://btrfs.wiki.kernel.org/index.php/UseCases#RAID
> >
> > Which specific features do you think btrfs is lacking?
>
> I think he's talking about zvol-like feature.
>
> In zfs, instead of creating a
> filesystem-that-is-accessible-as-a-directory, you can create a zvol
> which behaves just like any other standard block device (e.g. you can
> use it as swap, or create ext4 filesystem on top of it). But it would
> also have most of the benefits that a normal zfs filesystem has, like:
> - thin provisioning (sparse allocation, snapshot & clone)
> - compression
> - integrity check (via checksum)
>
> Typical use cases would be:
> - swap in a pure-zfs system
> - virtualization (xen, kvm, etc)
> - NAS which exports the block device using iscsi/AoE
>
> AFAIK no such feature exist in btrfs yet.
Sounds like the RADOS block device stuff for Ceph.
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 10:30 ` Martin Steigerwald
@ 2013-02-27 2:23 ` Fajar A. Nugraha
2013-02-27 4:05 ` Roman Mamedov
0 siblings, 1 reply; 22+ messages in thread
From: Fajar A. Nugraha @ 2013-02-27 2:23 UTC (permalink / raw)
To: Martin Steigerwald; +Cc: linux-btrfs, Mike Fleetwood, Suman C
On Tue, Feb 26, 2013 at 9:30 PM, Martin Steigerwald <Martin@lichtvoll.de> wrote:
> Am Dienstag, 26. Februar 2013 schrieb Fajar A. Nugraha:
>> On Tue, Feb 26, 2013 at 11:59 AM, Mike Fleetwood
>>
>> <mike.fleetwood@googlemail.com> wrote:
>> > On 25 February 2013 23:35, Suman C <schakrava@gmail.com> wrote:
>> >> Hi,
>> >>
>> >> I think it would be great if there is a lvm volume or zfs zvol type
>> >> support in btrfs.
>> >
>> > Btrfs already has capabilities to add and remove block devices on the
>> > fly. Data can be stripped or mirrored or both. Raid 5/6 is in
>> > testing at the moment.
>> > https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devic
>> > es https://btrfs.wiki.kernel.org/index.php/UseCases#RAID
>> >
>> > Which specific features do you think btrfs is lacking?
>>
>> I think he's talking about zvol-like feature.
>>
>> In zfs, instead of creating a
>> filesystem-that-is-accessible-as-a-directory, you can create a zvol
>> which behaves just like any other standard block device (e.g. you can
>> use it as swap, or create ext4 filesystem on top of it). But it would
>> also have most of the benefits that a normal zfs filesystem has, like:
>> - thin provisioning (sparse allocation, snapshot & clone)
>> - compression
>> - integrity check (via checksum)
>>
>> Typical use cases would be:
>> - swap in a pure-zfs system
>> - virtualization (xen, kvm, etc)
>> - NAS which exports the block device using iscsi/AoE
>>
>> AFAIK no such feature exist in btrfs yet.
>
> Sounds like the RADOS block device stuff for Ceph.
Exactly.
While using files + loopback device mostly works, there were problems
regarding performance and data integrity. Not to mention the hassle in
accessing the data if it resides on a partition inside the file (e.g.
you need losetup + kpartx to access it, and you must remember to do
the reverse when you're finished with it).
In zfsonlinux it's very easy to do so since a zvol is treated pretty
much like a disk, and whenever there's a partition inside a zvol, a
coressponding device noed is also created automatically.
--
Fajar
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 2:23 ` Fajar A. Nugraha
@ 2013-02-27 4:05 ` Roman Mamedov
2013-02-27 8:42 ` Martin Steigerwald
2013-02-27 8:50 ` Alex Elsayed
0 siblings, 2 replies; 22+ messages in thread
From: Roman Mamedov @ 2013-02-27 4:05 UTC (permalink / raw)
To: Fajar A. Nugraha; +Cc: Martin Steigerwald, linux-btrfs, Mike Fleetwood, Suman C
[-- Attachment #1: Type: text/plain, Size: 972 bytes --]
On Wed, 27 Feb 2013 13:23:23 +1100
"Fajar A. Nugraha" <list@fajar.net> wrote:
> Not to mention the hassle in accessing the data if it resides on a
> partition inside the file (e.g. you need losetup + kpartx to access it,
> and you must remember to do the reverse when you're finished with it).
>
> In zfsonlinux it's very easy to do so since a zvol is treated pretty
> much like a disk, and whenever there's a partition inside a zvol, a
> coressponding device noed is also created automatically.
So I'd say what you (we) need is a generic Linux kernel framework that would
allow treating any regular file pretty much like a disk. Not some
filesystem-specific block device emulation kludge.
Btw some years ago there was a patchset adding proper automatic partition
support to 'loop'; but it seems like that went nowhere, and I have no idea why
something this useful did not end up being added into the mainline kernel.
--
With respect,
Roman
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 4:05 ` Roman Mamedov
@ 2013-02-27 8:42 ` Martin Steigerwald
2013-02-27 9:17 ` Roman Mamedov
2013-02-27 8:50 ` Alex Elsayed
1 sibling, 1 reply; 22+ messages in thread
From: Martin Steigerwald @ 2013-02-27 8:42 UTC (permalink / raw)
To: Roman Mamedov; +Cc: Fajar A. Nugraha, linux-btrfs, Mike Fleetwood, Suman C
Am Mittwoch, 27. Februar 2013 schrieb Roman Mamedov:
> On Wed, 27 Feb 2013 13:23:23 +1100
>
> "Fajar A. Nugraha" <list@fajar.net> wrote:
> > Not to mention the hassle in accessing the data if it resides on a
> > partition inside the file (e.g. you need losetup + kpartx to access it,
> > and you must remember to do the reverse when you're finished with it).
> >
> >
> >
> > In zfsonlinux it's very easy to do so since a zvol is treated pretty
> > much like a disk, and whenever there's a partition inside a zvol, a
> > coressponding device noed is also created automatically.
>
> So I'd say what you (we) need is a generic Linux kernel framework that
> would allow treating any regular file pretty much like a disk. Not some
> filesystem-specific block device emulation kludge.
>
> Btw some years ago there was a patchset adding proper automatic partition
> support to 'loop'; but it seems like that went nowhere, and I have no
> idea why something this useful did not end up being added into the
> mainline kernel.
Are you sure about the partition support? I thought something related to
loop partition support has gone into some not so recent kernel.
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 4:05 ` Roman Mamedov
2013-02-27 8:42 ` Martin Steigerwald
@ 2013-02-27 8:50 ` Alex Elsayed
2013-02-27 9:57 ` Alex Elsayed
1 sibling, 1 reply; 22+ messages in thread
From: Alex Elsayed @ 2013-02-27 8:50 UTC (permalink / raw)
To: linux-btrfs
Roman Mamedov wrote:
> On Wed, 27 Feb 2013 13:23:23 +1100
> "Fajar A. Nugraha" <list@fajar.net> wrote:
>
>> Not to mention the hassle in accessing the data if it resides on a
>> partition inside the file (e.g. you need losetup + kpartx to access it,
>> and you must remember to do the reverse when you're finished with it).
>
>>
>> In zfsonlinux it's very easy to do so since a zvol is treated pretty
>> much like a disk, and whenever there's a partition inside a zvol, a
>> coressponding device noed is also created automatically.
>
> So I'd say what you (we) need is a generic Linux kernel framework that
> would allow treating any regular file pretty much like a disk. Not some
> filesystem-specific block device emulation kludge.
>
> Btw some years ago there was a patchset adding proper automatic partition
> support to 'loop'; but it seems like that went nowhere, and I have no idea
> why something this useful did not end up being added into the mainline
> kernel.
>
I mentioned it in another branch of the thread, but the SCSI Target stack
*does* this. If you use the FILEIO backend and the 'loopback' transport, you
get a file that is visible to the local system as Just Another SCSI Disk.
There are patches on the scsi target list to add UNMAP and WRITE SAME
w/UNMAP=1 support to the FILEIO backend, at which point it will do
FL_PUNCH_HOLE operations appropriately.
The commands are:
---cut---
# $IDX = a preferably-unique index
# $NAME = a useful name for humans
# $IMGFILE = a disk image
# $SIZE = the size of $IMGFILE in bytes
# $UUID = a random v4 UUID
# ${NAA[x]} = a valid naa WWN, targetcli generates this as
# "naa.6001405" + the first 10 digits of a random v4 UUID
# (not the same uuid as $UUID). When x varies, it's a different
# WWN, since more than one gets used.
# Load the scsi target core and backends
modprobe target_core_mod
# Tell it where the file is and how big it is
tcm_node --establishdev "fileio_$IDX/$NAME" \
"fd_dev_name=$IMGFILE,fd_dev_size=$SIZE"
# Give it a unique serial
tcm_node --setunitserialwithmd fileio_$IDX/$NAME $UUID
# Load the local scsi frontend transport
modprobe tcm_loop
mkdir -p /sys/kernel/config/target/loopback
# Some setup so you have a place to put LUNs
mkdir -p /sys/kernel/config/target/loopback/${NAA[1]}/tpgt_1
echo ${NAA[2]} > /sys/kernel/config/target/loopback/${NAA[1]}/tpgt_1/nexus
# Create a fresh LUN...
mkdir -p /sys/kernel/config/target/loopback/${NAA[1]}/tpgt_1/lun/lun_$IDX
# ...and map the file to it.
ln -s /sys/kernel/config/target/core/fileio_$IDX/$NAME \
/sys/kernel/config/target/loopback/${NAA[1]}/tpgt_1/lun/lun_$IDX
---cut---
This could be pretty easily put into a shell script that uses du -b and
manually pokes configfs instead of calling tcm_node, and it'd be able to run
without any nonstandard userspace dependencies.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 8:42 ` Martin Steigerwald
@ 2013-02-27 9:17 ` Roman Mamedov
0 siblings, 0 replies; 22+ messages in thread
From: Roman Mamedov @ 2013-02-27 9:17 UTC (permalink / raw)
To: Martin Steigerwald; +Cc: Fajar A. Nugraha, linux-btrfs, Mike Fleetwood, Suman C
[-- Attachment #1: Type: text/plain, Size: 843 bytes --]
On Wed, 27 Feb 2013 09:42:02 +0100
Martin Steigerwald <Martin@lichtvoll.de> wrote:
> Are you sure about the partition support? I thought something related to
> loop partition support has gone into some not so recent kernel.
Sorry, you are correct, this was in fact added since 2.6.26.
Just tried out making a partitioned loop device:
dd if=/dev/zero of=100GB bs=1 count=1 seek=100G
modprobe loop max_part=8
losetup /dev/loop7 100GB
cfdisk /dev/loop7
[ made two partitions, commit, quit cfdisk ]
[ ...but partitions did not automatically appear as /dev/loop7pX ]
blockdev --rereadpt /dev/loop7
[ OK, now here they are: ]
$ ls -la /dev/loop7p?
brw-rw---T 1 root disk 7, 113 Feb 27 15:10 /dev/loop7p1
brw-rw---T 1 root disk 7, 114 Feb 27 15:10 /dev/loop7p2
--
With respect,
Roman
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 8:50 ` Alex Elsayed
@ 2013-02-27 9:57 ` Alex Elsayed
2013-02-27 10:12 ` Alex Elsayed
2013-03-02 6:24 ` Marcus Sorensen
0 siblings, 2 replies; 22+ messages in thread
From: Alex Elsayed @ 2013-02-27 9:57 UTC (permalink / raw)
To: linux-btrfs
Alex Elsayed wrote:
> Roman Mamedov wrote:
>
>> On Wed, 27 Feb 2013 13:23:23 +1100
>> "Fajar A. Nugraha" <list@fajar.net> wrote:
<snip>
> This could be pretty easily put into a shell script that uses du -b and
> manually pokes configfs instead of calling tcm_node, and it'd be able to
> run without any nonstandard userspace dependencies.
Just for fun, I decided to put my money where my mouth is and implement
a quick scsi-target-losetup that actually worked, both for creation and
deletion. Here it is:
---cut---
#!/bin/bash
gen_naa() {
local UUID="$( uuidgen -r )"
UUID="${UUID//-/}"
UUID="${UUID:0:9}"
echo "naa.6001405${UUID}"
}
setup() {
local FILE
local INPUT_NAME
local NAME
local BACKEND_IDX
local TRANSPORT_IDX
declare -a NAA
FILE="${1}"
INPUT_NAME="${2}"
NAME="${INPUT_NAME//\//_}"
BACKEND_IDX='-1'
TRANSPORT_IDX='-1'
if [[ $UID -ne 0 ]]; then
echo "You must be root in order to set up a lioloop device" >&2
exit 1
fi
if [[ "${NAME}" != "${INPUT_NAME}" ]]; then
echo "The chosen name '${INPUT_NAME}' contained slashes, using '${NAME}' instead" >&2
fi
declare SIZE="$(du -b "${FILE}")"
SIZE="${SIZE/[^0123456789]*}"
# Load the scsi target core and backends
modprobe target_core_mod >/dev/null 2>&1
while BACKEND_IDX=$((BACKEND_IDX + 1)); do
if [[ -d "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}" ]]; then
echo "A backstore with the name '${NAME}' already exists" >&2
exit 1
elif ! [[ -d /sys/kernel/config/target/core/fileio_${BACKEND_IDX} ]]; then
# mkdir -p "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}"
# Tell it where the file is and how big it is
tcm_node --establishdev "fileio_${BACKEND_IDX}/${NAME}" \
"fd_dev_name=${FILE},fd_dev_size=${SIZE}"
# Give it a unique serial
tcm_node --setunitserialwithmd "fileio_${BACKEND_IDX}/${NAME}" "$(uuidgen -r)"
break
fi
done
# Load the local scsi frontend transport
modprobe tcm_loop >/dev/null 2>&1
mkdir -p /sys/kernel/config/target/loopback
NAA=( "$(gen_naa)" "$(gen_naa)" )
# Some setup so you have a place to put LUNs
mkdir -p "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1"
echo "${NAA[1]}" > "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/nexus"
# Create a fresh LUN...
while TRANSPORT_IDX=$((TRANSPORT_IDX + 1)); do
if ! [[ -d "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}" ]]; then
mkdir -p "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}"
# ...and map the file to it.
ln -s "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}" \
"/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}"
break
fi
done
}
teardown() {
local INPUT_NAME="${1}"
local NAME="${INPUT_NAME//\//_}"
if [[ $UID -ne 0 ]]; then
echo "You must be root in order to tear down a lioloop device" >&2
exit 1
fi
if [[ "${NAME}" != "${INPUT_NAME}" ]]; then
echo "The chosen name '${INPUT_NAME}' contained slashes, using '${NAME}' instead" >&2
fi
local FOUND=''
for LUN in /sys/kernel/config/target/loopback/*/tpgt_1/lun/lun_*; do
if [[ -L "${LUN}/${NAME}" ]]; then
rm -f "${LUN}/${NAME}"
FOUND=1
fi
done
if [[ -z "${FOUND}" ]]; then
echo "No lioloop with the name '${NAME}' was found" >&2
return
fi
for BACKSTORE in /sys/kernel/config/target/core/fileio_*; do
if [[ -d "${BACKSTORE}/${NAME}" ]]; then
rmdir "${BACKSTORE}/${NAME}"
fi
done
}
if [[ "$1" == '-d' ]]; then
shift;
for name in "$@"; do
teardown "${name}"
done
else
setup "$@"
fi
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 9:57 ` Alex Elsayed
@ 2013-02-27 10:12 ` Alex Elsayed
2013-04-08 12:01 ` David Sterba
2013-03-02 6:24 ` Marcus Sorensen
1 sibling, 1 reply; 22+ messages in thread
From: Alex Elsayed @ 2013-02-27 10:12 UTC (permalink / raw)
To: linux-btrfs
Alex Elsayed wrote:
...and a second version, because I forgot to actually remove the calls to
tcm_node in favor of poking configfs like I said.
---cut---
#!/bin/bash
gen_naa() {
local UUID="$( uuidgen -r )"
UUID="${UUID//-/}"
UUID="${UUID:0:9}"
echo "naa.6001405${UUID}"
}
setup() {
local FILE
local INPUT_NAME
local NAME
local BACKEND_IDX
local TRANSPORT_IDX
declare -a NAA
FILE="${1}"
INPUT_NAME="${2}"
NAME="${INPUT_NAME//\//_}"
BACKEND_IDX='-1'
TRANSPORT_IDX='-1'
if [[ $UID -ne 0 ]]; then
echo "You must be root in order to set up a lioloop device" >&2
exit 1
fi
if [[ "${NAME}" != "${INPUT_NAME}" ]]; then
echo "The chosen name '${INPUT_NAME}' contained slashes, using '${NAME}' instead" >&2
fi
declare SIZE="$(du -b "${FILE}")"
SIZE="${SIZE/[^0123456789]*}"
# Load the scsi target core and backends
modprobe target_core_mod >/dev/null 2>&1
while BACKEND_IDX=$((BACKEND_IDX + 1)); do
if [[ -d "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}" ]]; then
echo "A backstore with the name '${NAME}' already exists" >&2
exit 1
elif ! [[ -d /sys/kernel/config/target/core/fileio_${BACKEND_IDX} ]]; then
# Create the backstore
mkdir -p "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}"
# Tell it where the file is and how big it is
echo "fd_dev_name=${FILE},fd_dev_size=${SIZE}" > \
"/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}/control"
# Turn it on
echo 1 > "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}/enable"
# Give it a unique serial
echo "$(uuidgen -r)" > "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}/wwn/vpd_unit_serial"
break
fi
done
# Load the local scsi frontend transport
modprobe tcm_loop >/dev/null 2>&1
mkdir -p /sys/kernel/config/target/loopback
NAA=( "$(gen_naa)" "$(gen_naa)" )
# Some setup so you have a place to put LUNs
mkdir -p "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1"
echo "${NAA[1]}" > "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/nexus"
# Create a fresh LUN...
while TRANSPORT_IDX=$((TRANSPORT_IDX + 1)); do
if ! [[ -d "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}" ]]; then
mkdir -p "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}"
# ...and map the file to it.
ln -s "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}" \
"/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}"
break
fi
done
}
teardown() {
local INPUT_NAME="${1}"
local NAME="${INPUT_NAME//\//_}"
if [[ $UID -ne 0 ]]; then
echo "You must be root in order to tear down a lioloop device" >&2
exit 1
fi
if [[ "${NAME}" != "${INPUT_NAME}" ]]; then
echo "The chosen name '${INPUT_NAME}' contained slashes, using '${NAME}' instead" >&2
fi
local FOUND=''
for LUN in /sys/kernel/config/target/loopback/*/tpgt_1/lun/lun_*; do
if [[ -L "${LUN}/${NAME}" ]]; then
rm -f "${LUN}/${NAME}"
FOUND=1
fi
done
if [[ -z "${FOUND}" ]]; then
echo "No lioloop with the name '${NAME}' was found" >&2
return
fi
for BACKSTORE in /sys/kernel/config/target/core/fileio_*; do
if [[ -d "${BACKSTORE}/${NAME}" ]]; then
rmdir "${BACKSTORE}/${NAME}"
fi
done
}
if [[ "$1" == '-d' ]]; then
shift;
for name in "$@"; do
teardown "${name}"
done
else
setup "$@"
fi
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 9:57 ` Alex Elsayed
2013-02-27 10:12 ` Alex Elsayed
@ 2013-03-02 6:24 ` Marcus Sorensen
1 sibling, 0 replies; 22+ messages in thread
From: Marcus Sorensen @ 2013-03-02 6:24 UTC (permalink / raw)
To: Alex Elsayed; +Cc: linux-btrfs
That's great, but the issue is that usually the block device version
performs better than just creating a file and using it as a raw image
or loop device. Creating a file, then running it through a SCSI target
seems like it's going in the opposite direction.
On Wed, Feb 27, 2013 at 2:57 AM, Alex Elsayed <eternaleye@gmail.com> wrote:
> Alex Elsayed wrote:
>
>> Roman Mamedov wrote:
>>
>>> On Wed, 27 Feb 2013 13:23:23 +1100
>>> "Fajar A. Nugraha" <list@fajar.net> wrote:
>
> <snip>
>
>> This could be pretty easily put into a shell script that uses du -b and
>> manually pokes configfs instead of calling tcm_node, and it'd be able to
>> run without any nonstandard userspace dependencies.
>
> Just for fun, I decided to put my money where my mouth is and implement
> a quick scsi-target-losetup that actually worked, both for creation and
> deletion. Here it is:
>
> ---cut---
>
> #!/bin/bash
>
> gen_naa() {
> local UUID="$( uuidgen -r )"
> UUID="${UUID//-/}"
> UUID="${UUID:0:9}"
> echo "naa.6001405${UUID}"
> }
>
> setup() {
> local FILE
> local INPUT_NAME
> local NAME
> local BACKEND_IDX
> local TRANSPORT_IDX
> declare -a NAA
> FILE="${1}"
> INPUT_NAME="${2}"
> NAME="${INPUT_NAME//\//_}"
> BACKEND_IDX='-1'
> TRANSPORT_IDX='-1'
>
> if [[ $UID -ne 0 ]]; then
> echo "You must be root in order to set up a lioloop device" >&2
> exit 1
> fi
>
> if [[ "${NAME}" != "${INPUT_NAME}" ]]; then
> echo "The chosen name '${INPUT_NAME}' contained slashes, using '${NAME}' instead" >&2
> fi
>
> declare SIZE="$(du -b "${FILE}")"
> SIZE="${SIZE/[^0123456789]*}"
>
> # Load the scsi target core and backends
> modprobe target_core_mod >/dev/null 2>&1
>
> while BACKEND_IDX=$((BACKEND_IDX + 1)); do
> if [[ -d "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}" ]]; then
> echo "A backstore with the name '${NAME}' already exists" >&2
> exit 1
> elif ! [[ -d /sys/kernel/config/target/core/fileio_${BACKEND_IDX} ]]; then
> # mkdir -p "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}"
> # Tell it where the file is and how big it is
> tcm_node --establishdev "fileio_${BACKEND_IDX}/${NAME}" \
> "fd_dev_name=${FILE},fd_dev_size=${SIZE}"
> # Give it a unique serial
> tcm_node --setunitserialwithmd "fileio_${BACKEND_IDX}/${NAME}" "$(uuidgen -r)"
> break
> fi
> done
>
> # Load the local scsi frontend transport
> modprobe tcm_loop >/dev/null 2>&1
> mkdir -p /sys/kernel/config/target/loopback
>
> NAA=( "$(gen_naa)" "$(gen_naa)" )
> # Some setup so you have a place to put LUNs
> mkdir -p "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1"
> echo "${NAA[1]}" > "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/nexus"
>
> # Create a fresh LUN...
> while TRANSPORT_IDX=$((TRANSPORT_IDX + 1)); do
> if ! [[ -d "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}" ]]; then
> mkdir -p "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}"
> # ...and map the file to it.
> ln -s "/sys/kernel/config/target/core/fileio_${BACKEND_IDX}/${NAME}" \
> "/sys/kernel/config/target/loopback/${NAA[0]}/tpgt_1/lun/lun_${TRANSPORT_IDX}"
> break
> fi
> done
> }
>
> teardown() {
> local INPUT_NAME="${1}"
> local NAME="${INPUT_NAME//\//_}"
>
> if [[ $UID -ne 0 ]]; then
> echo "You must be root in order to tear down a lioloop device" >&2
> exit 1
> fi
>
> if [[ "${NAME}" != "${INPUT_NAME}" ]]; then
> echo "The chosen name '${INPUT_NAME}' contained slashes, using '${NAME}' instead" >&2
> fi
>
> local FOUND=''
> for LUN in /sys/kernel/config/target/loopback/*/tpgt_1/lun/lun_*; do
> if [[ -L "${LUN}/${NAME}" ]]; then
> rm -f "${LUN}/${NAME}"
> FOUND=1
> fi
> done
>
> if [[ -z "${FOUND}" ]]; then
> echo "No lioloop with the name '${NAME}' was found" >&2
> return
> fi
>
> for BACKSTORE in /sys/kernel/config/target/core/fileio_*; do
> if [[ -d "${BACKSTORE}/${NAME}" ]]; then
> rmdir "${BACKSTORE}/${NAME}"
> fi
> done
> }
>
> if [[ "$1" == '-d' ]]; then
> shift;
> for name in "$@"; do
> teardown "${name}"
> done
> else
> setup "$@"
> fi
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-27 10:12 ` Alex Elsayed
@ 2013-04-08 12:01 ` David Sterba
2013-04-11 12:29 ` David Sterba
0 siblings, 1 reply; 22+ messages in thread
From: David Sterba @ 2013-04-08 12:01 UTC (permalink / raw)
To: Alex Elsayed; +Cc: linux-btrfs
Hi,
On Wed, Feb 27, 2013 at 02:12:56AM -0800, Alex Elsayed wrote:
> Alex Elsayed wrote:
>
> ...and a second version, because I forgot to actually remove the calls to
> tcm_node in favor of poking configfs like I said.
I'd like to use your script to setup scsi devices for testing, however
I've encountered 2 things did not work with the scsi emulation.
Setup:
There's a 10G file image created by dd and exported via your script as
/dev/sdl.
$ df -h
/dev/sdl 10G 312K 8.0G 1% /mnt/sdl
mkfs is ok, mount is ok.
Testing:
$ cat /dev/zero > file
^C
problem 1: size of 'file' was 77 GB
problem 2: umount was fine, remounted again and now size of 'file' is 0
Both of them look quite serious to me :)
david
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-04-08 12:01 ` David Sterba
@ 2013-04-11 12:29 ` David Sterba
0 siblings, 0 replies; 22+ messages in thread
From: David Sterba @ 2013-04-11 12:29 UTC (permalink / raw)
To: dsterba, Alex Elsayed, linux-btrfs
On Mon, Apr 08, 2013 at 02:01:09PM +0200, David Sterba wrote:
> problem 1: size of 'file' was 77 GB
> problem 2: umount was fine, remounted again and now size of 'file' is 0
Works fine with a recent kernel (3.9).
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: lvm volume like support
2013-02-26 6:25 ` Suman C
2013-02-26 6:28 ` Remco Hosman - Yerf IT
@ 2013-04-19 18:13 ` Andy Grover
1 sibling, 0 replies; 22+ messages in thread
From: Andy Grover @ 2013-04-19 18:13 UTC (permalink / raw)
To: Suman C; +Cc: Roman Mamedov, Fajar A. Nugraha, Mike Fleetwood, linux-btrfs
On 02/25/2013 10:25 PM, Suman C wrote:
> Thanks for the sparse file idea, I am actually using that solution
> already. I am not sure if its the best way, however.
(Sorry to respond to such an old thread.)
Hi Suman,
I think zvol-like functionality would be very nice for btrfs to have. It
would be more natural to manage btrvols than looped-back files I think,
and removing those sw layers may also increase performance, but who
knows by how much. It would let btrfs really act as "just" the LVM, if
desired.
Do we have any sense for how much work adding this would be?
Regards -- Andy
p.s. some interesting stuff on zvols
http://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2013-04-19 18:13 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-25 23:35 lvm volume like support Suman C
2013-02-26 0:59 ` Mike Fleetwood
2013-02-26 1:46 ` Fajar A. Nugraha
2013-02-26 5:35 ` Suman C
2013-02-26 5:48 ` Remco Hosman - Yerf-IT
2013-02-26 5:57 ` Roman Mamedov
2013-02-26 6:25 ` Suman C
2013-02-26 6:28 ` Remco Hosman - Yerf IT
2013-02-26 6:37 ` Alex Elsayed
2013-02-26 7:08 ` Dave Chinner
2013-04-19 18:13 ` Andy Grover
2013-02-26 10:30 ` Martin Steigerwald
2013-02-27 2:23 ` Fajar A. Nugraha
2013-02-27 4:05 ` Roman Mamedov
2013-02-27 8:42 ` Martin Steigerwald
2013-02-27 9:17 ` Roman Mamedov
2013-02-27 8:50 ` Alex Elsayed
2013-02-27 9:57 ` Alex Elsayed
2013-02-27 10:12 ` Alex Elsayed
2013-04-08 12:01 ` David Sterba
2013-04-11 12:29 ` David Sterba
2013-03-02 6:24 ` Marcus Sorensen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).