デフォルトでは、ext4ファイルシステムには、プロジェクトクォータ間でのハードリンクの作成を禁止する制限があります。 ただし、実際には、特定のシナリオでは、プロジェクトクォータ間でハードリンクを作成する必要があります。 Alibaba Cloud Linux 2および3は、ext4ファイルシステムの制限を回避して、プロジェクトクォータ間でハードリンクを作成できるカスタマイズされたインターフェイスを提供します。 このトピックでは、インターフェイスについて説明し、インターフェイスの使用方法の例を示します。
背景情報
Linuxディストリビューションは、ユーザークォータ、グループクォータ、およびプロジェクトクォータのタイプのディスククォータをサポートしています。 プロジェクトのクォータは、プロジェクトに関連付けられているすべてのファイルまたはディレクトリに適用されます。 プロジェクトは、ファイルシステム内に複数のディレクトリとファイルを含めることができます。 ディレクトリとファイルはプロジェクトIDで識別されます。 プロジェクトのクォータは、ユーザーまたはグループのクォータよりも、ディスク使用量に対するきめ細かい制限を提供します。 このトピックでは、ext4ファイルシステム内で異なるプロジェクトIDを持つディレクトリ間でハードリンクを作成できるインターフェイスについて説明します。
インターフェイス説明
/proc/sys/fs/hardlink_cross_projidインターフェイスのデフォルト値は0です。 この値は、プロジェクトクォータ間でハードリンクを作成できないことを示します。 /proc/sys/fs/hardlink_cross_projidインターフェイスを1に設定すると、ext4ファイルシステムの制限を回避して、プロジェクトクォータ間でハードリンクを作成できます。
インターフェイスの詳細については、「Documentation/sysctl/fs.txt
カーネルドキュメント」をご参照ください。 カーネルドキュメントは、DebuginfoパッケージとAlibaba Cloud Linux 2のソースコードパッケージから取得できます。 詳細については、「Alibaba Cloud Linux 2の使用」をご参照ください。
例:
次のコマンドを実行して、/proc/sys/fs/hardlink_cross_projidインターフェイスの値を照会できます。
cat /proc/sys/fs/hardlink_cross_projid
0
の値が返されます。これは、プロジェクトのクォータ間でハードリンクを作成できないことを示します。
次のコマンドを実行すると、値を0から1に変更できます。 これにより、プロジェクトクォータ間でハードリンクを作成できます。
echo 1 > /proc/sys/fs/hardlink_cross_projid