你知道,你看到像下面这样的图片,在你真的不得不处理它之前会咯咯地笑。
我刚刚继承了如下图所示的东西。组织的文化不能很好地容忍停机时间,但我的任务是“清理它”。网络按原样运行,似乎并不急于完成它,但我将不得不在某个时候解决这个问题。当我提到周末的任何事情时,我都会受到丑陋的目光。
所以我的问题是,有没有一种结构化的方法来解决这个问题?
到目前为止我的想法:

在没有 root 权限的情况下,如何从 shell 确定我正在运行的 Red Hat Enterprise Linux 版本?
理想情况下,我想同时获得主要和次要版本,例如 RHEL 4.0 或 RHEL 5.1 等。
六个月前,在我们的非营利项目中,我们决定开始将系统管理迁移到 Puppet 控制的环境,因为我们预计从现在到一年后我们的服务器数量将大幅增长。
自从做出决定后,我们的 IT 人员就变得有点过于恼火了。他们最大的反对意见是:
我可以理解为什么大型组织会派遣他们的系统管理员参加 Puppet 课程以成为 Puppet 大师。但是,如果小玩家不参加课程并且基本上通过浏览器和编辑器学习它,他们如何将 Puppet 学习到专业水平?
我有一个相当旧的服务器,它有 4GB 的 RAM,它几乎整天都在提供相同的文件,但它是从硬盘驱动器这样做的,而 3GB 的 RAM 是“免费的”。
任何曾经尝试过运行 ram 驱动器的人都可以见证它在速度方面非常棒。这个系统的内存使用量通常不会超过 1GB/4GB,所以我想知道是否有办法使用额外的内存来做一些好的事情。
更具体地说,我不是在这里寻找“黑客”。我希望文件系统调用从 RAM 提供文件,而无需创建 ram 驱动器并手动复制文件。或者至少是一个为我做这件事的脚本。
这里可能的应用是:
有任何想法吗?
编辑:
“我们可以将现有的生产 EL5 服务器升级到 EL6 吗?”
来自环境完全不同的两个客户的一个听起来简单的请求促使我通常的最佳实践回答“是的,但它需要协调重建您的所有系统”......
两位客户都认为,出于停机时间和资源原因,完全重建他们的系统是不可接受的选择... ……”
我不是要引出关于配置管理的回应(“Puppetize一切”并不总是适用)或客户应该如何更好地计划。这是环境在生产能力中不断发展壮大的一个真实示例,但没有看到迁移到其操作系统下一个版本的干净路径。
环境 A:
非营利组织,拥有40 个 Red Hat Enterprise Linux 5.4 和 5.5 Web、数据库服务器和邮件服务器,运行 Java Web 应用程序堆栈、软件负载平衡器和 Postgres 数据库。所有系统都在不同位置的两个 VMWare vSphere 集群上进行虚拟化,每个集群都具有 HA、DRS 等。
环境 B:
高频金融交易公司,在多个托管设施中配备200 x CentOS 5.x系统,运行生产交易业务,支持内部开发和后台功能。交易服务器在裸机商品服务器硬件上运行。他们有许多sysctl.conf,rtctl,中断到位约束力和驱动程序的调整,以降低消息传送等待时间。有些具有自定义和/或实时内核。开发人员工作站也运行类似版本的 CentOS。
在这两种情况下,环境都按原样运行良好。升级的愿望来自对 EL6 中可用的更新应用程序或功能的需求。
两者都不能在不彻底改变操作系统的情况下轻松打包或更新。
作为系统工程师,我很欣赏红帽建议在主要版本之间移动时进行完全重建。一个干净的开始迫使你重构并在此过程中注意配置。
对客户的业务需求很敏感,我想知道为什么这需要如此繁重的任务。RPM 打包系统不仅能够处理就地升级,但它是让您/boot受益的小细节:需要更多空间、新的默认文件系统、RPM 可能会在升级过程中中断、已弃用和已失效的软件包......
这里的答案是什么?其他发行版(基于 .deb、Arch 和 Gentoo)似乎具有这种能力或更好的途径。假设我们找到了以正确方式完成此任务的停机时间:
我在各种 Linux 服务器上将 XFS 文件系统作为数据/增长分区运行了近 10 年。
我注意到最近运行 6.2+ 版本的 CentOS/RHEL 服务器有一个奇怪的现象。
从 EL6.0 和 EL6.1 迁移到较新的操作系统版本后,稳定的文件系统使用变得高度可变。最初安装 EL6.2+ 的系统表现出相同的行为;显示 XFS 分区上磁盘利用率的剧烈波动(请参见下图中的蓝线)。
我开始检查文件系统中是否有大文件和失控进程(可能是日志文件?)。我发现我最大的文件报告的值与du和不同ls。du使用和不使用--apparent-size开关运行说明了差异。
# du -skh SOD0005.TXT
29G SOD0005.TXT
# du -skh --apparent-size SOD0005.TXT
21G SOD0005.TXT
Run Code Online (Sandbox Code Playgroud)
在整个文件系统中使用ncdu 实用程序进行快速检查,结果如下:
Total disk usage: 436.8GiB Apparent size: 365.2GiB Items: 863258
Run Code Online (Sandbox Code Playgroud)
文件系统充满了稀疏文件,与之前版本的操作系统/内核相比,损失了近 70GB 的空间!
我仔细阅读了Red Hat Bugzilla并更改了日志,以查看是否有任何关于 XFS 的相同行为或新公告的报告。
纳达。
我在升级过程中从内核版本 …
不是技术问题,但仍然是一个有效的问题。设想:
HP ProLiant DL380 Gen 8 配备 2 个 8 核 Xeon E5-2667 CPU 和 256GB RAM,运行 ESXi 5.5。给定供应商的系统的八个 VM。四个 VM 用于测试,四个 VM 用于生产。每个环境中的四个服务器执行不同的功能,例如:Web 服务器、主应用程序服务器、OLAP DB 服务器和 SQL DB 服务器。
CPU 共享配置为阻止测试环境影响生产。SAN 上的所有存储。
我们对性能有一些疑问,供应商坚持认为我们需要为生产系统提供更多内存和 vCPU。但是,我们可以从 vCenter 中清楚地看到,现有的分配没有受到影响,例如:主应用服务器上 CPU 利用率的月度视图徘徊在 8% 左右,奇数峰值高达 30%。峰值往往与备份软件启动一致。
RAM 上的类似故事 - 服务器的最高利用率约为 35%。
因此,我们一直在使用 Process Monitor (Microsoft SysInternals) 和 Wireshark 进行一些挖掘,我们向供应商建议他们首先进行一些 TNS 调整。然而,这不是重点。
我的问题是:我们如何让他们承认我们发送给他们的 VMware 统计数据足以证明更多的 RAM/vCPU 无济于事?
--- 更新 12/07/2014 ---
有趣的一周。我们的 IT 管理层已经说过我们应该对 VM 分配进行更改,我们现在正在等待业务用户的一些停机时间。奇怪的是,业务用户会说应用程序的某些方面运行缓慢(相比之下,我不知道),但是当我们可以关闭系统时,他们会“让我们知道”(抱怨,抱怨!)。
顺便说一句,系统的“慢”方面显然不是 HTTP(S) 元素,即:大多数用户使用的“瘦应用” 。这听起来像是主要金融机构使用的“胖客户端”安装,这显然是“慢”的。这意味着我们现在正在调查中考虑客户端和客户端-服务器交互。
由于该问题的最初目的是寻求帮助,以确定是否沿着“戳它”路线,或者只是进行更改,而我们现在正在进行更改,因此我将使用longneck的答案关闭它。 …
virtualization performance performance-monitoring vmware-esxi vmware-vsphere
VMware 内存管理似乎是一个棘手的平衡行为。对于集群 RAM、资源池、VMware 的管理技术(TPS、膨胀、主机交换)、来宾内 RAM 利用率、交换、预留、共享和限制,存在很多变数。
我处于客户端使用专用 vSphere 集群资源的情况。但是,他们正在配置虚拟机,就好像它们在物理硬件上一样。反过来,这意味着标准 VM 构建可能具有 4 个 vCPU 和 16GB 或更多 RAM。我来自从小开始(1 个 vCPU,最小 RAM)的学校,检查实际使用情况并根据需要进行调整。不幸的是,许多供应商的要求和不熟悉虚拟化的人要求更多的资源而不是必要的……我对量化这个决定的影响很感兴趣。
来自“问题”集群的一些示例。
资源池摘要 - 看起来几乎 4:1 过度使用。请注意大量膨胀的 RAM。

资源分配 - 最坏情况分配列显示这些 VM 在受限条件下只能访问其配置 RAM 的 50% 以下。

上面列表中顶部 VM 的实时内存利用率图。分配了 4 个 vCPU 和 64GB RAM。它的平均使用量低于 9GB。

同一个VM的总结

在 vSphere 环境中过度使用和过度配置资源(特别是 RAM)的缺点是什么?
假设 VM 可以在更少的 RAM 中运行,是否可以说配置虚拟机具有比实际需要更多的 RAM 的开销?
什么是反驳:“如果 VM 分配了 16GB 的 RAM,但只使用了 4GB,有什么问题?? ”?例如,是否需要教育客户VM 与物理硬件不同?
应使用哪些特定指标来计量 RAM 使用量。跟踪“活动”随时间的峰值?看“消费”?
更新:我使用vCenter …
virtualization memory capacity-planning vmware-esxi vmware-vsphere
我客户的一个网站上周受到了直接闪电袭击(巧合的是在 13 日星期五!)。
我离现场很远,但与现场人员一起工作时,我发现了一种奇怪的损坏模式。两个互联网链接都断开了,大多数服务器都无法访问。大部分损坏发生在MDF 中,但一个光纤连接的IDF也丢失了交换机堆叠成员上 90% 的端口。有足够的备用交换机端口可用于在其他地方重新分配布线和重新编程,但是在我们追踪受影响的设备时出现了停机时间。
这是一个新的建筑/仓储设施,服务器机房的设计进行了大量规划。主服务器机房由一台APC SmartUPS RT 8000VA双转换在线 UPS 运行,并由发电机提供支持。所有连接的设备都有适当的电源分配。异地数据复制和系统备份已经到位。
总之,损害(我知道)是:
大多数问题都与丢失 Cisco 4507R-E 中的整个交换机刀片有关。这包含一些 VMware NFS 网络和站点防火墙的上行链路。VMWare 主机出现故障,但一旦存储网络连接恢复,HA 就会处理 VM。我被迫重新启动/重启许多设备以清除时髦的电源状态。所以恢复的时间很短,但我很好奇应该吸取什么教训......
shutdown -rLinux 系统上的默认 Ctrl-Alt-Delete功能是危险功能吗?
多年前,当我部署带有键盘和显示器的物理系统时,我有时会修改/etc/inittabRed Hat 系统上的 以禁用重启陷阱。这通常发生在本地 IT 人员或 Windows 管理员不小心在错误的终端/键盘/窗口上使用了魔法组合键并重新启动了他们的服务器之后。
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Run Code Online (Sandbox Code Playgroud)
从 RHEL4 时代起我就没有这样做过,但较新的系统似乎有一个/etc/init/control-alt-delete.conf文件。
从那以后的几年里,我的大部分系统都是无头部署或作为虚拟机运行的。这减少了意外重启的频率......但是,我最近有一组 ctrl-alt-delete oopses来自:
1)。数据中心工作人员将 IP KVM 插入错误的服务器。
2)。Windows 管理员在 VMware 控制台中使用组合键,认为登录需要它。
3)。我在 HP ILO 控制台中使用 ctrl-alt-delete 宏来重新启动 Live CD ......但它实际上是一个非常繁忙的生产服务器的 ILO 。

编辑:事实上,我刚刚遇到了这个服务器,一个运行了 1,115 天的虚拟机,root 密码未知,并且没有安装 VMware 工具(所以 Ctrl-Alt-Delete 将是唯一的正常关机选项)。
linux ×5
redhat ×3
centos ×2
datacenter ×2
networking ×2
puppet ×2
vmware-esxi ×2
cache ×1
disaster ×1
filesystems ×1
ilo ×1
ipmi ×1
key-bindings ×1
memory ×1
performance ×1
rhel4 ×1
rhel5 ×1
rhel6 ×1
server-room ×1
xfs ×1