浪潮服务器更换硬盘_浪潮K1 Power E950百万豪机拆机指南

不久前,浪潮商用机器一位架构师背着老板把浪潮K1 Power Linux服务器给“解剖”了。但是有网友质疑说顶多算半个拆机,不过瘾!

安排!

不过这次拆的可是价值百万的豪华机型——浪潮K1 Power E950!

4002beecab9097d559ce9339be4390ad.png

价值百万可不是随口说说,不信,看基本规格就能“管中窥豹 略见一斑”了。

K1 Power E950基本规格

Ø最大支持4颗scale-up POWER9处理器,优化了吞吐量,支持高达每核8线程(SMT8)的同步多线程功能

Ø最大支持16TB内存容量

Ø支持8个PCIe Gen4 x16插槽,2个PCIe Gen4 x8,1个PCIe Gen3 x8

Ø支持4个NVME硬盘,8个SAS 3.0硬盘

Ø支持IO和storage扩展

ØCPU VRM,MEM VRM电源多相冗余设计

Ø支持IBM AIX、IBM i和Linux环境

拆机基本原则:拆机顺序为“从前到后,由外到内”

1 前面板—>风扇—>硬盘—>操作面板

2f15acfc7e081afee4dbc7afc73211df.png

前面板:大风量的通孔设计、优秀的电磁屏蔽性能

  • 前面板材质为塑料,内含金属纤维,增加了机箱整体的电磁屏蔽性能
  • 在造型上采用了大风量的“六角孔”通孔设计
  • 左上角Inspur Power Systems的logo采用金属拉丝工艺,提升产品质感
dd3cf3d568b13024361335df8f08c39d.png

系统风扇:4颗高性能9276风扇,低振动,高寿命;免工具拆卸设计,支持在线更换备件

  • 前面4个系统散热风扇可以从正面进行插拔维护,支持在线更换
  • 风扇框采用的是金属材质,整体结构质量和减震性能更好;扇叶的轴承是采用的陶瓷轴承,具有耐腐蚀、耐高温、高润滑的特性
  • 单个风扇最大可提供234CFM风量,一个风扇模组包含了转子和风扇转接板,有效降低运行时带来的振动
  • 风扇设计寿命可以长达20万小时(>23年)连续运行
19605d73b2c68af11d20650d6cc7ee5e.png

存储硬盘

  • 存储部分包括4个NVME3.0硬盘位,8个2.5寸SAS 3.0硬盘位
  • 所有硬盘均支持在线热插拔维护
5f6b10922a43a5065fbb84114407f87c.png

OP Panel+诊断LCD模块

  • OP Panel是K1 Power主机特有的控制和诊断显示工具,包括开机键,reset键,和状态指示灯和显示屏,显示屏可以显示机器的状态和故障信息
  • 整个模块支持在线维护

2 IO模组—>FSP卡—>PSU

4c5a06ba89a714e4f672c940e7ab67f6.png

IO模组:每个插槽采用模块化设计,支持PCIe Gen4规格和在线热插拔

  • 后面设计了11个PCIe卡的位置,其中3个固定位置用来搭配网卡以及高性能RAID卡,另外8个位置是支持PCIe x16 4.0规格,对于一台4U4路机器来说,能支持这样全高半长卡的数量是比较极限的设计
  • 值得注意的是,每一个PCIe卡槽都是模块化设计,都支持热插拔,可以通过HMC在线操作对卡槽进行热添加和热移除
f76927966da286bf1e57e87f27b1efd6.png

FSP卡:系统管理,监控管理,支持并发故障转移

  • 最左面是管理卡,在POWER系统中也叫FSP卡,它对外提供2个网口管理口和1个串口管理口,另外还有2个USB接口,可以用来dump系统日志,管理卡有自己的处理器、内存、OS
  • 开机时,它会对整个系统的硬件进行初始化配置,比如系统的CPU、内存、PowerVM这些资源都是通过FSP卡来配置的
  • 此外还负责整机状态的监控管理,这一点类似于x86系统中的BMC,FSP卡在POWER机器中是非常重要的角色
5b353e68ef5f87c408d75a887b68f086.png

PSU:为整系统供电,铂金电源模块,支持N+1冗余,支持热插拔

  • 支持4个2000W的铂金电源,效率可以达到94%以上

3 内存板—>VRM卡—>TPM卡—>VPD卡—>散热器/CPU—>电源板—>风扇背板模组—>主板

8fd949e0d99b56dbf6336f71a225c301.png

内存板:K1 Power E950内存扩展采用高性能内存Buffer芯片实现,每个内存板采用34层PCB设计保证信号质量,单CPU内存带宽达到230GB/s

  • 一块内存板集成4个内存Buffer芯片和16条内存卡槽;一个CPU最大支持8个内存Buffer,也就是2个内存板,4个CPU支持8个内存板,这种设计使整机可以达到更高容量以及更高带宽,4颗CPU最大可以支持16TB内存容量,单CPU内存带宽高达230GB/s
05836ef9de93d57fa31ceaedb0bfcb99.png
  • 使用内存Buffer也带来一些新的RAS特性:比如它比传统64bit内存总线要多一个spare byte,可以多控制一个x8 或两个x4 DRAM,这可以使DRAM有冗余功能,具有强大的纠错能力
  • 支持内存Chipkill保护机制,后续针对内存的RAS特性会在后续的POWER系统RAS相关专题进行详细介绍,欢迎大家关注
92ee22ed6db1b2e479760ebaa4dc2e1e.png

CPU VRM:CPU供电稳压模块,用于为CPU提供电源

  • 模块化电源设计,免工具拆卸,便于维护
  • 整个模块集成12相电源,为CPU提供多路供电,每一路电源均采用N+1 phase冗余设计,可实现电源故障隔离报警,提高无故障运行时间
  • 高规格的阻燃设计,提高系统安全性
bf8d61fad894c2e1b1adee336295d203.png

MEM VRM:内存供电稳压模块,用于为内存板提供电源

  • 模块化电源设计,免工具拆卸,便于维护
  • 整个模块集成16相电源,为内存板上的内存和Buffer芯片提供多路供电,每一路电源均采用N+1 phase冗余设计,可实现电源故障隔离报警,提高无故障运行时间
  • 高规格的阻燃设计,提高系统安全性
da8e51bbd54af7e3e3fdcfcf1fe7e766.png

IO VRM:IO供电稳压模块,为IO提供电源

78ee3fe1fae7d8f070ebbb77f92aabf6.png

STBY VRM:备用电源供电模块,为系统关机状态下进行供电

整体来说,机箱内部对于不同的部件都设计了不同的供电稳压模块,比如IO 稳压模块、内存稳压模块、CPU稳压模块、STBY稳压模块,所有的稳压模块都具有高可靠性设计,比如用到了Phase冗余设计,电源Phase支持N+1冗余。使用过程中,如果有其中1 Phase供电出了问题,可以动态切换到其他Phase继续供电,维持整机持续运行,避免宕机,很好地保证客户业务不受影响。

d63bba7c338c87ef749f67040d0fe06d.png

TPM:模块化设计,提供固件Secure Boot功能

  • TPM卡提供了固件Secure Boot功能,通过对PNOR代码的签名及验签过程,保障代码不被恶意篡改
  • 同时兼具整机离线诊断功能,在断电时通过按键触发点灯指示错误部件的位置
eb8c88c3e3d6c41d54f833adf5880620.png

VPD卡:存储机器的关键信息

  • 存储机器的一些关键信息,比如机型、序列号、版本号、当前机器的配置以及每个部件的信息
03ae4145cf3b1666a55dea6a44cb50f5.png

CPU:P9 Scale up,24S SMT4 core

  • 14nm工艺,它的socket有3899pin,最大可以支持24core。
  • CPU正中间有大量pin脚,CPU与插槽之间接触受力要求非常高,达到377LB,压合时需要整个socket表面受力均匀,不能影响到信号质量,IPS研发在设计时做了大量的结构仿真,使CPU与插槽之间接触达到最完美的状态
28c55e082033f21468b371e81cf6e65c.png

CPU散热器

  • 散热器底部平面度要求高,有利于pad贴合更紧密、热阻更低、散热效果更好,导热界面材料散热效率更高
  • CPU散热器采用了热阻更低,导热效果更好的铜基材料,可以支持高达300W功率的CPU散热。
  • 这款CPU散热器通过了大量结构散热仿真验证和可靠性测试,工艺非常精良,底部平面度为0.05mm,而且采用了耐用性很好的金属导热界面材料,减少CPU和散热器之间阻抗。
  • 在安装方式上采用了两边扣合,中间单螺丝紧固的方式,在保证高扣合力的同时,简化了拆装的操作过程
e541ae317e415ce69ed960554d8fd01e.png

电源板:系统供电,每个计算节点支持4颗POWER9处理器

  • 系统电是通过这个电源板供给板卡的,采用大通流供电母排设计,保证供电的稳定可靠
ce179425cd99e9de829f5fec08d6a4e5.png

风扇背板模组

  • 提供前置风扇、硬盘的结构模组和接口
  • 一体化模组设计,方便拆卸
db463af7f615ce7e468288b046c71483.png
  • 背板与RAID卡之间通过cable连接,支持单RAID卡和双RAID卡灵活配置,可以组成不同的拓扑.在Storage Performance模式下,双RAID卡和8块硬盘拓扑全冗余互联,从RAID卡,到cable,到硬盘背板,到硬盘每一部分都是冗余设计,为系统提供高可靠的存储性能
22094a3112e2882920ca23683d04cd3d.png

主板:40层混压PCB设计,保障关键高速信号质量

  • 最最重要的主板拆出来了,烫金的Inspur Power Systems的Logo映入眼帘
1e33377701716d7e614586c75d9627d6.png
  • 另一视角,感受下40层主板PCB的厚重感
cb2f1743754df7fcb2f1af86a3cd3ba6.png

4颗CPU使用高速总线全互联架构,总线速率高达16Gbps,任何一个CPU访问remote内存数据时都会有更低的延时

该主板PCB层叠达到40层,大约6mm厚,采用混压工艺设计,设计和加工难度极大,是目前业界最高层数的服务器主板,全板3万多pin,7000多个器件,高速总线占70%。全板设计约5万6千个过孔,厚径比高达22:1,背钻孔数量多达3万多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C语言函数,可以用来获取指定日期的农历日期: ```c #include <stdio.h> // 农历每个月的天数 int lunar_month_days[] = { 0x1F, 0x10, 0x01, 0x21, 0x12, 0x02, 0x22, 0x14, 0x04, 0x24, 0x16, 0x06 }; // 农历年份信息,包括闰月和每个月的天数 int lunar_year_info[] = { 0x04BD8, 0x04AE0, 0x0A570, 0x054D5, 0x0D260, 0x0D950, 0x16554, 0x056A0, 0x09AD0, 0x055D2, 0x04AE0, 0x0A5B6, 0x0A4D0, 0x0D250, 0x1D255, 0x0B540, 0x0D6A0, 0x0ADA2, 0x095B0, 0x14977, 0x04970, 0x0A4B0, 0x0B4B5, 0x06A50, 0x06D40, 0x1AB54, 0x02B60, 0x09570, 0x052F2, 0x04970, 0x06566, 0x0D4A0, 0x0EA50, 0x06E95, 0x05AD0, 0x02B60, 0x186E3, 0x092E0, 0x1C8D7, 0x0C950, 0x0D4A0, 0x1D8A6, 0x0B550, 0x056A0, 0x1A5B4, 0x025D0, 0x092D0, 0x0D2B2, 0x0A950, 0x0B557, 0x06CA0, 0x0B550, 0x15355, 0x04DA0, 0x0A5B0, 0x14573, 0x052B0, 0x0A9A8, 0x0E950, 0x06AA0, 0x0AEA6, 0x0AB50, 0x04B60, 0x0AAE4, 0x0A570, 0x05260, 0x0F263, 0x0D950, 0x05B57, 0x056A0, 0x096D0, 0x04DD5, 0x04AD0, 0x0A4D0, 0x0D4D4, 0x0D250, 0x0D558, 0x0B540, 0x0B5A0, 0x195A6, 0x095B0, 0x049B0, 0x0A974, 0x0A4B0, 0x0B27A, 0x06A50, 0x06D40, 0x0AF46, 0x0AB60, 0x09570, 0x04AF5, 0x04970, 0x064B0, 0x074A3, 0x0EA50, 0x06B58, 0x055C0, 0x0AB60, 0x096D5, 0x092E0, 0x0C960, 0x0D954, 0x0D4A0, 0x0DA50, 0x07552, 0x056A0, 0x0ABB7, 0x025D0, 0x092D0, 0x0CAB5, 0x0A950, 0x0B4A0, 0x0BA54, 0x0AD50, 0x055D9, 0x04BA0, 0x0A5B0, 0x15176, 0x052B0, 0x0A930, 0x07954, 0x06AA0, 0x0AD50, 0x05B52, 0x04B60, 0x0A6E6, 0x0A4E0, 0x0D260, 0x0EA65, 0x0D530, 0x05AA0, 0x076A3, 0x096D0, 0x04BD7, 0x04AD0, 0x0A4D0, 0x1D0B6, 0x0D250, 0x0D520, 0x0DD45, 0x0B5A0, 0x056D0, 0x055B2, 0x049B0, 0x0A577, 0x0A4B0, 0x0AA50, 0x1B255, 0x06D20, 0x0ADA0 }; // 获取农历年份 int get_lunar_year(int year, int month, int day) { int i, leap_month, is_leap, lunar_year; // 计算从1900年到当前年份之间的闰月数和是否有闰月 for (i = 1900, leap_month = 0; i < 2100 && month > 0; i++) { is_leap = lunar_year_info[i - 1900] & 0x10000; leap_month = is_leap ? (lunar_year_info[i - 1900] & 0xFF) : leap_month; month -= 12 - (is_leap ? 1 : 0); } // 计算当前是否为闰月 is_leap = (leap_month == month) && (month > 0); if (is_leap && day > lunar_month_days[month - 1]) { day -= lunar_month_days[month - 1]; if (month == leap_month + 1) { is_leap = 0; } } // 计算农历年份 lunar_year = i - 1900; if (month > 0) { lunar_year--; } return lunar_year; } // 获取农历月份 int get_lunar_month(int year, int month, int day) { int i, leap_month, is_leap, lunar_month; // 计算从1900年到当前年份之间的闰月数和是否有闰月 for (i = 1900, leap_month = 0; i < 2100 && month > 0; i++) { is_leap = lunar_year_info[i - 1900] & 0x10000; leap_month = is_leap ? (lunar_year_info[i - 1900] & 0xFF) : leap_month; month -= 12 - (is_leap ? 1 : 0); } // 计算当前是否为闰月 is_leap = (leap_month == month) && (month > 0); if (is_leap && day > lunar_month_days[month - 1]) { day -= lunar_month_days[month - 1]; if (month == leap_month + 1) { is_leap = 0; } } // 计算农历月份 if (is_leap) { lunar_month = -month; } else { for (i = 0; i < 12; i++) { if (day > lunar_month_days[i]) { day -= lunar_month_days[i]; } else { break; } } lunar_month = i + 1; } return lunar_month; } // 获取农历日期 int get_lunar_day(int year, int month, int day) { int i, leap_month, is_leap, lunar_day; // 计算从1900年到当前年份之间的闰月数和是否有闰月 for (i = 1900, leap_month = 0; i < 2100 && month > 0; i++) { is_leap = lunar_year_info[i - 1900] & 0x10000; leap_month = is_leap ? (lunar_year_info[i - 1900] & 0xFF) : leap_month; month -= 12 - (is_leap ? 1 : 0); } // 计算当前是否为闰月 is_leap = (leap_month == month) && (month > 0); if (is_leap && day > lunar_month_days[month - 1]) { day -= lunar_month_days[month - 1]; if (month == leap_month + 1) { is_leap = 0; } } // 计算农历日期 if (is_leap) { lunar_day = day; } else { for (i = 0; i < 12; i++) { if (day > lunar_month_days[i]) { day -= lunar_month_days[i]; } else { break; } } lunar_day = day; } return lunar_day; } int main() { int year = 2022, month = 10, day = 1; int lunar_year, lunar_month, lunar_day; lunar_year = get_lunar_year(year, month, day); lunar_month = get_lunar_month(year, month, day); lunar_day = get_lunar_day(year, month, day); printf("阳历日期:%d年%d月%d日\n", year, month, day); printf("农历日期:%d年", lunar_year); if (lunar_month < 0) { printf("闰%d月", -lunar_month); } else { printf("%d月", lunar_month); } printf("%d日\n", lunar_day); return 0; } ``` 该函数假定1900年为农历1年1月1日,输入阳历日期,输出对应的农历日期。输出结果类似于“2022年闰八月十一日”的形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值