• 検索結果がありません。

ホスト上の HP 3PAR デバイスの使用

RHEL 5 の SCSI タイムアウトの設定

8 ホスト上の HP 3PAR デバイスの使用

デバイスマッパー用デバイスの作成

デバイスマッパー用デバイスの作成

1. multipath コマンドを実行して、新しいデバイスマッパーノードを /dev/mapper ディ レクトリの下に作成します。

# multipath

2. multipath -11を実行して、デバイスマッパー用デバイスが作成されていることを確認 します。

注記: RHEL 6.x および RHEL 7 を含む RHEL 5.5 以降では、デフォルトで dm マルチパス を有効にするための user_friendly_names オプションがあります。そのため、

350002ac001b40031のようなデバイス名の代わりに mpathXと表示され、kpartx と

RHEL のマニュアルに従った他のツールで、/dev/mapper/mpathXのパスがわかります。

# multipath -ll 350002ac001b40031

[size=5 GB][features="1 queue_if_no_path"][hwhandler="0"]

\_ round-robin 0 [active]

\_ 0:0:0:0 sda 8:0 [active][ready]

\_ 1:0:0:0 sdb 8:16 [active][ready]

3. デバイスを作成した後、multipath -v 3コマンドを使用して、デバイスマッパーノー ドとその関連するパスに関する詳細な情報を取得します。以下の設定が実行されているこ とを確認します。

• 各デバイスについて、path checker がturに設定されていること。

• HP 3PAR アレイで HP 3PAR OS 3.1.1 以降が動作している場合、no_path_retryの

値に、iSCSI の場合は 12、ファイバーチャネルの場合は 18 が設定されていること。

ただし、HP 3PAR アレイで 3.1.1 よりも前のバージョンの HP 3PAR OS が動作して

いる場合、no_path_retryの値に、iSCSI の場合は 12、ファイバーチャネルの場合 は 12 が設定されていること。

multipath -v 3コマンドの出力は、RHEL 4 と RHEL 7、RHEL 6、または RHEL 5 では異 なります。ただし、デバイスマッパーに表示される情報は同じです。

次に RHEL 7 の例を示します。

# multipath -v 3 sdb: mask = 0x3f sdb: dev_t = 8:16 sdb: size = 41943040 sdb: subsystem = scsi sdb: vendor = 3PARdata sdb: product = VV sdb: rev = 3210 sdb: h:b:t:l = 6:0:2:1

sdb: tgt_node_name = 0x2ff70002ac01807 sdb: get_state

sdb: path checker = tur(controller setting) sdb: checker timeout = 30000 ms (sysfs setting) sdb: state = running

sdb: state = 3

sdb: getuid = /lib/udev/scsi_id --whitelisted --device=/dev/%n (controller setting) sdb: uid = 360002ac000000000000002a2000185df (callout)

sdb: state = running

sdb: detect_prio = 1 (config file default)

sdb: prio = alua (controller setting) reported target port group is 1 aas = 80 [active/optimized]

[preferred]

sdb: alua prio = 130 ...

params = 1 queue_if_no_path 1 alua 1 1 round-robin 0 9 169:80 1 8:16 1 65:96 1 66:176 1 68:0 1 128:64 1 131:192 1 66:336 1

デバイスマッパー用デバイスの作成 103

詳細なデバイスマッパーノード情報の表示

multipath -l を使用してデバイスの一覧を表示し、dmsetup コマンドを使用して詳細なデ バイスマッパーノード情報を取得します。

注記: /etc/multipath.confファイル中でno_path_retryに 0 以外の値が設定されて いる場合、再試行期間中は I/O がキューに格納され、features=1 queue_if_no_pathが multipath -l コマンドの出力に表示されます。

次の例を参照してください。

# multipath -l 350002ac001b40031

[size=5 GB][features="1 queue_if_no_path"][hwhandler="0"]

\_ round-robin 0 [active]

\_ 0:0:0:0 sda 8:0 [active]

\_ 1:0:0:0 sdb 8:16 [active]

注記: 出力中でデバイスステータスが [undef]と表示される場合、これは、RHEL で報告済 みの、修正予定の RHEL の不具合です。代わりに multipath -llコマンドを使用します。

このコマンドでは、デバイスのステータスが正しく ready と表示されます。

dmsetupコマンドをさまざまなオプション付きで使用して、デバイスマッパーマッピングに

対する詳細情報を取得できます。

次の例を参照してください。

# dmsetup table

350002ac001b40031: 0 10485760 multipath 1 queue_if_no_path 0 1 1 round-robin 0 2 1 8:0 100 8:16 100

# dmsetup ls --target multipath 350002ac0004b0079 (253, 7)

# dmsetup info 350002ac0004b0079

Name: 350002ac0004b0079

State: ACTIVE

Read Ahead: 256 Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 253, 7 Number of targets: 1

UUID: mpath-350002ac0004b0079

# dmsetup table --target multipath

350002ac0004b0079: 0 10485760 multipath 1 queue_if_no_path 0 1 1 round-robin 0 2 1 8:32 100 8:48 100

デバイスマッパーノードのパーティション分割

次の項では、デバイスマッパーノードのパーティション分割のためのガイドラインについて説 明します。

デバイスマッパーノードをパーティション分割するとき、/dev/mapper/XXXノード上で

fdisk を使用すると、次のエラーメッセージが表示されることがあります。

領域テーブルの再読込みエラー 22 で失敗しました: 無効な引数です。 カーネルはまだ古 いテーブルを使っています。 新しいテーブルは次回の再起動時に使用されます。 ディスクを 同期させます。

注記: fdiskコマンドは、/dev/mapper/XXXデバイスでパーティションを作成するために 使用しないでください。

104 ホスト上の HP 3PAR デバイスの使用

fdisk を下位のディスク /dev/sdXX に対して使用し、デバイスマッパーマルチパスがデバイ スをマップして /dev/mapper/<device node> パーティションを作成するときに、次のコ マンドを実行してください。

# multipath -l 50002ac001b40031

[size=5 GB][features="1 queue_if_no_path"][hwhandler="0"]

\_ round-robin 0 [active]

\_ 0:0:0:0 sda 8:0 [active]

\_ 1:0:0:0 sdb 8:16 [active]

デバイスマッパーノード 350002ac001b40031 は、同じストレージボリュームからの 2 つの パスを表す下位のデバイスsdaとsdbから形成されます。

# fdisk /dev/sda

fdiskコマンドが完了した後、kpartxコマンドを使用して、デバイス上のパーティションの 一覧を表示し DM デバイスを作成します。

# kpartx -a -p p /dev/mapper/350002ac001b40031

350002ac001b40031p1 : 0 10477194 /dev/mapper/350002ac001b40031 62

# kpartx -a -p p /dev/mapper/350002ac001b40031 -- will add a partition mapping

# ls /dev/mapper

350002ac001b40031 350002ac001b40031p1

ここで、350002ac001b40031p1 は、ディスク全体 350002ac001b40031 のパーティショ ンデバイスです。

ディスク割り付けのための RHEL 7 または RHEL 6 での fdisk または parted の使用方法

HP 3PAR StoreServ Storage のキャッシュページは 16 KB (16384 バイト) であり、読み書き操

作は 16 k のキャッシュページ単位で実行されます。 JEDEC メモリ標準に従って、HP 3PAR

OS 3.1.1 以降ではブロックイメージページ (bl) がサポートされています。これは、ホストに

対し、サポートされる最適な転送ブロックを知らせます。また、OS はこれを使用して、パ フォーマンス向上のためにキャッシュページに合わせてパーティションを作成することができ ます。

RHEL 7 または RHEL 6 の場合 :

HP 3PAR OS 3.1.1 以降を使用した RHEL 7 または RHEL 6 は、特定のfdiskおよびparted オプションとともにこれらのビットを使用します。

次の例を参照してください。sg3_utilsをインストールした場合、次のコマンドはブロック

制限 VPD ページ (SBC) を表示します。最適な転送長の細かさは 32 ブロック (16 k) です。

# sg_vpd -p bl /dev/sdh Block limits VPD page (SBC):

Optimal transfer length granularity: 32 blocks Maximum transfer length: 32768 blocks

Optimal transfer length: 32768 blocks

Maximum prefetch, xdread, xdwrite transfer length: 0 blocks Maximum unmap LBA count: 65536

Maximum unmap block descriptor count: 10 Optimal unmap granularity: 32

Unmap granularity alignment valid: 0 Unmap granularity alignment: 0

デバイスマッパーノードのパーティション分割 105

RHEL 7.x または RHEL 6.x を HP 3PAR OS 3.1.1 以降で実行している場合、fdisk コマンドの SBC ビットを利用して、パーティションの開始セクターをキャッシュページアラインメント (16 k) に適切に合わせることができます。そのためには、fdisk コマンドに、-c フラグ (DOS 互換モードをオフ) を、出力をセクター単位で表示する-u オプションとともに渡します。

次に、5GB ディスクの例を示します。

# fdisk -c -u /dev/sdh Command (m for help): p Partition number (1-4): 1

First sector (32768-10485759, default 32768):

Using default value 32768

以下の例では、パーティション開始セクターがセクター 32768 で始まっており (適切な 16 k のオフセットで)、適切に配置されていることを示しています。

# fdisk -l -u /dev/sdh

Disk /dev/sdh: 5368 MB, 5368709120 bytes

52 heads, 10 sectors/track, 20164 cylinders, total 10485760 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 16384 bytes / 16777216 bytes Disk identifier: 0x0004b8d4

Device Boot Start End Blocks Id System

/dev/sdh1 32768 10485759 5226496 83 Linux

-cまたは-uフラグをパーティションの作成時に使用しない場合、開始セクターは 30876 と なり、パーティションが作成された後で警告「Partition 1 does not start on physical sector

boundary (パーティション 1 は物理セクター境界で始まっていません)」が表示されます。

-cフラグまたは-uフラグを使用しない例

# fdisk /dev/sdh

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').

Command (m for help): n Command action

e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-1018, default 4):

Using default value 4

Last cylinder, +cylinders or +size{K,M,G} (4-1018, default 1018):

Using default value 1018

# fdisk -l -u /dev/sdh

Disk /dev/sdh: 5368 MB, 5368709120 bytes

166 heads, 62 sectors/track, 1018 cylinders, total 10485760 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 16384 bytes / 16777216 bytes Disk identifier: 0x2d8b4dbe

Device Boot Start End Blocks Id System

/dev/sdh1 30876 10477255 5223190 83 Linux Partition 1 does not start on physical sector boundary.

106 ホスト上の HP 3PAR デバイスの使用

また、割り付け境界が適切でない場合、ext ファイルシステムの作成時にパフォーマンス低下 に関する次の警告が表示されます。

# mkfs.ext4 /dev/mapper/350002ac000020121p1 mke2fs 1.41.12 (17-May-2010)

/dev/mapper/350002ac000020121p1 alignment is offset by 2048 bytes.

This may result in very poor performance, (re)-partitioning suggested.

HP 3PAR OS 3.1.1 以降では、parted コマンドを使用し、適切なアラインメントとなるよう

GB 単位を使用して同じ結果が得られます。以下の例では、アラインメントが 32768 セクター から始まることを示します。

# parted /dev/sdh GNU Parted 2.1 Using /dev/sdh

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel

New disk label type? msdos (parted) unit gb

(parted) mkpart primary

File system type? [ext2]? ext4 Start? 0

End? -0 (parted) p

Model: 3PARdata VV (scsi) Disk /dev/sdh: 5.37GB

Sector size (logical/physical): 512B/512B Partition Table: msdos

Number Start End Size Type File system Flags 1 0.02GB 5.37GB 5.35GB primary ext4

(parted) unit s (parted) p

Model: 3PARdata VV (scsi) Disk /dev/sdh: 10485760s

Sector size (logical/physical): 512B/512B Partition Table: msdos

Number Start End Size Type File system Flags 1 32768s 10485759s 10452992s primary ext4

(parted) unit mb (parted) print

Model: 3PARdata VV (scsi) Disk /dev/sdh: 5369MB

Sector size (logical/physical): 512B/512B Partition Table: msdos

Number Start End Size Type File system Flags 1 16.8MB 5369MB 5352MB primary ext4

デバイスマッパーノードのパーティション分割 107

RHEL 7 および RHEL 6 では、割り付け境界を適切にするために開始セクターとしてセクター 32768 を fdisk -c -u オプションに渡すか、parted コマンドで適切な開始単位 (たとえば 16.8MB) を使用します。

注意:

• fdisk を使用する際は、正しい基本デバイスを使用していることを確認してください。

基本デバイスを特定するには、multipathコマンドを使用します。

• ファイルシステムとマウントポイントを作成するすべての I/O は、デバイスマッパー用デ バイスノード/dev/mapper/XXX を使用して実行する必要があります。

/dev/sdXデバイスノードに対して I/O を実行しようとすると、データ破壊が発生しま す。

• multipath -Fコマンドを実行すると、すべてのデバイスマッパーマッピングがフラッ シュアウトされ、既存のいずれかのデバイスに対して I/O が処理される場合に、非常に破 壊的になる可能性があります。-Fオプションの使用は避けてください。

kpartxを使用してデバイスマッパーインスタンスを削除し、fdiskを使用してパーティショ ンを削除します。

デバイスマッパーノード名は、ストレージボリューム ID (最初の数字 3 を除く) を表します。

HP 3PAR CLI のshowvv またはshowvlunコマンドを使用して、それが表すボリューム名を

取得します。

次の例を参照してください。

1. FC 接続されたホストで、ls /dev/mapper を実行します。

# ls /dev/mapper 350002ac001b40031

2. HP 3PAR StoreServ Storage で、上記の出力 (から最初の数字を除いたもの) を使用し、

showvlunコマンドを実行します。

cli % showvlun -lvw -a | grep -i 50002ac001b40031

0 testvlun 50002AC001B40031 redhathost 2100001B321A0C63 0:4:1 host 0 testvlun 50002AC001B40031 redhathost 2101001B323A0C63 1:5:1 host

3. iSCSI ホストでls /dev/mapperを実行します。

# ls /dev/mapper 350002AC0004B0079

4. HP 3PAR StoreServ Storage でshowvlun -lvw -a | grep -i <LUN>を実行します。

cli % showvlun -lvw -a | grep -i 50002ac0004b0079

0 testvlun 50002AC0004B0079 redhathost iqn.1994-05.com.redhat:a3df53b0a32d 1:3:1 host 0 testvlun 50002AC0004B0079 redhathost iqn.1994-05.com.redhat:a3df53b0a32d 0:3:1 host

108 ホスト上の HP 3PAR デバイスの使用

Veritas Volume Manager デバイスの作成

Veritas Volume Manager を使用してマルチパスを実現し、新しい VLUN がストレージサーバー からエクスポートされる場合は、以下の手順を実行して、既存の VLUN に対する I/O を停止 することなく新しい VLUN を追加します。

1. 任意の検出方法を使用して、新たにエクスポートされた VLUN を追加します。

2. 新しい VLUN が削除されデバイスインスタンスが作成されたことを確認した後、Veritas

レイヤーに新しいデバイスのスキャンを実行するよう指示します。デバイスの初期化後、

ステータスがエラー状態からオンラインに変わります。

# vxdctl enable

3. 新しいデバイスが Veritas Volume Manager で認識されていることを確認します。

# vxdisk list

DEVICE TYPE DISK GROUP STATUS

3PARDATA1_0 auto:cdsdisk testdg testdg online

3PARDATA1_1 auto - - error

Linux ホストで検出された VLUN は、Veritas Volume Manager で使用する前に、Linux の fdisk コマンドを使用してラベル付けする必要があります。

ディスクが Volume Manager によって認識された場合は、raw ディスクパス/dev/sdX を使用して I/O を実行せず、代わりに Veritas ボリュームデバイスパス /dev/vx/を使用 してください。

ホストからのストレージボリュームの削除

デバイスマッパーの使用時には、以下の方法のうちの 1 つを使用して、ホストからストレージ ボリュームを削除します。

方法 1

以下のコマンドを実行します。

# kpartx -d /dev/mapper/<device node>

# dmsetup remove <device node>

# echo "1" > /sys/class/scsi_device/<device instance>device/delete

たとえば、ターゲット 0、LUN 2 を削除するには、以下のように入力します。

# kpartx -d /dev/mapper/350002ac001b40031

# dmsetup remove 350002ac001b40031

# echo "1" > /sys/class/scsi_device/0:0:0:2/device/delete

注記: echoコマンドを使用する際は、ホストの HBA インスタンスのそれぞれからデバイス が削除されたことを確認してください。

方法 2

以下のコマンドを実行します。

# kpartx -d /dev/mapper/<device node>

# dmsetup remove <device node>

# echo "scsi remove-single-device <h> <c> <t> <l>" > /proc/scsi/scsi

Veritas Volume Manager デバイスの作成 109

関連したドキュメント