Docker Warning : the backing xfs filesystem is formatted without d_type support


CentOS7 下安裝配置 Docker,遇到如下的WARNING,

WARNING: overlay: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior.
Reformat the filesystem with ftype=1 to enable d_type support.
Running without d_type support will not be supported in future releases.

xfs 文件系統不支持d_type,建議重新格式化文件系統加上 ftype=1 來打開 d_type 的支持,下面來了解下 xfs 下的 d_type。


d_type 對於Docker來說這么重要呢?
要知道Overlay 和 Overlay2是Docker支持的兩種存儲驅動,類似AUFS,其主要有如下幾個特性:

   1) 設計更加簡單;
   2) 從3.18內核開始,就進入了Linux內核主線;
   3) 速度更快。

Docker的overlay存儲驅動利用了很多OverlayFS特性來構建和管理鏡像與容器的磁盤結構。自從Docker1.12起,Docker也支持overlay2存儲驅動,相比於overlay來說,overlay2在inode優化上更加高效。但overlay2驅動只兼容Linux kernel4.0以上的版本。
  注:自從OverlayFS加入kernel主線后,它在kernel模塊中的名稱就被從overlayfs改為overlay了。
OverlayFS使用兩個目錄,把一個目錄置放於另一個之上,並且對外提供單個統一的視角。這兩個目錄通常被稱作層,這個分層的技術被稱作union mount。術語上,下層的目錄叫做lowerdir,上層的叫做upperdir。對外展示的統一視圖稱作merged。
下圖展示了Docker鏡像和Docker容器是如何分層的。鏡像層就是lowerdir,容器層是upperdir。暴露在外的統一視圖就是所謂的merged。

當Docker 運行在overlay/overlay2存儲驅動上時,需要d_type特性的支持才能正常工作,Docker1.13以后加入了對此的檢查,可以運行docker info命令來查看文件系統是否支持d_type這個特性。

如果overlayfs存儲驅動不支持d_type的話,容器在操作文件系統時可能會出現一些奇怪的錯誤:比如在bootstrap的時候出現Chown error,或者rebuild時發生錯誤等等。
如何解決?
壞消息是只能通過重做文件系統來解決,是不能在已經存在的操作系統上進行修改的哦!!!
下面是基本上可行的步驟:
(1)備份你的數據
(2)重新創建你的文件系統,當然可以是使用XFS,也可以使用Ext4
(3)恢復備份的數據回來
針對第二點,我們可以有如下操作(做下面命令之前最好了解下命令可能帶來的影響:):
如果是使用ext4文件系統,那么命令是:

mkfs.ext4 /path/to/your/device

如果是使用xfs文件系統,那么命令是:

mkfs.xfs -n ftype=1 /path/to/your/device
現在您就可以檢查下RHEL/CentOS7是否存在d_type問題:
sudo xfs_info /
meta-data=/dev/sda3 isize=256 agcount=4, agsize=32230848 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=128923392, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=62950, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
像我這台機器就是ftype=0,如果計划加入到Docker節點的話,需要進行調整哦!

 

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.2_release_notes/technology-preview-file_systems


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM