4.2 ブートディスクへのパスを冗長化
4.2.2 マルチパスドライバの設定
4.2.2.1 Solaris OS標準機能マルチパスドライバ(MPxIO)の設定
Solaris OS標準機能マルチパスドライバ(MPxIO)を使用し、ブートデバイスへのパスの冗長化する手順を示します。
Solaris 11.4でMPxIOの設定が有効になっており、特定のパスのみ冗長化したい場合は5. の"●特定パスのみマルチパ
スを有効にする場合"に進んでください。すべてのファイバーチャネルパスまたはFCoEパスが冗長化されたままでよ い場合は6. へ進んでください。
Solaris 10、Solaris 11.3以前のOS、Solaris 11.4でformatコマンドを実行したときデバイスパスがシングルパスの場合は
1. に進んでください。
Solaris 11.3からSolaris 11.4へのアップデートインストールを行った場合は、マルチパスの設定を引き継ぎssdドライ
バで動作します。
1. ストレージシステムを指定してブートし、formatコマンドでマルチパス構成にする論理デバイス名を確認します。
ストレージシステム上のブートディスクからホストを起動し、formatコマンドでマルチパス構成にする論理デバイ ス名を確認します。
# /usr/sbin/format <RETURN>
Searching for disks...done
AVAILABLE DISK SELECTIONS
0. c0t0d0 <FUJITSU-MAY2073RC-3701 cyl 14087 alt 2 hd 24 sec 424>
43 /pci@0,600000/pci@0/scsi@1/sd@0,0
1. c1t210000E0004101D9d0 <FUJITSU-E3000-0000 cyl 4254 alt 2 hd 64 sec 256>
/pci@4,600000/QLGC,qlc@0/fp@0,0/ssd@w210000e0004101d9,0
2. c2t210000E0004101DAd0 <FUJITSU-E3000-0000 cyl 4254 alt 2 hd 64 sec 256>
/pci@5,700000/QLGC,qlc@0/fp@0,0/ssd@w210000e0004101da,0 2. マルチパスの制御方式をround-robin(Load-Balance型)に定義します。
● Solaris 10の場合
# vi /kernel/drv/scsi_vhci.conf <RETURN>
:
load-balance="round-robin";
※ 本パラメーターは、デフォルトがround-robin(Load-Balance型)となっているため、変更の必要はありません。
● Solaris 11の場合
# vi /etc/driver/drv/scsi_vhci.conf <RETURN>
:
load-balance="round-robin";
※ 本パラメーターは、デフォルトがround-robin(Load-Balance型)となっているため、変更の必要はありません。
/etc/driver/drv配下にscsi_vhci.confがない場合は、以下の手順で/etc/driver/drv配下にscsi_vhci.confを配置してく ださい。
# cp -p /kernel/drv/scsi_vhci.conf /etc/driver/drv/scsi_vhci.conf <RETURN>
3. マルチパスの設定を行うため、ストレージシステムのVendor-ID, Product-ID を調べます。
マルチパスの設定が必要かどうかは、ご使用のストレージシステムのマニュアルを参照してください。
マルチパスの設定が必要な場合 例: ETERNUS 6000を使用している場合
# /usr/sbin/format <RETURN>
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <FUJITSU-MAY2073RC-3701 cyl 14087 alt 2 hd 24 sec 424>
/pci@0,600000/pci@0/scsi@1/sd@0,0
1. c1t210000E0004101D9d0 <FUJITSU-E6000-0000 cyl 4254 alt 2 hd 64 sec 256>
/pci@4,600000/QLGC,qlc@0/fp@0,0/ssd@w210000e0004101d9,0
2. c2t210000E0004101DAd0 <FUJITSU-E6000-0000 cyl 4254 alt 2 hd 64 sec 256>
/pci@5,700000/QLGC,qlc@0/fp@0,0/ssd@w210000e0004101da,0 Specify disk (enter its number): 1 <RETURN>
selecting c1t210000E0004101D9d0 [disk formatted]
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
save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit
format> inquiry <RETURN>
Vendor: FUJITSU
44 Product: E6000
Revision: 0000 format>
4. 3.で採取したVendor-ID、Product-IDをscsi_vhci.confに定義します。
● Solaris 10の場合
○ /kernel/drv/scsi_vhci.conf
# vi /kernel/drv/scsi_vhci.conf <RETURN>
#
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#pragma ident "@(#)scsi_vhci.conf 1.9 04/08/26 SMI"
#
name="scsi_vhci" class="root";
#
# Load balancing global configuration: setting load-balance="none" will cause
# all I/O to a given device (which supports multipath I/O) to occur via one
# path. Setting load-balance="round-robin" will cause each path to the device
# to be used in turn.
#
load-balance="round-robin";
#
# Automatic failback configuration
# possible values are auto-failback="enable" or auto-failback="disable"
auto-failback="enable";
#
# For enabling MPxIO support for 3rd party symmetric device need an
# entry similar to following in this file. Just replace the "SUN SENA"
# part with the Vendor ID/Product ID for the device, exactly as reported by
# Inquiry cmd.
#
# device-type-scsi-options-list =
# "SUN SENA", "symmetric-option";
#
# symmetric-option = 0x1000000;
device-type-scsi-options-list =
"FUJITSU E6000", "symmetric-option";
symmetric-option = 0x1000000;
※ "FUJITSU"と"E6000"の間はスペースを1つ空けます。
● Solaris 11 11/11の場合
○ /etc/driver/drv/scsi_vhci.conf
# vi /etc/driver/drv/scsi_vhci.conf <RETURN>
#
# Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
#
#
name="scsi_vhci" class="root";
#
# Load balancing global configuration: setting load-balance="none" will cause
# all I/O to a given device (which supports multipath I/O) to occur via one
# path. Setting load-balance="round-robin" will cause each path to the device
# to be used in turn.
#
load-balance="round-robin";
#
# Automatic failback configuration
# possible values are auto-failback="enable" or auto-failback="disable"
auto-failback="enable";
45
#BEGIN: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
#
# Declare scsi_vhci failover module paths with 'ddi-forceload' so that
# they get loaded early enough to be available for scsi_vhci root use.
#
# NOTE: Correct operation depends on the value of 'ddi-forceload', this
# value should not be changed. The ordering of entries is from
# most-specific failover modules (with a "probe" implementation that is
# completely VID/PID table based), to most generic (failover modules that
# are based on T10 standards like TPGS). By convention the last part of a
# failover module path, after "/scsi_vhci_", is called the
# "failover-module-name", which begins with "f_" (like "f_asym_sun"). The
# "failover-module-name" is also used in the override mechanism below.
ddi-forceload =
"misc/scsi_vhci/scsi_vhci_f_asym_sun", "misc/scsi_vhci/scsi_vhci_f_asym_lsi", "misc/scsi_vhci/scsi_vhci_f_asym_emc", "misc/scsi_vhci/scsi_vhci_f_sym_emc", "misc/scsi_vhci/scsi_vhci_f_sym_hds", "misc/scsi_vhci/scsi_vhci_f_sym",
# "misc/scsi_vhci/scsi_vhci_f_tpgs_tape",
# "misc/scsi_vhci/scsi_vhci_f_tape", "misc/scsi_vhci/scsi_vhci_f_tpgs";
#
# For a device that has a GUID, discovered on a pHCI with mpxio enabled, vHCI
# access also depends on one of the scsi_vhci failover modules accepting the
# device. The default way this occurs is by a failover module's "probe"
# implementation (sfo_device_probe) indicating the device is supported under
# scsi_vhci. To override this default probe-oriented configuration in
# order to
#
# 1) establish support for a device not currently accepted under scsi_vhci
#
# or 2) override the module selected by "probe"
#
# or 3) disable scsi_vhci support for a device
#
# you can add a 'scsi-vhci-failover-override' tuple, as documented in
# scsi_get_device_type_string(9F). For each tuple, the first part provides
# basic device identity information (vid/pid) and the second part selects
# the failover module by "failover-module-name". If you want to disable
# scsi_vhci support for a device, use the special failover-module-name "NONE".
# Currently, for each failover-module-name in 'scsi-vhci-failover-override'
# (except "NONE") there needs to be a
# "misc/scsi_vhci/scsi_vhci_<failover-module-name>" in 'ddi-forceload' above.
#
# " 111111"
# "012345670123456789012345", "failover-module-name" or "NONE"
# "|-VID--||---PID---|",
# scsi-vhci-failover-override =
# "STK FLEXLINE 400", "f_asym_lsi",
# "SUN T4", "f_tpgs",
# "CME XIRTEMMYS", "NONE";
#
#END: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
#BEGIN: UPDATE_PATHSTATE_ON_RESET_BLOCK (DO NOT MOVE OR DELETE)
#
# Tunable for updating path states after a UNIT ATTENTION reset.
# There are arrays which do not queue UAs during resets
# after an implicit failover. For such arrays, we need to
# update the path states after any type of UA resets, since
# UA resets take higher precedence among other UNIT ATTENTION
# conditions. By default, scsi_vhci does not update path states
# on UA resets. To make scsi_vhci do that for such arrays, you need
46
# to set the tunable scsi-vhci-update-pathstate-on-reset to "yes"
# for the VID/PID combination as described below.
#
# "012345670123456789012345", "yes" or "no"
# "|-VID--||---PID---|",
#
scsi-vhci-update-pathstate-on-reset =
"Pillar Axiom", "yes";
#
#END: UPDATE_PATHSTATE_ON_RESET_BLOCK (DO NOT MOVE OR DELETE) scsi-vhci-failover-override =
"FUJITSU E6000", "f_sym";
※ "FUJITSU"と"E6000"の間はスペースを1つ空けます。
● Solaris 11.1の場合
○ /etc/driver/drv/scsi_vhci.conf
# vi /etc/driver/drv/scsi_vhci.conf <RETURN>
#
# Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
#
#
name="scsi_vhci" class="root";
#
# Load balancing global configuration: setting load-balance="none" will cause
# all I/O to a given device (which supports multipath I/O) to occur via one
# path. Setting load-balance="round-robin" will cause each path to the device
# to be used in turn.
#
load-balance="round-robin";
#
# Automatic failback configuration
# possible values are auto-failback="enable" or auto-failback="disable"
auto-failback="enable";
#BEGIN: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
#
# Declare scsi_vhci failover module paths with 'ddi-forceload' so that
# they get loaded early enough to be available for scsi_vhci root use.
#
# NOTE: Correct operation depends on the value of 'ddi-forceload', this
# value should not be changed. The ordering of entries is from
# most-specific failover modules (with a "probe" implementation that is
# completely VID/PID table based), to most generic (failover modules that
# are based on T10 standards like TPGS). By convention the last part of a
# failover module path, after "/scsi_vhci_", is called the
# "failover-module-name", which begins with "f_" (like "f_asym_sun"). The
# "failover-module-name" is also used in the override mechanism below.
ddi-forceload =
"misc/scsi_vhci/scsi_vhci_f_asym_sun", "misc/scsi_vhci/scsi_vhci_f_asym_lsi", "misc/scsi_vhci/scsi_vhci_f_asym_emc", "misc/scsi_vhci/scsi_vhci_f_sym_emc", "misc/scsi_vhci/scsi_vhci_f_sym_hds", "misc/scsi_vhci/scsi_vhci_f_sym",
# "misc/scsi_vhci/scsi_vhci_f_sym_enc",
# "misc/scsi_vhci/scsi_vhci_f_tpgs_tape",
# "misc/scsi_vhci/scsi_vhci_f_tape", "misc/scsi_vhci/scsi_vhci_f_tpgs";
#
# For a device that has a GUID, discovered on a pHCI with mpxio enabled, vHCI
# access also depends on one of the scsi_vhci failover modules accepting the
# device. The default way this occurs is by a failover module's "probe"
47
# implementation (sfo_device_probe) indicating the device is supported under
# scsi_vhci. To override this default probe-oriented configuration in
# order to
#
# 1) establish support for a device not currently accepted under scsi_vhci
#
# or 2) override the module selected by "probe"
#
# or 3) disable scsi_vhci support for a device
#
# you can add a 'scsi-vhci-failover-override' tuple, as documented in
# scsi_get_device_type_string(9F). For each tuple, the first part provides
# basic device identity information (vid/pid) and the second part selects
# the failover module by "failover-module-name". If you want to disable
# scsi_vhci support for a device, use the special failover-module-name "NONE".
# Currently, for each failover-module-name in 'scsi-vhci-failover-override'
# (except "NONE") there needs to be a
# "misc/scsi_vhci/scsi_vhci_<failover-module-name>" in 'ddi-forceload' above.
#
# " 111111"
# "012345670123456789012345", "failover-module-name" or "NONE"
# "|-VID--||---PID---|",
# scsi-vhci-failover-override =
# "STK FLEXLINE 400", "f_asym_lsi",
# "SUN T4", "f_tpgs",
# "CME XIRTEMMYS", "NONE";
#
#END: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
#BEGIN: UPDATE_PATHSTATE_ON_RESET_BLOCK (DO NOT MOVE OR DELETE)
#
# Tunable for updating path states after a UNIT ATTENTION reset.
# There are arrays which do not queue UAs during resets
# after an implicit failover. For such arrays, we need to
# update the path states after any type of UA resets, since
# UA resets take higher precedence among other UNIT ATTENTION
# conditions. By default, scsi_vhci does not update path states
# on UA resets. To make scsi_vhci do that for such arrays, you need
# to set the tunable scsi-vhci-update-pathstate-on-reset to "yes"
# for the VID/PID combination as described below.
#
# "012345670123456789012345", "yes" or "no"
# "|-VID--||---PID---|",
#
scsi-vhci-update-pathstate-on-reset =
"Pillar Axiom", "yes";
#
#END: UPDATE_PATHSTATE_ON_RESET_BLOCK (DO NOT MOVE OR DELETE)
#BEGIN: SPREAD_IPORT_RESERVATION_BLOCK
#
# Tunable for path selection optimization of SCSI reservation command. With
# this optimization, a path with least busy initiator port will be selected
# for a SCSI reservation command. If optimization is disabled scsi_vhci will
# use load balancing policy "none" for SCSI reservation command's path
# selection. Tunable spread-iport-reservation is used to establish the default
# value. Its default value is "yes". To make scsi_vhci to turn off the
# optimization globally, you need to set the tunable spread-iport-reservation
# to "no". Tunable spread-iport-reservation-exceptions can describe exceptional
# cases with the VID/PID combination specified, which has higher priority than
# the tunable spread-iport-reservation.
#
spread-iport-reservation = "yes";
#
# "012345670123456789012345", "yes" or "no"
# "|-VID--||---PID---|",
48
# spread-iport-reservation-exceptions =
# "STK T10000C", "yes",
# "HP Ultrium 4-SCSI", "no";
#
# To find the least busy initiator port, traffic load of every initiator port
# need to be monitored. One important traffic load metric is rlentime: the
# cumulative run length*time product of every initiator port. Delta rlentime
# of latest period of time is used to represent the historical traffic load.
# The simultaneous snapshot rlentime of every initiator port is needed to
# calculate the delta rlentime. Tunable iport-rlentime-snapshot-interval is
# used to configure the time interval in seconds to create rlentime snapshot
# of every initiator port. Its default value is 30 seconds.
#
iport-rlentime-snapshot-interval = 30;
#
#END: SPREAD_IPORT_RESERVATION_BLOCK
#NOTE:
# VID field should contain exactly eight bytes of left-adjusted ASCII characters.
# If VID is less than 8 characters, it should be padded with spaces (ASCII 0x0a)
# to 8 characters.
# PID field contains at most sixteen left-adjusted ASCII characters. The
# PID field has an implicit wildcard rule. The product ID in the returned SCSI
# inquiry string is considered a match if it has the PID field as its prefix.
# For example, "Pillar Axiom" can cover both "Pillar Axiom 600" and
# "Pillar Axiom 500".
scsi-vhci-failover-override =
"FUJITSU E6000", "f_sym";
※ "FUJITSU"と"E6000"の間はスペースを1つ空けます。
● Solaris 11.2の場合
# vi /etc/driver/drv/scsi_vhci.conf <RETURN>
#
# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
#
#
name="scsi_vhci" class="root";
#
# Load balancing global configuration: setting load-balance="none" will cause
# all I/O to a given device (which supports multipath I/O) to occur via one
# path. Setting load-balance="round-robin" will cause each path to the device
# to be used in turn.
#
load-balance="round-robin";
#
# Automatic failback configuration
# possible values are auto-failback="enable" or auto-failback="disable"
auto-failback="enable";
#BEGIN: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
#
# Declare scsi_vhci failover module paths with 'ddi-forceload' so that
# they get loaded early enough to be available for scsi_vhci root use.
#
# NOTE: Correct operation depends on the value of 'ddi-forceload', this
# value should not be changed. The ordering of entries is from
# most-specific failover modules (with a "probe" implementation that is
# completely VID/PID table based), to most generic (failover modules that
# are based on T10 standards like TPGS). By convention the last part of a
# failover module path, after "/scsi_vhci_", is called the
# "failover-module-name", which begins with "f_" (like "f_asym_sun"). The
# "failover-module-name" is also used in the override mechanism below.
ddi-forceload =
"misc/scsi_vhci/scsi_vhci_f_asym_sun",
49 "misc/scsi_vhci/scsi_vhci_f_asym_lsi", "misc/scsi_vhci/scsi_vhci_f_asym_emc", "misc/scsi_vhci/scsi_vhci_f_sym_emc", "misc/scsi_vhci/scsi_vhci_f_sym_hds", "misc/scsi_vhci/scsi_vhci_f_sym",
# "misc/scsi_vhci/scsi_vhci_f_sym_enc",
# "misc/scsi_vhci/scsi_vhci_f_tpgs_tape",
# "misc/scsi_vhci/scsi_vhci_f_tape", "misc/scsi_vhci/scsi_vhci_f_tpgs";
#
# For a device that has a GUID, discovered on a pHCI with mpxio enabled, vHCI
# access also depends on one of the scsi_vhci failover modules accepting the
# device. The default way this occurs is by a failover module's "probe"
# implementation (sfo_device_probe) indicating the device is supported under
# scsi_vhci. To override this default probe-oriented configuration in
# order to
#
# 1) establish support for a device not currently accepted under scsi_vhci
#
# or 2) override the module selected by "probe"
#
# or 3) disable scsi_vhci support for a device
#
# you can add a 'scsi-vhci-failover-override' tuple, as documented in
# scsi_get_device_type_string(9F). For each tuple, the first part provides
# basic device identity information (vid/pid) and the second part selects
# the failover module by "failover-module-name". If you want to disable
# scsi_vhci support for a device, use the special failover-module-name "NONE".
# Currently, for each failover-module-name in 'scsi-vhci-failover-override'
# (except "NONE") there needs to be a
# "misc/scsi_vhci/scsi_vhci_<failover-module-name>" in 'ddi-forceload' above.
#
# " 111111"
# "012345670123456789012345", "failover-module-name" or "NONE"
# "|-VID--||---PID---|",
# scsi-vhci-failover-override =
# "STK FLEXLINE 400", "f_asym_lsi",
# "SUN T4", "f_tpgs",
# "CME XIRTEMMYS", "NONE";
#
#END: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
#BEGIN: UPDATE_PATHSTATE_ON_RESET_BLOCK (DO NOT MOVE OR DELETE)
#
# Tunable for updating path states after a UNIT ATTENTION reset.
# There are arrays which do not queue UAs during resets
# after an implicit failover. For such arrays, we need to
# update the path states after any type of UA resets, since
# UA resets take higher precedence among other UNIT ATTENTION
# conditions. By default, scsi_vhci does not update path states
# on UA resets. To make scsi_vhci do that for such arrays, you need
# to set the tunable scsi-vhci-update-pathstate-on-reset to "yes"
# for the VID/PID combination as described below.
#
# "012345670123456789012345", "yes" or "no"
# "|-VID--||---PID---|",
#
scsi-vhci-update-pathstate-on-reset =
"Pillar Axiom", "yes", "Oracle Oracle FS", "yes";
#
#END: UPDATE_PATHSTATE_ON_RESET_BLOCK (DO NOT MOVE OR DELETE)
#BEGIN: SPREAD_IPORT_RESERVATION_BLOCK
#