Change mke2fs's layout of RAID-optimized filesystems to be more optimal

When allocating space for the RAID filesystems with the stride parameter,
place each portion of the group's inode table right up after the superblock
(if present) in order to minimize fragmentation of the freespace.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
bitmap-optimize
Theodore Ts'o 2006-05-13 08:46:37 -04:00
parent f5fa20078b
commit bc2699f018
4 changed files with 61 additions and 44 deletions

View File

@ -1,3 +1,11 @@
2006-05-12 Theodore Tso <tytso@mit.edu>
* alloc_tables.c (ext2fs_allocate_group_table): When allocating
space for the RAID filesystems with the stride parameter,
place each portion of the group's inode table right up
after the superblock (if present) in order to minimize
fragmentation of the freespace.
2006-05-08 Theodore Tso <tytso@mit.edu>
* rw_bitmaps.c (write_bitmaps, read_bitmaps): Added support for

View File

@ -48,7 +48,11 @@ errcode_t ext2fs_allocate_group_table(ext2_filsys fs, dgrp_t group,
* Allocate the block and inode bitmaps, if necessary
*/
if (fs->stride) {
start_blk = group_blk + fs->inode_blocks_per_group;
retval = ext2fs_get_free_blocks(fs, group_blk, last_blk,
1, bmap, &start_blk);
if (retval)
return retval;
start_blk += fs->inode_blocks_per_group;
start_blk += ((fs->stride * group) %
(last_blk - start_blk));
if (start_blk > last_blk)

View File

@ -1,3 +1,8 @@
2006-05-13 Theodore Tso <tytso@mit.edu>
* m_raid_opt: Update expect files to match with new mke2fs layout
used when the stride raid option is specified.
2006-03-23 Theodore Ts'o <tytso@mit.edu>
* test_config: Set up MKE2FS_CONFIG to point at the mke2fs.conf

View File

@ -56,17 +56,17 @@ Default directory hash: tea
Group 0: (Blocks 1-1024)
Primary superblock at 1, Group descriptor at 2
Block bitmap at 33 (+32), Inode bitmap at 34 (+33)
Inode table at 35-66 (+34)
Block bitmap at 35 (+34), Inode bitmap at 36 (+35)
Inode table at 3-34 (+2)
975 free blocks, 245 free inodes, 2 directories
Free blocks: 16-32, 67-1024
Free blocks: 50-1024
Free inodes: 12-256
Group 1: (Blocks 1025-2048)
Backup superblock at 1025, Group descriptor at 1026
Block bitmap at 1070 (+45), Inode bitmap at 1071 (+46)
Block bitmap at 1072 (+47), Inode bitmap at 1073 (+48)
Inode table at 1027-1058 (+2)
988 free blocks, 256 free inodes, 0 directories
Free blocks: 1059-1069, 1072-2048
Free blocks: 1059-1071, 1074-2048
Free inodes: 257-512
Group 2: (Blocks 2049-3072)
Block bitmap at 2107 (+58), Inode bitmap at 2108 (+59)
@ -76,10 +76,10 @@ Group 2: (Blocks 2049-3072)
Free inodes: 513-768
Group 3: (Blocks 3073-4096)
Backup superblock at 3073
Block bitmap at 3144 (+71), Inode bitmap at 3145 (+72)
Block bitmap at 3145 (+72), Inode bitmap at 3146 (+73)
Inode table at 3074-3105 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 3106-3143, 3146-4096
Free blocks: 3106-3144, 3147-4096
Free inodes: 769-1024
Group 4: (Blocks 4097-5120)
Block bitmap at 4181 (+84), Inode bitmap at 4182 (+85)
@ -89,10 +89,10 @@ Group 4: (Blocks 4097-5120)
Free inodes: 1025-1280
Group 5: (Blocks 5121-6144)
Backup superblock at 5121
Block bitmap at 5218 (+97), Inode bitmap at 5219 (+98)
Block bitmap at 5219 (+98), Inode bitmap at 5220 (+99)
Inode table at 5122-5153 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 5154-5217, 5220-6144
Free blocks: 5154-5218, 5221-6144
Free inodes: 1281-1536
Group 6: (Blocks 6145-7168)
Block bitmap at 6255 (+110), Inode bitmap at 6256 (+111)
@ -102,10 +102,10 @@ Group 6: (Blocks 6145-7168)
Free inodes: 1537-1792
Group 7: (Blocks 7169-8192)
Backup superblock at 7169
Block bitmap at 7292 (+123), Inode bitmap at 7293 (+124)
Block bitmap at 7293 (+124), Inode bitmap at 7294 (+125)
Inode table at 7170-7201 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 7202-7291, 7294-8192
Free blocks: 7202-7292, 7295-8192
Free inodes: 1793-2048
Group 8: (Blocks 8193-9216)
Block bitmap at 8329 (+136), Inode bitmap at 8330 (+137)
@ -115,10 +115,10 @@ Group 8: (Blocks 8193-9216)
Free inodes: 2049-2304
Group 9: (Blocks 9217-10240)
Backup superblock at 9217
Block bitmap at 9366 (+149), Inode bitmap at 9367 (+150)
Block bitmap at 9367 (+150), Inode bitmap at 9368 (+151)
Inode table at 9218-9249 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 9250-9365, 9368-10240
Free blocks: 9250-9366, 9369-10240
Free inodes: 2305-2560
Group 10: (Blocks 10241-11264)
Block bitmap at 10403 (+162), Inode bitmap at 10404 (+163)
@ -212,10 +212,10 @@ Group 24: (Blocks 24577-25600)
Free inodes: 6145-6400
Group 25: (Blocks 25601-26624)
Backup superblock at 25601
Block bitmap at 25958 (+357), Inode bitmap at 25959 (+358)
Block bitmap at 25959 (+358), Inode bitmap at 25960 (+359)
Inode table at 25602-25633 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 25634-25957, 25960-26624
Free blocks: 25634-25958, 25961-26624
Free inodes: 6401-6656
Group 26: (Blocks 26625-27648)
Block bitmap at 26995 (+370), Inode bitmap at 26996 (+371)
@ -225,10 +225,10 @@ Group 26: (Blocks 26625-27648)
Free inodes: 6657-6912
Group 27: (Blocks 27649-28672)
Backup superblock at 27649
Block bitmap at 28032 (+383), Inode bitmap at 28033 (+384)
Block bitmap at 28033 (+384), Inode bitmap at 28034 (+385)
Inode table at 27650-27681 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 27682-28031, 28034-28672
Free blocks: 27682-28032, 28035-28672
Free inodes: 6913-7168
Group 28: (Blocks 28673-29696)
Block bitmap at 29069 (+396), Inode bitmap at 29070 (+397)
@ -250,24 +250,24 @@ Group 30: (Blocks 30721-31744)
Free inodes: 7681-7936
Group 31: (Blocks 31745-32768)
Group descriptor at 31745
Block bitmap at 32180 (+435), Inode bitmap at 32181 (+436)
Block bitmap at 32181 (+436), Inode bitmap at 32182 (+437)
Inode table at 31746-31777 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 31778-32179, 32182-32768
Free blocks: 31778-32180, 32183-32768
Free inodes: 7937-8192
Group 32: (Blocks 32769-33792)
Group descriptor at 32769
Block bitmap at 33217 (+448), Inode bitmap at 33218 (+449)
Block bitmap at 33218 (+449), Inode bitmap at 33219 (+450)
Inode table at 32770-32801 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 32802-33216, 33219-33792
Free blocks: 32802-33217, 33220-33792
Free inodes: 8193-8448
Group 33: (Blocks 33793-34816)
Group descriptor at 33793
Block bitmap at 34254 (+461), Inode bitmap at 34255 (+462)
Block bitmap at 34255 (+462), Inode bitmap at 34256 (+463)
Inode table at 33794-33825 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 33826-34253, 34256-34816
Free blocks: 33826-34254, 34257-34816
Free inodes: 8449-8704
Group 34: (Blocks 34817-35840)
Block bitmap at 35291 (+474), Inode bitmap at 35292 (+475)
@ -361,10 +361,10 @@ Group 48: (Blocks 49153-50176)
Free inodes: 12289-12544
Group 49: (Blocks 50177-51200)
Backup superblock at 50177
Block bitmap at 50846 (+669), Inode bitmap at 50847 (+670)
Block bitmap at 50847 (+670), Inode bitmap at 50848 (+671)
Inode table at 50178-50209 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 50210-50845, 50848-51200
Free blocks: 50210-50846, 50849-51200
Free inodes: 12545-12800
Group 50: (Blocks 51201-52224)
Block bitmap at 51883 (+682), Inode bitmap at 51884 (+683)
@ -446,24 +446,24 @@ Group 62: (Blocks 63489-64512)
Free inodes: 15873-16128
Group 63: (Blocks 64513-65536)
Group descriptor at 64513
Block bitmap at 65364 (+851), Inode bitmap at 65365 (+852)
Block bitmap at 65365 (+852), Inode bitmap at 65366 (+853)
Inode table at 64514-64545 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 64546-65363, 65366-65536
Free blocks: 64546-65364, 65367-65536
Free inodes: 16129-16384
Group 64: (Blocks 65537-66560)
Group descriptor at 65537
Block bitmap at 66401 (+864), Inode bitmap at 66402 (+865)
Block bitmap at 66402 (+865), Inode bitmap at 66403 (+866)
Inode table at 65538-65569 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 65570-66400, 66403-66560
Free blocks: 65570-66401, 66404-66560
Free inodes: 16385-16640
Group 65: (Blocks 66561-67584)
Group descriptor at 66561
Block bitmap at 67438 (+877), Inode bitmap at 67439 (+878)
Block bitmap at 67439 (+878), Inode bitmap at 67440 (+879)
Inode table at 66562-66593 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 66594-67437, 67440-67584
Free blocks: 66594-67438, 67441-67584
Free inodes: 16641-16896
Group 66: (Blocks 67585-68608)
Block bitmap at 68475 (+890), Inode bitmap at 68476 (+891)
@ -557,10 +557,10 @@ Group 80: (Blocks 81921-82944)
Free inodes: 20481-20736
Group 81: (Blocks 82945-83968)
Backup superblock at 82945
Block bitmap at 83038 (+93), Inode bitmap at 83039 (+94)
Block bitmap at 83040 (+95), Inode bitmap at 83041 (+96)
Inode table at 82946-82977 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 82978-83037, 83040-83968
Free blocks: 82978-83039, 83042-83968
Free inodes: 20737-20992
Group 82: (Blocks 83969-84992)
Block bitmap at 84075 (+106), Inode bitmap at 84076 (+107)
@ -642,24 +642,24 @@ Group 94: (Blocks 96257-97280)
Free inodes: 24065-24320
Group 95: (Blocks 97281-98304)
Group descriptor at 97281
Block bitmap at 97556 (+275), Inode bitmap at 97557 (+276)
Block bitmap at 97558 (+277), Inode bitmap at 97559 (+278)
Inode table at 97282-97313 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 97314-97555, 97558-98304
Free blocks: 97314-97557, 97560-98304
Free inodes: 24321-24576
Group 96: (Blocks 98305-99328)
Group descriptor at 98305
Block bitmap at 98593 (+288), Inode bitmap at 98594 (+289)
Block bitmap at 98595 (+290), Inode bitmap at 98596 (+291)
Inode table at 98306-98337 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 98338-98592, 98595-99328
Free blocks: 98338-98594, 98597-99328
Free inodes: 24577-24832
Group 97: (Blocks 99329-100352)
Group descriptor at 99329
Block bitmap at 99630 (+301), Inode bitmap at 99631 (+302)
Block bitmap at 99632 (+303), Inode bitmap at 99633 (+304)
Inode table at 99330-99361 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 99362-99629, 99632-100352
Free blocks: 99362-99631, 99634-100352
Free inodes: 24833-25088
Group 98: (Blocks 100353-101376)
Block bitmap at 100667 (+314), Inode bitmap at 100668 (+315)
@ -825,10 +825,10 @@ Group 124: (Blocks 126977-128000)
Free inodes: 31745-32000
Group 125: (Blocks 128001-129024)
Backup superblock at 128001
Block bitmap at 128666 (+665), Inode bitmap at 128667 (+666)
Block bitmap at 128668 (+667), Inode bitmap at 128669 (+668)
Inode table at 128002-128033 (+1)
989 free blocks, 256 free inodes, 0 directories
Free blocks: 128034-128665, 128668-129024
Free blocks: 128034-128667, 128670-129024
Free inodes: 32001-32256
Group 126: (Blocks 129025-130048)
Block bitmap at 129703 (+678), Inode bitmap at 129704 (+679)
@ -838,8 +838,8 @@ Group 126: (Blocks 129025-130048)
Free inodes: 32257-32512
Group 127: (Blocks 130049-131071)
Group descriptor at 130049
Block bitmap at 130742 (+693), Inode bitmap at 130743 (+694)
Block bitmap at 130744 (+695), Inode bitmap at 130745 (+696)
Inode table at 130050-130081 (+1)
988 free blocks, 256 free inodes, 0 directories
Free blocks: 130082-130741, 130744-131071
Free blocks: 130082-130743, 130746-131071
Free inodes: 32513-32768