【学習メモ】SPARCマシンをFCのSANブート構成でインストールして学ぶ


# はじめに
SPARC S7-2 を触る機会があり、セットアップをしようとしましたが、IAサーバーと同じ準備で挑んだら大変なことになったので忘備録として残します。
# 環境
SPARC S7-2
FCSW
DELLEMC Compellent
# セットアップ
## 機器の準備
ディスプレイをつなぐD-sub(VGA)端子(システムコンソール)がありません。
代わりにシリアルポート(シリアルコンソール)を利用します。
シリアルポートはRS-232CではなくRJ-45なのでシリアルケーブルの変換が必要です。
SolarisのインストーラーイメージにGUIのようなものがなく、「Text Installer」しかないのを疑問に思っていましたが、シリアルコンソールしかなければテキストインストールしかできないのも納得です。
Text InstallerのDVDを作成します。
シリアルポートにつなげるPCを準備します。
光学ドライブ付きモデルでなければ、USB接続のDVDドライブを準備します。
## 用語の整理
先にコンソールに関する用語を整理しておきます。
[SPARC S7-2 サーバー設置ガイド(docs.oracle.com)](https://docs.oracle.com/cd/E76977_01/html/E76986/index.html)で入力窓がいくつか出てきますが、区別出来ないと混乱するので事前に整理しておきます。
作業当初はコンソール、iLOM、OBP(OpenBoot Prompt)、SP(Service Processor)が何を指すか理解していなかったので、ガイドのコマンドをどこで実行すればよいのか、自分がどこにいてどうすればそこへ移動できるのかわからなくなりました。
### 用語の区別
IAサーバーとSPARCサーバーの対比です。

||IAサーバー|SPARCサーバー|
|:--:|:--:|:--:|
|Firmware|BIOS|OpenBoot|
|リモートサーバー管理ツール|iDRAC(DellEMC), iLO(HP), IMM(Lenovo) |iLOM (ILOM SP, SP)|
|ホストコンソール|VGA端子でディスプレイを接続して見る。|ディスプレイ等から直接見れない。SPコンソール(iLOM)に接続して見る。|
|SPコンソール|-|シリアルポートに接続またはSSHで接続して見る。|
SPがサーバー管理用HWで、SPとSPを操作するソフトウェアをあわせた機能をiLOMと呼ぶようです。
(あくまで想像図)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148711/3c33ca36-5f5b-bbff-555e-18147840cc9e.png)

SER MGTポートを直接ホストコンソールへパススルーすることもできるようです。
参考資料
[Oracle ILOM について(docs.oracle.com)](https://docs.oracle.com/cd/E40703_01/html/E40339/z40005991391585.html)
### 接続先
SPプロセッサのプロンプト、iLOMのプロンプト、シリアルポートのプロンプトは同義です。
OBPはOSが起動していない状態のとき、iLOMからホストコンソールに接続するとプロンプトが表示されます。

|接続先|接続方法|プロンプト|
|:--:|:--|:--:|
|OBP (OpenBoot Prompt)|ホストコンソールに接続する。OpenBoot Firmwareがホストコンソールに表示させる。OS起動中のホストコンソールはOSのプロンプトになるため、OpenBoot Prompt(okプロンプト)を表示させるためにはOSをシャットダウン(```# init 0```)する必要がある。|```{0} ok ```|
|iLOM(SP)プロンプト|シリアルポートまたはSSHで接続する。|```-> ```|
|ホストコンソール|iLOM経由で接続する。iLOMに接続後、```-> start /SP/console ```または```-> start /HOST/console ```で接続できる。|OBPまたはOSに依る|
## iLOMの設定
SPにSSHで入れるよう、NET MGTポート(Ethernet)にIPを割振ります。
初期状態ではシリアルでしか接続できないので、
SER MGTポートへシリアルケーブルを接続し、操作します。
これはSPプロンプト(``` -> ```)で行います。

```
# 例:MacのTerminalから
$ screen /dev/tty.usbserial-XXXXXXXX
```
```
-> set /SP/network pendingipdiscovery=static
Set 'pendingipdiscovery' to 'static'
```
```
-> set /SP/network pendingipaddress=192.168.0.11
Set 'pendingipaddress' to '192.168.0.11'
```
```
-> set /SP/network pendingipnetmask=255.255.255.0
Set 'pendingipnetmask' to '255.255.255.0'
```
```
-> set /SP/network commitpending=true
Set 'commitpending' to 'true'
```
```
-> show /SP/network
 /SP/network
 Targets:
 interconnect
 ipv6
 test
 Properties:
 commitpending = (Cannot show property)
 dhcp_clientid = none
 dhcp_server_ip = none
 ipaddress = 192.168.0.11
 ipdiscovery = static
 ipgateway = 192.168.0.1
 ipnetmask = 255.255.255.0
 link_state = up
 macaddress = 01:23:45:67:89:AB
 managementport = MGMT
 outofbandmacaddress = 01:23:45:67:89:AB
 pendingipaddress = 192.168.0.11
 pendingipdiscovery = static
 pendingipgateway = 192.168.0.1
 pendingipnetmask = 255.255.255.0
 pendingmanagementport = MGMT
 pendingvlan_id = (none)
 sidebandmacaddress = 01:23:45:67:89:AB
 state = enabled
 vlan_id = (none)
 Commands:
 cd
 set
 show
```
これでNET MGTポートから、192.168.0.11でSSH接続できるようになりました。
Webブラウザでアクセスすることもできます。

```
$ ssh 192.168.0.11 -lroot
Password:
Oracle(R) Integrated Lights Out Manager
Version 4.0.4.3.a r129023
Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
Warning: HTTPS certificate is set to factory default.
Hostname: sparcs7-2
->
```
参考資料
[静的 IP アドレスを NET MGT ポートに割り当てる(docs.oracle.com)](https://docs.oracle.com/cd/E76977_01/html/E76986/z400004d1019728.html)
## 起動ドライブの設定
### okプロンプトに入ります。
```
start /HOST/console
Are you sure you want to start /HOST/console (y/n)? y
Serial console started. To stop, type #.
(enterを押す)
{0} ok
```
start /SP/consoleでも同じ画面が表示されますが、違いがわかりません。

```
-> start /SP/console
Are you sure you want to start /SP/console (y/n)? y
Console session already in use. [view mode]
```
と出ますので、初期状態では```/SP/console```も```/HOST/console```も同じようです。[view mode]は2つ目以降にコンソールにつないだため表示されています。
もしインストーラーが起動しているようでしたら、OSが起動しないように設定し、一度リセットします。

```
set /HOST/bootmode script="setenv auto-boot? false"
```
もしくは、webで接続後、Host Management -> Host Boot Mode -> Scriptに```setenv auto-boot? false```を貼り付け、stateをReset NVRAMにしてSaveをクリックでも同様のことができます。
再起動します。

```
-> stop /SYSTEM
-> start /SYSTEM
```
もしくはwebで接続後、Host Management -> Power Control -> Select Actionを```reset```にしてSaveをクリックでも同様のことができます。
## 起動
```boot cdrom```のようにブートするデバイスを指定しますが、cdromはエイリアスなので、エイリアスが正しく設定されているか確認します。

```
{0} ok devalias
fallback-miniroot /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/storage@1/disk@0
rcdrom /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/storage@1/disk@0
disk7 /pci@302/pci@2/pci@0/pci@14/LSI,sas@0/disk@p4
(中略)
net /pci@300/pci@1/pci@0/pci@1/network@0
net0 /pci@300/pci@1/pci@0/pci@1/network@0
{0} ok
```
CDROMがありません。
```boot cdrom```では起動できないためデバイスを探します。

```
{0} ok show-devs
/pci@302
/pci@300
/virtual-devices@100
/cpu@7f
(中略)
/pci@300/pci@1/pci@0/pci@2/usb@0
/pci@300/pci@1/pci@0/pci@2/usb@0/hub@2
/pci@300/pci@1/pci@0/pci@2/usb@0/storage@1
/pci@300/pci@1/pci@0/pci@2/usb@0/hub@4
/pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/cdrom@4
/pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/storage@1
/pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/cdrom@4/disk
/pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/storage@1/disk
/pci@300/pci@1/pci@0/pci@2/usb@0/storage@1/disk
(中略)
/packages/pci-prober
/packages/SUNW,builtin-drivers
{0} ok
```
USBの先にCDROMがいます。
エイリアスを設定します。

```
{ok} nvalias cdrom2 /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/cdrom@4/disk
```
```
{0} ok devalias
fallback-miniroot /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/storage@1/disk@0
rcdrom /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/storage@1/disk@0
cdrom2 /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/cdrom@4/disk
disk7 /pci@302/pci@2/pci@0/pci@14/LSI,sas@0/disk@p4
(後略)
```
cdrom2でエイリアスが作成されました。
今回はHBAからブートするSANブート構成になるので、
サーバー側でHBAを認識しているか確認します。

```
{0} ok show-devs
(略)
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0,1
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0,1/fp@0,0
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0,1/fp@0,0/disk
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0/fp@0,0
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0/fp@0,0/disk
/pci@300/pci@2
/pci@300/pci@1
/pci@300/pci@2/pci@0
/pci@300/pci@2/pci@0/pci@13
/pci@300/pci@2/pci@0/pci@5
/pci@300/pci@2/pci@0/pci@4
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0,1
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0,1/fp@0,0
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0,1/fp@0,0/disk
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0/fp@0,0
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0/fp@0,0/disk
(略)
```
```SUNW,qlc@0,1 ```の数字が見えます。
QLogic製のFibreカードが認識されているようです。
ブートします。

```
{0} ok boot cdrom2
Boot device: /pci@300/pci@1/pci@0/pci@2/usb@0/hub@2/cdrom@4/disk File and args:
(2, 3分くらい待つ)
SunOS Release 5.11 Version 11.4.0.15.0 64-bit
Copyright (c) 1983, 2018, Oracle and/or its affiliates. All rights reserved.
Remounting root read/write
Probing for device nodes ...
Preparing image for use
NOTICE: mount: not a UFS magic number (0x0)
NOTICE: mount: not a UFS magic number (0x0)
Done mounting image
USB keyboard
 1. Arabic 15. Korean
 2. Belgian 16. Latin-American
 3. Brazilian 17. Norwegian
 4. Canadian-Bilingual 18. Portuguese
 5. Canadian-French 19. Russian
 6. Danish 20. Spanish
 7. Dutch 21. Swedish
 8. Dvorak 22. Swiss-French
 9. Finnish 23. Swiss-German
10. French 24. Traditional-Chinese
11. German 25. TurkishQ
12. Italian 26. UK-English
13. Japanese-type6 27. US-English
14. Japanese
To select the keyboard layout, enter a number [default 27]:
```
CDROMから起動することができました。
インストールを進めていきます。

```
To select the keyboard layout, enter a number [default 27]:14
```
```
 1. Chinese - Simplified
 2. Chinese - Traditional
 3. English
 4. French
 5. German
 6. Italian
 7. Japanese
 8. Korean
 9. Portuguese - Brazil
10. Spanish
To select the language you wish to use, enter a number [default is 3]: 7
User selected: Japanese
Configuring devices.
```
5分くらい待ちます。

```
Oracle Solaris のインストールメニューへようこそ
 1 Oracle Solaris のインストール
 2 追加ドライバのインストール
 3 シェル
 4 端末のタイプ (現在 xterm)
 5 リブート
番号を入力してください[1]: 1
```
カラフルになります。

```
 Oracle Solaris へようこそ
 Oracle Solaris をお選びいただきありがとうございます。このインストーラを使
 用すると、Oracle Solaris オペレーティングシステム (OS) を SPARC または x86
 システムにインストールできます。
 インストールログは /system/volatile/install_log に作成されます。
 このインストーラのナビゲーション方法:
 - 画面間を移動したり、ほかの操作を実行したりするには、各画面の下部に表示さ
 れたファンクションキーを使用します。
 - 選択項目を変更したり、入力フィールド間を移動したりするには、上/下矢印キ
 ーを使用します。
 - キーボードにファンクションキーがない場合や、ファンクションキーが機能しな
 い場合は、ESC を押してください。画面下部の凡例がナビゲーションやその他の
 機能に対応する ESC キーの表示に変わります。
 F2_継続 F6_ヘルプ F9_終了
```
F2を押します。

```
 検出の選択
 ディスクの検出方法を選択
 ローカルディスク ローカルディスクの検出
 iSCSI iSCSI LUN の検出
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
ローカルディスクを選択してF2を押します。

```
 ディスク
 Oracle Solaris をどこにインストールしますか?
 最小サイズ: 4.1GB 推奨最小: 6.1GB
 タイプ ｻｲｽﾞ(GB) ﾌﾞｰﾄ デバイス
 ----------------------------------------------------------------------
 scsi 1117.8 SYS/HDD0 SEAGATE
 scsi 1117.8 SYS/HDD1 SEAGATE
 scsi 100.0 c0t6000D00000000A000000000000000000d0
 GPT ラベル付きディスクが見つかりませんでした。次が提案されます。
 パーティション ｻｲｽﾞ(GB) パーティション ｻｲｽﾞ(GB)
 ------------------------ ------------------------
 Solaris 100.0 Unused 0.0
 Unused 0.0 Unused 0.0
 Unused 0.0 Unused 0.0
 Unused 0.0 Unused 0.0
 1 個の追加パーティション
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
ストレージ側から100GBのディスクを見せているので、100GBのデバイスを選択してF2を押します。
今回はFibre先のストレージからSANブートする構成にしています。
たまたま11.4のインストールディスクでHBAドライバが入っていたため、
インストーラーがHBAを認識してインストールできましたが、
ドライバーが必要な場合、サポート契約を結んでダウンロードする必要があります。

```
 GPT パーティション: 100.0GB scsi
 Oracle Solaris をディスク全体またはディスク上の GPT パーティションにインス
 トールできます。
 ディスク上に次の GPT パーティションが見つかりました。
 パーティション ｻｲｽﾞ(GB) パーティション ｻｲｽﾞ(GB)
 ------------------------ ------------------------
 Solaris 100.0 Unused 0.0
 Unused 0.0 Unused 0.0
 Unused 0.0 Unused 0.0
 Unused 0.0 Unused 0.0
 1 個の追加パーティション
 ディスク全体を使用する
 ディスクの GPT パーティションを使用する
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
ディスク全体を使用するを選択してF2を押します。

```
 システム識別情報
 このコンピュータをネットワーク上で識別するための名前を入力します。
 文字、数字、ピリオド (.)、およびマイナス記号 (-) を含めることができます。
 名前の先頭と末尾の文字は英数字にし、数字以外の文字を少なくとも 1 つ含める
 必要があります。
 コンピュータ名:Solaris11.4
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
コンピューター名を入力してF2を押します。

```
 ネットワーク構成
 構成する有線ネットワーク接続を選択します
 net0 (i40e0)
 net1 (i40e1)
 net2 (i40e2)
 net3 (i40e3)
 net4 (i40e4)
 net5 (i40e5)
 net6 (i40e6)
 net7 (i40e7)
 sp-phys0 (usbecm0)
 ネットワークなし
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
オンボード+PCIxNICで8ポートあります。net0を選択してF2を押します。

```
 ネットワーク構成方法
 ネットワークインタフェースの構成方法を選択してください。
 DHCP DHCP によるインタフェース構成を許可
 静的 インタフェースを静的 IP アドレスで構成します
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
静的を選択してF2を押します。

```
 静的 IP アドレスを構成します: net0/v4
 このネットワーク接続の設定を入力します。すべてのエントリには、4 つの数値 (
 0 から 255 まで) をピリオドで区切って指定する必要があります。
 NIC: net0/v4 設定はこのインタフェースに適用されます
 IP ｱﾄﾞﾚｽ: 192.168.0.21 このネットワークで一意である必要があり
 ます
 ﾈｯﾄﾏｽｸ: 255.255.255.0 サブネットを使用するために異なるマスク
 が必要な場合があります
 ﾙｰﾀｰ: 192.168.0.1 このサブネット上のルーターの IP アドレ
 ス
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
IP、Netmask、GWを入力してF2を押します。

```
 DNS ネームサービス
 システムで DNS ネームサービスを使用するかどうかを示します。
 DNS の構成
 DNS を構成しない
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
DNSを構成しないを選択します。

```
 代替ネームサービス
 下のリストから、このシステムで使用するネームサービスを 1 つ選択します。
 必要なネームサービスがリストにない場合は、「なし」を選択してください。選
 択したネームサービスは DNS と組み合わせて使用できます。
 なし
 LDAP
 NIS
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
なしを選択してF2を押します。

```
 タイムゾーン: 地域
 タイムゾーンが含まれる地域を選択します。
 地域
 ----------------------------------------
 UTC/GMT
 Africa
 Americas
 Antarctica
 Asia
 Atlantic Ocean
 Australia
 Europe
 Indian Ocean
 Pacific Ocean
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
Asiaを選択してF2を押します。

```
 タイムゾーン: 場所
 タイムゾーンが含まれる場所を選択します。
 場所
 ----------------------------------------
 ^ Japan
 | Jordan
 | Kazakhstan
 | Korea (North)
 | Korea (South)
 | Kuwait
 | Kyrgyzstan
 | Laos
 | Lebanon
 | Macao
 | Malaysia
 | Mongolia
 | Myanmar (Burma)
 v Nepal
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
Japanを選択してF2を押します。

```
 タイムゾーン
 タイムゾーンを選択します。
 タイムゾーン
 ----------------------------------------
 Asia/Tokyo
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
Asia/Tokyoを選択してF2を押します。

```
 ロケール: 言語
 デフォルトの言語サポートおよびロケール固有のデータ形式を選択します。これら
 の選択によって言語サポート、デフォルトの日付と時間、およびその他のデータ形
 式が決まります。
 選択された言語によって使用できる地域が自動的に決まります。
 言語
 ----------------------------------------
 デフォルトの言語サポートがありません
 Chinese
 English
 French
 German
 Italian
 Japanese
 Korean
 Portuguese
 Spanish
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
Japaneseを選択してF2を押します。

```
 ロケール: 地域
 言語の地域を選択します
 地域
 ----------------------------------------
 Japan (ja_JP.PCK)
 Japan (ja_JP.UTF-8)
 Japan (ja_JP.UTF-8@cldr)
 Japan (ja_JP.eucJP)
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
Japan (ja-JP.UTF-8)を選択してF2を押します。

```
 日付と時間
 必要に応じて日付と時間を編集します。
 表示される時間はシステムクロック時間 (UTC) で、インストール時にそのように
 解釈されます。
 時間は 24 時間形式です。
 年: 2019 (YYYY)
 月: 10 (1-12)
 日: 30 (1-31)
 時: 00 (0-23)
 分: 00 (0-59)
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
UTCの時刻(JSTの9時間前)を入力してF2を押します。

```
 キーボード
 キーボードを選択します。
 ^ German
 | Italian
 | Japanese-type6
 | Japanese
 | Korean
 | Latin-American
 | Norwegian
 | Portuguese
 | Russian
 | Spanish
 | Swedish
 | Swiss-French
 | Swiss-German
 | Traditional-Chinese
 | TurkishQ
 | UK-English
 - US-English
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
Japaneseを選択してF2を押します。

```
 ユーザー
 システムの root パスワードとユーザー自身のユーザーアカウントを定義し
 ます。
 システムの root パスワード (必須)
 root パスワード: *********
 パスワードの確認: *********
 ユーザーアカウントの作成 (オプション)
 自分の名前:
 ユーザー名:
 ユーザーパスワード:
 パスワードの確認:
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
rootのパスワードを入力してF2を押します。
他のユーザーアカウントはここでは作成しません。

```
 サポート - 登録
 Provide your My Oracle Support credentials to be informed of securi
 ty issues, enable Oracle Auto Service Requests.
 詳細は、http://www.oracle.com/goto/solarisautoreg を参照してくださ
 い。
 電子メール: anonymous@oracle.com
 My Oracle Support の電子メールアドレス/ユーザー名を使
 用したほうが簡単です。
 My Oracle Support 経由でセキュリティーアップデートを受け取る場合
 は、パスワードを入力してください。
 My Oracle Support パスワード:
 Warning: No email address provided. いずれにしても保存する場合は F2 キーを再
 F2_継続 F3_戻る F6_ヘルプ F9_終了
```
空欄にしてF2を2回押します。

```
 インストールのサマリー
 インストールを行う前に以下を確認してください。変更する場合は前に戻ってくだ
 さい (F3)。
 - ソフトウェア: Oracle Solaris 11.4 SPARC
 |
 | ルートプールディスク: 100.0GB scsi
 |
 | コンピュータ名: Solaris11.4
 |
 | ネットワーク:
 | 静的構成: net0/v4
 | IP アドレス: 192.168.0.21/24
 | ルーター: 192.168.0.1
 | ネームサービス: なし
 |
 | タイムゾーン: Asia/Tokyo
 | ロケール:
 | デフォルトの言語: Japanese
 v 言語サポート: Japanese (Japan)
 F2_インストール F3_戻る F6_ヘルプ F9_終了
```
F2を押します。

```
 Oracle Solaris をインストールしています
 generate-sc-profile completed.
 [ (99%) ]
 F9_終了
```
とりあえず長いです。

```
 インストールが完了しました
 Oracle Solaris のインストールが正常に終了しました。
 新規にインストールされたソフトウェアを開始するには「リブート」を選択します
 。リブートする前に追加タスクを実行する場合は「終了」を選択します。
 インストールログは /system/volatile/install_log にあります。リブートしたあ
 とは、/var/log/install/install_log で参照できます。
 F4_ログの表示 F7_停止 F8_リブート F9_終了
```
F8を押してリブートします。

```
SunOS Release 5.11 Version 11.4.0.15.0 64-bit
Copyright (c) 1983, 2018, Oracle and/or its affiliates. All rights reserved.
Hostname: solaris11.4
solaris11.4 console login: root
Password:
Last login: Wed Oct 30 12:00:00 2019 on console
Oct 30 13:00:00 solaris11.4 login: ROOT LOGIN /dev/console
Oracle Corporation SunOS 5.11 11.4 Aug 2018
root@solaris11.4:~#
```
ログインできました。
デフォルトでブートするか確認します。

```
root@solaris11.4:~# init 0
root@solaris11.4:~# svc.startd: The system is coming down. Please wait.
(略)
{0} ok printenv boot-device
boot-device = /pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0/fp@0,0/disk@w5000d0000000abcd,1:a disk net
```
ながい名前になっています。
ちなみにローカルディスクからブートする設定はこのようになっていました。

```
{0} ok printenv boot-device
boot-device = rootdisk rootmirror
```
ブートします。

```
{0} ok boot
7115462, Oracle Storage Dual-Port 32 Gb Fibre Channel PCIe HBA 7335902
ISP Firmware version 8.05.00
+Boot device: /pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0/fp@0,0/disk@w5000d0000000abcd,1:a File and args:
SunOS Release 5.11 Version 11.4.0.15.0 64-bit
Copyright (c) 1983, 2018, Oracle and/or its affiliates. All rights reserved.
Hostname: solaris11.4
solaris11.4 console login: root
Password:
Last login: Wed Oct 30 12:00:00 2019 on console
Oct 29 14:00:00 solaris11.4 login: ROOT LOGIN /dev/console
Oracle Corporation SunOS 5.11 11.4 Aug 2018
root@solaris11.4:~#
```

### マルチパス
自動的にフェールオーバーするよう、マルチパスを有効化します。
ここではDellEMC製Comellentを使いましたので、サードパーティ製ストレージのマルチパスを有効化します。

#### 有効化
マルチパスを有効化します。

```
root@solaris11.4:~# stmsboot -e

WARNING: stmsboot operates on each supported multipath-capable controller
         detected in a host. In your system, these controllers are

/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0/fp@0,0
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0/fp@0,0
/pci@300/pci@2/pci@0/pci@13/SUNW,qlc@0,1/fp@0,0
/pci@302/pci@1/pci@0/pci@11/SUNW,qlc@0,1/fp@0,0
/pci@302/pci@2/pci@0/pci@14/LSI,sas@0/iport@8
/pci@302/pci@2/pci@0/pci@14/LSI,sas@0/iport@4

If you do NOT wish to operate on these controllers, please quit stmsboot
and re-invoke with -D { fp | lsc | mpt | mpt_sas | pmcs | lmrc} to specify which controllers you wish
to modify your multipathing configuration for.

Do you wish to continue? [y/n] (default: y) y
WARNING: This operation will require a reboot.
Do you want to continue ? [y/n] (default: y) y
The changes will come into effect after rebooting the system.
Reboot the system now ? [y/n] (default: y) y
```
ここではFC/ISCSI用のアダプタすべてでマルチパスを有効化したいので、デバイスは特定せず、yes yesで進んでいきます。

参考資料
[Oracle Solaris の管理: SAN 構成およびマルチパス化(docs.oracle.com)](https://docs.oracle.com/cd/E26924_01/html/E26295/gfpvv.html)

再起動したら、マルチパス化されているか確認します。


```
root@solaris11.4:~# zpool status
  pool: rpool
 state: ONLINE
  scan: none requested
config:

        NAME                                     STATE      READ WRITE CKSUM
        rpool                                    ONLINE        0     0     0
          c0t6000000000000000000000000000000003  ONLINE        0     0     0

errors: No known data errors
```
ルートプールが作成されています。

```
root@solaris11.4:~# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t500000000000000010 <SEAGATE-ST1200IN9SUN1.2T-ORA6-1.09TB>
          /scsi_vhci/disk@g5000000000000001
          /dev/chassis/SYS/HDD0/disk
       1. c0t500000000000000020 <SEAGATE-ST1200IN9SUN1.2T-ORA6-1.09TB>
          /scsi_vhci/disk@g5000000000000002
          /dev/chassis/SYS/HDD1/disk
       2. c1t0d0 <MICRON-eUSB DISK-1112-1.89GB>
          /pci@300/pci@1/pci@0/pci@2/usb@0/storage@1/disk@0,0
          /dev/chassis/SYS/MB/EUSB_DISK/disk
       3. c0t6000000000000000000000000000000003 <COMPELNT-Compellent Vol-0704-100.00GB>
          /scsi_vhci/disk@g60000000000000000000000000000003
```
Compellentで出ているものと先ほどのルートプールが一致しています。

```
root@solaris11.4:~# mpathadm list lu
        /dev/rdsk/c0t6000000000000000000000000000012345
                Total Path Count: 4
                Operational Path Count: 4
(略)
```
Total Path Countが4になっています。成功しているようです。

マルチパスが無効化されていないことを確認します。

```
root@solaris11.4:~# egrep "^mpxio-disable=" /etc/driver/drv/*.conf
/etc/driver/drv/fp.conf:mpxio-disable="no";
/etc/driver/drv/lmrc.conf:mpxio-disable="no";
/etc/driver/drv/lsc.conf:mpxio-disable="no";
/etc/driver/drv/mpt.conf:mpxio-disable="no";
/etc/driver/drv/mpt_sas.conf:mpxio-disable="no";
/etc/driver/drv/pmcs.conf:mpxio-disable="no";
```
無効化されていない＝有効なようです。

#### サードパーティ製の追加
下記参考資料に従います。

参考資料
[サードパーティー製ストレージデバイスの構成(docs.oracle.com)](https://docs.oracle.com/cd/E26924_01/html/E26295/gfjtx.html#gfjtk)

ベンダーID、製品IDを調べて、```/etc/driver/drv/scsi_vhci.conf ```に追加して再構成すればよいようです。

```
root@solaris11.4:~# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t500000000000000010 <SEAGATE-ST1200IN9SUN1.2T-ORA6-1.09TB>
          /scsi_vhci/disk@g5000000000000001
          /dev/chassis/SYS/HDD0/disk
       1. c0t500000000000000020 <SEAGATE-ST1200IN9SUN1.2T-ORA6-1.09TB>
          /scsi_vhci/disk@g5000000000000002
          /dev/chassis/SYS/HDD1/disk
       2. c1t0d0 <MICRON-eUSB DISK-1112-1.89GB>
          /pci@300/pci@1/pci@0/pci@2/usb@0/storage@1/disk@0,0
          /dev/chassis/SYS/MB/EUSB_DISK/disk
       3. c0t6000000000000000000000000000000003 <COMPELNT-Compellent Vol-0704-100.00GB>
          /scsi_vhci/disk@g60000000000000000000000000000003
Specify disk (enter its number): 3
selecting c0t6000000000000000000000000000000003 <COMPELNT-Compellent Vol-0704-100.00GB>
[disk formatted]
/dev/dsk/c0t6000000000000000000000000000000003s0 is part of active ZFS pool rpool. Please see zpool(8).


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        inquiry    - show disk ID
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit

format> inquiry
Vendor: COMPELNT
Product: Compellent Vol  
Revision: 0704
Serial: SYS:XXXXXX|V
```

> ベンダー ID および製品 ID は、デバイスが SCSI INQUIRY データで返すベンダーおよび製品の識別文字列です。ベンダー ID は長さが 8 文字である必要があります。末尾の文字がスペースであっても 8 つすべての文字を指定する必要があります。製品 ID は 16 文字までの長さが可能です。

とありますので、ベンダーIDは```COMPELNT```の8文字で補完なし、製品IDは```Compellent Vol ```を入力します。inquiryコマンドで得た製品IDの```Vol```のあとにスペース?らしき文字が2文字入っているので加えておきます。

```
root@solaris11.4:~# vim /etc/driver/drv/scsi_vhci.conf 
scsi-vhci-failover-override =
        "COMPELNTCompellent Vol  ", "f_sym";
```
```
root@solaris11.4:~# stmsboot -u
```

これでサードパーティ製、今回はDellEMC製Compellentのフェールオーバーの設定が完了しました。



DellEMC製compellent特有の設定ですが、Solarisに設定した方がよい内容があったので、適用しておきます。

```
A.2.5 Oracle Solaris
A.2.5.1 QLogic settings set in /kernel/drv/qlc.conf
login-retry-count=60;
port-down-retry-count=60;
link-down-timeout=30;
connection_options=1;
A.2.5.2 Emulex settings in /kernel/drv/emlxs.conf
topology=2;
A.2.5.3 Solaris 10 & 11 Timeouts (reboot required)
In /kernel/drv/fcp.conf
fcp_offline_delay=60;
In /kernel/drv/fp.conf
fp_offline_ticker=90;
```

参考資料
[SCシリーズ、PSシリーズ、FSシリーズのDell EMCストレージ互換性マトリックス(www.dell.com)](https://www.dell.com/support/article/jp/ja/jpbsd1/sln310173/dell-emc-storage-compatibility-matrix-for-sc-series-ps-series-and-fs-series?lang=en)

次はカーネルゾーンを作成して仮想環境を作成したいと思います。(Non-globalゾーンではない)

### おわりに
draw.ioを使って初めて図を入れてみました。