aufに127を超えるレイヤーを使用させるにはどうすればよいですか?または代替

aufに127を超えるレイヤーを使用させるにはどうすればよいですか?または代替

テストに基づく結論は、aufがレイヤ127に制限されることです。

(準備する)

mkdir write joined {1..400}
for((i=1;i<=400;i++));do echo >$i/$i.txt;done #for checks

シングルインストールでは、レイヤーは84個に制限されます(番号+書き込みレイヤー)。

フォルダ名は84制限を変更しません(したがって、各フォルダ名は「layer-72」のように大きくなる可能性があるため、文字列サイズの制限ではありません)。

sudo mount -v -t aufs \
  -o "sync,br=write:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27:28:29:30:31:32:33:34:35:36:37:38:39:40:41:42:43:44:45:46:47:48:49:50:51:52:53:54:55:56:57:58:59:60:61:62:63:64:65:66:67:68:69:70:71:72:73:74:75:76:77:78:79:80:81:82:83:84" \
  "none" "joined";echo $?

最後に「:84」を削除しないと、上記の操作は失敗します。

remountを使用すると、最大127層(番号付け+書き込み層)まで到達できます。

sudo mount -v -t aufs -o "sync,br=write" "none" "joined";echo $?
for((i=1;i<=400;i++));do 
  echo "try $i";
  if ! "sudo" "mount" -v "-o" "remount,append:$i" "joined";then
    break; # it stops with error "No space left on device", but is not related to free bytes on storage!
  fi;
  ls -l joined/$i.txt;
done

研究

mount.aufs読みやすいエラーメッセージを表示するためにこれを試してみましたが、mount -v役に立ちませんでした。

mountパラメータをに変換する方法を指定する文書はありますかmount.aufs

mount.aufsまだソースコードを見つけようとしています。これは、どのパラメータを受け入れるかを理解するのに役立ちます。

許容される代替回答

aufにパッチを適用できますか(127は明らかにハードコーディングされた制限なので)。努力/混乱を経験する価値はありますか?または、127を超えると、説明に記載されているようにパフォーマンスの問題が発生する可能性がありますか?

別のフォルダマージで127を超えるレイヤを提供できますか?それではどれですか?私が見つけたリストは次のとおりです:overlayfs Unionfs mhddfs mergefs docker。上記のテストケースに基づいてどのコマンドを使用する必要がありますか? aufsは非常に明確で、使いやすく理解しやすいです。これが私がそれを選んだ主な理由です。

PS:私が今使っているのは次のとおりです。aufsと同様に、mergefsが機能するようにするにはどうすればよいですか?新しいコンテンツや変更された内容(パス、すべてを含む...)を書き込み可能な単一のフォルダに書き込むだけですか?

関連情報