lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 29 Jul 2012 11:30:45 -0700
From:	Andreas Dilger <adilger@...mcloud.com>
To:	Arne Hüggenberg <hueggenberg@...rtsandbytes.de>
Cc:	"linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>
Subject: Re: resize2fs > 16TB questions


On 2012-07-29, at 9:46, Arne Hüggenberg <hueggenberg@...rtsandbytes.de> wrote:
> On Jul 29, 2012, at 6:11 PM, Andreas Dilger wrote:
> 
>> On 2012-07-29, at 8:24, Arne Hüggenberg <hueggenberg@...rtsandbytes.de> wrote:
>>> 
>>> im trying to resize a ext4 fs to > 16TB.
>> 
>> Unfortunately, this is not possible today without advance planning.  There are some structures on disk (group descriptors) that need to be larger for 64-bit filesystems. It is possible to format a 32-bit filesystem with larger group descriptors using the "-O 64bit" option, but this doesn't happen by default today. 
>> 
>> Possibly we should start using the 64-byte group descriptors by default for filesystems over, say, 4 TB, so they can be resized beyond 16 TB.
> 
> I have no idea what the overhead for 64byte group descriptors is, but with LVM Setups becoming more common and enabling incremental storage increases over a timeframe of several years, maybe 1TB filesystems should be cutoff.

The overhead is relatively low. 

>> It might also be possible to modify resize2fs to change the group descriptor size, but that isn't possible today. 
>> 
>>> Having had a look at the e2fsprogs 1.42.x release notes i thought that, with the online resize ioctl having been merged in Kernel 3.3, this should be possible.
>>> 
>>> But so far i have had no success achieving this:
>>> 
>>> ~ # uname -a
>>> Linux 3.3.8-gentoo #1 SMP Fri Jul 27 16:13:25 CEST 2012 x86_64 Intel(R) Xeon(R) CPU E5620 @ 2.40GHz GenuineIntel GNU/Linux
>>> 
>>> ~ # tune2fs -l /dev/vg0/lvol1
>>> tune2fs 1.42.4 (12-June-2012)
>>> Filesystem volume name:   <none>
>>> Last mounted on:          /home/filestore_extern_1
>>> Filesystem UUID:          8fba4f1b-5311-4c9b-b8bf-def4957dc1bd
>>> Filesystem magic number:  0xEF53
>>> Filesystem revision #:    1 (dynamic)
>>> Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
>> 
>> Was the filesystem formatted with the 64bit option, or was this enabled after formatting time?  This puts my earlier comment in doubt. 
> 
> the filesystem was formatted with
> from mke2fs.conf:
> 
>        ext4 = {
>                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize,64bit
>                auto_64-bit_support = 1
>                inode_size = 256
>        }

I think the "auto_64-bit_support" means that 64-byte group descriptors are not enabled for filesystems below 16TB. 

>>> Filesystem flags:         signed_directory_hash 
>>> Default mount options:    user_xattr acl
>>> Filesystem state:         clean
>>> Errors behavior:          Continue
>>> Filesystem OS type:       Linux
>>> Inode count:              521011200
>>> Block count:              4168089600
>>> Reserved block count:     191127425
>>> Free blocks:              2195165566
>>> Free inodes:              520937830
>>> First block:              0
>>> Block size:               4096
>>> Fragment size:            4096
>>> Reserved GDT blocks:      60
>>> Blocks per group:         32768
>>> Fragments per group:      32768
>>> Inodes per group:         4096
>>> Inode blocks per group:   256
>>> RAID stride:              16
>>> RAID stripe width:        160
>>> Flex block group size:    16
>>> Filesystem created:       Fri Jul 27 17:16:24 2012
>>> Last mount time:          Sun Jul 29 15:22:23 2012
>>> Last write time:          Sun Jul 29 15:22:23 2012
>>> Mount count:              6
>>> Maximum mount count:      -1
>>> Last checked:             Fri Jul 27 17:16:24 2012
>>> Check interval:           0 (<none>)
>>> Lifetime writes:          7485 GB
>>> Reserved blocks uid:      0 (user root)
>>> Reserved blocks gid:      0 (group root)
>>> First inode:              11
>>> Inode size:              256
>>> Required extra isize:     28
>>> Desired extra isize:      28
>>> Journal inode:            8
>>> Default directory hash:   half_md4
>>> Directory Hash Seed:      ef2ec72a-750b-4822-bd8d-9117faadeaee
>>> Journal backup:           inode blocks
>> 
>> Unfortunately, the group descriptor size is not printed.  
> 
> how can i get the group descriptor size?

Possibly with "debugfs stats"?

Cheers, Andreas

>>> ~ # resize2fs /dev/vg0/lvol1
>>> resize2fs 1.42.4 (12-June-2012)
>>> resize2fs: New size too large to be expressed in 32 bits
>> 
>> This may just be a hard-coded check built into resize2fs, but may be over-zealous of the filesystem was formatted with -O 64bit. 
>> 
>>> Any advice on how to proceed would be welcome.
>>> 
>>> Regards,
>>> Arne
>>> 
>>> 
> 
> Regards,
> Arne
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists