searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

>4K分页上CPU运行bcache的问题分析和解决方案

2023-05-24 06:27:55
103
0

问题

bcache虽然在Linux内核的3.10版本已进入Linux内核主线,但是到2021年11月之前,在不支持4K分页的国产CPU服务器上使用bcache,attach设备命令成功,但是显示cache设备和主设备没有联系,重启后bcache盘丢失,从而无法在只支持分页>16K分页的某些国产CPU上使用。

原因分析(buffer_head和磁盘上数据不一致)

天翼云分析了bcache, buffer_head, pagecache之后,发现了社区版本的问题所在:社区版本在64K page时使用内核pagecache中的page时,出现偏移错误导致一旦出现超级块的更新(如attach)操作,pagecache中的数据将和磁盘中的数据不一致。从而出现丢失作为bcache设备特征的magic信息,导致重启后bcache设备丢失。

解决方案(正确使用内核buffer_head)

0条评论
0 / 1000
d****n
2文章数
0粉丝数
d****n
2 文章 | 0 粉丝
d****n
2文章数
0粉丝数
d****n
2 文章 | 0 粉丝
原创

>4K分页上CPU运行bcache的问题分析和解决方案

2023-05-24 06:27:55
103
0

问题

bcache虽然在Linux内核的3.10版本已进入Linux内核主线,但是到2021年11月之前,在不支持4K分页的国产CPU服务器上使用bcache,attach设备命令成功,但是显示cache设备和主设备没有联系,重启后bcache盘丢失,从而无法在只支持分页>16K分页的某些国产CPU上使用。

原因分析(buffer_head和磁盘上数据不一致)

天翼云分析了bcache, buffer_head, pagecache之后,发现了社区版本的问题所在:社区版本在64K page时使用内核pagecache中的page时,出现偏移错误导致一旦出现超级块的更新(如attach)操作,pagecache中的数据将和磁盘中的数据不一致。从而出现丢失作为bcache设备特征的magic信息,导致重启后bcache设备丢失。

解决方案(正确使用内核buffer_head)

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0