作为我论文的一部分,我正在设计一个存储子系统。我必须创建一个类似 inode 的结构(如 ext3 间接块使用等)。在与 ext3 相同的行上,但我有 2 种不同的页面/块大小 - 16k 和 512k(用于直接块访问)。我总共可以有 36 个块。我的问题是每个大小应该使用多少块来最小化内部碎片或浪费的存储空间。有人建议从 16k * 32 = 512k 开始保留 32、16k 块,这样可以避免空间浪费,但我没有过多地遵循这个论点。请帮助我理解逻辑。
问问题
63 次
1 回答
0
首先要问的问题是:您遇到的平均文件大小是多少?假设平均文件大小为 256K……文件大小可以大于 256K 或小于 256K,但平均值为 256K。如果是这样,保留一个 512K 块作为直接块会导致内部碎片。将 16K 块作为直接块涵盖所有文件大小 <= 512K。因此,为了减少内部碎片,更好的大小是 16K。
现在你知道了,我要问你两个问题:
- 如果回到最初的 Unix 设计,为什么 inode 中使用了 8 个直接块指针?为什么要尝试使用 32?
- 要问的第二个问题是:为什么您的存储系统支持 16K 和 512K 块大小?
我会在这里等你的回答:-)
于 2013-08-16T01:10:00.027 回答