預設情況下,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