生态社区

适配知识库

ext4文件系统数据丢失(KYUA-202308-1256)

发布时间:2023-09-06    浏览次数:882次    作者:湖南省计算产业生态创新中心 (长沙)

  • 更新简述:

  • ext4文件系统在同一目录下创建一级子文件数量约为1500万个时,文件系统有如下报错: EXT4-fs error (device xx): ext4_dx_csum_set:492: inode #xxxx: comm xxxxx: dir seems corrupt? Run e2fsck -D. EXT4-fs error (device xx): ext4_dx_csum_verify:463: inode #xxxx: comm xxxxx: dir seems corrupt? Run e2fsck -D. EXT4-fs error (device xx): dx_probe:856: inode #xxxx: block 8188: comm xxxxx: Directory index failed checksum 该报错有潜在导致数据丢失的可能。

  • 影响操作系统版本:

    银河麒麟高级服务器操作系统 V10 SP1 aarch64

    银河麒麟高级服务器操作系统 V10 SP2 aarch64

    银河麒麟高级服务器操作系统 V10 SP3 aarch64

    1. 复现步骤

    (1,系统内核编译选择PAGE_SIZE 64k。(arm64架构支持64k page,x86不支持)

    (2,ext4文件系统创建时blocksize 设置为64k。(默认为4k)

    (3,在该文件系统下任意目录内,创建一级子文件。数量超过约1500万时,问题触发。

    2. 问题分析结果

    在引入麒麟修复补丁前,目前世界上所有ext4文件系统在特定条件下都存在这种缺陷。

    特定条件参见‘复现步骤’。

    3. 补丁及下载地址

    银河麒麟高级服务器操作系统 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 SP2aarch64

    升级软件包"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/

    4. 修复和更新方法

    根据解决方案将系统的内核升级到指定版本即可解决此问题。修复补丁已经提交到国际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