OpenVZ 容器 - 无法设置 nf_conntrack_max

OpenVZ 容器 - 无法设置 nf_conntrack_max

我的问题是主机节点和容器是否具有相同的“nf_conntrack_max”?

当我检查主机与容器时,结果如下:

主机节点

[root@echo ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
524288

OpenVZ 容器

[root@delta ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
65536

但是当我尝试改变容器上的值时,我遇到了几个问题。

这就是我通常增加在主机节点上完美运行的值的方法。

[root@echo ~]# echo 1524288 > /proc/sys/net/netfilter/nf_conntrack_max
[root@echo ~]#
[root@echo ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
1524288

在容器上运行同样的事情

[root@delta ~]# echo 1524288 > /proc/sys/net/netfilter/nf_conntrack_max
-bash: echo: write error: Invalid argument
[root@delta ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
65536

我不明白的是为什么我在提高容器的值时遇到问题。主机节点和容器都运行 Centos 6.6,而我使用的是 root 权限。

编辑 我已尝试sysctl -w net.netfilter.nf_conntrack_max=1524288在容器中运行但似乎仍然存在问题。

[root@delta ~]# /sbin/sysctl -a|grep -i nf_conntrack_max
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536
[root@delta ~]# sysctl -w net.netfilter.nf_conntrack_max=1524288
error: "Invalid argument" setting key "net.netfilter.nf_conntrack_max"

答案1

我认为您只需要在 HN 中设置 conntrack 并重新启动 CT。

答案2

在容器中,你可以使用以下命令检查限制:

# /sbin/sysctl -a|grep -i nf_conntrack_max
net.netfilter.nf_conntrack_max = 2600000
net.nf_conntrack_max = 2600000

设置(在容器中):

sysctl -w net.netfilter.nf_conntrack_max=32384

然而最大值是 net.nf_conntrack_max 值,它通常从该值开始。

答案3

虽然主机节点和容器具有单独的“nf_contract_max”值,但您无法将容器的“nf_conntrack_max”值提高到高于主机节点的“nf_conntrack_max”。

例如;如果您的主机节点最大数量为 65536,那么您将无法将容器最大数量提高到 65536 以上。

只需提高主机节点限制,然后提高容器限制。

相关内容