[問題] 有關Btrfs軟體RAID6的觀念問題

看板Linux作者 (不良咪)時間10年前 (2016/01/19 15:30), 10年前編輯推噓6(608)
留言14則, 3人參與, 最新討論串1/1
小弟使用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

01/19 16:14, , 1F
你用btrfs fi df /mypool可確認data與metadata的raid方式
01/19 16:14, 1F
[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

01/19 18:06, , 2F
那是因為btrfs是software RAID, df讀取的是硬體資訊
01/19 18:06, 2F

01/19 18:07, , 3F
所以df不知道btrfs如何分配空間
01/19 18:07, 3F

01/19 18:09, , 4F
說硬體不對,應該說btrfs建立在vfs之上
01/19 18:09, 4F
之前ZFS小弟用df是顯示4.5T,那麼可否請教Btrfs是要用甚麼指令來 顯示容量資訊呢? 總覺得怪怪的。 ※ 編輯: NGCat (220.132.181.22), 01/19/2016 22:42:13

01/19 23:10, , 5F
btrfs filesystem df arch的wiki是寫用這個
01/19 23:10, 5F

01/20 06:51, , 6F
硬要說的話是btrfs fi show /mypool
01/20 06:51, 6F

01/20 06:53, , 7F
可是因為使用容量裡包含parity, 還有btrfs會用chunk
01/20 06:53, 7F

01/20 06:54, , 8F
實際使用空間用btrfs fi df看,但是剩餘空間只能估計了
01/20 06:54, 8F

01/20 07:03, , 9F
btrfs 的 df 不可信,that's all
01/20 07:03, 9F

01/20 07:04, , 10F
然後 btrfs wiki 上有剩餘空間的估計法,有點複雜
01/20 07:04, 10F

01/20 07:07, , 11F
修正第一句,應該說 btrfs 系統下的傳統 df -k 這個不可信
01/20 07:07, 11F

01/20 07:14, , 12F
或是有一條 btrfs fi usage /[mount point]
01/20 07:14, 12F

01/20 07:15, , 13F
不過我的會顯示 raid56 沒有 implment (btrfs tools 4.0)
01/20 07:15, 13F

01/20 09:41, , 14F
看起來用 btrfs fi usage 比較好
01/20 09:41, 14F
除了容量顯示這一部份目前還沒有簡單正確之外,其他的部份小弟測試都還算正常。 只好等包括df指令的更新了。不然,不曉得硬碟真正用了多少, 在管理上確實是一件令人困擾的事情。 附帶一個心得。雖然我是換了新硬碟來裝btrfs,但是發現如果沒有將之前的ZFS模組 完全反安裝卸除,是無法將上述btrfs raid6 掛上/etc/fstab的。 就算是使用mount指令手動掛上去是正常的情況之下。 從LOG看,發現兩個檔案系統看來是會打架的,呵。=^_^= ※ 編輯: NGCat (220.132.181.22), 01/20/2016 16:28:14
文章代碼(AID): #1MdUOawY (Linux)