1,系統內核編譯選擇PAGE_SIZE 64k。(arm64架構支持64k page,x86不支持)
2,ext4文件系統創建時blocksize 設置為64k。(默認為4k)
3,在該文件系統下任意目錄內,創建一級子文件。數量超過約1500萬時,問題觸發。
在引入麒麟修復補丁前,目前世界上所有ext4文件系統在特定條件下都存在這種缺陷。
特定條件參見‘復現步驟’。
銀河麒麟高級服務器操作系統 V10 SP1
aarch64
升級軟件包"kernel"到"4.19.90-23.37.v2101.ky10"或更高版本。
補丁包下載地址:https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/
銀河麒麟高級服務器操作系統 V10 SP2
aarch64
升級軟件包"kernel"到"4.19.90-25.30.v2101.ky10"或更高版本。
補丁包下載地址:https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/
銀河麒麟高級服務器操作系統 V10 SP3
aarch64
升級軟件包"kernel"到"4.19.90-52.27.v2207.ky10"或更高版本。
補丁包下載地址:https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/
根據解決方案將系統的內核升級到指定版本即可解決此問題。修復補丁已經提交到國際ext4社區。參考社區鏈接:https://lore.kernel.org/all/20230731010104.1781335-1-zhangshida@kylinos.cn/
更新方法:
方法一:配置源進行升級安裝
1. 打開軟件包源配置文件,根據倉庫地址進行修改。
倉庫源地址:
銀河麒麟高級服務器操作系統 V10 SP1 aarch64:https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/
銀河麒麟高級服務器操作系統 V10 SP2 aarch64:https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/aarch64/
銀河麒麟高級服務器操作系統 V10 SP3 aarch64:https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/aarch64/
2. 配置完成后執行更新命令進行升級,命令如下:
yum update kernel
方法二:下載安裝包進行升級安裝
根據使用的操作系統版本,下載“補丁及下載地址”一節中對應的軟件包列表進行升級安裝, 命令如下:
yum install kernel