|
本帖最后由 NelsonCisco 于 2023-9-16 15:09 编辑
前言
注册CHH十多年都没正经写过一篇完整的装机分享文, 趁这次有些时间我需要将家里原有的旧NAS和HomeLab Server 做一次升级整合, 希望改善一些痛点, 其实今次改造还是沿用大部分旧有的硬件, 以CHH标准不插满8块20TB的硬盘都不好意思贴出来吧... 但我个人还是以实用为主, 以后用到以后再换反正架构搞好了, 要换也很容易, 另外网络也还没升级, 以后有机会再搞, 这过程中也遇到很多坑, 当做是一个work log, 日后出意外要恢复有个文档参考, 以下过程很多都是网上找到的方法, 再经自己实践和测试, 需要参考的注意一下
旧机情况
首先这台已经用了7年的NAS, 很少清灰尘…但仍然运作正常…今次还是继续沿用旧有的几颗硬盘, 组的RAID5 实际可用8T, 存一些比较有价值的影片, 照片和文件, 才用了4T多,查S.M.A.R.T 硬盘实际运行了4万多小时, 健康度还是100%, 也没有坏区, 那就继续用吧, 再继续坚持一下, 撑到全闪方案成熟再来淘汰
Fractal Design Node 304 6盘位机箱
CPU | E5 2683v3 2.0Ghz 14C28T | CPU散热 | 超微 SNK-P0050AP4 | 內存 | Micron 8G ECC DDR4 2133 x 4 | 主板 | ASRock EPC612D4I | 电源 | 海韵 M12II-520 520W 铜牌全模 | 阵列卡 | LSI 9260-8i + BBU | 硬盘 | WD RED 2TBx4 + WD GOLD 2TBx1 | SSD | Intel SSD 330 Series 60G MLC (CacheCade) | | Micron M600 1TB SATA SSD | | Tanyue 16G SATA DOM (黑群引导盘) | 风扇 | 猫扇 NF-A14 FLX | 机箱 | Fractal Design Node 304 |
机箱是FD的Node 304, 机箱结构挺合理的, 以现在来看也不差, 这么久以来就曾经坏过一次硬盘(第四年坏), CPU我上了高塔散热加上线也是比较紧凑, 拆机换硬盘还是比较费劲的, 自始机箱带背板和热插拔变成我必须考虑的, 用的LSI 9260-8i 硬RAID 5 阵列, 这卡现在也是白菜价, 除了那次坏硬盘就没出过其他问题, 以我阵列容量重建用了大半天, 换上新硬盘就自动重建
因为太久没打开过机箱, 又没方法监控阵列卡的情况(因为卡直通给黑群VM了, 一直没事就没碰过) 连BBU胀成这样了还不知道
勤誠RM14300 1U服務器機箱 Home Lab Server
CPU | E5 2686v4 2.3Ghz 18C36T x2 | CPU散热 | 政久 1U 2011/2066 VC均热板散热器 x2 | 內存 | 镁光 64G 4Rx4 LRDIMM ECC DDR4 2400 x6 | 主板 | 超微 x10DRL-i | 电源 | 极智猫 1U Flex 700W 金牌 (益衡7760B 方案) | SSD | Intel DC P4500 2TB U.2 + PCIE 90度转向+ SSF-8643卡 | | Innodisk 64G SATA DOM (ESXi 引导盘) | 机箱 | 勤诚RM14300
|
这是一台给我做CCIE 实验的伺服器, 两年前组的, 当时为了想省位置加上家里的22U小机柜深度只有450mm, 看中了勤诚这个1U机箱能上ATX板又是短身板, 有一个坑点是因为主板铜柱位不匹配这机箱, 只有几个柱位能对上, 就用胶带封着不用的柱位防短路, 但就是这一举动导致其中一条DIMM槽针脚压歪了, 这是最近才知道的, 因为内存白菜价又加两条64G, 才发现其中一条DIMM死活不认内存, 幸好超微的售后不错, 经某宝店家申请RMA, 大概10天寄回来测试好告诉我故障点
因为怕吵上了减速线, 不过后来证明没啥用, 该吵还是得吵, 每次做实验就是等家里没人在外面用**连回家做, 这也是今次整合计划想改善的其中一个目的, 另外为什么要配那么大的内存, 一个Cisco DNAC VM就吃掉200多G, 最少60个vCPU才能安装VM, 另外还要几十个G运行EVE-NG 实验拓扑, 那时还没大船,一条64 RDIMM就够买现在一块SN640 7.68T, CPU现在也是白菜价, 亏大了! 另外这个巨型VM 每次启动要差不多20分钟, 实在折磨人
新机箱选择
看了一圈市场上能装ATX (而且我这块还比一般ATX略大, 一般的30.5cm x 24.5cm, 这块30.5cm x 25.4cm), 另外由于安装位置问题, 只能半高PCI不能全高, 其实可选只有几款
一开始看了这个觉得颜值不错, 但深入了解过后发现, 因为这机箱最大支持到24.5cm宽的主板, 强行安装可以, 但要拆掉上层的风扇支架, 而且前置最多三个8010, 进风或排气都有D 点不够力, 加上顶盖密封, 只能用2U 侧吹, 6CM风扇为了散热势必提转速, 那跟我原来1U 比也好不了多少, SFX电源位不错, 但我本来就有1U Flex 对我想说不是必须
颜值真的顶, 三合一SATA/SAS/U.2 背板, 目前天花板配置, 夸张的价钱, 但是呢… 早在我写这篇的前一个月已经售光, 听说双11才有货, 但我等不了, 而且上盖跟半人马座一样的密封, 使用CPU功效高点的多核洋垃圾, 就容易积热, 要么提转速解决,但嘈音肯定受不了, 毕竟玩到这么高端又这么贵的机箱都肯买了, 肯定想一步到位, 以后考虑全闪方案时再来考虑
最终我的选择, 颜值比较喜欢, 造工还可以而且可以安装副屏, 比较重要的是顶盖有开孔, 以我选用的CPU下压散热器来说很重要, 事实证明也没有选错, 比起2U 侧吹只能提风扇转速来解决散热问题, 用尽量大直径和深度的风扇平衡静音和散热的效果是比较理想的, 但这机箱也遇到不少坑, 下面详细说说各种灾难
装机篇
最终All-IN-ONE HomeLab Server 的硬件配置
CPU | Intel E5 2686v4 2.3Ghz 18C36T x2 | CPU散热 | 政久 2U 2011/2066 VC均热板散热器 x2 | 內存 | 镁光 64G 4Rx4 LRDIMM ECC DDR4 2400 x8 | 主板 | 超微 x10DRL-i | 电源 | 极智猫 1U Flex 700W 金牌 (益衡7760B 方案) | 显卡 | 微星 GT 710 半高刀卡 | 网卡 | 浪潮 X540-T2 双口 10Gbps | 阵列卡 | LSI 9361-8i + 1GB CacheVault | 硬盘 | WD RED 2TBx4 + WD GOLD 2TBx1 | SSD | Intel DC P4500 2TB U.2 + PCIE 90度转向 + SSF-8643接口卡 | | 镁光M600 1TB SATA SSD | | Innodisk 64G SATA DOM (ESXi 引导盘)
| | Tanyue16G SATA DOM (黑群引导盘) | 副屏 | 幽能BK PsiIndex 12.6吋 1920 x 515 驱动板分离 + Mini HDMI 航拍线 | 风扇 | 追风者T30 x2
| | 三洋 9G0812N1D03 8038 风扇 x2 | | 三洋 9S0612P4S041 6025 风扇 x4 | 机箱 | 宝藏盒Pro (白) | 其他 | PCI 双6CM 风扇支架 |
先说一下, 安装这个机箱, 最好先把PCI 档片的固定架, 开关机按钮和USB 3.0延长线都先拆下来, 因为中间层板拿出来时很大机会被固定架顶着刮伤机箱! 这是我觉得这机箱做得最差的地方, 层板必须按照某个方向和角度拿出来或放回去, 否则很易刮到机箱
先从下层说起, 背板PCB看起来质量很好, 总共4个大4P供电和2个SFF-8643接口, SAS 12Gbps, 硬盘顺序启动防上瞬时功耗过高
为了好看用了镀银线, 但是真的硬
首先安装T30 就遇到坑, 被横梁挡着装不进去, 目测大约差2mm左右, 没办法, 那就磨掉!
10分钟后手都麻了…这问题已经反映给店家, 希望以后有改善, 虽然下层硬盘笼是独立风道, 用普通硬盘不至于会很热, 但因为我的安装位置问题, 机箱背面贴着墙壁, 所以风扇方向是对着硬盘笼吹, 尽量把热风从硬盘笼排出防止积热
阵列卡的缓存电池贴在硬盘笼旁边
要说一下因为X10DRL-i 不是一般的ATX 板, 铜柱位很多都对不上, 好在主要承托的铜柱都能用, 为了没有铜柱位的位置都有一些承托力, 加了一些泡沫, 实际对得上的铜柱位如下
然后安装主板和接线那些都没大问题, 但因为后续我要安装副屏的驱动板, 占用了一个2.5吋硬盘位, 装回USB3.0 延长接头遇到另一个坑, 因为X10DRL-i 比一般ATX 板宽了9mm, 从下图可以看出其中一组CPU 8PIN 的卡扣和机箱USB 3.0延长接头冲突, 那也只能削掉!
但这个位置相当极限… 以后要拔这个卡扣也很麻烦
驱动板从主板的USB取电, HDMI 航拍线沿着边沿走绕去后面PCI 档片位置
EDP屏线贴在两个2.5吋硬盘位置的边上, 有预留开孔出去
屏幕直接用3M不干胶贴在前铝面板上, 8个硬盘位, 插上2.5吋硬盘的话会有点漏光
装机完成, 两个PCI 6CM风扇和左边的6CM 风扇主要尽量排走上层的热风避免积热, U.2 在这个位置也有点热, 直接贴一个6CM 风扇对着吹, 不然也没有更好的位置, PCIE 从右至左SFF-8643接口卡, GT 710显卡, LSI 9361-8i阵列卡, X540-T2 万兆网卡, 万兆网卡暂时用不到但先把它装上
最后安装在假天花上
环境配置篇
首先超微的主板对于风扇的转速策略有点问题, 当插上PWM风扇时, 预设的风扇策略当转速低于设定的阈值时会触发警报,同时提升风扇转速, 造成风扇会在全速和低速之间循环转换, 可以通过ipmitool 手动调整适当的转速解决, 但当ESXi host 重启ipmitool 的命令就会失效, 也不可能每次重启都要手动再输入一次, 那自然要令ESXi host 每次开机时都自动执行ipmitool 的风扇转速命令
- 先下载 ipmitool vib for ESXi
- 解压缩后得到ipmitool-1.8.11-2.x86_64.vib, 用SCP上传vib 到/tmp/ 目录, 另外的ipmitool-1.8.11-2-offline_bundle.zip不用理会
- 登入至ESXi Host Client 管理页面开启SSH
- SSH用root帐户登入并更改software acceptance level 成 CommunitySupported, 不然没有VMware 签名的vib 是不能安装的
- esxcli software acceptance set --level=CommunitySupported
复制代码
- 再安装vib
- esxcli software vib install -v /tmp/ipmitool-1.8.11-2.x86_64.vib
复制代码
- 安装成功
- 现在就可以用ipmitool 控制风速的转速, 首先测试一下命令有没有效果, 命令输入后会立即生效, 留意一下风扇声音就知道生效没有, 因为是在ESXi 本地主机, 不用加-H -U -P 等参数指定IP和帐密
- /opt/ipmitool/ipmitool raw 0x30 0x45 0x01 0x01 (这句修改风速模式, 最后的0x01表示全速, 只有先改成全速才不会覆盖手动设定的转速)
复制代码
- 如果上面的命令能使风扇都全速运行, 再输入下面的, 超微的风扇分两个区, FAN1, FAN2, FAN3等属于0x00, FANA, FANB等属于0x01, 我这块x10DRL-i 只有FAN1- 6和FANA-B共8个PWM风扇接口, 几经测试, 在我的安装环境, 以下风扇转速能达到比较理想的散热静音平衡, 命令最后的16进位数字就是风扇转速, 0x28 化成10进位就是40,代表40%转速, 根据实际情况调整, 以我的情况上层所有风扇都设成40%, 下层两个T30 设成80%, 天气冷了再调更低一点的转速
- /opt/ipmitool/ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x28 (将0x00区的风扇固定在40%转速)
- /opt/ipmitool/ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x50 (将0x01区的风扇固定在80%转速)
复制代码
- 測試沒問題之後, 將以上命令寫進ESXi 的啟動腳本令它每次重啟都自動執行, 加在exit 0之前就行, sleep 1 為了在每個命令之間停頓1秒避免執行過快, 這樣風扇的問題就都解決了
- vi /etc/rc.local.d/local.sh
复制代码- #!/bin/sh
- #!/bin/sh
- # local configuration options
- # Note: modify at your own risk! If you do/use anything in this
- # script that is not part of a stable API (relying on files to be in
- # specific places, specific tools, specific output, etc) there is a
- # possibility you will end up with a broken system after patching or
- # upgrading. Changes are not supported unless under direction of
- # VMware support.
- # Note: This script will not be run when UEFI secure boot is enabled.
- /opt/ipmitool/ipmitool raw 0x30 0x45 0x01 0x01
- sleep 1
- /opt/ipmitool/ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x28
- sleep 1
- /opt/ipmitool/ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x50
- exit 0
复制代码
今次整改想把原本阵列卡直通给黑群的方案改成直通给Win 虚拟机, 数据源是Win 比较简单方便, 但是安装最新版本MegaRAID Storage Manager 发现安装不上, 国外论坛也有反映这问题,不过没关系反正能管理RAID 的方法很多, 今次改用由SAS3XXX 系列HBA卡开始有的LSI Storage Authority (LSA), 使用Web管理和更加美观的介面, 支持的HBA/RAID卡如下
- 9600 Family eHBA Adapters
- 9660 Family RAID Adapters
- 9670 Family RAID Adapters
- MegaRAID 12Gb/s SAS RAID controllers and Integrated MegaRAID 12Gb/s SAS RAID controllers
- SAS3916 based MegaRAID and iMR
- SAS3908 based MegaRAID and iMR
- SAS3816 based IOC and iMR
- SAS3808 based IOC and iMR
- SAS3516 based MegaRAID and iMR
- SAS3108 based MegaRAID and iMR
- SAS3008 based HBAs
- 先准备好一个Windows 10 虚拟机
- 登入ESXi Web Console, Manage > Hardware >PCI Devices, 把Broadcom MegaRAID SAS Invader Controller 勾选然后按Taggle passthrough 设成直通, Passthrough 状态变成Active 代表成功
- 回到VM设定加入PCI Device MegaRAID SAS Invader Controller
- Broadcom 官网下载最新版LSA, 安装好后桌面多了一个Launch LSA 图示, 点击进入
- 用Windows 本机admin帐户登入, 就可以看到9361-8i 控制器, 组RAID等操作跟以前用MegaRAID Storage Manager 差不多, 就不详述
因为增加了副屏, 而超微的X10DRL-i 本身并没有板载HDMI输出, 虽然可以将ASPEED 2400直通给VM, 再用HDMI转VGA接头插板载VGA, 但这样就不能通过IPMI 显示EXSi Console , 比较不便, 所以另外咸鱼了一张成色几乎全新的微星GT 710, 直通给Windows 10 虚拟机, 另外, 因为屏幕并不需要一直开着, 在Windows 设定闲置5分钟就关闭屏幕, 需要看的时候才用滑鼠动一下唤醒屏幕, ESXi 直通显卡和USB设备给虚拟机需要以下步骤
- 登入ESXi Web Console, Manage > Hardware >PCI Devices, 把显卡相关的设备包括HDMI Audio勾选然后按Taggle passthrough 设成直通, Passthrough 状态变成Active 代表成功
- 然后SSH进ESXi, 输入lspci -v | grep NVIDIA -A1
- 记下显卡的 ID, 以我的为例:
0000:05:00.0 和 10de:128b - 输入以下命令, 改成自己设备的 ID
- echo '/device/0000:05:00.0/owner = "passthru"' >> /etc/vmware/esx.conf
- echo '10de 128b bridge false' >> /etc/vmware/passthru.map
- echo '10de 128b link false' >> /etc/vmware/passthru.map
- echo '10de 128b d3d0 false' >> /etc/vmware/passthru.map
复制代码
- 回到VM设定, 勾选所有guess memory 预留
- VM Options > Advanced > Edit Configuration, 新增参数 Key = hypervisor.cpuid.v0, Value = FALSE
- Add Other Device > PCI Device, 加入显卡两个相关的PCI设备
- Win10 虚拟机开机, 正常安装显卡驱动
- 最后在显示设置那边, 选择”Only show on 2”, 正常一般屏幕1会是VMware的虚拟display
- 一样先SSH进ESXi Host
- 输入lsusb 找到USB 设备的ID, 可能一下子确认不到哪个ID 是想要直通的设备, 可以通过拔插设备USB来比较确认, 以我的为例, lea7:0066 是希望直通的鼠标,看名字还以为是键盘…
- 再输入vi /etc/vmware/config, 最后一行加usb.quirks.device0 = “0xlea7:0x0066 allow”
- 再vi /bootbank/boot.cfg , 令VMKernel内核启动时不控制该HID设备, 入加CONFIG./USB/quirks=0xlea7:0x0066::0xffff:UQ_KBD_IGNORE 插入在kernellopt=autoPartition=FALSE 后面
如果有多个设备可以一直加在UQ_KBD_IGNORE 后面, 用冒号隔开, 像这样
- VM Options > Advanced > Edit Configuration, 新增两个参数
- usb.generic.allowHID = TRUE
- usb.quirks.device0 = 0xlea7:0x0066 allow, 如果有多个设备要直通, device1, device2 加下去
- 最后重启一次ESXi Host, 回到Win 虚拟机设定, 加入新USB设备就看到直通的设备
今次重组NAS 其中一个主要目的是想摆脱之前因为把LSI 9260-8i 阵列卡直通给黑群VM, 从而令到所有硬盘都不能休眠( 一旦把硬盘交给DSM 管理, 不论是SHR/Basic/JBOD哪种, 都会给每块硬盘分一部分分区放置系统和设置, 只要有一块硬盘启动其他都跟着启动), 而且又不能查看S.M.A.R.T, 所以今次打算将新买的LSI 9361-8i 直通给Win10, 再通过NFS 给黑群挂载, 原本计划是这样的… 但后来测试发现当中很多问题, 而且最重要的, 用这方法实现不知道是什么原因导致数据写入RAID5 阵列非常慢, 慢到大概只有几MB/s, 通过iperf 测试由客户端去到黑群是正常千兆速度, 最终放弃了这方案, 改而去研究另一个也是很有名的NAS 牌子, QNAP
在网上找到破解安装黑QNAP的方法, 但目前来说还不算完美, 不能连QNAP ID和更新固件版本, 而且只能特定版本(我只试了2044版本), 有些APP因为缺授权即使能安装了也不能用, 但我的需求很简单, QNAP 只是充当一个前台介面, 在手机端有APP 可存取我的文件就行, 其他一概不用
- 直接官网找到那个特定版本OVA, 汇入即可
- 除了安装引导的的48G硬盘空间, 另外需要再加一个VMDK 用来安装QNAP的APP, 但是必须200G或以上, 不然不能被正常格式化, 勾选记忆体全部锁定
- VM开机一直跑到画面出现MAC和IP 地址 (DHCP Server 要先准备好, 让网卡能拿到IP能上网), 这时就可以SSH 进QNAP或直接ESXi 下web console
- 默认用户名admin, 密码是MAC地址去掉冒号全大写, 然后执行
- sudo curl -k https://jxcn.org/file/active2.sh | bash
复制代码
- 重启VM 默认第一项启动
- 开启http://qnap-ip:8080 就可以按启动智能安装, 设定admin帐户和时间
- 等待安装完成
- 进去后不要更新固件, 先去创建存储池, 把200G 虚拟硬盘格式化, 硬盘容量超过200G 这里才能被勾选
- 再下载最新版本的HybridMount, 这样QNAP 才可能远程挂载Windows 分享出来的SMB, 创建远程挂载
- 输入SMB Server 即是Win10虚拟机 IP地址, 登入帐号就可以看到分享出来的文件夹
- 设定好文件夹存取权限, 我另外把QNAP整合Windows Server 2019 AD控制器, 用AD帐户存取
- 因为家中有Fortigate 防火墙做DDNS, 加一条从WAN口进入对应子网的ACL 就可以从internet 访问
- 手机端安装Qfile Pro, 登录后就能看到经SMB 远程挂载的文件夹, 而且UI 速度比DSM 顺畅很多! 美中不足的是相片之类因为远程挂载的文件夹不能做索引, 所以没有缩图
最后就是要在这个12.6呎1920x515 分办率的显示屏显示各种IPMI 监控数据, 基本上没有简单的现成方案能实现, AIDA64 也不能监控IPMI 读数, 网上研究一番用了以下组合实现,
- Hard Disk Sentinel Pro – 在桌面以Widget 形式显示阵列中硬盘的温度和健康状况, 同时也能查看S.M.A.R.T, 主要用来显示硬盘的温度
- Prometheus – 一个开源监控系统和日志数据库, 我只用到很简单的功能, 负责收集从IPMI Exporter 收到的传感器数据然后传给Grafana 显示
- IPMI Exporter – 一个中间件, 负责收集IPMI 各种读数如CPU温度, 风扇转速等
- Grafana – 一个开源数据可视化工具, 自定义形式显示Prometheus 收集到的IPMI 读数
为了管理方便, Prometheus, IPMI Exporter, Grafana 服务都是安装在同一台VM 里, 先sudo -i 登入root 再做以下所有操作
对docker 不太熟悉, 就用Ubuntu Server 20.04 做为Guest OS, 在上面安装Prometheus
- 下载适合的Prometheus 版本复制下载路径, https://github.com/prometheus/prometheus/releases, 我直接下载最新的版本
- root@prometheus-server:~# wget https://github.com/prometheus/prometheus/releases/download/v2.47.0-rc.0/prometheus-2.47.0-rc.0.linux-amd64.tar.gz
复制代码
- 解压缩
- root@prometheus-server:~# tar -zxvf prometheus-2.47.0-rc.0.linux-amd64.tar.gz
复制代码
- 改个短一点的名字方便使用
- root@prometheus-server:~# mv prometheus-2.47.0-rc.0.linux-amd64 prometheus
复制代码
- 进去prometheus 文件夹
- root@prometheus-server:~# cd prometheus
复制代码
- 启动prometheus 服务测试一下
- root@prometheus-server:/prometheus# ./prometheus --config.file=prometheus.yml
复制代码
- 查看一下当前prometheus 的IP 地址
- root@prometheus-server:/prometheus# ip addr show
复制代码
- 打开http://prometheus-ip:9090 能进去表示成功
- 在Status > Targets 那边可以查看IPMI Expoter的状态, State 是UP代表正常连作
- 好像找不到prometheus 官方有配置成service 的文件, 那自己写一个文件install_prometheus_service.sh
- root@prometheus-server:~# vim install_prometheus_service.sh
复制代码
- 內容如下
- echo '[Unit]
- Description=Prometheus
- Wants=network-online.target
- After=network-online.target
- [Service]
- User=root
- Group=root
- Type=simple
- ExecStart=./prometheus --config.file=prometheus.yml
- [Install]
- WantedBy=multi-user.target' > /etc/systemd/system/prometheus.service
- # enable prometheus in systemctl
- systemctl daemon-reload
- systemctl start prometheus
- systemctl enable prometheus
复制代码
- 最后安装就能开机自动启动
- root@prometheus-server:~# bash install_prometheus_service.sh
复制代码
由于Prometheus 不能直接收到IPMI 的读数, 需要安装IPMI Exporter 来配合Prometheus 使用
- 先下载ipmi_remote.yml 文件至prometheus 家目录并编辑
- root@prometheus-server:~# wget https://github.com/srkaviani/prometheus_exporters/blob/main/ipmi_exporter/ipmi_remote.yml
- root@prometheus-server:~# vim ipmi_remote.yml
复制代码
- 把default modules 的用户名和密码改成IPMI Server 登入的用户名和密码, 使IPMI Exporter 能登入要监控的IPMI Server 读取数据, 也可以在exclude_sensor_ids加入不想监控的传感器读数, 减少数据量, 注意YAML 有严格的段落缩排要求, 失败大多是格式不对引起
- # Configuration file for ipmi_exporter
- # This is an example config for scraping remote hosts via IPMI.
- # Information required to access remote IPMI interfaces can be supplied in the
- # 'modules' section. A scrape can request the usage of a given config by
- # setting the `module` URL parameter.
- modules:
- default:
- # These settings are used if no module is specified, the
- # specified module doesn't exist, or of course if
- # module=default is specified.
- user: "IPMI Server admin username" #改这里
- pass: "IPMI Server admin password" #改这里
- # The below settings correspond to driver-type, privilege-level, and
- # session-timeout respectively, see `man 5 freeipmi.conf` (and e.g.
- # `man 8 ipmi-sensors` for a list of driver types).
- driver: "LAN_2_0"
- privilege: "admin"
- # The session timeout is in milliseconds. Note that a scrape can take up
- # to (session-timeout * #-of-collectors) milliseconds, so set the scrape
- # timeout in Prometheus accordingly.
- # Must be larger than the retransmission timeout, which defaults to 1000.
- timeout: 10000
- # Available collectors are bmc, ipmi, chassis, dcmi, sel, and sm-lan-mode
- # If _not_ specified, bmc, ipmi, chassis, and dcmi are used
- collectors:
- - bmc
- - ipmi
- - chassis
- # Got any sensors you don't care about? Add them here.
- exclude_sensor_ids:
- - 2
- - 29
- - 32
- - 50
- - 52
- - 55
- dcmi:
- # Use these settings when scraped with module=dcmi.
- user: "admin_user"
- pass: "another_pw"
- privilege: "admin"
- driver: "LAN_2_0"
- collectors:
- - dcmi
- thatspecialhost:
- # Use these settings when scraped with module=thatspecialhost.
- user: "some_user"
- pass: "secret_pw"
- privilege: "admin"
- driver: "LAN"
- collectors:
- - ipmi
- - sel
- # Need any special workaround flags set? Add them here.
- # Workaround flags might be needed to address issues with specific vendor implementations
- # e.g. https://www.gnu.org/software/freeipmi/freeipmi-faq.html#Why-is-the-output-from-FreeIPMI-different-than-another-software_003f
- # For a full list of flags, refer to:
- # https://www.gnu.org/software/freeipmi/manpages/man8/ipmi-sensors.8.html#lbAL
- workaround_flags:
- - discretereading
- # If you require additional command line arguments (e.g. --bridge-sensors for ipmimonitoring),
- # you can specify them per collector - BE CAREFUL, you can easily break the exporter with this!
- custom_args:
- ipmi:
- - "--bridge-sensors"
- advanced:
- # Use these settings when scraped with module=advanced.
- user: "some_user"
- pass: "secret_pw"
- privilege: "admin"
- driver: "LAN"
- collectors:
- - ipmi
- - sel
- # USING ANY OF THE BELOW VOIDS YOUR WARRANTY! YOU MAY GET BITTEN BY SHARKS!
- # You can override the command to be executed for a collector. Paired with
- # custom_args, this can be used to e.g. execute the IPMI tools with sudo:
- collector_cmd:
- ipmi: sudo
- sel: sudo
- custom_args:
- ipmi:
- - "ipmimonitoring"
- sel:
- - "ipmi-sel"
复制代码
- 把ipmi_remote.yml 搬到路径/opt/ipmi_exporter/ipmi_remote.yml
- root@prometheus-server:~# mv ipmi_remote.yml /opt/ipmi_exporter/ipmi_remote.yml
复制代码
- 下载install_ipmi_exporter.sh 并安装
- root@prometheus-server:~# wget https://github.com/srkaviani/prometheus_exporters/blob/main/ipmi_exporter/install_ipmi_exporter.sh
- root@prometheus-server:~# bash install_ipmi_exporter.sh
复制代码
- 在/etc/prometheus 创建一个ipmi_targets.yml 文件
- root@prometheus-server:~# cd /etc
- root@prometheus-server:/etc# mkdir prometheus
- root@prometheus-server:/etc# cd prometheus
- root@prometheus-server:/etc/prometheus# vim ipmi_targets.yml
复制代码
- 加入要监控的IPMI Server IP地址, 我的是10.10.222.223
- - targets:
- - 10.10.222.223
- labels:
- jobs: ipmi_exporter
复制代码
- 然后回到prometheus 文件夹, 修改prometheus.yml
- root@prometheus-server:~# vim prometheus.yml
复制代码
- 以下code 加到最后一行
- - job_name: ipmi_exporter
- params:
- module: ['default']
- scrape_interval: 1m
- scrape_timeout: 30s
- metrics_path: /ipmi
- scheme: http
- file_sd_configs:
- - files:
- - /etc/prometheus/ipmi_targets.yml
- refresh_interval: 5m
- relabel_configs:
- - source_labels: [__address__]
- separator: ;
- regex: (.*)
- target_label: __param_target
- replacement: ${1}
- action: replace
- - source_labels: [__param_target]
- separator: ;
- regex: (.*)
- target_label: instance
- replacement: ${1}
- action: replace
- - separator: ;
- regex: .*
- target_label: __address__
- replacement: localhost:9290
- action: replace
复制代码
- 安装完成, 可以打开http://prometheus-ip:9290 测试一下, 把target 改成IPMI Server IP地址按Submit 就可以看到能读取到IPMI 的各种读数, 宿主机的风扇转速, 温度等
- IPMI Export 在安装时就已经配置成service, 开机就会自动启动, 不需再另行设定
- 依照Grafana 官方的方法从Repository 下载和安装最新稳定版本, 我下载的是OSS版, 也有Enterprise版不过入面的功能用不上
- root@prometheus-server:~# apt-get install -y apt-transport-https
- root@prometheus-server:~# apt-get install -y software-properties-common wget
- root@prometheus-server:~# wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
- root@prometheus-server:~# echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
- root@prometheus-server:~# apt-get update
- root@prometheus-server:~# apt-get install grafana
复制代码
- 启动Grafana, 默认端口3000
- root@prometheus-server:~# systemctl start grafana-server.service
复制代码
- 打开http://prometheus-ip:3000 就可以进入Grafana 介面, 默认用户名admin, 密码admin, 第一次登入要求修改密码
- 先去Connections > Data sources, Add new data source 创建新的数据源
- 名字随意, 填入Prometheus server URL就行, 勾选Default, 其他一些安全参数也可以加, 例如要求用户名和密码登入等等
- 然后到Dashboards, New>Import 汇入
- 两种方法汇入
- 离线可以先去下载IPMI Exporter Dashboard 的JSON文件, 上传后再按Load
- 联网可以直接输入IPMI Exporter Dashboard ID, 15765 再按Load
- 成功的话在Dashboard > IPMI Exporter 就会见到差不多以下的画面
- 但这里资讯太多, 在小小的12.6吋画面不能全部都显示(即使可以字体也很小看不清), 我只选择了风扇转速, CPU和内存温度进行监控, 我把没用的区块移除, 再加以修改后就有以下完成画面, HDD Temperatures 区块是预留给Hard Disk Sentinal Pro 来显示硬盘温度的区块
- 点选风扇转速的区块右上角的Edit 修改
- 图像风格改成Stat
- Title 是区块的标题, 我改成了Fan Speed
- Stat Styles > Graph mode > Text ailgnment 改成Center 置中
- Gauge 开启Show threshold markers, 这样仪表板外圈会多显示当前数值和thresholds的比例
- Text Size 改字体大小
- Thresholds 改数值范围自动变色, 我这里小于50%绿色, 大于等于50%和少于80%黄色, 大于等于80%红色, Thresholds mode 改成Percentage 根据百分比
- 另外因为默认IPMI 传感器收到的名字是FAN1, FAN2, FAN3 等等的名字, 不好识别, 可以用Overrides 修改, Add Field Override > Field with name
- 选取要修改的传感器, 例如FAN1, 对应的是我U.2 的风扇, Add override property, 选Standard options > Display name, 输入U.2 FAN, 这只是显示的文字, 改成什么都可以
- 最后都改好后, 按Apply 保存
- 然后温度传感器, 也是因为资讯太多, 我过滤掉一些温度传感器, 在下面Transforms 选Filter by name, 把不想显示的传感器取消打勾就行
- 图像风格是Gauge, 字体大小也改一改
- Thresholds 我改成小于50绿色, 大于等于50和少于80黄色, 大于等于80红色, Thresholds mode 改成Absolute 根据绝对值
- 加入Override 修改成自己想显示的传感器标题(上面已有演示), 最后都改好后, 按Apply 保存
- 另外不要忘了Dashboard 也要按一下Save 保存
- Windows 10 下开机自动启动Grafana 面板和Hard Disk Sential
- 先把Windows 设定成自动登入
- 执行regedit , 把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device 中的DevicePasswordLessBuildVersion 由2 改成 0
- 再执行netplwiz, 取消勾选 Users must enter a user name and password to use this computer, 按OK 会要求你输入一次用户的密码
- 为了实现Grafana 自动启动并且自动登入全屏显示, 先从Github 下载Grafana Kiosk, 找到自己系统的版本, 我是用的 windows 版
- 解压至任意位置, 我是C:\ 另外要注意一点Grafana Kiosk 必须用Chrome 来打开
- 先准备脚本, 新建一个名为Grafana_AutoStartup.bat 的文件, 内容如下, Grafana Kiosk 安装路径改成自己的, URL那边改成自己Grafana 的Dashboard路径, admin不用改, 密码改成自己的
- C:\grafana-kiosk-v1.0.6\grafana-kiosk.windows.amd64 -URL=http://10.10.222.210:3000/d/UKjaSZf7z/ipmi-exporter -login-method=local -username=admin -password=xxxxxxxxx -kiosk-mode=kiosk
复制代码
- 在Task Scheduler 创建一个新基本任务, Create Basic Task.. 名字随意, 我改成Grafana AutoStartup
- Trigger 选 When I log on
- Action 选 Start a program, 选取刚才准备的Grafana_AutoStartup.bat 文件, Finish 完成
- 再创建一个新的基本任务, 名字随意, 我改成 HDSentinel AutoStartup
- Trigger 选When I log on
- Action 选 Start a program, 选HardDiskSentinel 安装目录里的 HDSentinel.exe
- 创建完注意一定要回到一般设定那边, 把Run with highest privileges打勾, Configure for 改成Windows 10, 我试了不改不能被正常执行
- 重启VM试测一下效果, 作业完成
功耗測試
双路E5 的功耗还是很可观的, 9台虚拟机占整机CPU 7%的轻度负载, 已经需要近240W的功耗
噪音主要来源于风扇的高转速, 得益于VC 均热板和机盖上部开孔, 空调室温28度环境而且我放在天花板位置, 轻负载CPU 也只有不到50多没到60度已经很满意, 硬盘区温度也很凉快, 两个T30 在1500转基本上很静音
|
评分
-
查看全部评分
|