[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <71E9EE6B-0615-4F22-9B7F-37D238F2D683@sportsandbytes.de>
Date: Sun, 29 Jul 2012 21:08:56 +0200
From: Arne Hüggenberg <hueggenberg@...rtsandbytes.de>
To: Andreas Dilger <adilger@...mcloud.com>
Cc: "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>
Subject: Re: resize2fs > 16TB questions
On Jul 29, 2012, at 8:30 PM, Andreas Dilger wrote:
>
> 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"?
~ # 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@...r.kernel.org
> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists