On Jul 29, 2012, at 8:30 PM, Andreas Dilger wrote: > > On 2012-07-29, at 9:46, Arne Hüggenberg <hueggenberg@xxxxxxxxxxxxxxxxx> wrote: >> On Jul 29, 2012, at 6:11 PM, Andreas Dilger wrote: >> >>> On 2012-07-29, at 8:24, Arne Hüggenberg <hueggenberg@xxxxxxxxxxxxxxxxx> 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"? ~ # debugfs /dev/vg0/lvol1 debugfs 1.42.4 (12-June-2012) debugfs: stats debugfs: stats 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 extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize 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: 2162482117 Free inodes: 520936736 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 20:50:44 2012 Mount count: 6 Maximum mount count: -1 Last checked: Fri Jul 27 17:16:24 2012 Check interval: 0 (<none>) Lifetime writes: 7662 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 Directories: 6392 Group 0: block bitmap at 2049, inode bitmap at 2065, inode table at 2081 26585 free blocks, 4085 free inodes, 2 used directories, 4084 unused inodes [Checksum 0x7d46] Group 1: block bitmap at 2050, inode bitmap at 2066, inode table at 2337 4634 free blocks, 4096 free inodes, 0 used directories, 4096 unused inodes [Inode not init, Checksum 0x97aa] Group 2: block bitmap at 2051, inode bitmap at 2067, inode table at 2593 1020 free blocks, 4096 free inodes, 0 used directories, 4096 unused inodes [Inode not init, Checksum 0x571f] Group 3: block bitmap at 2052, inode bitmap at 2068, inode table at 2849 2047 free blocks, 4096 free inodes, 0 used directories, 4096 unused inodes > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html Regards, Arne -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html