Raid

FREENAS:為什麼 RAIDZ1 卷中不能立即執行 mv 命令?

  • March 26, 2014

我目前正在 RAIDZ1 卷中“重新組織”文件結構。將目錄從一個數據集移動到另一個數據集,它們都包含在同一卷中。

SSH 進入機器並做了一個很好的老式:

mv * 目的地

這不應該是瞬時的嗎?我知道它分佈在三個驅動器上,但與此同時,文件本身並不需要移動——我只是希望它可以調整這些文件的指針,並且基本上是即時的。絕對不是。我有大約 500G 的數據要移動,它已經執行了大約半個小時。oO

為什麼不是即時的?

規格: CPU:英特爾 G3220

MB:技嘉 GA-B85-HD3

記憶體:金士頓 DDR3-1600 8GB

磁碟:RAIDZ1 卷中的 3x2TB WD Green

你從錯誤的層面思考事情,僅此而已。

如果您在單個 ZFS 數據集的範圍內移動文件,它的反應將與您的預期相似。如果您在池的範圍內移動文件,但在數據集之間移動,這是一個真正的移動。是的,從技術上講,數據只是從 A 點到 B 點,並且兩個點都在同一個盤子上 - 但從 ZFS 的角度來看,它移動了房屋。

ZFS 數據集是獨立的文件系統。真正的文件系統。它們可以有不同的塊大小、壓縮設置等。在兩個 ZFS 文件系統之間移動文件,即使在同一個池上,也是一個真正的移動——位被讀取然後再次寫入,而不是僅僅更新指針。

從功能上講,它大致類似於在技術上來自同一硬碟的 2 個分區的兩個 ext4 文件系統之間移動文件 - 這兩個文件系統儘管共享底層硬體,但在邏輯上是完全不同的,因此不會發生“指針”更改,它必須物理移動文件,即使它實際上只是將數據從一個位置複製到同一底層驅動器上的另一個位置。

引用自:https://serverfault.com/questions/584693