如何根据设计文件系统时使用的块数来节省存储空间的浪费

时间:2013-08-16 00:46:40

标签: memory-management filesystems storage block

作为论文的一部分,我正在设计一个存储子系统。我必须创建一个类似inode的结构(如ext3间接块使用等)。在与ext3相同的行上,但我有2个不同的页/块大小 - 16k和512k(用于直接块访问)。我总共可以有36个街区。我的问题是应该使用每种大小的块来最小化内部碎片或浪费的存储空间。有人建议保留32,16k块,因为16k * 32 = 512k,这样可以避免空间浪费,但我并没有太多遵循这个论点。请帮我理解逻辑。

1 个答案:

答案 0 :(得分:0)

首先要问的问题是:您遇到的平均文件大小是多少?可以说平均文件大小为256K ......文件大小可能超过256K,但平均值为256K。如果是这样,保留一个512K块作为直接块会导致内部碎片。将16K块作为直接块覆盖所有文件大小<= 512K。因此,为了减少内部碎片,更好的尺寸将是16K。

既然你知道这一点,我会问你两个问题:

  • 如果你回到最初的Unix设计,为什么在inode中使用了8个直接块指针?你为什么要用32?
  • 要问的第二个问题是:为什么您的存储系统支持16K和512K块大小?

我会在这里等你的回答: - )