Filesystems

Btrfs RAID1 大小不匹配的驅動器已滿

  • July 6, 2015

我有一個 500 GB 硬碟和一個 300 GB 硬碟。我已將它們格式化為 btrfs raid1 之間。

總大小為 800 GB。

如果我將 50 GB 複製到文件系統上,則會使用 100 GB。

如果我將 300 GB 複製到文件系統上,它會導致較小的驅動器已滿

更大的驅動器上額外的 200 GB 呢?它是否仍然使用額外的 200 GB,但只是不鏡像它?

因此,如果鏡像數據對我的文件系統很重要,即使我的驅動器大小不匹配,我是否應該創建大小相等的分區?

顯然,在較小的驅動器被填滿之前,它不會停止鏡像,但這只會使大小不匹配的驅動器毫無意義,除非你有超過 2 個驅動器。

我不喜歡 btrfs 所說的 RAID1 設置的總大小為 800 GB。即使我的真實(鏡像收益)最大大小是 300 GB。我怎樣才能讓它告訴我 Ii 可以放在文件系統上的實際最大數據量(實際上將被鏡像)?

如果我將 50 GB 複製到文件系統上,則會使用 100 GB。

如果我將 300 GB 複製到文件系統上,它會導致較小的驅動器已滿

更大的驅動器上額外的 200 GB 呢?它是否仍然使用額外的 200 GB,但只是不鏡像它?

不,它沒有。那時的結果是文件系統已滿。

要分配一個新塊,根據raid1策略,它必須在每個驅動器上分配一個塊。這是不可能的。結論:ENOSPC設備上沒有剩餘空間。

因此,如果鏡像數據對我的文件系統很重要,即使我的驅動器大小不匹配,我是否應該創建大小相等的分區?

這取決於您將來想做什麼,以及如果可以使用第二個驅動器上的“額外”空間,您希望做什麼。

如果您計劃或可能計劃在某個時候向陣列添加第三個驅動器,請使用每個驅動器的最大大小,因為一旦添加第三個驅動器,Btrfs 將自動變得能夠使用額外的空間。

如果您對額外的 200GB 有更好的處理,您總是可以對 500GB 驅動器進行分區,以將 300GB 分配給 Btrfs,將 200GB 分配給其他東西(當然,無論其他東西是什麼,它都不會被冗餘儲存)。

我想在您的情況下,您應該只保留每個分區的最大大小(甚至根本不使用分區),並期待您何時添加第三個磁碟並且您將能夠使用所有新的可用空間。

我不喜歡 btrfs 所說的 RAID1 設置的總大小為 800 GB。即使我的真實(鏡像收益)最大大小是 300 GB。我怎樣才能讓它告訴我 Ii 可以放在文件系統上的實際最大數據量(實際上將被鏡像)?

在 Btrfs 中估計可用大小並不像聽起來那麼容易。有各種不同大小的驅動器和不同數量的目前使用量難以預測的情況。此外,多個不同的策略可以同時生效(一個用於數據,一個用於元數據),在這種情況下,有效可用空間的數量將取決於未來文件系統使用多少元數據以及多少用於數據。再平衡還將改變(希望改善)有效的可用空間。Btrfs 盡力而為。

引用自:https://unix.stackexchange.com/questions/214078