“我们可以将现有的生产 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)似乎具有这种能力或更好的途径。假设我们找到了以正确方式完成此任务的停机时间:
现在CentOS 6.0已经进入各个镜像站点,我想就升级过程征求意见。在过去几个月中使用商业 RedHat 5.6 和 6.x 发行版时,我一直依赖全新安装而不是对我的测试系统进行就地升级。
由于真正的 CentOS 6 版本已经发布,是否有人计划就地执行迁移?有没有什么情况是有意义的?如果是这样,就地更新的陷阱是什么?
我正在两台相同的服务器上对一个应用程序进行基准测试,一台是 Centos 5.8,另一台是 Centos 6.2。我的应用程序在 Centos 6.2 机器上的运行速度要慢得多(50% 或更少)。
在尝试诊断问题时,我在整个基准测试过程中跟踪 CPU、RAM 和 IO。我看到使用 iostat 测量的 Centos 6.2 机器上的磁盘读取明显更高。
两个系统都在运行我的基准测试所在的 XFS。两者都是惠普服务器,配备 512MB 缓存 RAID 控制器,配备 8 个 300GB SAS 运行 RAID 10。
这是每个 xfs_info 的输出:
centos5
meta-data=/dev/cciss/c0d0p5 isize=256 agcount=32, agsize=8034208 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=257094144, imaxpct=25
= sunit=32 swidth=128 blks, unwritten=1
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=32768, version=1
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
Run Code Online (Sandbox Code Playgroud)
centos6
meta-data=/dev/sda5 isize=256 agcount=4, agsize=57873856 blks
= sectsz=512 …
Run Code Online (Sandbox Code Playgroud) 希望有人能指出我遇到的一些 iSCSI 性能问题的正确方向。我在较旧的 ProLiant DL360 G5 上运行 Openfiler 2.99。双 Xeon 处理器、6GB ECC RAM、英特尔千兆服务器网卡、SAS 控制器和 RAID 5 中的 3 个 10K SAS 驱动器。当我直接从盒子运行一个简单的写测试时,性能非常好:
[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.64468 s, 226 MB/s
Run Code Online (Sandbox Code Playgroud)
因此,我创建了一个 LUN,将其连接到另一个运行 ESXi 5.1(Core i7 2600k、16GB RAM、英特尔千兆服务器网卡)的机器上,并创建了一个新的数据存储。一旦我创建了数据存储,我就能够创建并启动一个运行 CentOS 的虚拟机,它有 2GB 的 RAM 和 16GB 的磁盘空间。操作系统安装得很好,我可以使用它,但是当我在 VM 中运行相同的测试时,我得到了截然不同的结果:
[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 26.8786 …
Run Code Online (Sandbox Code Playgroud)