質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

3728閲覧

CentOS7.2へdocker-ceをインストールしたが起動時に d_typeのエラー

taro373

総合スコア189

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/02/18 07:09

編集2020/02/19 07:55

【やったこと】
CentOS7.2へdocker-ce 17.12.0をインストールしました。

dockerを起動すると下記のエラーメッセージが表示されました。

$ sudo systemctl start docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

【調べたこと】

$ sudo journalctl -xe 2月 18 09:54:31 hoge kernel: overlayfs: upper fs needs to support d_type. This 2月 18 09:54:31 hoge dockerd[29900]: time="2020-02-18T09:54:31.421900022+09:00 2月 18 09:54:31 hoge dockerd[29900]: Error starting daemon: error initializing

検索すると下記のサイトが見つかり、xfs上でftype=1でなければならなそうです。
https://docs.docker.com/storage/storagedriver/overlayfs-driver/
「Use xfs_info to verify that the ftype option is set to 1. To format an xfs filesystem correctly, use the flag -n ftype=1.」
とありました。

調べると確かにftype=0でした

$ xfs_info /dev/mapper/centos-root|grep ftype naming =version 2 bsize=4096 ascii-ci=0 ftype=0

正常に動作したCetnOS7.4ではftype=1になっていました

$ xfs_info /dev/sda4|grep ftype naming =version 2 bsize=4096 ascii-ci=0 ftype=1

https://docs.docker.com/storage/storagedriver/overlayfs-driver/
を参考にdaemon.jsonファイルを作成し、下記の記述を追加しました

{ "storage-driver": "overlay2" }

これで、dockerは起動したのですが、docker infoを参照すると

$ docker info /usr/bin/docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 93 Server Version: 17.12.0-ce Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: false Native Overlay Diff: true (略) WARNING: overlay2: 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.

"leads to incorrect behavior"と言われて心配になり、docker-ceをremoveしてdocker1.13.1
を再インストールしました。

【実現したいこと】
"Reformat the filesystem with ftype=1"とありますから、
パーティションをフォーマットしない限り、この環境ではdocker-ceは実行できないのでしょうか。

そもそもOSのインストール時にftype=0としたつもりは無いのですが、どうするとこうなったのか不明です。
またd_typeサポートとは何のことか検索しましたが、わかりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taro373

2020/02/21 06:29

今回docker-ceをインストールした(その後dockerに戻した)サーバとは別のCentOS7.2の サーバでもxfs_infoを実行すると「ftype=0」と表示されました。 そういうことですか..... リンク先を読みました 「フォーマットするか、crc=0にした上でFTYPEフィールドを追加」とありますね crcはチェックサムの有効/無効のようで、crc=0ですと 「突然の停電などでメタデータが破損するのを保護」の機能が無効?? それとも「FTYPEフィールドを追加」時のチェックをスルーさせるのか 後者だと仮定して、テスト環境で操作してみます。
taro373

2020/02/25 01:11

当たり前かもしれませんが $ mkfs.xfs -m crc=0 -n ftype=1 /dev/sda4 mkfs.xfs: /dev/sda4 contains a mounted filesystem OSを稼働させながら変更できるような部分ではなさそうですね
guest

回答1

0

自己解決

hoshi-takanoriさんのコメントにあるように

再フォーマット(または新しいパーティションを作る)必要がありそうで
現在起動しているOSのパーティションを変更することは難しそうです。

ftype=0となっている環境では(docker-ceでなく)dockerを引き続き使用するか
Singularityを利用することにします。

投稿2020/02/25 01:17

taro373

総合スコア189

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問