有關Btrfs軟體RAID6的觀念問題 - Linux

Table of Contents

小弟使用Sientific Linux,在上面使用ZFS好幾個月了。

小弟習慣讓系統在每天自動執行yum -y update,更新套件。
但這也形成一個困擾,就是像ZFS這種和核心有關的外掛模組,
很容易因為核心的自動更新,一覺醒來,掛點了,而必須緊急Compile ZFS模組。

經過這幾個月,發現Btrfs在Linux已經逐漸成熟穩定,而且核心內建支援。
就興起了更換檔案系統的想法。

做了幾天的測試,與閱讀資料,發現網路上Btrfs在軟體RAID方面的架設文件並不多,
有些問題想向各位新進請教:

我找了五顆完全空白的1.5T硬碟,在ZFS使用以下指令就可以成功的架設起一個
可以直接使用的4.5T軟體RAID6檔案系統,並且開機自動掛載。

zpool create mypool raidz2 [HDD1] [HDD1] [HDD1] [HDD1] [HDD1]

所以我本以為同樣的觀念可以用在Btrfs中,同樣是五顆完全空白的1.5T硬碟:
==================================================================
[root@mylinux ~]# mkfs.btrfs -f -L mypool -d raid6 -m raid6 /dev/sdb
/dev/sdc /dev/sdd /dev/sde /dev/sdf
Btrfs v3.16.2
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature 'extref': increased hardlink limit per file to
65536
Turning ON incompat feature 'raid56': raid56 extended format
adding device /dev/sdc id 2
adding device /dev/sdd id 3
adding device /dev/sde id 4
adding device /dev/sdf id 5
fs created label mypool on /dev/sdb
nodesize 16384 leafsize 16384 sectorsize 4096 size 6.82TiB

------------------------------------------------------------------
[root@mylinux ~]# btrfs fi show
Label: 'mypool' uuid: a2fff861-de03-4f83-80f5-1d761aec3905
Total devices 5 FS bytes used 1.62MiB
devid 1 size 1.36TiB used 2.02GiB path /dev/sdb
devid 2 size 1.36TiB used 2.00GiB path /dev/sdc
devid 3 size 1.36TiB used 2.00GiB path /dev/sdd
devid 4 size 1.36TiB used 2.00GiB path /dev/sde
devid 5 size 1.36TiB used 2.00GiB path /dev/sdf

Btrfs v3.16.2

------------------------------------------------------------------
將這個檔案系統掛載之後:

[root@mylinux ~]# mount -t btrfs /dev/sdb mypool
[root@mylinux ~]# df


檔案系統 1K-區段 已用 可用 已用% 掛載


.........

/dev/sdb 7325691860 18048 7318308224 1%
/mypool

------------------------------------------------------------------

結果並不能成功的架設一個軟體RAID6的直接可用Btrfs檔案系統。

請問是
1. 小弟的指令下錯了?

2. 還是小弟的觀念錯誤了?
實際上應該先用傳統的LINUX架設RAID6的方法,
先將軟體ARRAY架設起來,然後在將這個ARRAY Format成Btrfs系統才是正確的步驟嗎?

但是如果是這樣,小弟就有個疑問了,上面指令中的

-d raid6 -m raid6


不就沒有意義了?




--

All Comments

Ina avatarIna2016-01-23
你用btrfs fi df /mypool可確認data與metadata的raid方式
Quintina avatarQuintina2016-01-25
那是因為btrfs是software RAID, df讀取的是硬體資訊
Dora avatarDora2016-01-27
所以df不知道btrfs如何分配空間
Victoria avatarVictoria2016-01-31
說硬體不對,應該說btrfs建立在vfs之上
Gary avatarGary2016-02-05
btrfs filesystem df arch的wiki是寫用這個
Lydia avatarLydia2016-02-07
硬要說的話是btrfs fi show /mypool
Brianna avatarBrianna2016-02-11
可是因為使用容量裡包含parity, 還有btrfs會用chunk
Quintina avatarQuintina2016-02-12
實際使用空間用btrfs fi df看,但是剩餘空間只能估計了
Catherine avatarCatherine2016-02-14
btrfs 的 df 不可信,that's all
Irma avatarIrma2016-02-14
然後 btrfs wiki 上有剩餘空間的估計法,有點複雜
Bennie avatarBennie2016-02-16
修正第一句,應該說 btrfs 系統下的傳統 df -k 這個不可信
Hardy avatarHardy2016-02-20
或是有一條 btrfs fi usage /[mount point]
Necoo avatarNecoo2016-02-25
不過我的會顯示 raid56 沒有 implment (btrfs tools 4.0)
Franklin avatarFranklin2016-02-29
看起來用 btrfs fi usage 比較好