小编Rei*_*ann的帖子

如何从 Linux 机器识别连接到同一交换机的 NIC?

最初设定

作为 Linux 管理员,您已经安装了一个带有 6 个 NIC eth0 到 eth5 的全新 Linux 机器。eth0 接口已正确配置,所有其他接口当前都已启动但没有 IP 地址。网络人员简单地将四根电缆连接到这个盒子上。两根 LAN 电缆用于将盒子连接到生产网络,两根用于将盒子连接到专用网络。你只知道eth0连接到生产网络。但是您不知道哪个其他 NIC 连接到同一交换机,因为存在不同的服务器代和/或网络人员使用错误的 NIC 进行连接。

手头的任务

由于此设置是您的基础架构的典型设置,因此您希望自动配置绑定接口。现在您的任务是检测哪些 NIC 根本没有连接,哪些 NIC 链接到同一交换机,以便它们可以绑定。您只能访问 Linux 机器,而不能查询交换机。

想法

检测链接状态很容易:

ethtool $device | grep 'Link detected' | cut -d ':' -f 2
Run Code Online (Sandbox Code Playgroud)

但是如何匹配连接到同一交换机的设备呢?

在 HP-UX 中有一个用于此目的的工具,称为linkloop [1]。缺少官方的 Linux 工具(不过有一个旧的 SourceForce 项目)。

我已经想到的可能解决方案是:

  1. 使用 tcpdump 侦听所有接口。制作并发送 ICMP(广播)数据包。看到该数据包的接口需要连接到同一交换机。-> 需要可能用于此的简单工具的建议。我想使用普通的 shell 命令或 Python 来编写脚本。

  2. 尝试通过一些简单的协议(HTTP?)与外部盒子对话,看看是否有响应。-> 容易出错并且依赖于外部盒子。

您对如何解决此任务有进一步的想法或建议吗?

预先感谢您的所有评论!

[1] http://linux.die.net/man/1/linkloop

linux redhat bonding interface

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

如何可靠地映射 vSphere 磁盘 <-> Linux 设备

手头的任务

将虚拟磁盘添加到 vSphere 5 上的 Linux VM 后,我们需要识别磁盘以自动配置 LVM 存储。

虚拟磁盘可能驻留在不同的数据存储(例如 sas 或闪存)上,尽管它们的大小可能相同,但它们的速度可能会有所不同。所以我需要一种将 vSphere 磁盘映射到 Linux 设备的方法。

想法

通过 vSphere API,我能够获取设备信息:

Data Object Type: VirtualDiskFlatVer2BackingInfo
Parent Managed Object ID: vm-230
Property Path: config.hardware.device[2000].backing  

Properties

Name Type Value 
ChangeId string Unset 
contentId string "d58ec8c12486ea55c6f6d913642e1801" 
datastore ManagedObjectReference:Datastore datastore-216 (W5-CFAS012-Hybrid-CL20-004) 
deltaDiskFormat string "redoLogFormat" 
deltaGrainSize int Unset 
digestEnabled boolean false 
diskMode string "persistent" 
dynamicProperty DynamicProperty[] Unset 
dynamicType string Unset 
eagerlyScrub boolean Unset 
fileName string "[W5-CFAS012-Hybrid-CL20-004] l****9-000001.vmdk" 
parent VirtualDiskFlatVer2BackingInfo parent 
split boolean false 
thinProvisioned boolean …
Run Code Online (Sandbox Code Playgroud)

linux storage vmware-vsphere

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

管理程序是否总是忽略 CPU 微码更新?

我知道 Vmware 管理程序至少有一个设置可以忽略来自来宾操作系统内的 CPU 微码更新(不足为奇)。

CPU 微码更新可用。来宾操作系统尝试将微代码从补丁级别 XX (YYh) 更新到补丁级别 ZZ (TTh),但 VMware ESX 不允许从虚拟机内应用微代码补丁。微码补丁用于纠正 CPU 勘误表。如果您的 CPU 没有遇到任何问题,则可以忽略此微码补丁。否则,您可以从您的系统供应商处获得包含此微码补丁的 BIOS/固件更新,或者您的主机操作系统可能会提供一个工具来加载直接从英特尔网站获得的微码补丁。

https://kb.vmware.com/s/article/1028290

所有管理程序都是这种情况吗(如 KVM,其中提供了虚拟 Qemu CPU)还是可能有 Vmware Vsphere 的设置,其中检测到来自来宾机器的微代码更新被暂存以供管理程序微代码加载机制使用(例如当微码是真实的并且版本比安装的微码更新时)?

假设

  1. 任何来宾机器都不能将微代码上传到管理程序的 CPU,除非微代码特定于虚拟化 CPU。但话又说回来,它有什么用呢?也可以更新虚拟机管理程序的代码以仅更改虚拟 CPU。

  2. Spectre 需要在 Hypervisor 级别进行缓解,因此需要 Hypervisor 上传适当的 Bios 固件和/或微代码。微码无法通过来宾操作系统修复。

背景

Red Hat 撤回了与 Spectre 相关的微码更新,并且虚拟机尝试在启动期间上传微码。

2018 年 1 月 15 日星期一 Petr Oros - 1:1.17-25.4 使用正确的上游源进行还原 解决:#1533978

2018 年 1 月 12 日星期五 Petr Oros - 1:1.17-25.3 从 Intel 和 AMD 恢复微码以进行侧信道攻击解决:#1533978

microcode_ctl RPM 的更新日志

linux kvm-virtualization

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