* How to remount btrfs without compression?
@ 2011-11-07 0:53 dima
2011-11-07 12:19 ` Martin Steigerwald
0 siblings, 1 reply; 19+ messages in thread
From: dima @ 2011-11-07 0:53 UTC (permalink / raw)
To: linux-btrfs
Hello,
Is there any possibility to remount a compressed btrfs without any
compression at all?
Syslinux bootloader does not understand any btrfs compression and
whenever I edit syslinux.cfg on my compressed / subvolume, the file
becomes compressed and thus unreadable by syslinux on the next boot.
I tried to remount / without the 'compress' option (and edit
syslinux.cfg in uncompressed state) and while the "mount" command would
not show compression any more, I can see in the /proc/mounts that
compression is still there and the file still gets compressed after
editing. But there seem to be no mount option like compress=none or
something.
The only workaround I found is to boot from a live CD mount / without
any compression and re-save syslinux.cfg. Then it the file gets
uncompressed.
Are there any other options except for this workaround to temporarily
remount btrfs without compression?
thanks
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-07 0:53 How to remount btrfs without compression? dima
@ 2011-11-07 12:19 ` Martin Steigerwald
2011-11-08 0:55 ` dima
0 siblings, 1 reply; 19+ messages in thread
From: Martin Steigerwald @ 2011-11-07 12:19 UTC (permalink / raw)
To: linux-btrfs
Am Montag, 7. November 2011 schrieb dima:
> Hello,
Hi Dima,
=20
> Is there any possibility to remount a compressed btrfs without any
> compression at all?
>=20
> Syslinux bootloader does not understand any btrfs compression and
> whenever I edit syslinux.cfg on my compressed / subvolume, the file
> becomes compressed and thus unreadable by syslinux on the next boot.
>=20
> I tried to remount / without the 'compress' option (and edit
> syslinux.cfg in uncompressed state) and while the "mount" command wou=
ld
> not show compression any more, I can see in the /proc/mounts that
> compression is still there and the file still gets compressed after
> editing. But there seem to be no mount option like compress=3Dnone or
> something.
>=20
> The only workaround I found is to boot from a live CD mount / without
> any compression and re-save syslinux.cfg. Then it the file gets
> uncompressed.
>=20
> Are there any other options except for this workaround to temporarily
> remount btrfs without compression?
What does lsattr show on the file? Have you tried chattr -c on the file=
? It=20
might help to do a btrfs filesystem defrag on the file to remove=20
compression, cause I don=C2=B4t think chattr -c itself will uncompress =
it.
As far as I understand it is possible to individually set compression=20
on/off on single files. Although the global thing should work as well I=
MHO=20
as least when the file is rewritten.
Ciao,
--=20
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
--
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] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-07 12:19 ` Martin Steigerwald
@ 2011-11-08 0:55 ` dima
2011-11-08 1:06 ` Eric Griffith
0 siblings, 1 reply; 19+ messages in thread
From: dima @ 2011-11-08 0:55 UTC (permalink / raw)
To: linux-btrfs
On 11/07/2011 09:19 PM, Martin Steigerwald wrote:
> Am Montag, 7. November 2011 schrieb dima:
>> Hello,
>
> Hi Dima,
>
>> Is there any possibility to remount a compressed btrfs without any
>> compression at all?
>>
>> Syslinux bootloader does not understand any btrfs compression and
>> whenever I edit syslinux.cfg on my compressed / subvolume, the file
>> becomes compressed and thus unreadable by syslinux on the next boot.
>>
>> I tried to remount / without the 'compress' option (and edit
>> syslinux.cfg in uncompressed state) and while the "mount" command wo=
uld
>> not show compression any more, I can see in the /proc/mounts that
>> compression is still there and the file still gets compressed after
>> editing. But there seem to be no mount option like compress=3Dnone o=
r
>> something.
>>
>> The only workaround I found is to boot from a live CD mount / withou=
t
>> any compression and re-save syslinux.cfg. Then it the file gets
>> uncompressed.
>>
>> Are there any other options except for this workaround to temporaril=
y
>> remount btrfs without compression?
>
> What does lsattr show on the file? Have you tried chattr -c on the fi=
le? It
> might help to do a btrfs filesystem defrag on the file to remove
> compression, cause I don=C2=B4t think chattr -c itself will uncompres=
s it.
Hi Martin,
Thanks for your reply.
Yes, I did check out lsattr. It shows that no flags are set. Setting=20
chattr +c then chattr -c and re-saving file has no effect either.
I also tried to defragment the file itself and the directory where it=20
was in without setting -c but it would not have any effect because / is=
=20
mounted with compression.
> As far as I understand it is possible to individually set compression
> on/off on single files.
Could not find how to turn it off though.
thanks
--
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] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 0:55 ` dima
@ 2011-11-08 1:06 ` Eric Griffith
2011-11-08 1:52 ` Fajar A. Nugraha
0 siblings, 1 reply; 19+ messages in thread
From: Eric Griffith @ 2011-11-08 1:06 UTC (permalink / raw)
To: dima; +Cc: linux-btrfs
On 11/7/2011 7:55 PM, dima wrote:
> On 11/07/2011 09:19 PM, Martin Steigerwald wrote:
>> Am Montag, 7. November 2011 schrieb dima:
>>> Hello,
>>
>> Hi Dima,
>>
>>> Is there any possibility to remount a compressed btrfs without any
>>> compression at all?
>>>
>>> Syslinux bootloader does not understand any btrfs compression and
>>> whenever I edit syslinux.cfg on my compressed / subvolume, the file
>>> becomes compressed and thus unreadable by syslinux on the next boot=
=2E
>>>
>>> I tried to remount / without the 'compress' option (and edit
>>> syslinux.cfg in uncompressed state) and while the "mount" command w=
ould
>>> not show compression any more, I can see in the /proc/mounts that
>>> compression is still there and the file still gets compressed after
>>> editing. But there seem to be no mount option like compress=3Dnone =
or
>>> something.
>>>
>>> The only workaround I found is to boot from a live CD mount / witho=
ut
>>> any compression and re-save syslinux.cfg. Then it the file gets
>>> uncompressed.
>>>
>>> Are there any other options except for this workaround to temporari=
ly
>>> remount btrfs without compression?
>>
>> What does lsattr show on the file? Have you tried chattr -c on the
>> file? It
>> might help to do a btrfs filesystem defrag on the file to remove
>> compression, cause I don=C2=B4t think chattr -c itself will uncompre=
ss it.
>
> Hi Martin,
> Thanks for your reply.
> Yes, I did check out lsattr. It shows that no flags are set. Setting
> chattr +c then chattr -c and re-saving file has no effect either.
>
> I also tried to defragment the file itself and the directory where it
> was in without setting -c but it would not have any effect because / =
is
> mounted with compression.
>
>> As far as I understand it is possible to individually set compressio=
n
>> on/off on single files.
>
> Could not find how to turn it off though.
>
> thanks
> --
> 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
Hey Dima, I know if you install a system without the compress flag=20
already done, you can force BTRFS to compress everything post-install b=
y=20
teling it to "rebalance" the filesystem. I'm under Win7 right now so I=20
dont know the exact command. Check btrfs --help for that.
I dont know if it works in reverse, but you can definitely try it. Edit=
=20
your fstab, remove the compress flag, reboot. Tell btrfs to rebalance=20
the system, reboot again. And I -THINK- that'll decompress all the file=
s
--
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] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 1:06 ` Eric Griffith
@ 2011-11-08 1:52 ` Fajar A. Nugraha
2011-11-08 1:54 ` Eric Griffith
0 siblings, 1 reply; 19+ messages in thread
From: Fajar A. Nugraha @ 2011-11-08 1:52 UTC (permalink / raw)
To: Eric Griffith; +Cc: dima, linux-btrfs
On Tue, Nov 8, 2011 at 8:06 AM, Eric Griffith <egriffith92@gmail.com> wrote:
> Edit your
> fstab, remove the compress flag, reboot. Tell btrfs to rebalance the system,
> reboot again. And I -THINK- that'll decompress all the files
I think the original question was how to force uncompressed mode,
whether specific to a file or to a whole filesystem, without having to
reboot :)
AFAIK there's no way to do that.
--
Fajar
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 1:52 ` Fajar A. Nugraha
@ 2011-11-08 1:54 ` Eric Griffith
2011-11-08 2:00 ` dima
0 siblings, 1 reply; 19+ messages in thread
From: Eric Griffith @ 2011-11-08 1:54 UTC (permalink / raw)
To: linux-btrfs
On 11/7/2011 8:52 PM, Fajar A. Nugraha wrote:
> On Tue, Nov 8, 2011 at 8:06 AM, Eric Griffith<egriffith92@gmail.com> wrote:
>> Edit your
>> fstab, remove the compress flag, reboot. Tell btrfs to rebalance the system,
>> reboot again. And I -THINK- that'll decompress all the files
>
> I think the original question was how to force uncompressed mode,
> whether specific to a file or to a whole filesystem, without having to
> reboot :)
>
> AFAIK there's no way to do that.
>
Whoops! Misunderstood the question haha. Yeah, as far as decompressing
just a single file; from what I've read, thats impossible.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 1:54 ` Eric Griffith
@ 2011-11-08 2:00 ` dima
2011-11-08 15:01 ` Chris Mason
0 siblings, 1 reply; 19+ messages in thread
From: dima @ 2011-11-08 2:00 UTC (permalink / raw)
To: linux-btrfs
On 11/08/2011 10:54 AM, Eric Griffith wrote:
> On 11/7/2011 8:52 PM, Fajar A. Nugraha wrote:
>> On Tue, Nov 8, 2011 at 8:06 AM, Eric Griffith<egriffith92@gmail.com>
>> wrote:
>>> Edit your
>>> fstab, remove the compress flag, reboot. Tell btrfs to rebalance the
>>> system,
>>> reboot again. And I -THINK- that'll decompress all the files
>>
>> I think the original question was how to force uncompressed mode,
>> whether specific to a file or to a whole filesystem, without having to
>> reboot :)
>>
>> AFAIK there's no way to do that.
>>
>
> Whoops! Misunderstood the question haha. Yeah, as far as decompressing
> just a single file; from what I've read, thats impossible.
Eric, Fajar,
Thanks. Understood.
Yes, it is possible to remove the compress flag from fstab, reboot and
even do not do any defragmentation/rebalancing - just re-save the file
and it will be saved uncompressed. This works. But only with reboot...
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 2:00 ` dima
@ 2011-11-08 15:01 ` Chris Mason
2011-11-08 15:12 ` Chris Mason
0 siblings, 1 reply; 19+ messages in thread
From: Chris Mason @ 2011-11-08 15:01 UTC (permalink / raw)
To: dima; +Cc: linux-btrfs
On Tue, Nov 08, 2011 at 11:00:42AM +0900, dima wrote:
> On 11/08/2011 10:54 AM, Eric Griffith wrote:
> >On 11/7/2011 8:52 PM, Fajar A. Nugraha wrote:
> >>On Tue, Nov 8, 2011 at 8:06 AM, Eric Griffith<egriffith92@gmail.com>
> >>wrote:
> >>>Edit your
> >>>fstab, remove the compress flag, reboot. Tell btrfs to rebalance the
> >>>system,
> >>>reboot again. And I -THINK- that'll decompress all the files
> >>
> >>I think the original question was how to force uncompressed mode,
> >>whether specific to a file or to a whole filesystem, without having to
> >>reboot :)
> >>
> >>AFAIK there's no way to do that.
> >>
> >
> >Whoops! Misunderstood the question haha. Yeah, as far as decompressing
> >just a single file; from what I've read, thats impossible.
>
>
> Eric, Fajar,
> Thanks. Understood.
>
> Yes, it is possible to remove the compress flag from fstab, reboot
> and even do not do any defragmentation/rebalancing - just re-save
> the file and it will be saved uncompressed. This works. But only
> with reboot...
chattr -c on the file should work (followed by defrag or rewriting the
file). I just retested and it seems to be broken right now.
I'll track it down.
-chris
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 15:01 ` Chris Mason
@ 2011-11-08 15:12 ` Chris Mason
2011-11-09 1:01 ` dima
0 siblings, 1 reply; 19+ messages in thread
From: Chris Mason @ 2011-11-08 15:12 UTC (permalink / raw)
To: dima; +Cc: linux-btrfs
On Tue, Nov 08, 2011 at 10:01:51AM -0500, Chris Mason wrote:
> On Tue, Nov 08, 2011 at 11:00:42AM +0900, dima wrote:
> > On 11/08/2011 10:54 AM, Eric Griffith wrote:
> > >On 11/7/2011 8:52 PM, Fajar A. Nugraha wrote:
> > >>On Tue, Nov 8, 2011 at 8:06 AM, Eric Griffith<egriffith92@gmail.com>
> > >>wrote:
> > >>>Edit your
> > >>>fstab, remove the compress flag, reboot. Tell btrfs to rebalance the
> > >>>system,
> > >>>reboot again. And I -THINK- that'll decompress all the files
> > >>
> > >>I think the original question was how to force uncompressed mode,
> > >>whether specific to a file or to a whole filesystem, without having to
> > >>reboot :)
> > >>
> > >>AFAIK there's no way to do that.
> > >>
> > >
> > >Whoops! Misunderstood the question haha. Yeah, as far as decompressing
> > >just a single file; from what I've read, thats impossible.
> >
> >
> > Eric, Fajar,
> > Thanks. Understood.
> >
> > Yes, it is possible to remove the compress flag from fstab, reboot
> > and even do not do any defragmentation/rebalancing - just re-save
> > the file and it will be saved uncompressed. This works. But only
> > with reboot...
>
> chattr -c on the file should work (followed by defrag or rewriting the
> file). I just retested and it seems to be broken right now.
>
> I'll track it down.
Ok, I had forgotten. chattr -c clears the compression flag bug doesn't
set the no compress flag. We looks like we need to patch chattr for
this.
-chris
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-08 15:12 ` Chris Mason
@ 2011-11-09 1:01 ` dima
2011-11-09 7:48 ` Lubos Kolouch
2011-11-10 0:11 ` David Sterba
0 siblings, 2 replies; 19+ messages in thread
From: dima @ 2011-11-09 1:01 UTC (permalink / raw)
To: linux-btrfs
On 11/09/2011 12:12 AM, Chris Mason wrote:
> On Tue, Nov 08, 2011 at 10:01:51AM -0500, Chris Mason wrote:
>> On Tue, Nov 08, 2011 at 11:00:42AM +0900, dima wrote:
>>> On 11/08/2011 10:54 AM, Eric Griffith wrote:
>>>> On 11/7/2011 8:52 PM, Fajar A. Nugraha wrote:
>>>>> On Tue, Nov 8, 2011 at 8:06 AM, Eric Griffith<egriffith92@gmail.com>
>>>>> wrote:
>>>>>> Edit your
>>>>>> fstab, remove the compress flag, reboot. Tell btrfs to rebalance the
>>>>>> system,
>>>>>> reboot again. And I -THINK- that'll decompress all the files
>>>>>
>>>>> I think the original question was how to force uncompressed mode,
>>>>> whether specific to a file or to a whole filesystem, without having to
>>>>> reboot :)
>>>>>
>>>>> AFAIK there's no way to do that.
>>>>>
>>>>
>>>> Whoops! Misunderstood the question haha. Yeah, as far as decompressing
>>>> just a single file; from what I've read, thats impossible.
>>>
>>>
>>> Eric, Fajar,
>>> Thanks. Understood.
>>>
>>> Yes, it is possible to remove the compress flag from fstab, reboot
>>> and even do not do any defragmentation/rebalancing - just re-save
>>> the file and it will be saved uncompressed. This works. But only
>>> with reboot...
>>
>> chattr -c on the file should work (followed by defrag or rewriting the
>> file). I just retested and it seems to be broken right now.
>>
>> I'll track it down.
>
> Ok, I had forgotten. chattr -c clears the compression flag bug doesn't
> set the no compress flag. We looks like we need to patch chattr for
> this.
>
> -chris
>
Just for the record - I could find a solution thanks to the btrfs wiki
being online again. In Gotchas it says
mount -o nodatacow also disables compression
and indeed it does. Remounting with this option and re-saving the file
makes it uncompressed. However, I could not find how to remount the
filesystem afterwards without nodatacow.
~dima
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-09 1:01 ` dima
@ 2011-11-09 7:48 ` Lubos Kolouch
2011-11-09 8:03 ` Dmitry Olenin
2011-11-09 8:04 ` Fajar A. Nugraha
2011-11-10 0:11 ` David Sterba
1 sibling, 2 replies; 19+ messages in thread
From: Lubos Kolouch @ 2011-11-09 7:48 UTC (permalink / raw)
To: linux-btrfs
dima, Wed, 09 Nov 2011 10:01:13 +0900:
> On 11/09/2011 12:12 AM, Chris Mason wrote:
>> On Tue, Nov 08, 2011 at 10:01:51AM -0500, Chris Mason wrote:
>>> On Tue, Nov 08, 2011 at 11:00:42AM +0900, dima wrote:
>>>> On 11/08/2011 10:54 AM, Eric Griffith wrote:
>>>>> On 11/7/2011 8:52 PM, Fajar A. Nugraha wrote:
>>>>>> On Tue, Nov 8, 2011 at 8:06 AM, Eric
>>>>>> Griffith<egriffith92@gmail.com> wrote:
>>>>>>> Edit your fstab, remove the compress flag, reboot. Tell btrfs to
>>>>>>> rebalance the system,
>>>>>>> reboot again. And I -THINK- that'll decompress all the files
>>>>>>
>>>>>> I think the original question was how to force uncompressed mode,
>>>>>> whether specific to a file or to a whole filesystem, without having
>>>>>> to reboot :)
>>>>>>
>>>>>> AFAIK there's no way to do that.
>>>>>>
>>>>>>
>>>>> Whoops! Misunderstood the question haha. Yeah, as far as
>>>>> decompressing just a single file; from what I've read, thats
>>>>> impossible.
>>>>
>>>>
>>>> Eric, Fajar,
>>>> Thanks. Understood.
>>>>
>>>> Yes, it is possible to remove the compress flag from fstab, reboot
>>>> and even do not do any defragmentation/rebalancing - just re-save the
>>>> file and it will be saved uncompressed. This works. But only with
>>>> reboot...
>>>
>>> chattr -c on the file should work (followed by defrag or rewriting the
>>> file). I just retested and it seems to be broken right now.
>>>
>>> I'll track it down.
>>
>> Ok, I had forgotten. chattr -c clears the compression flag bug doesn't
>> set the no compress flag. We looks like we need to patch chattr for
>> this.
>>
>> -chris
>>
>>
>
> Just for the record - I could find a solution thanks to the btrfs wiki
> being online again. In Gotchas it says
>
> mount -o nodatacow also disables compression
>
> and indeed it does. Remounting with this option and re-saving the file
> makes it uncompressed. However, I could not find how to remount the
> filesystem afterwards without nodatacow.
>
> ~dima
Sorry for possibly OT question - when I have historical btrfs system
mounted with zlib compression,
can I remount it with lzo ? What will happen? Will the COW be broken
and the files taking duplicate space? Or will the Universe explode and
be replaced with something even more bizzare?
Thank you
Lubos
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-09 7:48 ` Lubos Kolouch
@ 2011-11-09 8:03 ` Dmitry Olenin
2011-11-10 6:57 ` Lubos Kolouch
2011-11-09 8:04 ` Fajar A. Nugraha
1 sibling, 1 reply; 19+ messages in thread
From: Dmitry Olenin @ 2011-11-09 8:03 UTC (permalink / raw)
To: linux-btrfs
On 11/09/2011 04:48 PM, Lubos Kolouch wrote:
> Sorry for possibly OT question - when I have historical btrfs system
> mounted with zlib compression,
>
> can I remount it with lzo ? What will happen? Will the COW be broken
> and the files taking duplicate space? Or will the Universe explode and
> be replaced with something even more bizzare?
Hello Lubos
If you have a kernel that supports lzo (don't quite remember when it got
in), why can't you?
Absolutely nothing will happen, and only the new/updated files will be
with lzo compression. You can remount on the fly switching b/w the two
compression options without any problems.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-09 7:48 ` Lubos Kolouch
2011-11-09 8:03 ` Dmitry Olenin
@ 2011-11-09 8:04 ` Fajar A. Nugraha
2011-11-09 13:01 ` Chris Mason
1 sibling, 1 reply; 19+ messages in thread
From: Fajar A. Nugraha @ 2011-11-09 8:04 UTC (permalink / raw)
To: Lubos Kolouch; +Cc: linux-btrfs
On Wed, Nov 9, 2011 at 2:48 PM, Lubos Kolouch <lubos.kolouch@gmail.com> wrote:
> Sorry for possibly OT question - when I have historical btrfs system
> mounted with zlib compression,
>
> can I remount it with lzo ?
yes
> What will happen? Will the COW be broken
> and the files taking duplicate space? Or will the Universe explode and
> be replaced with something even more bizzare?
New written block/extents will use lzo compression (if it's
compressible, or if it's mounted with compress-force). Old, unmodified
block/extents will remain unchanged, using zlib or uncompressed.
--
Fajar
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-09 8:04 ` Fajar A. Nugraha
@ 2011-11-09 13:01 ` Chris Mason
0 siblings, 0 replies; 19+ messages in thread
From: Chris Mason @ 2011-11-09 13:01 UTC (permalink / raw)
To: Fajar A. Nugraha; +Cc: Lubos Kolouch, linux-btrfs
On Wed, Nov 09, 2011 at 03:04:01PM +0700, Fajar A. Nugraha wrote:
> On Wed, Nov 9, 2011 at 2:48 PM, Lubos Kolouch <lubos.kolouch@gmail.com> wrote:
> > Sorry for possibly OT question - when I have historical btrfs system
> > mounted with zlib compression,
> >
> > can I remount it with lzo ?
>
> yes
>
> > What will happen? Will the COW be broken
> > and the files taking duplicate space? Or will the Universe explode and
> > be replaced with something even more bizzare?
>
> New written block/extents will use lzo compression (if it's
> compressible, or if it's mounted with compress-force). Old, unmodified
> block/extents will remain unchanged, using zlib or uncompressed.
This is correct, your old stuff will be zlib and your new stuff lzo.
The compression type is recorded on a per-extent basis and the global
switch just decides what type of compression to use for new writes.
-chris
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-09 1:01 ` dima
2011-11-09 7:48 ` Lubos Kolouch
@ 2011-11-10 0:11 ` David Sterba
2011-11-10 2:23 ` dima
1 sibling, 1 reply; 19+ messages in thread
From: David Sterba @ 2011-11-10 0:11 UTC (permalink / raw)
To: dima; +Cc: linux-btrfs
[-- Attachment #1: Type: text/plain, Size: 2193 bytes --]
On Wed, Nov 09, 2011 at 10:01:13AM +0900, dima wrote:
> Just for the record - I could find a solution thanks to the btrfs wiki
> being online again. In Gotchas it says
>
> mount -o nodatacow also disables compression
>
> and indeed it does. Remounting with this option and re-saving the file
> makes it uncompressed. However, I could not find how to remount the
> filesystem afterwards without nodatacow.
I saw this mentioned on irc today (that nodatacow diasables
compression). There is a way how to turn off compression on a file --
with help of the NOCOW _file_ attribute, ie. you don't have to remount.
* create the file, compression enabled
* set NOCOW (with the attached single-purpose nocow.c utility)
* btrfs fi defrag the_file
Make sure you have enough free space for the uncompressed file size. You
can compare the extent layout before and after the defrag with
"filefrag -v" .
I did a test first, here's what I saw with a ~60M file (filled with
zeros, suitable for compression):
# filefrag -v zerofile2
Filesystem type is: 9123683e
File size of zerofile2 is 69927424 (17073 blocks, blocksize 4096)
ext logical physical expected length flags
0 0 2700 32
1 32 2942 2731 32
2 64 2943 2973 32
3 96 2944 2974 32
4 128 2945 2975 32
...
533 17039 2641 2671 32
534 17071 2643 2672 2 eof
zerofile2: 535 extents found
# btrfs fi defrag zerofile2
# filefrag -v zerofile2
Filesystem type is: 9123683e
File size of zerofile2 is 69927424 (17073 blocks, blocksize 4096)
ext logical physical expected length flags
0 0 20992 2107
1 2107 23552 23098 1581
2 3688 16400 25132 1185
3 4873 12410 17584 889
4 5762 14762 13298 667
5 6429 15881 15428 500
6 6929 17585 16380 751
7 7680 23099 18335 375
8 8055 25133 23473 376
9 8431 3072 25508 2160
10 10591 5632 5231 1620
11 12211 8192 7251 2431
12 14642 18432 10622 2431 eof
zerofile2: 13 extents found
david
[-- Attachment #2: nocow.c --]
[-- Type: text/plain, Size: 1220 bytes --]
#include <fcntl.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <string.h>
#include <linux/types.h>
#include <stdio.h>
#include <errno.h>
#ifndef FS_IOC_SETFLAGS
#define FS_IOC_SETFLAGS _IOW('f', 2, long)
#warning defining SETFLAGS locally
#endif
#ifndef FS_IOC_GETFLAGS
#define FS_IOC_GETFLAGS _IOR('f', 1, long)
#warning defining GETFLAGS locally
#endif
#ifndef FS_NOCOW_FL
#define FS_NOCOW_FL 0x00800000 /* Do not cow file */
#endif
int main(int argc, char **argv)
{
int fd;
int r;
long flags;
if (argc < 2) {
printf("usage: %s file\n", argv[0]);
exit(1);
}
fd = open(argv[1], O_RDONLY);
if (fd == -1) {
perror("open()");
return 1;
}
printf("GETFLAGS ioctl 0x%x\n", FS_IOC_GETFLAGS);
printf("SETFLAGS ioctl 0x%x\n", FS_IOC_SETFLAGS);
r = ioctl(fd, FS_IOC_GETFLAGS, &flags);
if (r == -1) {
perror("ioctl(GETFLAGS)");
return 1;
} else {
printf("file flags: 0x%lx\n", flags);
}
printf("Set NOCOW flag for %s\n", argv[1]);
flags |= FS_NOCOW_FL;
r = ioctl(fd, FS_IOC_SETFLAGS, &flags);
printf("ioctl returned: %d\n", r);
if (r == -1) {
perror("ioctl()");
return 1;
}
return 0;
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-10 0:11 ` David Sterba
@ 2011-11-10 2:23 ` dima
2011-11-11 13:29 ` dima
0 siblings, 1 reply; 19+ messages in thread
From: dima @ 2011-11-10 2:23 UTC (permalink / raw)
To: linux-btrfs
On 11/10/2011 09:11 AM, David Sterba wrote:
> On Wed, Nov 09, 2011 at 10:01:13AM +0900, dima wrote:
>> Just for the record - I could find a solution thanks to the btrfs wiki
>> being online again. In Gotchas it says
>>
>> mount -o nodatacow also disables compression
>>
>> and indeed it does. Remounting with this option and re-saving the file
>> makes it uncompressed. However, I could not find how to remount the
>> filesystem afterwards without nodatacow.
>
> I saw this mentioned on irc today (that nodatacow diasables
> compression). There is a way how to turn off compression on a file --
> with help of the NOCOW _file_ attribute, ie. you don't have to remount.
>
> * create the file, compression enabled
> * set NOCOW (with the attached single-purpose nocow.c utility)
> * btrfs fi defrag the_file
>
> Make sure you have enough free space for the uncompressed file size. You
> can compare the extent layout before and after the defrag with
> "filefrag -v" .
Hello David,
Thank you, I will try it out tonight. Is there any way to see if nocow
attribute was set on a particular file, and is there any way to unset it?
thanks
~dima
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-09 8:03 ` Dmitry Olenin
@ 2011-11-10 6:57 ` Lubos Kolouch
2011-11-10 7:04 ` Dmitry Olenin
0 siblings, 1 reply; 19+ messages in thread
From: Lubos Kolouch @ 2011-11-10 6:57 UTC (permalink / raw)
To: linux-btrfs
Dmitry Olenin, Wed, 09 Nov 2011 17:03:39 +0900:
> On 11/09/2011 04:48 PM, Lubos Kolouch wrote:
>> Sorry for possibly OT question - when I have historical btrfs system
>> mounted with zlib compression,
>>
>> can I remount it with lzo ? What will happen? Will the COW be broken
>> and the files taking duplicate space? Or will the Universe explode and
>> be replaced with something even more bizzare?
>
> Hello Lubos If you have a kernel that supports lzo (don't quite remember
> when it got in), why can't you?
> Absolutely nothing will happen, and only the new/updated files will be
> with lzo compression. You can remount on the fly switching b/w the two
> compression options without any problems.
Hello Dmitry,
By the way, this is interesting question to me - I mounted the filesystem
with -o compress=lzo, in dmesg showed btrfs: use lzo compression,
but - the lzo module was not loaded (not shown in lsmod - and yes, I have
it as a module).
When I do modprobe lzo, it shows there.
Isn't it a bit strange? So btrfs is using lzo module that was not loaded?
(and says so in the dmesg output)?
Thank you
Lubos
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-10 6:57 ` Lubos Kolouch
@ 2011-11-10 7:04 ` Dmitry Olenin
0 siblings, 0 replies; 19+ messages in thread
From: Dmitry Olenin @ 2011-11-10 7:04 UTC (permalink / raw)
To: linux-btrfs
On 11/10/2011 03:57 PM, Lubos Kolouch wrote:
> Dmitry Olenin, Wed, 09 Nov 2011 17:03:39 +0900:
>
>> On 11/09/2011 04:48 PM, Lubos Kolouch wrote:
>>> Sorry for possibly OT question - when I have historical btrfs system
>>> mounted with zlib compression,
>>>
>>> can I remount it with lzo ? What will happen? Will the COW be broken
>>> and the files taking duplicate space? Or will the Universe explode and
>>> be replaced with something even more bizzare?
>>
>> Hello Lubos If you have a kernel that supports lzo (don't quite remember
>> when it got in), why can't you?
>> Absolutely nothing will happen, and only the new/updated files will be
>> with lzo compression. You can remount on the fly switching b/w the two
>> compression options without any problems.
>
> Hello Dmitry,
>
> By the way, this is interesting question to me - I mounted the filesystem
> with -o compress=lzo, in dmesg showed btrfs: use lzo compression,
>
> but - the lzo module was not loaded (not shown in lsmod - and yes, I have
> it as a module).
>
> When I do modprobe lzo, it shows there.
>
> Isn't it a bit strange? So btrfs is using lzo module that was not loaded?
> (and says so in the dmesg output)?
Hello Lubos
Yes, I was wondering about this too when I started doing lzo.
The lzo module you load most likely has nothing to do with btrfs. This
is the only explanation. I would think that lzo for btrfs is built into
kernel. Unfortunately I don't have my .config with me at the moment to
check it.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: How to remount btrfs without compression?
2011-11-10 2:23 ` dima
@ 2011-11-11 13:29 ` dima
0 siblings, 0 replies; 19+ messages in thread
From: dima @ 2011-11-11 13:29 UTC (permalink / raw)
To: linux-btrfs
On 11/10/2011 11:23 AM, dima wrote:
> On 11/10/2011 09:11 AM, David Sterba wrote:
>> On Wed, Nov 09, 2011 at 10:01:13AM +0900, dima wrote:
>>> Just for the record - I could find a solution thanks to the btrfs wiki
>>> being online again. In Gotchas it says
>>>
>>> mount -o nodatacow also disables compression
>>>
>>> and indeed it does. Remounting with this option and re-saving the file
>>> makes it uncompressed. However, I could not find how to remount the
>>> filesystem afterwards without nodatacow.
>>
>> I saw this mentioned on irc today (that nodatacow diasables
>> compression). There is a way how to turn off compression on a file --
>> with help of the NOCOW _file_ attribute, ie. you don't have to remount.
>>
>> * create the file, compression enabled
>> * set NOCOW (with the attached single-purpose nocow.c utility)
>> * btrfs fi defrag the_file
>>
>> Make sure you have enough free space for the uncompressed file size. You
>> can compare the extent layout before and after the defrag with
>> "filefrag -v" .
>
>
> Hello David,
>
> Thank you, I will try it out tonight. Is there any way to see if nocow
> attribute was set on a particular file, and is there any way to unset it?
Hi David
I tried the nocow utility. It worked.
First I made sure to re-save the syslinux.cfg file while btrfs was
mounted with lzo to ensure that it is compressed, then I set the NOCOW
flag with your utility. Then I checked fragmentation of the file and
since it was a small one it was not fragmented. So when I ran btrfs fi
defrag syslinux.cfg it did not have any effect and file was not
uncompressed. Then I simply re-saved the file and it got uncompressed
fine since bootloader could read it on reboot.
thanks
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2011-11-11 13:29 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-07 0:53 How to remount btrfs without compression? dima
2011-11-07 12:19 ` Martin Steigerwald
2011-11-08 0:55 ` dima
2011-11-08 1:06 ` Eric Griffith
2011-11-08 1:52 ` Fajar A. Nugraha
2011-11-08 1:54 ` Eric Griffith
2011-11-08 2:00 ` dima
2011-11-08 15:01 ` Chris Mason
2011-11-08 15:12 ` Chris Mason
2011-11-09 1:01 ` dima
2011-11-09 7:48 ` Lubos Kolouch
2011-11-09 8:03 ` Dmitry Olenin
2011-11-10 6:57 ` Lubos Kolouch
2011-11-10 7:04 ` Dmitry Olenin
2011-11-09 8:04 ` Fajar A. Nugraha
2011-11-09 13:01 ` Chris Mason
2011-11-10 0:11 ` David Sterba
2011-11-10 2:23 ` dima
2011-11-11 13:29 ` dima
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).