Rocky Linux 8 × HPE IMC 7.3 × MariaDB:2026 部署前言與 Phase 0~1 完整環境準備

📌 前言系列 - 本站前作

本系列文章為以下兩篇 CentOS 7 實戰指南的「2026 年現代化重製與推進版」。強烈建議搭配閱讀以了解 iMC 底層演進脈絡:

📝 文章筆記 Rocky Linux 8 × HPE IMC 7.3 × MariaDB:2026 部署前言與 Phase 0~1 完整環境準備

⚠️ 本系列並非官方標準部署,而是基於實戰驗證的「可運作方案」,適用於無法使用舊版 OS 的現代環境。

本文詳細解析 2026 年為何選擇 Rocky Linux 8 作為 HPE iMC 7.3 的部署平台,並提供硬體資源預檢與系統基礎環境校正的實戰腳本。

為什麼 2026 還在裝 iMC 7.3?

先把現實講白一點:
現在的 Linux 世界,已經有 Rocky 8、Rocky 9,甚至 Rocky 10 在那邊排隊,RHEL 9 也早就 GA 一段時間了。

但 iMC 7.3 的官方世界,還停在「最後支援 Red Hat / CentOS 8」那一頁:文件寫得很漂亮,實際上 CentOS 7/8 本尊早就 EOL。打開 HPE 的 iMC 7.3 文件,你會看到一個很典型的「時代交接場景」:

  • 作業系統支援矩陣:Windows Server、RHEL 7/8、CentOS 7/8,自家的 NingOS / H3Linux 也各有一套部署腳本。
  • 資料庫:Windows 版對接 SQL Server 2012/2014/2016。
  • Linux 版部署指南:打開 HPE 原廠的 Linux 部署手冊,裡面寫的是 RHEL 8.1 + MySQL 8.0 這種組合,並且要求維運人員純手動去修改 my.cnf 寫入一堆老舊參數。

也就是說,官方當年實測過的世界,是「RHEL 8.x + MySQL 8.0」。但到了 2026 年,環境已經完全不一樣:

  1. CentOS 7/8 全數退場,新專案如果還堅持用,只會被資安和稽核盯上。
  2. HPE 原廠手冊的 Linux 部署指南中,資料庫依然只標示支援 MySQL 8.0。
  3. 但經過後續深入研究與爬文,發現在 H3C 新一代的 NingOS / H3Linux 部署實戰中,社群與官方已經驗證了用 MariaDB 替換 MySQL 的可行性

有了這個隱藏版的「官方底氣」,這個系列就是要站在「RHEL 8 + MySQL 8.0」的原廠基礎上,大膽將資料庫替換並推進到 Rocky Linux 8 + MariaDB 11.4.10 (LTS),同時還要透過極限調優,來照顧 iMC 7.3 這顆老程式的脾氣。

為什麼 Rocky 9 / 10 對 iMC 7.3 來說目前是「絕對死路」?

很多人第一個直覺是:「既然要新裝,為什麼不乾脆直上 Rocky 9 或剛出的 Rocky 10?」實際踩過之後,答案很殘酷:底層函式庫已經斷代到「不是調幾個 symlink 就能救」的程度。

1. libnsl.so.1 被徹底移除

iMC 7.3 的核心組件非常依賴 libnsl.so.1 這顆舊時代的庫。

  • 在 Rocky 8 上: 預設不一定有裝,但可以用 dnf install libnsl libnsl.i686 很簡單地補回來。
  • 在 Rocky 9 / 10 上: 官方 repo 幾乎完全捨棄這顆庫,改用新世代的 libnsl2。iMC 的舊版程式碼根本不認得新版 ABI,想用 symlink 強行指向最後多半只會換來 Segmentation fault。

2. OpenSSL 1.1 vs 3.0:不是同一個世界

iMC 7.3 的 Web 伺服器與部份加密元件,原始設計是綁著 OpenSSL 1.1 的。在 Rocky 8 上 OS 預設是 1.1,可以並存。但在 Rocky 9 / 10 上核心直接就是 3.0+,大量舊 API 被移除,強行執行會導致 HTTPS 握手失敗或 Java 找不到 Cipher Provider。

3. glibc 版本過高,舊工具直接報 Symbol not found

Rocky 9 / 10 上的 glibc 介面往前跳代,舊 binary 在執行時會出現 undefined symbol 或直接 core dump。

實際踩坑後發現,在 Rocky 9 / 10 上:install.sh 會直接 crash、Java GUI 無法啟動,HTTPS 握手失敗(找不到正確 Cipher),甚至部分 binary 在執行時出現 Segmentation fault。

💡 小結:Rocky 8 是 iMC 7.3 的最後一塊「相容孤島」
在 2026 年的今天,Rocky 8 幾乎是唯一既能享受 RHEL 8 世代穩定生命週期,又能透過補齊舊庫撐起 iMC 舊時代 binary 的平臺。

這次鎖定的版本與實戰 Phase 結構

為了確保實戰可行性,本系列環境鎖定如下:

  • iMC: 7.3,目標 patch 到 E0710H10。
  • OS: Rocky Linux 8(x86_64)。
  • DB: MariaDB 11.4.10(LTS 長期支援線)。
  • Crypto: OpenSSL 3.4.1 + OpenSSH 10.2p1 (手動編譯以兼顧資安)。
  • Java: 系統 不需額外 dnf install (避免干擾 iMC 安裝包內建的專屬 JRE 環境)。

整個系列將拆成七個 Phase(包含輔助腳本 scan_env.shreset_imc.sh),本篇將專注於最源頭的地基打底:Phase 0 與 Phase 1

🏗️ Phase 0:硬體資源規劃與虛擬化環境準備

目標:根據 iMC 7.3 的「食量」,劃出足以支撐 2026 監控壓力的 VM 資源,並從 OS 安裝源頭避開所有致命雷區。

🛑 1. OS 系統安裝基準與軟體選擇 (致命避坑點)

習慣了 Linux 伺服器的 Minimal Install (最小化安裝)?在 iMC 面前這絕對是找死
請嚴格遵守 HPE 手冊的規範,作業系統選擇 Rocky Linux 8.x 後,安裝模式必須選擇 Server with GUI,並務必勾選以下 8 項附加軟體包。
這不是浪費資源,而是為了滿足老系統的苛刻依賴:

✅ 必勾選清單 (共 8 項):
  • Network Servers (網路伺服器)
  • Performance Tools (效能工具)
  • Remote Management for Linux (Linux 的遠端管理)
  • Development Tools (開發工具)
  • .NET Core Development (.NET 核心開發)
  • Graphical Administration Tools (圖形化管理工具)
  • RPM Development Tools (RPM 開發工具)
  • System Tools (系統工具)
  • 為何需要 GUI?:因為 iMC 的 install.sh 高度依賴 Java GUI 介面,缺少底層圖形庫會讓安裝畫面直接報錯彈出。
  • 為何需要開發包?:本系列後續必須手動編譯 OpenSSL 與 OpenSSH 以滿足現代資安稽核,沒有預先打好編譯地基,makegcc 會讓你除錯到崩潰。

2. 為什麼不能照「官方最低規格」來開?

官方最低規格通常只夠跑 Demo。實際生產環境會遇到 Java Heap Space 溢位、資料庫寫入瓶頸以及 Patch 安裝卡死等問題。特別是 E0710H10 這種大補丁,在解壓與編譯時非常吃資源。

3. 「sungshu 手札」實戰規格建議(中型環境)

項目 建議規格 補充說明
CPU 8 vCPU iMC 是多執行緒怪獸,Core 數比時脈還重要。
RAM 16GB ~ 24GB MariaDB 拿 2G、Java 堆拿 4~8G,剩下留給 OS+其他服務。
Disk 200GB+ SSD 資料庫 IO 很重,PLAT/NTA log 又多,一定要 SSD。
Network 10 Gbps / VMXNET3 Syslog / SNMP / NTA 流量多時,網卡類型與驅動都會有感。

4. 虛擬化環境的幾個避坑設定

  • CPU Mode: Proxmox 建議選 host;VMware 勾選硬體虛擬化。
  • Memory Reservation: 建議做 full reservation,避免 Hypervisor 丟去 swap。
  • Disk 格式: VMware 優先選 Thick Provision Eager Zeroed。

5. Phase 0 預檢腳本:先量量地基夠不夠厚

⚠️ 這一段如果做錯,後面 Phase 全部白做
# 硬體資源地基預檢 cat << 'EOF' > /root/phase0_check.sh #!/bin/bash # ========================================== # 🏗️ iMC 2026 Phase 0:硬體資源地基預檢 (V61.15 智慧分區版) # ========================================== G='\033[1;32m' # Green (OK) R='\033[1;31m' # Red (FAIL / Warning) C='\033[1;36m' # Cyan (數值 / 標記) W='\033[0m' # White / Reset P='\033[1;35m' # Purple (Banner) GLOBAL_WARN=0 echo -e "\n${C}=== 🏗️ 系統地基雷達掃描 (iMC 2026 Phase 0 預檢 V61.15) ===${W}" # ▶️ [1] CPU 運算資源 echo -e "\n▶️ ${C}[1] CPU 運算資源${W}" CPU_CORES=$(nproc) if [ "$CPU_CORES" -ge 8 ]; then echo -e " ${G}[PASS]${W} 核心數: ${C}${CPU_CORES}${W} 核 (符合 8 核以上實戰建議)" else echo -e " ${R}[WARN]${W} 核心數: ${C}${CPU_CORES}${W} 核 (建議提升至 8 核,避免 NTA 運算卡頓)" GLOBAL_WARN=$((GLOBAL_WARN+1)) fi # ▶️ [2] 記憶體佈署容量 echo -e "\n▶️ ${C}[2] 記憶體佈署容量${W}" # 取得實體記憶體 GB 數,允許 1GB 的誤差 (針對 VM 損耗) TOTAL_MEM_GB=$(free -g | awk '/^Mem:/{print $2}') if [ "$TOTAL_MEM_GB" -ge 15 ]; then echo -e " ${G}[PASS]${W} 總容量: ${C}${TOTAL_MEM_GB}${W} GB (符合 16GB 佈署水位)" else echo -e " ${R}[WARN]${W} 總容量: ${C}${TOTAL_MEM_GB}${W} GB (建議擴充至 16GB~24GB,否則 Java Heap 會炸)" GLOBAL_WARN=$((GLOBAL_WARN+1)) fi # ▶️ [3] 儲存空間與 I/O 預估 (智慧掃描 / 與 /opt) echo -e "\n▶️ ${C}[3] 儲存空間與 I/O 預估${W}" ROOT_FREE=$(df -BG / | awk 'NR==2 {gsub("G","",$4); print $4}') OPT_FREE=$(df -BG /opt 2>/dev/null | awk 'NR==2 {gsub("G","",$4); print $4}' || echo "0") # 判斷邏輯:如果 /opt 獨立且 > 150G,或者總和 > 200G 就給 PASS if [ "$OPT_FREE" -ge 150 ] || [ "$ROOT_FREE" -ge 150 ]; then echo -e " ${G}[PASS]${W} 空間足夠: 根目錄(${C}${ROOT_FREE}G${W}) / opt分區(${C}${OPT_FREE}G${W})" echo -e " ${C}👉 提醒:請確保 iMC 安裝於 /opt/iMC 以獲得最佳空間支撐${W}" else echo -e " ${R}[WARN]${W} 剩餘空間不足: 根目錄(${C}${ROOT_FREE}G${W}) / opt分區(${C}${OPT_FREE}G${W})" echo -e " (建議整體可用空間需達 200GB 以上)${W}" GLOBAL_WARN=$((GLOBAL_WARN+1)) fi # ▶️ [4] 虛擬化平台偵測 echo -e "\n▶️ ${C}[4] 虛擬化環境辨識${W}" VIRT_TYPE=$(systemd-detect-virt) echo -e " ${G}[PASS]${W} 偵測到環境: ${C}${VIRT_TYPE:-實體機}${W}" # ========================================== if [ "$GLOBAL_WARN" -eq 0 ]; then echo -e "\n${P}=================================================${W}" echo -e "${P}🎉 恭喜!硬體地基 100% 達標!請放心進行 Phase 1! 🎉${W}" echo -e "${P}=================================================${W}" echo -e "👉 ${C}下一步:執行 Phase 1 系統初始化與 OS 偽裝${W}\n" else echo -e "\n${R}⚠️ 偵測到 $GLOBAL_WARN 個建議優化項目。${W}" echo -e "雖然可以強行安裝,但生產環境建議先調整硬體規格。${W}\n" fi EOF chmod +x /root/phase0_check.sh /root/phase0_check.sh
💡 設計理念: 這支腳本不是為了「檢查」,而是為了避免你在 Phase 5 才爆炸。

🟢 Phase 1:Rocky Linux 8 基礎環境與 OS 偽裝

目標:統一主機名稱與時區,並讓 Rocky 8 看起來像「RHEL 8.4」,最後拔除會干擾安裝的防護機制。 ⚠️ 注意: 此操作僅影響版本識別,不會改變實際系統函式庫。 iMC 是否能運作,仍取決於底層相依套件。

1. 綁定本機 IP 與 iMC 主機名稱

# 請將 192.168.X.X 替換為實際 IP cat << 'EOF' > /etc/hosts 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain 192.168.X.X imcserver.hpe imcserver EOF

2. 主機名稱、語系、時區與 OS 欺騙

iMC 安裝程式在版本判斷上偏向檢查 major/minor release, 因此常見做法是將 Rocky Linux 偽裝為 RHEL 8.4。
實測在 Rocky Linux 8.10 上亦可正常安裝(iMC 7.3 E0710), 表示其相容性實際上取決於函式庫而非精確版本號。

# 主機名稱、語系 (防止終端機亂碼)、時區 hostnamectl set-hostname imcserver.hpe localectl set-locale LANG=en_US.UTF-8 source /etc/locale.conf timedatectl set-timezone Asia/Taipei # OS 欺騙:讓 iMC 安裝程式放行 cp /etc/redhat-release /etc/redhat-release.bak echo "Rocky Linux release 8.4 (Green Obsidian)" > /etc/redhat-release # [驗證] 主機名稱、語系、時區與 OS 版本 echo -e "\n=== 驗證:主機名稱、語系、時區與 OS 版本 ===" hostname cat /etc/locale.conf timedatectl | grep "Time zone" cat /etc/redhat-release

3. 關閉防火牆與 SELinux(後續 Phase 完成後,建議重新評估防護策略)

# 停用 firewalld 與設定 SELinux systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config # [驗證] 防火牆與 SELinux 狀態 echo -e "\n=== 驗證:防火牆與 SELinux ===" systemctl is-active firewalld || echo "Firewalld is inactive" getenforce grep "^SELINUX=" /etc/selinux/config

4. 建立 iMC 工作區與專用暫存目錄 (Java / DB / iMC)

為了保持系統架構乾淨,並避免預設 /tmp 被大量 IO 撐爆(特別是資料庫與 Java),本部署將暫存區統一規劃至 /opt 底下:

👉 核心理念:把「爆量 IO」從 /tmp 移走
# 1. 建立 iMC 安裝與暫存目錄 mkdir -p /root/hpe_imc_7.3 mkdir -p /opt/iMC_Install mkdir -p /opt/iMC_Temp/mysql_tmp mkdir -p /opt/iMC_Temp/java_tmp mkdir -p /opt/iMC_Temp/imc_tmp # 2. 設定暫存區權限(關鍵,避免 iMC / DB 寫入失敗) chmod -R 1777 /opt/iMC_Temp
  • mysql_tmp: 資料庫初始化與大型 SQL 解壓使用
  • java_tmp: iMC 安裝過程 Java GUI 與暫存使用
  • imc_tmp: iMC install / deploy 過程暫存

⚠️ 設計重點:避免使用 /tmp,因為 iMC 安裝與 DB 初始化期間會產生大量暫存檔,容易導致系統 tmp 被塞爆。

📌 完整部署流程總覽(強烈建議先理解)

Phase 0:硬體與 VM 規劃
Phase 1:OS 初始化與相容性處理(本篇)
Phase 2:系統依賴套件安裝(dnf)
Phase 3:OpenSSL / OpenSSH 資安升級
Phase 4:MariaDB 資料庫建置
Phase 5:iMC 主程式安裝
Phase 6:Patch / 模組部署與調校

👉 本篇只是「地基工程」 真正的地獄,從 Phase 2 才開始。 如果你連這篇都沒穩住, 後面只會 Debug 到懷疑人生。
📥 資源下載與參考來源
📚 參考來源 (References)
☕ 感謝您的閱讀!

寫技術文章不容易,若這篇教學對您有幫助:

  • 分享 給您的同事或社群
  • 留言 讓我知道這篇文有用
  • 回報 任何操作上的問題

留言