[SOLVED] Btrfs compression

Started by dfe, 2013/01/08, 00:43:11

Previous topic - Next topic

dfe

Hi,

I installed 2012.2 - Riders on the Storm using one partition, which is formatted with Btrfs. Now I want to enable compression. There is no fstab entry for the disk, so what is the best way to set the appropriate mount options?
I noticed that the disk gets mounted with "space_cache" per default. Where does that come from?

Btw, does anybody know if grub2 can read from Btrfs partitions that are compressed with LZO? There were problems with it some time ago.

thanks

devil

Your partition is not in fstab? That sounds strange, if we are not speaking of a usb device. Can we see your fstab?

greetz
devil

dibl

There has to be an /etc/fstab entry, or your partition will not be mounted on boot.

BTRFS compression is enabled with the "compress" option, like this:

UUID=c112ed57-0e33-4d4b-82c9-5c55932c529d     /mnt/DATA            btrfs        device=/dev/sdd,device=/dev/sde,compress,space_cache,inode_cache   0    0
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.

dfe

Here is my fstab (spaces removed):
UUID=5e9fc3a3-2854-4eba-999e-d182914f5110 none swap sw 0 0
As you can see, there is only an entry for the swap partition (bug in the installer?). Still the system boots fine because the root partition gets mounted early in the boot.

If you want further information, just tell me. :)

dibl

Let's see the output of

blkid -c /dev/null -o list

please.
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.

dfe

blkid -c /dev/null -o list:
device     fs_type label    mount point    UUID
-------------------------------------------------------------------------------
/dev/sda1  btrfs            (in use)       9952b0b0-4ceb-4479-9158-effe64120207
/dev/sda2  swap             <swap>         5e9fc3a3-2854-4eba-999e-d182914f5110

dibl

I would use that UUID for /dev/sda1 and make a mount line in /etc/fstab for /.  You can see how to do it from my line in the post above.  You don't need the "device=xxxx" part, since it's only one device.
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.

dfe

Thanks, I will try it.
Still it's strange that the installer didn't added the root partition to fstab.

dibl

I don't know how that works, either. I have only used btrfs for a data partition, not for the OS -- obviously there's something different about the way it is being installed when you do it from the live CD.  I'm sure you have read the wiki and the numerous ubuntu posts about it.  As usual, the arch folks have some good documentation, too:

https://wiki.archlinux.org/index.php/Installing_on_Btrfs_root
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.

dibl

BTW, after considering it for awhile, I would suppose that a btrfs filesystem using compression will probably slow your OS down, as compared to ext4.  You can let us know ....

:)
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.

dfe

Using compression should actually boost performance. At least if you have a decent CPU.
Here's a benchmark with pretty impressive results:
http://www.phoronix.com/scan.php?page=article&item=linux_btrfs_options&num=1

dibl

Verrrrry interesting --- thanks!  It is counter-intuitive -- at least to my mind, that compressing and decompressing on the fly would result in faster performance, but there you have it.  I haven't changed my /etc/fstab since zlib was the only compression available.  It looks like I could pick up a bit of performance by changing it to lzo.  Although I'm not sure what "better performance" means when playing music and watching videos and such .....    :lol:
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.

timc

There are currently two types of compression used by btrfs. lzo gives less compression and an overall performance boost. zlib gives more compression at the cost of performance.

I use lzo on my root filesystem. I have not done any benchmarks, but performance feels very good. I have not tried zlib compression, but obviously it would be best used for mass storage where high compression is needed and performance doesn't really matter.

https://btrfs.wiki.kernel.org/index.php/Compression

Tim

agaida

dibl: transparent compression can improve read performance in mech. devices. Real geeks use ssd to boot, eventually with hardware compression :)
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

dibl

Yep, Alf, this geek uses a SSD to boot, and a cheap one!:

root@imerabox:/home/don# blkid -c /dev/null -o list
device                        fs_type     label        mount point                       UUID
------------------------------------------------------------------------------------------------------------------------------
/dev/sda1                     ext4                     /                                 bea3a748-3411-4024-acd0-39f3882ddaf9
/dev/sda2                     ext4        SDA2         /mnt/SDA2                         8cfe2acc-7572-4b45-b25f-ed021bb1d78b
/dev/sdb1                     ext4        revodata     /mnt/REVODATA                     ec21f5b3-7fd4-4f4b-af8d-cf787b147ae8
/dev/sdc1                     ext2                     /boot                             ac7da829-aebb-46f0-806c-04a4d81a945a
/dev/sdc2                     swap                     <swap>                            0d939b7d-48f1-47dd-aebe-77e7bd8c3503
/dev/sdd                      btrfs                    (in use)                          c112ed57-0e33-4d4b-82c9-5c55932c529d
/dev/sde                      btrfs                    (in use)                          c112ed57-0e33-4d4b-82c9-5c55932c529d
root@imerabox:/home/don#



root@imerabox:/home/don# hdparm -iI /dev/sdc

/dev/sdc:

Model=KINGSTON SS100S216G, FwRev=D100719a, SerialNo=16GAA0002142
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=31277232
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes:  pio0 pio3 pio4
DMA modes:  mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified:  ATA/ATAPI-4,5,6,7

* signifies the current active mode


ATA device, with non-removable media
       Model Number:       KINGSTON SS100S216G                    
       Serial Number:      16GAA0002142        
       Firmware Revision:  D100719a
       Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
       Supported: 8 7 6 5
       Likely used: 8
Configuration:
       Logical         max     current
       cylinders       16383   16383
       heads           16      16
       sectors/track   63      63
       --
       CHS current addressable sectors:   16514064
       LBA    user addressable sectors:   31277232
       LBA48  user addressable sectors:   31277232
       Logical  Sector size:                   512 bytes
       Physical Sector size:                   512 bytes
       Logical Sector-0 offset:                  0 bytes
       device size with M = 1024*1024:       15272 MBytes
       device size with M = 1000*1000:       16013 MBytes (16 GB)
       cache/buffer size  = unknown
       Form Factor: 2.5 inch
       Nominal Media Rotation Rate: Solid State Device
Capabilities:
       LBA, IORDY(can be disabled)
       Queue depth: 32
       Standby timer values: spec'd by Standard, no device specific minimum
       R/W multiple sector transfer: Max = 16  Current = 16
       Advanced power management level: 254
       DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
            Cycle time: min=120ns recommended=120ns
       PIO: pio0 pio1 pio2 pio3 pio4
            Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
       Enabled Supported:
          *    SMART feature set
               Security Mode feature set
          *    Power Management feature set
          *    Write cache
          *    Look-ahead
          *    Host Protected Area feature set
          *    WRITE_BUFFER command
          *    READ_BUFFER command
          *    DOWNLOAD_MICROCODE
          *    Advanced Power Management feature set
               SET_MAX security extension
          *    48-bit Address feature set
          *    Device Configuration Overlay feature set
          *    Mandatory FLUSH_CACHE
          *    FLUSH_CACHE_EXT
          *    SMART error logging
          *    SMART self-test
          *    General Purpose Logging feature set
          *    WRITE_{DMA|MULTIPLE}_FUA_EXT
          *    WRITE_UNCORRECTABLE_EXT command
          *    Gen1 signaling speed (1.5Gb/s)
          *    Gen2 signaling speed (3.0Gb/s)
          *    Native Command Queueing (NCQ)
          *    Phy event counters
          *    DMA Setup Auto-Activate optimization
          *    Software settings preservation
          *    Data Set Management TRIM supported (limit unknown)
Security:
       Master password revision code = 65534
               supported
       not     enabled
       not     locked
       not     frozen
       not     expired: security count
               supported: enhanced erase
       12min for SECURITY ERASE UNIT. 12min for ENHANCED SECURITY ERASE UNIT.
Checksum: correct
System76 Oryx Pro, Intel Core i7-11800H, ASRock B860 Pro-A, Intel Core Ultra 7 265KF, Nvidia GTX-1060, SSD 990 EVO Plus.