作者NGCat (不良咪)
看板Linux
標題[問題] 有關Btrfs軟體RAID6的觀念問題
時間Tue Jan 19 15:30:37 2016
小弟使用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
不就沒有意義了?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.51.119
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1453188644.A.EA2.html
推 Reylod: 你用btrfs fi df /mypool可確認data與metadata的raid方式 01/19 16:14
[root@mylinux /]# btrfs fi df /mypool
Data, single: total=8.00MiB, used=0.00
Data, RAID6: total=3.00GiB, used=1.50MiB
System, single: total=4.00MiB, used=0.00
System, RAID6: total=9.56MiB, used=16.00KiB
Metadata, single: total=8.00MiB, used=0.00
Metadata, RAID6: total=3.00GiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00
理論上1.5T * 5 RAID6 不是應該是4.5T的容量嗎?
※ 編輯: NGCat (220.132.181.22), 01/19/2016 17:08:36
推 Reylod: 那是因為btrfs是software RAID, df讀取的是硬體資訊 01/19 18:06
→ Reylod: 所以df不知道btrfs如何分配空間 01/19 18:07
→ Reylod: 說硬體不對,應該說btrfs建立在vfs之上 01/19 18:09
之前ZFS小弟用df是顯示4.5T,那麼可否請教Btrfs是要用甚麼指令來
顯示容量資訊呢? 總覺得怪怪的。
※ 編輯: NGCat (220.132.181.22), 01/19/2016 22:42:13
推 Bellkna: btrfs filesystem df arch的wiki是寫用這個 01/19 23:10
推 Reylod: 硬要說的話是btrfs fi show /mypool 01/20 06:51
→ Reylod: 可是因為使用容量裡包含parity, 還有btrfs會用chunk 01/20 06:53
→ Reylod: 實際使用空間用btrfs fi df看,但是剩餘空間只能估計了 01/20 06:54
推 rexxon: btrfs 的 df 不可信,that's all 01/20 07:03
→ rexxon: 然後 btrfs wiki 上有剩餘空間的估計法,有點複雜 01/20 07:04
→ rexxon: 修正第一句,應該說 btrfs 系統下的傳統 df -k 這個不可信 01/20 07:07
推 rexxon: 或是有一條 btrfs fi usage /[mount point] 01/20 07:14
→ rexxon: 不過我的會顯示 raid56 沒有 implment (btrfs tools 4.0) 01/20 07:15
→ Bellkna: 看起來用 btrfs fi usage 比較好 01/20 09:41
除了容量顯示這一部份目前還沒有簡單正確之外,其他的部份小弟測試都還算正常。
只好等包括df指令的更新了。不然,不曉得硬碟真正用了多少,
在管理上確實是一件令人困擾的事情。
附帶一個心得。雖然我是換了新硬碟來裝btrfs,但是發現如果沒有將之前的ZFS模組
完全反安裝卸除,是無法將上述btrfs raid6 掛上/etc/fstab的。
就算是使用mount指令手動掛上去是正常的情況之下。
從LOG看,發現兩個檔案系統看來是會打架的,呵。=^_^=
※ 編輯: NGCat (220.132.181.22), 01/20/2016 16:28:14