# 安裝 RedHat Linux for Power

機型：IBM Power System S822LC (8001-22C) for big data  
作業系統：RedHat 7.3 for POWER8 Little Endian (NOTE: 此機型只能適用 Little Endian 安裝版本，其他機型適用版本可見附檔區的參考文件:Quick Start Guide for installing Linux on IBM Power System LCservers)

##### 使用心得：

1. 不知為何 Linux 辨識到磁碟代號順序與實機上的位置完全無法做對應。（請見下文的位置對照表）
2. 沒有指令可以識別指定磁碟的實際位置。  
    NOTE: 即使可用 storcli 指令辨識磁碟位置，但它的順序與 Linux 的磁碟順序不一致
3. 雖然內建有 Megaraid 介面卡，卻無法成功建立硬體式的 Raid。  
    NOTE: 使用 storcli 指令新增 raid 失敗，錯誤訊息: Resource already in use

#### 安裝 RedHat Linux

> NOTE: 官方資料顯示支援 RedHat 7.2，但實際上無法安裝此版本，狀況是無法執行光碟開機。

##### 方法：以光碟安裝

連接外接式 USB 光碟機，並置入 RedHat 安裝光碟

主機開啟電源 &gt; Petitboot

畫面的選單上方應該會出現 RedHat 安裝光碟的選項

*\* Install Red Hat Enterprise Linux 7.3 (64-bit kernel)*

移動方向建至該選項，按 Enter 即可進入安裝程序

> TIP: 如過程失敗，參考附檔區文件: Quick Start Guide for installing Linux on IBM Power System LCservers

#### 軟體 Raid 設定

這款機型沒有內建 Raid Adapter，只能使用 RedHat 的 Software Raird。不過在使用與設定上與 x86 機器有許多不同，其中有幾項重點需要注意：

- RedHat for Power 系統開機流程的順序是: BIOS &gt; sda1: PPC PReP Boot &gt; sda2: /boot (GRUB2) &gt; sda3: /
- PPC PReP Boot 這磁區不支援安裝在 Software Raid (注意: 這個爾後可能會造成系統無法正常開機，詳細資訊參閱: 開機磁區複寫至多個磁碟
- /boot 與 / 可安裝在 Software Raid
- 磁區新增如下: 合計 5 顆磁碟 sda, sdb, sdc, sdd, sde 
    1. sda1 = PPC PReP Boot (Power 開機)
    2. sda2 = raid1 /boot (GRUB2 開機)
    3. sda3 = raid6 /
    4. sdb1 = PPC PReP Boot (Power 開機)
    5. sdb2 = raid1 /boot (GRUB2 開機)
    6. sdb3 = raid6 /
    7. sdc1 = raid6 /
    8. sdd1 = raid6 /
    9. sde1 = raid6 /  
        更多詳細資訊可見附檔區
- raid6 的 / 都是 LVM 格式，預設的 VG 名稱是 rhel，LV 名稱是 rhel-&lt;磁區名稱&gt;，例如 rhel-swap
- 設定 raid level 6 時，size policy 建議使用 As large as possible。

> TIP:
> 
> size policy:  
> 預設 Automatic - 這 raid 的 size 是以實際已使用資料量大小為基準，優點是 raid 初始化時比較快速，因此安裝時間也會明顯變短；缺點是未來管理磁碟用量時不是這麼直覺，透過指令檢查 PV 或 VG 的剩餘空間永遠都是 0 - 1 %。  
> As large as possible - 這 raid 的 size 是以包含的所有實體硬碟可用空間做計算，優點是較容易管理整體磁碟空間，透過一般指令就可以控管磁碟用量；缺點是 raid 一開始做初始化，以及爾後需要做 Raid Rebuild 所花費的時間比較久。
> 
> 新增磁區時：  
> 技巧一 - 先移除全部舊磁區，再依序新增 prepboot(sda), prepboot(sdb), /boot, SWAP, /。  
> 技巧二 - 如果多顆磁碟裡存在舊的 PPC PReP Boot 磁區，透過安裝畫面的工具(Anaconda)是無法有效移除，建議方法是先以單顆磁碟做簡單系統安裝，完成後進入系統再以 fdisk 指令一一將不用的開機磁區移除。  
> 技巧三 - 第二顆磁碟上的 prepboot 磁區可能不會正常顯示在畫面上，要確認所有磁區是否新增正確，可以檢視下一頁的 Summary of Changes。  
> 技巧三 - 如果出現訊息: boot loader stage2 device boot is on a multi-disk array but boot loader stage1 sevice sda1 is not ....，可以先忽略它，按下 Done 繼續完成安裝的步驟。  
> 一旦系統完成安裝後，再繼續文章 開機磁區複寫至多個磁碟 的步驟。

#### 安裝後的步驟

關閉 SELinux

```shell
sed -i 's/SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
```

關閉防火牆

```shell
systemctl stop firewalld.service
systemctl disable firewalld.service
```

##### 硬體監控管理

設定 IPMI (BMC) 網路

網路線連接主機後方的 IPMI Network Port  
主機開啟電源 &gt; Petitboot &gt; Exit to Shell

```
ipmitool lan print 1
ipmitool lan set 1 ipsrc static
ipmitool lan set 1 ipaddr <ipmi-ip-address>
ipmitool lan set 1 netmask <ipmi-ip-netmask>
ipmitool lan set 1 defgw ipaddr <ipmi-ip-gateway>
ipmitool lan print 1 
```

BMC 網頁存取：

> http://ipmi-ip-address/ , 預設登入: ADMIN / ADMIN  
> NOTE: 官方手冊提到的預設帳號與密碼是錯誤的。
> 
> Java 版本是 1.6.0.45 32-bit, Windows 7 64-bit，沒試過其他 Java 版本。

IPMITools 存取：安裝 ipmitool 在 Desktop PC

Ubuntu

```
sudo apt-get update
sudo apt-get install ipmitool
```

以 source 編譯安裝

```shell
wget https://sourceforge.net/projects/ipmitool/files/latest/download
bzip2 -d ipmitool-1.8.15.tar.bz2
tar xvf ipmitool-1.8.15.tar
cd ipmitool-1.8.15
./configure 
```

測試連線

```
顯示所有裝置的 FRU 資訊
ipmitool -I lanplus -H ipmi-ip-address -U ADMIN -P ADMIN fru
```

##### 磁碟名稱與實體位置對應

<table border="1" id="bkmrk-sdb-empty-nvme-empty" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 25%;">sdb</td><td style="width: 25%;">EMPTY</td><td style="width: 25%;">NVMe</td><td style="width: 25%;">EMPTY</td></tr><tr><td style="width: 25%;">sde</td><td style="width: 25%;">sdc</td><td style="width: 25%;">EMPTY</td><td style="width: 25%;">EMPTY</td></tr><tr><td style="width: 25%;">sda</td><td style="width: 25%;">sdd</td><td style="width: 25%;">EMPTY</td><td style="width: 25%;">NVMe</td></tr></tbody></table>