我目前正在考虑从 ext4 切换到 ZFS,并且无法找到有关它是否使用更多或更少空间来存储与 ext4 相同数量的数据的信息。我的理解是,它使用校验和来确保数据完整性,我假设与 ext4 相比,它会以使用更多物理空间为代价。由于似乎没有人在谈论这个,我想知道压缩(我理解默认情况下启用)是否超过了校验和使用的空间?
Curtis's questions
我有一个装满托管 OpenVZ 容器的 Linux 服务器的机架,由于某种原因,当我尝试从一些 OpenVZ 容器(例如,使用 telnet)连接到某个远程 IP 时,我最终连接到另一个而是在本地网络上的服务器。到目前为止,我已经研究了以下可能性:
检查了我试图建立出站连接的服务器,以确保没有将远程 IP 重定向到本地 IP 的 iptables 规则。
检查我们的路由器/防火墙以确保没有规则可以将此出站连接重定向到本地 IP。
检查它错误连接的 OpenVZ 容器,并确保它没有将远程 IP 配置为 IP 别名。
所有 OpenVZ 容器都运行 CentOS 5.x。
我敢肯定这很简单,但我的想法已经不多了。
只是想知道是否有人从以下屏幕截图中看到关于可能导致此服务器锁定的原因的任何线索:
该服务器在 6 个月前也被锁定了,我仍然有它的屏幕截图:
服务器正在运行 Proxmox 1.8(基于 Debian Lenny,但我认为内核来自 OpenVZ)。uname 输出(屏蔽主机名):
Linux ------ 2.6.32-4-pve #1 SMP Mon May 9 12:59:57 CEST 2011 x86_64 GNU/Linux
有没有人根据这些屏幕截图看到任何关于这是硬件问题还是软件问题的线索?
我们的几台服务器使用 Adaptec 2405 控制器在 RAID 10 中配备 ST32000641AS(2TB 希捷台式机硬盘)。Adaptec 告诉我这是个坏主意,事实上,我们已经看到一个 raid 系统在使用这些驱动器时出现故障。由于这是一个 24/7 系统,我的问题是是否可以通过热插拔将它们一个接一个地切换到 WD RE4 2TB raid 版驱动器(型号 WD2003FYYS),直到我们迁移过来。我们会在每个驱动器之间等待,以确保 raid 已自行重建。
从理论上讲,这应该可行……但是,我无法弄清楚的是这些驱动器的大小是否完全相同。不幸的是,在 ST32000641AS 驱动器上构建的 raid 是按容量分区的。如果 WD2003FYYS 驱动器再小一点点,它就无法工作。关于我可以去哪里了解 WD2003FYYS 驱动器是否与 ST32000641AS 一样大(或更大)的任何想法?
是的,我知道这两个驱动器都将自己宣传为 2TB 驱动器......
今天早上我有一个服务器锁定。这是控制台的屏幕截图:
屏幕截图中的任何消息对我来说都没有任何意义。我有一种感觉,重要的东西可能从控制台上滚下来了。我无法在系统日志、消息、dmesg、调试日志或崩溃时记录的任何内容中找到上述屏幕截图中的任何消息。这些东西不应该被记录下来吗?
这是一个运行 Proxmox 的 Debian 盒子。uname 输出:
2.6.32-4-pve #1 SMP 2011 年 5 月 9 日星期一 12:59:57 CEST x86_64 GNU/Linux
该服务器已经在线大约一年了,没有其他崩溃,并且它再次启动时一切正常。
我很想弄清楚问题可能是什么,以便我们可以防止它在未来再次发生。但是,根据我目前掌握的证据,我什至不知道这是硬件问题还是软件问题。想法?
我在提供 MySQL 服务的服务器上有一个相当简单的 iptables 防火墙,但 iptables 似乎给我非常不一致的结果。
脚本的默认策略如下:
iptables -P INPUT DROP
然后我可以使用以下规则公开 MySQL:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
有了这个规则,我可以毫无问题地从任何源 IP 连接到服务器上的任何目标 IP 的 MySQL。但是,当我尝试通过将上面的行替换为以下内容来限制对三个 IP 的访问时,我遇到了麻烦(xxx=masked octect):
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.184 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.196 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.251 -j ACCEPT
一旦上述规则到位,就会发生以下情况:
我可以从 .184、.196 和 .251 主机连接到 MySQL 服务器,只要使用它的默认 IP 地址或与默认 IP 地址位于同一子网中的 IP 别名连接到 MySQL 服务器即可。
当我来自 .184 或 .196 主机时,我无法使用从与服务器默认 IP 不同的子网分配给服务器的 IP 别名连接到 MySQL,但 .251 工作正常。从 .184 或 .196 主机,telnet 尝试只是挂起...
# telnet 209.xxx.xxx.22 3306 Trying 209.xxx.xxx.22...
如果我删除 .251 行(使 .196 成为最后添加的规则),.196 主机仍然无法使用 IP 别名连接到 MySQL(因此导致不一致行为的不是规则的顺序)。我知道,这个特定的测试很愚蠢,因为这三个规则的添加顺序无关紧要,但我想有人可能会问。
如果我切换回“公共”规则,所有主机都可以使用默认或别名 IP(在任一子网中)连接到 MySQL 服务器:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
服务器在 CentOS 5.4 OpenVZ/Proxmox 容器 (2.6.32-4-pve) 中运行。
而且,以防万一您更喜欢在 iptables 脚本的上下文中查看问题规则,这里是 (xxx=masked octect):
# Flush old rules, old custom tables
/sbin/iptables --flush
/sbin/iptables --delete-chain
# Set default policies for all three default chains
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
# Enable free use of loopback interfaces
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# All TCP sessions should begin with SYN
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Accept inbound TCP packets (Do this *before* adding the 'blocked' chain)
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow the server's own IP to connect to itself
/sbin/iptables -A INPUT -i eth0 -s 208.xxx.xxx.178 -j ACCEPT
# Add the 'blocked' chain *after* we've accepted established/related connections
# so we remain efficient and only evaluate new/inbound connections
/sbin/iptables -N BLOCKED
/sbin/iptables -A INPUT -j BLOCKED
# Accept inbound ICMP messages
/sbin/iptables -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -p ICMP --icmp-type 11 -j ACCEPT
# ssh (private)
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s xxx.xxx.xxx.xxx -j ACCEPT
# ftp (private)
/sbin/iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s xxx.xxx.xxx.xxx -j ACCEPT
# www (public)
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# smtp (public)
/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 2525 -j ACCEPT
# pop (public)
/sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT
# mysql (private)
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.184 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.196 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.251 -j ACCEPT
有任何想法吗?提前致谢。:-)