默認情況下,ext4文件系統中存在約束,不允許跨目錄配額創建硬鏈接。但在實際中,某些特定場景有創建硬鏈接的需求,因此Alibaba Cloud Linux 2和Alibaba Cloud Linux 3提供定制接口,該接口能夠繞過ext4文件系統中的約束,實現跨目錄配額創建硬鏈接。本文主要介紹實現該功能的接口及接口示例。
背景信息
Linux系統支持三種模式的磁盤配額,分別為:user quota、group quota以及project quota。前兩種是針對用戶和組的,最后的project quota提供一種更細粒度的磁盤配額,細化到文件系統的目錄和文件,使用project id將不同的目錄和文件進行標記并限制。本文介紹的功能便是指在ext4文件系統中跨不同的project id目錄創建硬鏈接。
接口說明
/proc/sys/fs/hardlink_cross_projid該接口默認值為0,該情況下不允許跨目錄配額創建硬鏈接。當設置值為1時,則可以繞過ext4文件系統的約束,實現跨目錄配額創建硬鏈接。
您可以參考內核文檔Documentation/sysctl/fs.txt
中對該接口的相關說明。內核文檔通過Alibaba Cloud Linux 2的Debuginfo包和源碼包獲取,如何獲取請參見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
文檔內容是否對您有幫助?