2015年10月14日 星期三

設定 RocketRAID 管理程式的「htpsvr 服務」為「開機自動啟動」

因為沒有時間研究驅動程式的安裝,以至於前的 Fedora 系統一直停留在 Fedora 18,直到前一陣子才升級到 Fedora 22。過程請參考這些發文:
但是,有件事一直耿耿於懷,就是 自動偵測 RAID 狀況的服務。使用 RAID 系統,就是為了保護儲存在硬碟的資料,當然最好是開機後會自動執行「RAID 管理服務」。
  前文安裝「RocketRAID 命令列管理程式」後,每次要開啟 hptraidconf 這個工具程式以管理「RocketRAID 硬碟陣列」時,都會出現『hptsvr 未載入』的錯誤。之前在 Fedora 18 時似乎也有這個問題,要再『手動』載入 hptsvr 這個背景服務。
  要設定 hptsvr 服務為『開機自動啟動』服務又都不能成功,也不能記錄「RocketRAID 硬碟陣列」的使用狀況。萬一有問題,連個紀錄也查不到。
  在 Fedora 18 時,剛好在『服務』程式的管理,由 chkconfig 過渡到 systemctl 的期間。不幸地,hptsvr 已不能用 chkconfig 設定為「開機自動啟動」,而 systemctl 因為 HighPoint 沒有提供適當的腳本,也不能用以設定。在這段時間,每次開機時 hptsvr 並不會自動載入,當想到已經很久沒有執行『驗證 RAID 硬碟陣列』時,才載入 hptsvr ,接著執行 hptraidcon 這個管理程式。
  終於,在『天時、地利、人和』的情形下,把這個問題給解決了。緊接著,就將步驟整理如下:

一、編輯 hptsvr 的腳本檔

以前的 Fedora 系統是用 chkconfig 要啟動服務,現在的系統則是用 systemctl 來管理服務。所以,要先編輯一個供 systemctl 辨認 hptsvr 的腳本。
  先切換為 root 身分,並在目錄  /usr/lib/systemd/system/ 下開啟一個新檔案(將之命名為 hptsvr.service)。以「MATE 桌面」環境為例,在「終端機」中先切換為 root 身分,再以「文字編輯器」pluma 編輯新檔,命令為
[root@Core-i7 ~]# pluma /usr/lib/systemd/system/hptsvr.service
管理 hptsvr 的腳本內容如下:
[Unit]
Description=HighPoint RocketRAID Management Service
After=smartd.service

[Service]
User=root
Type=forking
ExecStart=/usr/bin/hptsvr

[Install]
WantedBy=multi-user.target
編寫完成後,將檔案儲存再進行下一步驟。

二、設定 hptsvr 服務

在開始進行這個步驟前,要先確定「RocketRAID 命令列管理程式」已經安裝妥當。腳本寫好後,可以開始用 systemctl 管理 hptsvr 服務。

1. 重新讀取「服務」的腳本

讓 systemctl 辨認 hptsvr 的腳本編寫好後,systemctl 並未立即知道,要重新讀取一次所有「服務」的腳本。在這之後,systemctl 就可以正常「管理」hptsvr 服務了。
[root@Core-i7 ~]# systemctl daemon-reload
在這之後,systemctl 就可以正常「管理」hptsvr 服務了。

2. 查看 hptsvr 服務的狀態

在設定前,先查看一下 hptsvr 服務的狀態,方便前後比較
[root@Core-i7 ~]# systemctl status hptsvr.service
● hptsvr.service - HighPoint RocketRAID Management Service
    Loaded:loaded (/usr/lib/systemd/system/hptsvr.service; disabled; vendor preset: disabled)
Active:inactive (dead)

3. 設定為「開機自動啟動」hptsvr 服務

命令為:
[root@Core-i7 ~]# systemctl enable hptsvr.service
Created symlink from /etc/systemd/system/multi-user.target.wants/hptsvr.service to /usr/lib/systemd/system/hptsvr.service.

4. 開啟 hptsvr 服務

 立即開啟 hptsvr 服務,
[root@Core-i7 ~]# systemctl start hptsvr.service
這時,可以執行 hptraidconf 管理工具程式了。

5. 再查看 hptsvr 服務的狀態

再查看一次 hptsvr 服務的狀態,與設定前的狀態比較差異。
[root@Core-i7 ~]# systemctl status hptsvr.service
 hptsvr.service - HighPoint RocketRAID Management Service
Loaded:loaded (/usr/lib/systemd/system/hptsvr.service; enabled; vendor preset: disabled)
Active:active (running) since 三 2015-10-14 20:30:52 CST; 5s ago
Process:5023 ExecStart=/usr/bin/hptsvr (code=exited, status=0/SUCCESS)
  Main PID:5028 (hptsvr)
CGroup:/system.slice/hptsvr.service
└─5028 /usr/bin/hptsvr

10月 14 20:30:52 Phenom systemd[1]: Starting HighPoint RocketRAID Management Service...
10月 14 20:30:52 Phenom systemd[1]: Started HighPoint RocketRAID Management Service.
由回應訊息可以看到:已設定為「開機自動啟動」,目前「啟動中」及最後的啟動時間。

已測試版本:

  • Fedora: 20, 22, 23
  • HighPoint RocketRAID 1740, 2220, 2320

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)