it-swarm-ja.com

`ftype = 1`でXFSファイルシステムを再作成する

ルートファイルシステムがXFSであるCentOS 7システムがあります(ftype=0、システムのインストール時のデフォルトのCentOS設定で作成)。残念ながら、Docker overlay2ストレージドライバーでは、そのファイルシステムがftype=1で作成されている必要があります。

https://docs.docker.com/storage/storagedriver/overlayfs-driver/#prerequisites

ルートを再作成したいと思いますFS with ftype=1。私はそれを次のように行うことを考えていました:

  1. ある種のレスキューイメージを起動します。
  2. xfsdumpルートFSリモートの場所に。
  3. ルートを再作成FS with ftype=1
  4. xfsrestoreリモートダンプからのルートFS.

ただし、確信が持てないのは、xfsdumpの出力にftypeの設定に関連するものが含まれているかどうかです。つまり、xfsrestore設定が異なるXFSファイルシステムに対してftypeを実行するときに問題が発生しますか?

または、この特定の問題を解決するためのより良いアプローチはありますか?

6
jjlin

私の提案した方法はうまくいくようでした。これが私の手順です:

  1. CentOS-7-x86_64-LiveGNOME-1804.isoを起動します。
  2. ターミナルを開き、Sudo -sを押します。
  3. LVMボリュームをスキャンします:vgscan
  4. 適切なボリュームグループに変更します(私の場合はcentos):vgchange -ay centos
  5. そのグループの論理ボリュームをスキャンします:lvscan
  6. ルートFSのマウントポイントを作成します:mkdir /mnt/root
  7. ルートFSに対応する論理ボリュームをマウントします:mount /dev/centos/root /mnt/root
  8. リモートホストにダンプ:xfsdump -J - /mnt/root | ssh <Host> 'cat >/data/rootfs.dump'
  9. ルートFSをアンマウントします:umount /mnt/root
  10. ルートFSを再作成します:mkfs.xfs -f -n ftype=1 /dev/centos/root
  11. 再作成したルートFSをマウントします。mount /dev/centos/root /mnt/root
  12. リモートホストから復元:ssh <Host> 'cat /data/rootfs.dump' | xfsrestore -J - /mnt/root
  13. リブート。 xfs_info /ftype=1を表示することを除いて、すべてが以前と同じです。

注:xfsdumpを呼び出すと、次の形式の警告が多数表示されました

xfsdump: WARNING: failed to get bulkstat information for inode 10485897

XFS開発者のように見える誰かによると( http://xfs.9218.n7.nabble.com/xfs-and-lvm-snapshots-tp1241p1246.html ):

これらは無視してかまいません。以前はリンク解除されていたiノードですが、スナップショットボリューム上にはまだ部分的に存在し、スナップショット内のすべてのiノードを抽出するためにxfsdumpが使用しているハンドルごとのインターフェースに表示されます。

9
jjlin