OSDN Git Service

ext4_utils: update default conf from e2fsprogs
authorJin Qian <jinqian@google.com>
Sat, 15 Apr 2017 00:55:45 +0000 (17:55 -0700)
committerJin Qian <jinqian@google.com>
Tue, 23 May 2017 18:35:22 +0000 (11:35 -0700)
Build server machines are using a conf file optimized for google
data center. We should use the default version from upstream
e2fsprogs.

Keep reserved_ratio at 1% to get more free space.

Bug: 37361511
Change-Id: I2638df72cfd3b9404981ef227651d38025a8053c

ext4_utils/mke2fs.conf

index 3d18c00..b6a05c1 100644 (file)
-# mkfs defaults.
-#
-# In conjunction with these defaults mkfs needs to be issued with the
-# following arguments:
-#
-# mkfs -m 1 -i 20480 -t <fs> <device>
-#
-# -m reserved-blocks-percentage
-#
-# Specify  the percentage of the filesystem blocks reserved for the
-# super-user.  This avoids fragmentation, and allows root-owned daemons,
-# such as syslogd(8), to continue to function correctly after non-privileged
-# processes are prevented from writing to the filesystem.  The default
-# percentage is 5%.
-#
-# Conclusion: Set to 1%
-#
-#
-# -i bytes-per-inode
-# Specify the bytes/inode ratio.  mke2fs creates an inode for every
-# bytes-per-inode bytes of space on the disk. The larger the bytes-per-inode
-# ratio, the fewer inodes will be created.  This value generally shouldn't
-# be smaller than the blocksize of the filesystem, since in that case
-# more inodes would  be  made than  can ever be used.  Be warned that it
-# is not possible to expand the number of inodes on a filesystem after it
-# is created, so be careful deciding the correct value for this parameter.
-#
-# Conclusion: Set to 20480
-
-
-#
-# mke2fs.conf defaults
-#
-
 [defaults]
+    base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr
+    default_mntopts = acl,user_xattr
+    enable_periodic_fsck = 0
     blocksize = 4096
-
-    # All inodes in production are 128 bytes. This conserves memory and
-    # maintains compatibility between ext2 and ext4
-    inode_size = 128
-    # Default inode_ratio (-i) in production is 20480
-    inode_ratio = 20480
-    # Default reserved_ratio (-m) in production is 1%
+    inode_size = 256
+    inode_ratio = 16384
     reserved_ratio = 1.0
-    lazy_itable_init = false
 
 [fs_types]
-    # Features for ext2 & ext4
-    #
-    # ext_attrs - Extended Attributes. This is the ability to associate
-    #             metadata not interpreted by the file system with
-    #             a file. This is not stored in the inode when the
-    #             inodes are 128 bytes. So we would have to store them in
-    #             another allocated block.
-    #
-    #             Conclusion: DISABLE We don't need these attributes
-    #             today and they will only create a performance hit.
-    #             So we disable them. Note: If we ever do enable this
-    #             feature make sure the kernel config is enabled also.
-    #
-    # resize_inode - Reserve space so the block  group descriptor
-    #                table may grow in the future. Useful for
-    #                online resizing using resize2fs. By default
-    #                mke2fs will attempt to reserve enough space so
-    #                that the filesystem may grow to 1024 times its
-    #                initial size. This can be changed using the
-    #                resize extended option.
-    #                Conclusion: DISABLE This is a waste of space
-    #                for production.
-    #
-    # dir_index - Enabling the HTree (invented by Dan Phillips) to make
-    #             directory lookups faster.
-    #
-    #             Conclusion: EXT2 DISABLED (no testing yet)
-    #                         EXT4 ENABLED (by default)
-    #
-    # large_file/huge_file - Larger than 2TB support
-    #              Conclusion: EXT2 DISABLED No need in prod for files this big.
-    #              Conclusion: EXT4 ENABLED Since we get this for free
-    #
-    # filetype - FileType. Records the type of file (Regular, directory,
-    #            character, block, fifo, socket, link) in the directory
-    #            structure.
-    #            Conclusion: EXT2 ENABLED, EXT4 PENDING
-    #
-    # sparse_super - Reduces the number of redundant super blocks.
-    #                Conclusion: ENABLE
-
-    ext2 = {
-        features = ext_attr,^resize_inode,^dir_index,^large_file,filetype,sparse_super
-        hash_alg = tea
+    ext3 = {
+        features = has_journal
     }
-
-    # Features for ext4 only
-    # has_journal - Enable the ext4 journal. Since we don't have enough
-    #               testing and are not sure if we need it yet. We are
-    #               not enabling the journal.
-    #               Conclusion: EXT4 DISABLED
-    #
-    # extents - Using extents instead of indirect blocks to manage metadata.
-    #           Conclusion: EXT4 ENABLED This is a big performance win.
-    #
-    # flex_bg - This feature relaxes check restrictions on where each
-    #           block groups meta data is located within the storage
-    #           media. This allows for the allocation of bitmaps or
-    #           inode tables outside the block group boundaries in cases
-    #           where bad blocks forces us to look for new blocks which
-    #           the owning block group can not satisfy. This will also
-    #           allow for new meta-data allocation schemes to improve
-    #           performance and scalability.
-    #           Conclusion: ENABLE It allows us to make performance
-    #           gaining modifications for ext4.
-    #
-    # uninit_bg - Unitialized Block Groups. In pass1 of e2fsck, every
-    #             inode table in the filesystem is scanned and checked,
-    #             regardless of whether it is in use.  This is this the
-    #             most time consuming part of the filesystem check.
-    #             The uninitialized block group feature can greatly reduce
-    #             e2fsck time by eliminating checking of uninitialized inodes.
-    #
-    #             With this feature, there is a a high water mark of
-    #             used inodes for each block group.  Block and inode bitmaps
-    #             can be uninitialized on disk via a flag in the group
-    #             descriptor to avoid reading or scanning them at e2fsck time.
-    #             A checksum of each group descriptor is used to ensure that
-    #             corruption in the group descriptor's bit flags does not
-    #             cause incorrect operation.
-    #
-    #             Conclusion: ENABLE While the speed up is dependent on
-    #             fs age it may be variable but we should not drop the fsck
-    #             perf on the floor.
-    #
-    # dir_nlink - Allows for more than 64000 files in a directory.
-    #             Conclusion: ENABLED This is on by default for ext4.
-    #             This is useful too.
-
     ext4 = {
-        features = ext_attr,^resize_inode,^has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,sparse_super
-        hash_alg = half_md4
+        features = has_journal,extent,huge_file,flex_bg,64bit,dir_nlink,extra_isize
+        inode_size = 256
     }
-    hugefiles = {
-        features = extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize,^resize_inode,sparse_super2
-        hash_alg = half_md4
-        reserved_ratio = 0.0
-        num_backup_sb = 0
-        packed_meta_blocks = 1
-        make_hugefiles = 1
-        inode_ratio = 4194304
-        hugefiles_dir = /storage_d/pre-block
-        hugefiles_name = data-
-        hugefiles_digits = 5
-        hugefiles_size = 1028M
-        hugefiles_slack = 2G
-        num_hugefiles = 0
-        zero_hugefiles = false
-        flex_bg_size = 262144
+    ext4dev = {
+        features = has_journal,extent,huge_file,flex_bg,inline_data,64bit,dir_nlink,extra_isize
+        inode_size = 256
+        options = test_fs=1
     }
-    hugefile = {
-        features = extent,huge_file,bigalloc,flex_bg,uninit_bg,dir_nlink,extra_isize,^resize_inode,sparse_super2
-        cluster_size = 32768
-        hash_alg = half_md4
-        reserved_ratio = 0.0
-        num_backup_sb = 0
-        packed_meta_blocks = 1
-        make_hugefiles = 1
+    small = {
+        blocksize = 1024
+        inode_size = 128
+        inode_ratio = 4096
+    }
+    floppy = {
+        blocksize = 1024
+        inode_size = 128
+        inode_ratio = 8192
+    }
+    big = {
+        inode_ratio = 32768
+    }
+    huge = {
+        inode_ratio = 65536
+    }
+    news = {
+        inode_ratio = 4096
+    }
+    largefile = {
+        inode_ratio = 1048576
+        blocksize = -1
+    }
+    largefile4 = {
         inode_ratio = 4194304
-        hugefiles_dir = /storage_d
-        hugefiles_name = huge-data
-        hugefiles_digits = 0
-        hugefiles_size = 0
-        hugefiles_align = 256M
-        hugefiles_align_disk = true
-        num_hugefiles = 1
-        zero_hugefiles = false
+        blocksize = -1
     }
-    small = {
-            blocksize = 1024
-            inode_size = 128
-            inode_ratio = 4096
+    hurd = {
+         blocksize = 4096
+         inode_size = 128
     }