我是一个代码猴子,越来越多地为我的小公司承担系统管理员的职责。我的代码就是我们的产品,而且我们越来越多地提供与 SaaS 相同的应用程序。
大约 18 个月前,我将我们的服务器从一家以优质托管为中心的供应商转移到了 IV 级数据中心的准系统机架推进器。(字面意思是在街对面。)这个人自己做的事情更多——比如网络、存储和监控。
作为重大举措的一部分,为了取代我们从托管公司租用的直连存储,我构建了一个基于 SuperMicro 机箱、3ware RAID 卡、Ubuntu 10.04、两打 SATA 磁盘、DRBD 和 . 三篇博文详细记录了这一切:构建和测试新的 9TB SATA RAID10 NFSv4 NAS:第一部分、第二部分和第三部分。
我们还设置了一个 Cacit 监控系统。最近,我们添加了越来越多的数据点,例如 SMART 值。
我不能这样做这一切,而不真棒 挤入 在 ServerFault。这是一次有趣且有教育意义的经历。我的老板很高兴(我们节省了大量的美元),我们的客户很高兴(存储成本下降),我很高兴(有趣,有趣,有趣)。
直到昨天。
午饭后一段时间,我们开始从我们的应用程序(一个按需流媒体 CMS)收到性能缓慢的报告。大约在同一时间,我们的 Cacti 监控系统发送了大量电子邮件。一个更有说服力的警报是 iostat await 的图表。
性能变得如此下降以至于 Pingdom 开始发送“服务器关闭”通知。整体负载适中,没有流量高峰。
在登录应用服务器、NAS 的 NFS 客户端后,我确认几乎所有东西都在经历高度间歇性和超长的 IO 等待时间。一旦我跳到主要 NAS 节点本身,在尝试导航问题阵列的文件系统时,同样的延迟很明显。
是时候进行故障转移了,一切顺利。在 20 分钟内,一切都被确认备份并完美运行。
在任何和所有系统故障后,我都会进行事后分析以确定故障原因。我做的第一件事是 ssh 回到盒子里并开始查看日志。它完全离线。是时候去数据中心旅行了。硬件复位,备份并运行。
在/var/syslog
我发现这个可怕的条目:
Nov …
Run Code Online (Sandbox Code Playgroud) 基于一年多以前的一个问题(多路复用 1 Gbps 以太网?),我离开并使用新的 ISP 设置了一个新机架,并在整个地方都有 LACP 链接。我们需要这样做,因为我们有单独的服务器(一个应用程序,一个 IP)为互联网上的数千台客户端计算机提供服务,累积速度超过 1Gbps。
这个 LACP 想法应该让我们打破 1Gbps 的障碍,而无需在 10GoE 交换机和 NIC 上花费大量资金。不幸的是,我遇到了一些关于出站流量分配的问题。(尽管凯文·库法尔在上述链接问题中发出了警告。)
ISP 的路由器是某种 Cisco。(我是从 MAC 地址推断出来的。)我的交换机是 HP ProCurve 2510G-24。服务器是运行 Debian Lenny 的 HP DL 380 G5。一台服务器为热备。我们的应用程序不能集群。这是一个简化的网络图,其中包括具有 IP、MAC 和接口的所有相关网络节点。
虽然它具有所有细节,但很难处理和描述我的问题。因此,为简单起见,这里是一个简化为节点和物理链接的网络图。
所以我离开并在新机架上安装了我的工具包,并从他们的路由器连接了我的 ISP 电缆。两台服务器都有到我的交换机的 LACP 链接,而交换机有到 ISP 路由器的 LACP 链接。从一开始我就意识到我的 LACP 配置是不正确的:测试显示进出每台服务器的所有流量都通过一个物理 GoE 链路专门在服务器到交换机和交换机到路由器之间进行。
通过一些谷歌搜索和大量关于 linux NIC 绑定的 RTMF 时间,我发现我可以通过修改来控制 NIC 绑定 /etc/modules
# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means …
Run Code Online (Sandbox Code Playgroud) 我想知道在我的服务器上使用 ext4 是否安全。但我听说过太多关于它的 FUD,我很担心。
我们的系统可能会丢失一些数据,这没什么大不了的。即使是一整天的数据也不会惹恼太多人。我们的系统绝对可以从延迟写入中受益。
也就是说,从备份中恢复完整的文件系统需要几天时间并且是不可接受的。
关于这个主题的任何经验或知情意见?
我有一个应用程序可以从更大的以太网帧中受益。(理论上,我们可以将出站数据包的数量减少 > 50%,甚至可能减少 66%。)
我还在为我的应用程序服务器的新安装指定候选托管公司的网络要求。至少,最好不要限制客户端连接受益于巨型帧。
但这有多现实?一些一般性问题,假设我们可以控制的网络段是 Jumbo Frame-friendly (交换机支持大型 MTU,允许 ICMP MTU 路径发现等):
我最近不得不处理一个讨厌的、间歇性的 NFS 客户端/服务器挂载点问题。当客户端出现问题时,我无法卸载,以及其他一些奇怪的行为。迄今为止,我唯一的直接解决方案是重新启动客户端盒。
但shutdown -r now
根本不起作用。我已经发现reboot -f
,它确实重新启动了系统。为什么?我已经阅读了手册页,但似乎没有什么能回答我的问题。
shutdown -r now
行为不同于reboot -f
?(我正在继续解决 NFS 问题,但这不是我的问题。)
使用 10gbps 网络(没有传统设备支持)的绿色现场安装,为什么要选择一种物理介质而不是另一种?如果任其冲动,我可能会选择光纤而不是双绞线,因为它既新颖又令人兴奋。(Sparkly Pony!)但实际上,这应该是一个理性、合乎逻辑的决定。
我对答案背后的“为什么”非常感兴趣。例如:“当放置在氪石附近时,光纤性能会降低”、“TP 便宜 1000 倍”等。
(背景:我问是因为我需要升级数据中心的 Internet 网络/流媒体服务器网络基础设施。)
我知道有几个关键特性决定了 HDD 的可靠性,但是2.5" 和 3.5" 驱动器之间有区别吗?
过去,我一直认为 3.5" 驱动器可能更强大……但我现在质疑这一点,因为我绝对没有证据(更不用说半生不熟的理论)来支持它了。
我有一个运行良好的高 IO 应用程序,并且迄今为止扩展性良好。在过去的几个月里,我们一直在努力展望未来并预测我们的下一个瓶颈将出现在哪里。其中之一肯定是文件系统。
我们目前正在监测
这对我来说似乎有点太稀疏了。我还应该看什么?我什至不确定操作/秒的“黄线”是什么。
是否可以将两个(或更多)1Gbps 以太网复用到一个逻辑连接中?是常见的地方吗?可取?愚蠢的?其他考虑?
我问是因为我的托管合作伙伴的网络基础设施是 1Gbps,但我需要更多。10Gbps 网络套件仍然价格昂贵,尤其是在面向 Internet 的高可用性数据中心的背景下。所以,我正在探索其他选择。
我的服务器繁忙的接口上有很好的大型服务器级 NIC。很快,我将建立一个具有专用热节拍的集群。
我真的需要为此使用昂贵的服务器级 NIC 吗?还是低端桌面网卡就够了?
networking ×4
ethernet ×2
hard-drive ×2
performance ×2
bonding ×1
ext3 ×1
ext4 ×1
fiber ×1
filesystems ×1
heartbeat ×1
hp-procurve ×1
jumboframes ×1
lacp ×1
linux ×1
monitoring ×1
mtu ×1
nic ×1
sas ×1
sata ×1
tuning ×1