Kai*_*die -3 raid filesystems hard-drive buffer
当您向磁盘请求数据时,它通常首先被传输到磁盘控制器中的磁盘缓冲区,然后被发送到 RAM(并因此存储在内存中)。我只是想知道首先拥有缓冲区(这实际上是一个额外的步骤)有什么好处。
*edit-> 还有,有人能解释一下 RAID 控制器应该做什么吗?
当数据移入和移出计算机时,它允许控制器在计时方面具有灵活性。考虑一下没有缓冲区的事情会有多糟糕:
读取:当数据即将可用时,控制器必须使与计算机的链接安静。如果计算机试图在从磁盘读取的数据到来时向控制器发送一些数据,则控制器将不得不将数据扔掉并等待它再次出现,无处可放。如果计算机想要读取块 1、2、3 和 4 并且 5、6、7 和 8 先出现,控制器将不得不忽略它们,如果计算机稍后要求它们,则控制器将不得不等待它们再次出现。
写入:控制器无法重新排序写入以提高搜索效率。如果它在尝试读取计算机可能很快要求的其他数据时读取了一些数据,则必须将其丢弃以进行写入。控制器必须让计算机在正确的时刻发送要写入的数据,并根据要写入的轨道命令计算机以较慢或较快的速度发送数据。
总之,控制器使用缓冲区:
对于读取:在等待其他数据出现时保存它“意外”读取的数据。允许它在一次旋转中读取一个磁道,而不管磁道的哪一部分首先位于磁头下方。在执行其他操作时保存可能很快需要的数据。
对于写入:允许计算机以全接口速度写入(至少在短时间内)。重新排序写入以提高查找效率。允许从计算机按顺序接收磁道并以扇区恰好落在磁头下方的任何顺序写出。(很明显,磁盘可能需要写0-63,而14扇区可能是磁头下的第一个扇区。如果它在写之前有所有数据,它可以立即写14-63,然后是0-13并在一次旋转中完成,而不是等待 0 出现并需要两次。)