• 使用mkfs.ext4格式化大容量磁盘


    使用mkfs.ext4默认参数格式化磁盘后,发现格式化时间特别长,并且格式化会占用磁盘很大的空间。
    例如2TB的磁盘格式化会占用10分钟左右时间,并占用30G左右的磁盘空间。
    究其原因,原来inode会占用磁盘空间,每个inode占用256b大小空间。
    默认情况下,mkfs2fs会为每16kb的磁盘空间分配一个inode,
    格式化时系统根据磁盘大小,计算可以保存的文件个数,进而为inode保留空间。
    所以格式化大容量磁盘,系统会分配过多inode,为inode预留过多空间,导致磁盘空间占用特别大。


    例如:一个2Tb的磁盘,格式化时会出现以下信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    mkfs.ext4 -n /dev/sdc1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=1 blocks, Stripe width=0 blocks
    122101760 inodes, 488378368 blocks
    24418918 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    14905 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848

      

    通过以上信息可以计算出磁盘格式化后inode占用的磁盘空间
    122101760 * 256 / 1024 / 1024 = 29810mb
    inode数量 122101760
    乘以
    每个inode占用的空间 256b
    除以
    1024 换算为kb
    再除以
    1024 换算为 mb
    通过以上计算可以得出结论:磁盘空间很大的磁盘使用默认参数格式化磁盘会占用大量磁盘空间,浪费磁盘空间。


    mkfs.ext4有参数-i,可以指定:多大磁盘空间分配一个inode

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    man mkfs.ext4
     -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.

      

    增大-i参数,从而减小inode总数,可以减小inode占用的磁盘空间,减少磁盘浪费。

    例如:指定1m空间分配一个inode来格式化2TB磁盘

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    mkfs.ext4 -i 1048576 -n /dev/sdc
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=1 blocks, Stripe width=0 blocks
    1907840 inodes, 488378368 blocks
    24418918 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    14905 block groups
    32768 blocks per group, 32768 fragments per group
    128 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848

    通过以上信息可以计算出磁盘格式化后inode占用的磁盘空间

    1907840 * 256 / 1024 / 1024 = 465mb
    inode数量 1907840
    乘以
    每个inode占用的空间 256b
    除以
    1024 换算为kb
    再除以
    1024 换算为 mb
    通过更改-i参数,节省了29G空间。


    除了更改-i参加,也可以直接通过-T参数直接指定多大磁盘空间分配一个inode。

    1
    2
    mkfs.ext4 -T largefile -n /dev/sdc1
    mkfs.ext4 -T largefile4 -n /dev/sdc1

    largefile和largefile4对应的【多大磁盘空间分配一个inode】其实是在 /etc/mke2fs.conf 定义的。
    largefile 类型就是 1M 一个 inode
    largefile4 类型就是 4M 一个 inode

    转:https://www.cnblogs.com/micmouse521/p/8064568.html

  • 相关阅读:
    CSS高级应用参考手册
    通过ClassLoader说明容器热部署实现机制
    自定义类加载器
    zz Ubuntu常用命令大全
    设计模式之Decorator(油漆工)
    zz JNI学习(一)、JNI简介和HelloWorld示例
    类加载器的基本概念
    使用 StAX 解析 XML,第 1 部分: Streaming API for XML (StAX) 简介
    ubuntu apache mod_expires模块
    清空ubuntu 日志
  • 原文地址:https://www.cnblogs.com/yzg-14/p/13934344.html
Copyright © 2020-2023  润新知