pymumu / smartdns

A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH. 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT。
https://pymumu.github.io/smartdns/
GNU General Public License v3.0
8.52k stars 1.09k forks source link

operation not supported error, dev loop0, sector 49152 op 0x3:(DISCARD) flags 0x0 phys_seg 1 prio class 2 #1373

Closed yyysuo closed 11 months ago

yyysuo commented 1 year ago

问题现象
smartdns工作时,openwrt日志中出现大量如下错误,不工作就不会出现错误: Fri Apr 14 04:59:31 2023 kern.err kernel: [ 1175.651216] operation not supported error, dev loop0, sector 230784 op 0x3:(DISCARD) flags 0x0 phys_seg 1 prio class 2 Fri Apr 14 04:59:31 2023 kern.err kernel: [ 1175.651626] operation not supported error, dev loop0, sector 230576 op 0x3:(DISCARD) flags 0x0 phys_seg 1 prio class 2 Fri Apr 14 04:59:31 2023 kern.err kernel: [ 1175.652018] operation not supported error, dev loop0, sector 230544 op 0x3:(DISCARD) flags 0x0 phys_seg 1 prio class 2 Fri Apr 14 04:59:31 2023 kern.err kernel: [ 1175.652458] operation not supported error, dev loop0, sector 229384 op 0x3:(DISCARD) flags 0x0 phys_seg 1 prio class 2

运行环境

  1. 固件型号
    以下内核smartdns工作时均出现错误日志,不工作不出现日志。 koolshare 2.37 内核5.4.108 ImmortalWrt v21.02.5 内核5.4.236 OpenWrt R23.4.1 / LuCI Master (git-23.102.51528-077696d) 内核6.1.23

  2. 运营商
    山东联通

  3. smartdns来源以及版本 所有smartdns版本

  4. 涉及的配置(注意去除个人相关信息) server-name smartdns dualstack-ip-selection no prefetch-domain yes serve-expired yes cache-size 100000000 dnsmasq-lease-file /tmp/dhcp.leases rr-ttl-min 1 log-size 64K log-num 1 log-level error cache-persist yes cache-file /etc/smartdns/smartdns.cache resolv-file /tmp/resolv.conf.d/resolv.conf.auto bind [::]:6053 bind-tcp [::]:6053 bind [::]:5555 -no-speed-check -group foreign -no-dualstack-selection bind-tcp [::]:5555 -no-speed-check -group foreign -no-dualstack-selection server 202.102.128.68 -group domestic -exclude-default-group server-tls 223.5.5.5 -group domestic -exclude-default-group server-tls 8.8.8.8 -group foreign -exclude-default-group server-tls 1.1.1.1 -group foreign -exclude-default-group server-tls 8.8.4.4 -group foreign -exclude-default-group server-tls 1.12.12.12
    server 10.10.10.100:3053 -group domestic -exclude-default-group server 10.10.10.100:1056 -group foreign -exclude-default-group server 10.10.10.100:2053
    domain-set -name domain-forwarding-list -file /etc/smartdns/domain-forwarding.list domain-rules /domain-set:domain-forwarding-list/ domain-set -name domain-block-list -file /etc/smartdns/domain-block.list domain-rules /domain-set:domain-block-list/ --address # conf-file /etc/smartdns/address.conf conf-file /etc/smartdns/blacklist-ip.conf conf-file /etc/smartdns/custom.conf

custom.conf: log-level fatal bind :8055 -group domestic bind-tcp :8055 -group domestic serve-expired-ttl 259200000 serve-expired-prefetch-time 21600

重现步骤

  1. 上游DNS配置。
    见配置文件
  2. 访问的域名。
    未知

信息收集
此问题困扰我3年多,几乎尝试了网上所有的解决方案,下面资料供大佬参考,不知道是否有用。 https://lore.kernel.org/all/20211028041513.GD4821@dread.disaster.area/T/

PikuZheng commented 1 year ago

打听一下是什么硬件出现这个问题,内存有多少,存储有多少

yyysuo commented 1 year ago

打听一下是什么硬件出现这个问题,内存有多少,存储有多少

7100u的小主机,装了esxi,上面提及的openwrt都是虚拟在esxi下面的,内存我一般给2G,看使用率,足够用了。存储我没有添加硬盘,使用的是镜像转换出来的vmdk现有的硬盘。

pymumu commented 1 year ago

那个log似乎是因为mount的loop设备不支持某个功能的log

但smartdns没有这些操作,只有log文件和cache文件会写盘,但我看你配置都关闭了

不清楚你是怎么mount磁盘的,可以发一下cat /proc/mounts看看

另外就是不要用loop

PikuZheng commented 1 year ago

装了esxi,上面提及的openwrt都是虚拟在esxi下面的

同esxi+openwrt,但是22.03+5.10.138,从没有过此问题。~目前考虑虚磁盘格式问题,如果是img转vmdk(单文件,workstation格式)则可能出现此现象;如果是vmdk+flat(一个描述文件一个数据文件,esxi格式)应该是正常的。~ image 这个。squashfs才有的问题。我一直用的ext4,没这个loop0设备 image

PikuZheng commented 1 year ago

new infomation。。。squashfs不能挂载在scsi或sata,必须挂载在ide,然后一切正常。 image

image

我自己的ext4是一直挂载在scsi的

yyysuo commented 1 year ago

new infomation。。。squashfs不能挂载在scsi或sata,必须挂载在ide,然后一切正常。 image

image

我自己的ext4是一直挂载在scsi的

大佬费心了,对于已经正常运行的虚拟机,我目前的设置是这样的 image

是否改成这样就可以了呢?还是说需要重新安装openwrt才可以? image

另外,其它插件都没有这个问题,为什么smartdns有这个问题呢,在smartdns侧修改代码能解决这个问题么?

PikuZheng commented 1 year ago

是否改成这样就可以了呢?还是说需要重新安装openwrt才可以?

可以直接改。关机,改,开机。

另外,其它插件都没有这个问题,为什么smartdns有这个问题呢,在smartdns侧修改代码能解决这个问题么?

我第一张图是原版img什么软件都没安装,可见开机就有报错的。

PikuZheng commented 1 year ago

建议还是用ext4 img,以后空间扩容,或挂载到其他系统上读写文件都很方便。

yyysuo commented 1 year ago

建议还是用ext4 img,以后空间扩容,或挂载到其他系统上读写文件都很方便。

没法后改了吧,还得全部重新弄一遍,费劲啊。

yyysuo commented 1 year ago

是否改成这样就可以了呢?还是说需要重新安装openwrt才可以?

可以直接改。关机,改,开机。

另外,其它插件都没有这个问题,为什么smartdns有这个问题呢,在smartdns侧修改代码能解决这个问题么?

我第一张图是原版img什么软件都没安装,可见开机就有报错的。

esxi中更改scsi为ide,提示成功,但是再次重新编辑时,看到的选项还是scsi,不知道是啥情况。

PikuZheng commented 1 year ago

esxi中更改scsi为ide,提示成功,但是再次重新编辑时,看到的选项还是scsi,不知道是啥情况。

换用谷歌浏览器

yyysuo commented 1 year ago

esxi中更改scsi为ide,提示成功,但是再次重新编辑时,看到的选项还是scsi,不知道是啥情况。

换用谷歌浏览器

就是用的chrome最新版本,估计是esxi的版本有关系。我是6.7 update 3,前一阵子因为不能创建新的虚拟机,打了个补丁: https://blog.csdn.net/wuhao0015/article/details/123772442

现在的问题是能编辑,能保存,保存也提示成功,然后再编辑看到之前的保存其实无效的。

PikuZheng commented 1 year ago

就是用的chrome最新版本,估计是esxi的版本有关系。我是6.7 update 3

我家里两个6.7u3,从没遇到问题啊

,前一阵子因为不能创建新的虚拟机,打了个补丁:

https://blog.csdn.net/wuhao0015/article/details/123772442

现在的问题是能编辑,能保存,保存也提示成功,然后再编辑看到之前的保存其实无效的。

啊这 人家是6.5的补丁 要不你直接ssh进去,修改vmx文件吧

yyysuo commented 1 year ago

就是用的chrome最新版本,估计是esxi的版本有关系。我是6.7 update 3

我家里两个6.7u3,从没遇到问题啊

,前一阵子因为不能创建新的虚拟机,打了个补丁:

https://blog.csdn.net/wuhao0015/article/details/123772442 现在的问题是能编辑,能保存,保存也提示成功,然后再编辑看到之前的保存其实无效的。

啊这 人家是6.5的补丁 要不你直接ssh进去,修改vmx文件吧

我也搞不懂,一个19年的bug为什么现在还没解决,我打了补丁也确实解决了问题,看来也造成了新的问题,话说6.7是不是已经过保了,最新的补丁还是去年10月的。

PikuZheng commented 1 year ago

我6.7从来没bug过。。。也没单独安装什么补丁。现在版本是19997733,也就是去年7月的版本。 看了一下确实是EOL了,不过我还没计划升7.0GA image

说起来你可以新建一个虚拟机,然后挂载这个现有硬盘到ide吗

yyysuo commented 1 year ago

感谢,这个思路真是绝妙,应该是可以的,只需要把所有快照删除整合一下磁盘,然后新建一个配置一模一样的虚拟机,使用整合之后的磁盘,再改成IDE至少可以在esxi的界面看到ide改成功了,切换的话我还没试,等家人都睡了再切换测试,到时候再反馈。

yyysuo commented 1 year ago

这个ide模式和scsi性能上有差异?

PikuZheng commented 1 year ago

这个ide模式和scsi性能上有差异?

都是模拟盘,只不过模拟的总线不同而已

yyysuo commented 1 year ago

这个ide模式和scsi性能上有差异?

都是模拟盘,只不过模拟的总线不同而已

方案可行,已经转换固件为IDE模式,目前看来确实是没有错误日志了。

yyysuo commented 1 year ago

这个ide模式和scsi性能上有差异?

都是模拟盘,只不过模拟的总线不同而已

这种设置也是可以的,但是快照功能就废了,能做快照,能恢复快照,但是这个恢复快照好像并不管用。 image