小编Nil*_*ils的帖子

为什么我的千兆绑定不能提供至少 150 MB/s 的吞吐量?

我在两个不同的 PCIe 适配器上直接连接了两个 PowerEdge 6950 分频器(使用直线)。

我在每条线路上都有一个千兆链路(1000 MBit、全双工、双向流量控制)。

现在我正在尝试使用双方的 rr 算法将这些接口绑定到 bond0(我想为单个 IP 会话获得 2000 MBit)。

当我通过在 tcp 模式下使用 dd bs=1M 和 netcat 将 /dev/zero 传输到 /dev/null 来测试吞吐量时,我得到了 70 MB/s 的吞吐量 - 不是 - 正如预期的那样超过 150MB/s。

当我使用单线时,如果我为每条线使用不同的方向,每条线的速度大约为 98 MB/s。当我使用单条线路时,如果流量进入“相同”方向,则线路上的速度分别为 70 MB/s 和 90 MB/s。

通读bonding-readme (/usr/src/linux/Documentation/networking/bonding.txt)后,我发现以下部分很有用:(13.1.1 MT Bonding Mode Selection for Single Switch Topology)

balance-rr:此模式是唯一允许单个 TCP/IP 连接跨多个接口条带化流量的模式。因此,它是唯一一种允许单个 TCP/IP 流利用多个接口的吞吐量的模式。然而,这是有代价的:条带化通常会导致对等系统无序接收数据包,从而导致 TCP/IP 的拥塞控制系统启动,通常是通过重新传输段。

    It is possible to adjust TCP/IP's congestion limits by
    altering the net.ipv4.tcp_reordering sysctl parameter. The
    usual default value is …
Run Code Online (Sandbox Code Playgroud)

linux bonding sles10

17
推荐指数
1
解决办法
2万
查看次数

DHCP 客户端认为什么是“最佳”答案?

我们有培训室,通常安装 Windows XP(通过 PXE)。“正常”的 DNS/DHCP 基础结构是 Windows 服务器。培训室有自己的 VLAN(与 Windows 服务器不同),因此最有可能在 Cisco 路由器上有一个用于 DHCP 请求的 IP 帮助程序,该房间的所有 PC 都连接到该路由器。

现在我们想将一些 PC 转换为 Linux。这个想法是:将我们自己的带有 DHCP 服务器的笔记本电脑放入房间的 VLAN 中,并覆盖“正常”的 DHCP 响应。这个想法应该可以工作,因为该 VLAN 中直接连接的 DHCP 服务器的响应时间应该比位于该 VLAN 一些跃点之外的“正常”DHCP 服务器的响应时间更快。

事实证明这是行不通的。我们必须手动释放原始 DHCP 服务器上的租约才能使其正常工作。

在笔记本电脑上,我们确实看到客户端请求 IP 并且“我们的”dhcp 正在向 Windows IP 请求发送 NACK,在此之前我们确实提供了我们自己的响应。

老问题:为什么这没有按预期进行?是什么让 PC 重新获得旧租约?

2012-08-08更新

重新获得问题已在 DHCP-RFC 中进行了解释。现在这解释了为什么 PC 重新获得其旧租约。

现在,在再次尝试之前,我们确实从 Windows-DHCP 服务器中释放了 IP。

再次 - Windows-DHCP-server 获胜。

我怀疑 dhcp-client 有一些算法可以确定客户端的“最佳”dhcp-answer。新问题是:

客户如何选择“最佳”答案?

dhcp windows dhcp-server

13
推荐指数
2
解决办法
2012
查看次数

强制转发器 DNS 请求为 TCP 模式

我已经在多宿主服务器上的 SLES10(当前绑定 9.6)上设置了一个 DNS 服务器。该服务器可以从所有内部网络进行查询,并为所有内部网络提供答案。我们有两个独立的 DNS“主”区域。这些区域中的每一个都由许多权威的 Windows-DNS 服务器提供服务。

现在我的 linux-server 是这些区域之一(私有内部区域)的辅助 DNS 服务器,并充当另一个区域(公共内部区域)的转发器。

直到最近,这种设置都没有问题。现在我得到 - 在查询公共内部区域时(例如通过hostlinux 客户端上的命令)错误消息

;; 截断,在 TCP 模式下重试

一个wireshark-dump揭示了这个原因:第一个查询在UDP模式下发出,答案不适合UDP(由于权威NS的列表太长),然后在TCP模式下重试,提供正确答案。

现在的问题是: 我可以将绑定配置为在 TCP 模式下查询转发器而不先尝试 UDP 吗?

更新:尝试使用 ASCII 艺术...

+--------------+   +--------------+   +-----------------+
| W2K8R2 DNS   |   | SLES 10 DNS  |   | W2K8R2 DNS      |
| Zone private +---+ All internal +---+ Zone public     |
| internal 2x  |   |   Zones      |   | internal 30+ x  |
+--------------+   +-+----------+-+   +-----------------+
                     |          |
                  +--+---+   +--+---+
                  |Client|   |Client| …
Run Code Online (Sandbox Code Playgroud)

domain-name-system bind tcp sles10

10
推荐指数
1
解决办法
2万
查看次数

使用 VIP 的 SSH 主机密钥验证问题

我们在 VIP 上有 2 台生产服务器,一次只有一台在使用,例如:

myservice.mycompany.uk 通常指向 server1,如果 server1 出现故障,它会更改为指向 server2。

还有一些其他服务器需要通过 SFTP 将文件发送到 myservice.mycompany.uk,如果我们故障转移到 server2,它应该对它们完全透明。

问题是,虽然在 server1 和 server2 上都安装了密钥,但其他服务器会出现主机密钥验证问题,因为 server2 的主机密钥与 server1 的主机密钥不同。这会导致安全错误(因为启用了严格检查),必须从 known_hosts 中删除一行才能使其工作。

我们的 IT 人员建议我们可以在 known_hosts 中创建 2 个条目,一个使用 server1 的密钥,一个使用 server2 的密钥,两者都使用主机 myservice.mycompany.uk。

这可能奏效吗?如何在 Windows 上使用 putty/psftp 完成此操作?由于主机密钥存储在注册表中,因此不允许重复名称。有没有更好的方法,例如,我们可以强制服务器具有相同的主机密钥吗?

cluster ssh sftp

9
推荐指数
1
解决办法
1万
查看次数

Dell PowerEdge - 向现有 RAID 5 阵列添加新磁盘

我有一个带有 3 个磁盘的 RAID 5 阵列的 Dell PowerEdge,我想向其中添加第四个磁盘以扩展卷的容量。

我不想重新初始化整个 RAID 5,因为我想保留所有数据并对其进行扩展。

我可以在 Windows 运行时使用 OpenManage 执行此操作,还是必须在未安装操作系统时在启动菜单上执行此操作?

这是 OpenManage Server Administrator 上的屏幕截图:

控制器 PERC 4e/Di 上的物理磁盘

还请告诉我如何实现这一目标。谢谢!

raid dell-openmanage dell-poweredge

7
推荐指数
1
解决办法
12万
查看次数

我应该如何在日志变大之前处理它们?

我今天发现我的磁盘已满,我仅从删除多个网站的大部分日志中释放了 10%。我个人喜欢将日志保存为存档,因为无论出于何种原因我都可能需要回顾它们。我是管理 LAMP 服务器的新手,所以我想学习一些好的做法。我应该多久清理一次我的日志?我应该保留它们吗?我还可以定期做哪些其他事情来清除服务器的缓存和“临时”文件,以防止它再次耗尽所有磁盘空间?

httpd log-files logwatch logrotate

5
推荐指数
1
解决办法
305
查看次数

某处是否有 chroot 构建脚本?

我即将开发一个小脚本来为 chroot-jail 收集信息。

就我而言,这看起来(乍一看)非常简单:该应用程序具有干净的 rpm-install,并且确实将几乎所有文件安装到 /opt 的子目录中。

我的想法是:

  • 查找所有二进制文件
  • 检查他们的库依赖项
  • 将结果记录到列表中
  • 在应用程序启动之前将该列表 rsync 同步到 chroot-target-directory

现在我想知道 - 是否有任何脚本已经完成了这样的工作(perl/bash/python)?

到目前为止,我只找到了针对单个应用程序(如 sftp-chroot)的专门解决方案。

虽然无关紧要(恕我直言) - 操作系统是 CentOS 5 x86_64 当前次要版本和补丁级别。

rpm -ql恕我直言不够通用,因为它只会涵盖基于rpm的发行版。上面提到的“全新安装”只是提到软件的文件没有分布在整个文件系统中。所以我的出发点是 - 目前 - 一个find /opt/directory/......几乎可以在任何系统(甚至不是Linux)上运行。

scripting linux centos chroot

5
推荐指数
1
解决办法
1985
查看次数

确认主机/服务时的 check_mk 粘性评论是什么?

我想在 Nagios 监控的系统上附加一条评论。我更喜欢使用 check_mk 作为 GUI。现在我偶然发现了这一点:我可以将评论设置为粘性和/或持久性。

所以我问我们的 Nagios 管理员粘性和持久性之间的区别是什么。

事实证明,他不知道“粘性” - 这必须是特定于 check_mk 的东西。

在谷歌和检查 check_mk 文档之后,我找不到关于该主题的任何信息。

那么:Nagios-service-comments 的粘性和持久性之间有什么区别?

更新:这是一个屏幕截图 - check_mk 快速搜索特定服务器,然后选择hamer-symbol。然后会出现这个:

截屏

问题是关于确认框:粘性与持久性

monitoring nagios graphical-user-interface check-mk

4
推荐指数
1
解决办法
1万
查看次数

什么时候不使用虚拟化?

当虚拟化是新的时,我们试图虚拟化所有东西,但后来我们注意到我们的虚拟机比裸机慢得多的用例。

对我们而言,在决定不进行虚拟化时,我们使用以下规则:

  • 网络 IO 密集型应用程序(即具有许多中断/数据包)
  • 磁盘 IO 密集型应用程序(如果不在 SAN 存储上)
  • RAM 密集型(这是最宝贵的资源)

我们在 Xen 和 DRDB 以及 Hyper-V 与 DAS 的无共享方面都有过这些经验。所有管理程序都是这种情况吗?

在决定是否虚拟化应用程序/服务器时,我应该寻找哪些(其他)指标?

virtualization limits

3
推荐指数
1
解决办法
2429
查看次数

为什么LVS会丢包?

我目前正在尝试解决问题的核心,我的 LVS 控制器似乎不时丢弃来自客户端的数据包。我们在我们的生产系统上有这个问题,并且可以在登台时重现这个问题。

我在 lvs-users-mailing-list 上发布了这个问题,但到目前为止没有得到任何回应。

我们的设置:

我们在 PV XEN-DomU 中使用 ipvsadm 和 Linux CentOS5 x86_64。

当前版本详细信息:

  • 内核:2.6.18-348.1.1.el5xen
  • ipvsadm: 1.24-13.el5

LVS-设置:

我们在 DR 模式下使用 IPVS,我们使用 lvs-kiss 来管理正在运行的连接。

ipvsadm 在heartbeat-v1-cluster(两个虚拟节点)中运行,主节点和备份节点在两个节点上持续运行。

对于 LVS 服务,我们使用由心跳设置的逻辑 IP(主动/被动集群模式)

真实服务器是物理 Linux 机器。

网络设置:

充当控制器的 VM 在使用桥接网络的 Dom0 上作为 XEN-PV-DomU 运行。

网络“在玩”:

  • abn-network(staging-network,用于将客户端连接到director),由真实服务器用于向客户端发送应答(直接路由方式),用于ipvsadm slave/master 多播流量
  • lvs-network:这是一个连接控制器和真实服务器的专用 VLAN
  • DR-arp-problem:解决了我在真实服务器上为 service-ip 抑制 arp-answers
  • service-IP 被配置为 real-server 上 lvs-interface 上的逻辑 IP。
  • 在此设置中,任何地方都不需要 ip_forwarding(无论是在导演上,还是在真实服务器上)。

虚拟机详情:

1 GB RAM,2 个 vCPU,系统负载几乎为 0,可用内存 73M,224M 缓冲区,536M 缓存,无交换。

top 显示几乎总是 100% 空闲,0% us/sy/ni/wa/hi/si/st。

配置详情:

ipvsadm …

xen lvs centos5

2
推荐指数
1
解决办法
2382
查看次数

如何将 CentOS/RHEL7 中的 grub2 从 UUID 更改为旧式设备?

CentOS/RHEL 7 有一些变化(与 CO/RHEL 6 相比)。其中之一是使用grub2而不是grub

默认情况下,操作系统似乎使用 UUID 来“查找”引导设备。

是否有一个易于使用的 receipe 来返回设备名称(如 /dev/sda1)?

问题背景:我打算从模板中克隆其他虚拟机。Base 是具有不同 UUID 的新(虚拟)磁盘设备。

如果我无法恢复到sda1,我将需要将grub.cfg 中克隆的 UUID 更改为新的 UUID - 这是计划“B”。

更新2017-10-26

root=的内核参数将更改为磁盘 - 请参阅下面Thomas的回答。

这部分仍然存在一个问题,由grub2-mkconfig生成:

    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  716433ab-9e30-42a7-a272-6c66243499d2
    else
      search --no-floppy --fs-uuid --set=root 716433ab-9e30-42a7-a272-6c66243499d2
    fi
Run Code Online (Sandbox Code Playgroud)

这仍然包含对 UUID 的搜索。如果找不到,引导过程将进入错误“未找到”或类似错误。按 ENTER 后,系统将正常启动。

剩下的问题是如何停用该部分(我没有找到禁用feature_platform_search_hint的地方)?

uuid grub2 rhel7 centos7

1
推荐指数
1
解决办法
6349
查看次数

最大打开文件 - 为什么没有错误?

我怀疑我们的服务器应用程序之一已达到其最大打开文件限制。

该应用程序使用自己的帐户在用户空间中运行。init 脚本启动大量进程,这些进程又启动大量子进程和大量线程。

根据我在/etc/security/limits.conf 中设置的书:

USERNAME - nofile 2048
Run Code Online (Sandbox Code Playgroud)

我怀疑应用程序已达到限制 - 通过查看临时文件目录,我发现那里有 2000 多个文件。

在将限制提高到 4096 并重新启动应用程序后,我在那里发现了 2100 多个文件。

现在的问题是:如果应用程序达到了 2048 的限制 - 为什么没有登录 /var/log/messages?

syslog-ng 是当前使用的 syslog-daemon。

/etc/syslog-ng/syslog-ng.conf

options { long_hostnames(off); sync(0); perm(0640); stats(3600); };
source src {
    internal();
    unix-dgram("/dev/log");
    unix-dgram("/var/lib/ntp/dev/log");
};
filter f_iptables   { facility(kern) and match("IN=") and match("OUT="); };
filter f_console    { level(warn) and facility(kern) and not filter(f_iptables)
                      or level(err) and not facility(authpriv); };
filter f_newsnotice { level(notice) and facility(news); };
filter f_newscrit   { level(crit) …
Run Code Online (Sandbox Code Playgroud)

syslog sles11

0
推荐指数
1
解决办法
3978
查看次数