4.2 ブートディスクへのパスを冗長化
4.2.2 マルチパスドライバの設定
4.2.2.2 ETERNUSマルチパスドライバの設定
ETERNUSマルチパスドライバを使用し、ブートデバイスへのパスを冗長化する手順を示します。
システムボリュームのファイルシステムにより手順が異なります。
4.2.2.2.1 Solaris 10 UFS ファイルシステムの場合
ここでは、Solaris 10 UFSファイルシステムの場合の手順を示します。
1. ストレージシステムを指定してブートし、ETERNUS マルチパスドライバのインストールを行います。
61
シングルシステム(非クラスタシステム)の場合
ストレージシステム上のブートディスクからホストを起動し、「ソフトウェア説明書 FUJITSU Storage ETERNUS
Multipath Driver 3.1」を参照してETERNUS マルチパスドライバのインストールを行ってください。また、インス
トール完了後の以下の問い合わせに対して"y"を入力してください。自動的にgrmpdautoconf コマンドが実行され、
マルチパスを構築します。
Do you want to make a multipath configuration now ?
すでにETERNUSマルチパスドライバのパッケージがインストールされている場合は、grmpdautoconfを実行して、
マルチパスを構築します。
# /usr/sbin/grmpdautoconf <RETURN>
クラスタシステムの場合
ストレージシステム上のブートディスクからホストを起動し、「ソフトウェア説明書 FUJITSU Storage ETERNUS
Multipath Driver 3.1」を参照してETERNUS マルチパスドライバのインストールを行ってください。また、インス
トール完了後の以下の問い合わせに対して"n"を入力してください。
Do you want to make a multipath configuration now ?
(1) mplbconfigコマンドを実行します。
# /usr/sbin/mplbconfig -o /tmp/mplb-file1 <RETURN>
*** Phase 1: checking /dev/rdsk ***
*** Phase 2: checking multi path ***
*** Phase 3: analyzing path ***
=== Reconfigure plan ===
Multi path : 0 Create new multi path : 11
Add path for multi path : 0 (instance) : 0 (add path) Delete path from multi path : 0 (instance) : 0 (delete path)
(2) ブートディスク以外の行を削除します。viエディタ等で /tmp/mplb-file1を編集し、ブートディスクとして使 用するパス以外を削除します。
このとき、マルチパスのインスタンス番号は、クラスタを構成する各ノード間で重複しない番号にする必要 があります。インスタンス番号(mplbXのX)は、0~2047の範囲で他のノードと重複しない番号に変更してく ださい。
*** mplb config file ***
Path : Action : Element path : LUN : Storage
mplb0 : new : c1t500000E0D00AD706d0s2 c2t500000E0D00AD787d0s2 : 0 : E3000- 000AD7 (3) 編集したファイルを反映させ、システムボリュームをマルチパス化します。
# /usr/sbin/mplbconfig -f /tmp/mplb-file1 <RETURN>
*** Phase 1: checking /dev/rdsk ***
*** Phase 2: checking multi path ***
*** Phase 3: analyzing path ***
*** Phase 3.1: updata plan ***
mplb0 : new : c1t500000E0D00AD706d0s2 c2t500000E0D00AD787d0s2 : 0 : E3000- 000AD7
=== Reconfigure plan ===
Multi path : 0 Create new multi path : 1
Add path for multi path : 0 (instance) : 0 (add path) Delete path from multi path : 0 (instance) : 0 (delete path) Do you want to execute this plan (y/n)?
y <RETURN>
*** Phase 4: reconfigure ***
*** Phase 5: result is SUCCESS ***
全てのノードで(1)~(3)を実行します。
62 以降の手順は全ノードで行います。
ただし、mplbインスタンス番号はそれぞれのノード毎に指定したインスタンス番号を使用してください。
2. マルチパスが構築されていることを確認します。
1つのパスでステータスが"offline fail unblock "no such device or address"と出力されます。また/var/adm/messages に以下のメッセージが出力されますが、無視して次の手順に進んでください。
# /usr/opt/FJSViomp/bin/iompadm info <RETURN>
IOMP: /dev/FJSVmplb/fiomp/adm0 Element:
/dev/rdsk/c1t500000E0D00AD706d0s2 offline fail unblock "no such device or address [E3000- 000AD7-CM10-CA10-PORT00] (ssd3)"
/dev/rdsk/c2t500000E0D00AD787d0s2 online active block "good status [E3000- 000AD7-CM11-CA11-PORT03] (ssd5)"
Node:
/dev/FJSVmplb/rdsk/mplb0s0 /dev/FJSVmplb/rdsk/mplb0s1 /dev/FJSVmplb/rdsk/mplb0s2 /dev/FJSVmplb/rdsk/mplb0s3 /dev/FJSVmplb/rdsk/mplb0s4 /dev/FJSVmplb/rdsk/mplb0s5 /dev/FJSVmplb/rdsk/mplb0s6 /dev/FJSVmplb/rdsk/mplb0s7 Function:
MPmode=true AutoPath=true Block=true NeedSync=false
IOMP: /dev/FJSVmplb/fiomp/adm1 Element:
/dev/rdsk/c1t500000E0D00AD706d1s2 online active block "good status [E3000- 000AD7-CM10-CA10-PORT00] (ssd2)"
/dev/rdsk/c2t500000E0D00AD787d1s2 online standby block "good status [E3000- 000AD7-CM11-CA11-PORT03] (ssd4)"
Node:
/dev/FJSVmplb/rdsk/mplb1s0 /dev/FJSVmplb/rdsk/mplb1s1 /dev/FJSVmplb/rdsk/mplb1s2 /dev/FJSVmplb/rdsk/mplb1s3 /dev/FJSVmplb/rdsk/mplb1s4 /dev/FJSVmplb/rdsk/mplb1s5 /dev/FJSVmplb/rdsk/mplb1s6 /dev/FJSVmplb/rdsk/mplb1s7 Function:
MPmode=true AutoPath=true Block=true NeedSync=false
# [メッセージ]
mplb: [ID 961213 kern.notice] NOTICE: mplb0: I/O Lun degraded.
/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,0:c,raw remaining online path number of this lun =1
mplb: [ID 827990 kern.warning] WARNING:
/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,0:c,raw this path was unrecognizable. -> (E3000- 000AD7-10-10-00)
3. デバイスパス名を調べます。
63
ブートデバイスのデバイスパス名を調べます。1.のgrmpdautoconfコマンドまたはmplbconfigコマンドにおいて、
マルチパス管理用特殊ファイルと、選択したアクセス用特殊ファイルの組み合わせを表示します。ls コマンドを 使用し、この出力からブートディスクと、各構成パスの物理デバイスパス名を確認します。確認した物理デバイ スパス名は、後述の6. と7.の設定で使用します。
# ls -l <ブートディスクのスライス0 > <RETURN>
# ls -l <各構成パスのスライス0 > <RETURN>
grmpdautoconf またはmplbconfigの出力内容が以下の場合を例にします。
*** Phase 1: checking /dev/rdsk ***
*** Phase 2: checking multi path ***
*** Phase 3: analyzing path ***
Path : Action : Element path : LUN : Storage
mplb0 : new : c1t500000E0D00AD706d0s2 c2t500000E0D00AD787d0s2 : 0 : E3000- 000AD7 mplb1 : new : c1t500000E0D00AD706d1s2 c2t500000E0D00AD787d1s2 : 1 : E3000- 000AD7 この場合、ブートディスクと、それを構成する各パスは以下になります。
ブートディスクのスライス0 /dev/FJSVmplb/rdsk/mplb0s0 構成パスのスライス0 /dev/rdsk/c1t500000E0D00AD706d0s0
/dev/rdsk/c2t500000E0D00AD787d0s0 ls コマンドを使用し、デバイスパス名を調べます。
# ls -l /dev/FJSVmplb/rdsk/mplb0s0 <RETURN>
lrwxrwxrwx 1 root root 36 Mar 13 12:57 /dev/FJSVmplb/rdsk/mplb0s0 -> ../../../devices/pseudo/mplb@0:a,raw
# ls -l /dev/dsk/c1t500000E0D00AD706d0s0 <RETURN>
lrwxrwxrwx 1 root root 82 Mar 13 12:03 /dev/dsk/c1t500000E0D00AD706d0s0
-> ../../devices/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,0:a
# ls -l /dev/dsk/c2t500000E0D00AD787d0s0 <RETURN>
lrwxrwxrwx 1 root root 84 Mar 13 12:03 /dev/dsk/c2t500000E0D00AD787d0s0
-> ../../devices/pci@1,700000/pci@0/pci@0/QLGC,qlc@0,1/fp@0,0/ssd@w500000e0d00ad787,0:a
4. confファイルの設定を行います。
排他オープン解除のため、/kernel/drv/mplb.confを編集します。
「# Global user option define」の下に"mplb-open-lock=0;"を追加します。
# vi /kernel/drv/mplb.conf <RETURN>
#
# Copyright (c) 2013 by Fujitsu, Ltd.
# All rights reserved.
#
#ident "@(#)mplb.conf 1.0 2013/12/24"
#
# Global define ddi-forceattach=1;
ddi-no-autodetach=1;
# Global user option define mplb-open-lock=0;
# Meta control device
name="mplb" parent="pseudo" instance=4095;
64 name="mplb" parent="pseudo" instance=0
iomp-name="mplb0" iomp-real-name="/pseudo/mplb@0:adm"
iomp-path-0="/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,0:c,raw"
iomp-path-1="/pci@1,700000/pci@0/pci@0/QLGC,qlc@0,1/fp@0,0/ssd@w500000e0d00ad787,0:c,raw"
iomp-user-path="/dev/FJSVmplb/rdsk/mplb0s2"
iomp-logical-path-0="/dev/rdsk/c1t500000E0D00AD706d0s2"
iomp-logical-path-1="/dev/rdsk/c2t500000E0D00AD787d0s2" iomp-path-num=2 mplb-major-minor-number-0=118,26 mplb-major-minor-number-1=118,42 mplb-disk-controller-name-0="E3000- 000AD7-10-10-00"
mplb-disk-controller-name-1="E3000- 000AD7-11-11-03"
mplb-uniq-id="600000E00D00000000000AD7008D0000";
name="mplb" parent="pseudo" instance=1
iomp-name="mplb1" iomp-real-name="/pseudo/mplb@1:adm"
iomp-path-0="/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,1:c,raw"
iomp-path-1="/pci@1,700000/pci@0/pci@0/QLGC,qlc@0,1/fp@0,0/ssd@w500000e0d00ad787,1:c,raw"
iomp-user-path="/dev/FJSVmplb/rdsk/mplb1s2"
iomp-logical-path-0="/dev/rdsk/c1t500000E0D00AD706d1s2"
iomp-logical-path-1="/dev/rdsk/c2t500000E0D00AD787d1s2" iomp-path-num=2 mplb-major-minor-number-0=118,18 mplb-major-minor-number-1=118,34 mplb-disk-controller-name-0="E3000- 000AD7-10-10-00"
mplb-disk-controller-name-1="E3000- 000AD7-11-11-03"
mplb-uniq-id="600000E00D00000000000AD7009E0000";
5. サーバを再起動します。
再起動時に以下のメッセージが出力される場合がありますが、無視して次の手順に進んでください。
# /usr/sbin/shutdown -i6 -g0 -y <RETURN>
[メッセージ]
NOTICE: mplb0: I/O Lun degraded.
/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,0:c,raw remaining online path number of this lun =1
WARNING: /pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/ssd@w500000e0d00ad706,0:c,raw this path was unrecognizable. -> (E3000- 000AD7-10-10-00)
6. ETERNUSマルチパスの設定を行います。
(1) システム上の設定をマルチパス化に沿うように修正します。
a. ルートデバイスの設定(/etc/system)
/etc/system ファイルを編集し、rootdevを最終行に設定します。
rootdev の設定では、3.で調べたブートディスクの物理デバイス名のうち、先頭の"../../devices" と末尾の
",raw" を削除した残りの部分を設定します。
例:mplb0をシステムボリュームにした場合
rootdev: /pseudo/mplb@0:a
b. マウント情報の設定(/etc/vfstab)
/etc/vfstabファイルを編集し、各エントリについてマルチパス化後のパス名に書き換えます。
/dev/FJSVmplb/dsk/mplb0s0 /dev/FJSVmplb/rdsk/mplb0s0 / ufs 1 no - /dev/FJSVmplb/dsk/mplb0s1 - - swap - no -
(2) ダンプデバイスを確認します。
# dumpadm <RETURN>
Dump content: kernel pages
Dump device: /dev/dsk/c1t500000E0D00AD706d0s1 (swap)
65 Savecore directory: /var/crash/m3000
Savecore enabled: yes Save compressed: on
(3) ダンプデバイスを設定します。
# dumpadm -d /dev/FJSVmplb/dsk/mplb0s1 <RETURN>
(4) ダンプデバイスの確認を行います。
ダンプデバイスがETERNUSマルチパスのパスになっていることを確認してください。
# dumpadm <RETURN>
7. ブートデバイスの設定を行います。
3. で調べた各構成パスの物理デバイス名のうち、先頭の"../../devices" を削除した残りの部分を抜き出し、かつ"ssd"
を"disk"に置き換えたものを設定します。
# eeprom boot-device="/pci@1,700000/pci@0/pci@0/QLGC,qlc@0/fp@0,0/disk@w500000e0d00ad706,0:a /pci@1,700000/pci@0/pci@0/QLGC,qlc@0,1/fp@0,0/disk@w500000e0d00ad787,0:a" <RETURN>
8. /etc/systemファイルを編集し、forceloadの設定を行います。
各ドライバに対するforceloadに関する設定が/etc/systemファイルに存在する場合には、追加設定を行う必要はあ りません。
forceload: drv/emlxs forceload: drv/qlc forceload: drv/ssd forceload: drv/fp forceload: drv/mplb
9. システムを再起動します。
# /usr/sbin/shutdown -i6 -g0 -y <RETURN>
10. マウントされているパスを確認します。
# /usr/bin/df <RETURN>
/ (/dev/FJSVmplb/dsk/mplb0s0): 3588720 blocks 675848 files /devices (/devices ): 0 blocks 0 files /system/contract (ctfs ): 0 blocks 2147483605 files /proc (proc ): 0 blocks 29942 files /etc/mnttab (mnttab ): 0 blocks 0 files /etc/svc/volatile (swap ):56747120 blocks 4746377 files /system/object (objfs ): 0 blocks 2147483449 files /etc/dfs/sharetab (sharefs ): 0 blocks 2147483646 files /dev/fd (fd ): 0 blocks 0 files /tmp (swap ):56747120 blocks 4746377 files /var/run (swap ):56747120 blocks 4746377 files /export/home (/dev/FJSVmplb/dsk/mplb0s7):16442328 blocks 990076 files
11. マルチパスの確認を行います。
全てのパスがonline、good statusとなっていることを確認します。
# /usr/opt/FJSViomp/bin/iompadm info <RETURN>
IOMP: /dev/FJSVmplb/fiomp/adm0 Element:
/dev/rdsk/c1t500000E0D00AD706d0s2 online active block "good status [E3000- 000AD7-CM10-CA10-PORT00] (ssd3)"
/dev/rdsk/c2t500000E0D00AD787d0s2 online standby block "good status
66 [E3000- 000AD7-CM11-CA11-PORT03] (ssd5)"
Node:
/dev/FJSVmplb/rdsk/mplb0s0 /dev/FJSVmplb/rdsk/mplb0s1 /dev/FJSVmplb/rdsk/mplb0s2 /dev/FJSVmplb/rdsk/mplb0s3 /dev/FJSVmplb/rdsk/mplb0s4 /dev/FJSVmplb/rdsk/mplb0s5 /dev/FJSVmplb/rdsk/mplb0s6 /dev/FJSVmplb/rdsk/mplb0s7 Function:
MPmode=true AutoPath=true Block=true NeedSync=false
IOMP: /dev/FJSVmplb/fiomp/adm1 Element:
/dev/rdsk/c1t500000E0D00AD706d1s2 online active block "good status [E3000- 000AD7-CM10-CA10-PORT00] (ssd2)"
/dev/rdsk/c2t500000E0D00AD787d1s2 online standby block "good status [E3000- 000AD7-CM11-CA11-PORT03] (ssd4)"
Node:
/dev/FJSVmplb/rdsk/mplb1s0 /dev/FJSVmplb/rdsk/mplb1s1 /dev/FJSVmplb/rdsk/mplb1s2 /dev/FJSVmplb/rdsk/mplb1s3 /dev/FJSVmplb/rdsk/mplb1s4 /dev/FJSVmplb/rdsk/mplb1s5 /dev/FJSVmplb/rdsk/mplb1s6 /dev/FJSVmplb/rdsk/mplb1s7 Function:
MPmode=true AutoPath=true Block=true NeedSync=false
#
12. クラスタの自動リソース登録を行います。
クラスタシステムの場合、ブートディスク以外は自動リソース登録でマルチパスを構築します。
67
4.2.2.2.2 Solaris 10 ZFS ファイルシステム、Solaris 11 ZFS ファイルシステムの場合
ここでは、Solaris 10 ZFSファイルシステム、Solaris 11 ZFSファイルシステムの場合の手順を示します。
ブートディスク(LUN0)と同じ容量のディスク(LUN1)をマッピングしておきます。
Solaris 10、Solaris 11.3以前のOSの場合は、2. から実施してください。
Solaris 11.4の初期インストールを行い、sdドライバがターゲットドライバの場合は、1. の設定を行ってください。
1. マルチパスドライバのインストールを行う前に下記の手順を実施します。
(1) ブートディスク(LUN0)と同じ容量のディスク(LUN1)のディスクスライスの設定をします。
スライス0 に全てのディスク領域を割り当てます。
(2) sdからssdへ変更します。
/etc/devices/inception_pointsファイルを編集します。
scsa-no-binding-set-fcp、scsa-no-binding-set-vhci、swapgeneric-ssd-loads-sdの行をコメントにします。
読み取り専用ファイルのため、"w!"で保存してください。
# vi /etc/devices/inception_points <RETURN>
#
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
#
#
# Customers should not modify this file unless explicitedly directed to do so.
#
# Each non-comment line of the file defines one 'inception_point' keyword.
#
# Each 'inception_point' keyword is associated with a new, but incompatible,
# method of doing something. Typically, a new post-inception_point method is
# established via install: upgrade operation continues in legacy
# pre-inception_point mode. If a keyword is established by other means, expect
# some type of incompatible, and possibly destructive, change on reboot.
#
# An API is provided to determine if the system is running in pre or post
# inception_point keyword mode. The code associated with testing a keyword
# looks something like
#
# if (ddi_inception_point_established("keyword")) {
# post-inception_point implementation
# } else {
# legacy pre-inception_point implementation
# }
#
# By tracking when inception points are introduced into this file, relative
# to associated environment at the time of that introduction, future Solaris
# developers can recognize opportunities to remove pre-inception_point code
# and delete the inception-point definition. This opportunities will often
# relate to platform EOL.
#
# In summary, the 'inception_point' mechanism gives us a way of both
# introducing incompatible change, and (eventually) retiring legacy code.
#
# inception_point keyword descriptions and definitions follow:
# scsa-no-binding-set-fcp/scsa-no-binding-set-vhci:
# When these inception point keywords are established the
#
# scsi_hba.c:scsi_hba_nodename_compatible_get()
#
# code no longer needs to create an fcp or vhci binding-set specific
# /usr/sbin/format /dev/rdsk/c0t6000B5D0006A0000006A0753000A0000d1s0 <RETURN>