テストに基づく結論は、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が機能するようにするにはどうすればよいですか?新しいコンテンツや変更された内容(パス、すべてを含む...)を書き込み可能な単一のフォルダに書き込むだけですか?