2013-07-24 41 views
3

我有一個btrfs卷,它已經由兩個不同的設備組成,並且已安裝在/ samples上。根據df報告,其總大小爲194GB。將新設備添加到b​​trfs卷,但可用大小几乎不增長

$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
... 
/dev/sdc1  194G 165G 20G 90% /samples 

現在,我想添加另一個500GB的卷,從另一個設備。 我做

$ sudo mkfs.btrfs -m raid0 -d raid0 /dev/sdb 
$ sudo btrfs device add /dev/sdb /samples 

我的文件系統現在可以正確地報告:

$ sudo btrfs filesystem show 
Label: none uuid: 545e95c6-d347-4a8c-8a49-38b9f9cb9add 
    Total devices 3 FS bytes used 161.98GB 
    devid 3 size 465.76GB used 0.00 path /dev/sdb 
    devid 2 size 93.13GB used 84.51GB path /dev/sdc1 
    devid 1 size 100.61GB used 84.53GB path /dev/sdc6 

但我錯過了一些空間,當我做:

$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
... 
/dev/sdc1  660G 165G 43G 80% /samples 

我加了500GB!爲什麼我沒有更多的可用?

要調試,我跑這個命令:

$ sudo btrfs filesystem df /samples 
Data, RAID0: total=162.00GB, used=159.79GB 
Data: total=8.00MB, used=7.48MB 
System, RAID1: total=8.00MB, used=24.00KB 
System: total=4.00MB, used=0.00 
Metadata, RAID1: total=3.50GB, used=2.19GB 
Metadata: total=8.00MB, used=0.00 

我的數據是RAID0,沒關係。那麼我的500GB消失了,我該如何解決這個問題?

謝謝

+1

您可以使用btrfs filesystem balance/samples來平衡文件系統。順便說一下,沒有理由在待添加的設備上發出sudo mkfs.btrfs -m raid0 -d raid0/dev/sdb。 –

+1

據我瞭解,平衡會將數據均勻地分佈在3個設備上。但我這裏的問題並不是真正傳播數據,而是可用的大小df -h報告的數量。我添加了465.76G,但我只能看到43G(儘管我還沒有添加任何數據)。 465G在哪裏去了? – user1381

+0

一般情況下是這樣,但在這種情況下,我認爲應該將RAID1元數據平衡地複製到第三個磁盤。換句話說,IMO應該運行btrfs balance start -dconvert = raid0 -mconvert = raid1/samples告訴我它是否有效。 –

回答

4

感謝您的回答。我正在計算我在這裏和btrfs郵件列表上收到的各種回覆的答案。

  1. 我的新500G沒有顯示,因爲它們最初無法使用。
  2. 我需要平衡的三個分區中的數據:

    BTRFS文件系統平衡/樣品

  3. 在同一磁盤上使用兩個分區(的/ dev/SDC1和/ dev/sdc6)不是最佳的完全是因爲他們會花時間在兩個分區之間尋找。在這種情況下,更好的選擇是使用'single',其中分區依次填充(不分條)。用新的BTRFS工具,這是可能使用該命令:

    BTRFS平衡啓動-dconvert =單,軟/樣品

  4. 在Debian/Ubuntu的主機,它支持平衡轉換最新BTRFS工具通常不在可用打包格式,需要從源代碼編譯。

再次感謝您的回答。

+0

嗨,你可以分享你在哪裏找到關於'-dconvert = single,soft'參數的信息嗎? – ceinmart

+0

這是在我收到的回覆郵件中提到的。更確切地說,他說:「如果要使用可用的全部空間,則應該將 重新平衡爲單次使用,這會停止RAID-0分拆,併線性分配 : #btrfs balance start -dconvert = single,軟/樣本 「 – user1381

+0

請注意,現在你只有一堆磁盤,雖然 –