3.9.3 mdデバイス環境へのHDLMの適用
SCSIデバイスを使ってmdデバイスを構築している環境から,HDLM管理対象デバイスを使ってmdデバイスを構築している環境へ移行する手順を次に説明します。
mdデバイスにMULTIPATH機能を使用していない場合は,「(1) mdデバイスにMULTIPATH機能を使用していない場合」の手順を実行してください。mdデバイスにMULTIPATH機能を使用している場合は,「(2) mdデバイスにMULTIPATH機能を使用している場合」の手順を実行してください。
(1) mdデバイスにMULTIPATH機能を使用していない場合
MULTIPATH機能を使用していないmdデバイスの環境に,HDLMを適用する手順を説明します。この手順は,mdデバイスにRAID機能が使用されている場合を例に説明します。
次の手順では,/dev/sdh1および/dev/sdi1上の/dev/md0を,/dev/sddlmaa1および/dev/sddlmab1上の/dev/md0に移行しています。「図3‒11 SCSIデバイス上にあるmdデバイスをHDLMデバイス上に移行した場合のデバイス構成(mdデバイスのRAID機能を使用した環境)」に示す環境は,次の手順で構築してください。
既存のmdデバイスを使用しているアプリケーションをすべて停止します。
必要に応じてmdデバイス上のアプリケーションのデータをバックアップします。
mdデバイス上にファイルシステムをマウントしている場合は,アンマウントします。
mdデバイスの状態を確認します。
次のコマンドを実行して,mdデバイスの構成状態を確認します。
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdh1[0] sdi1[1] 5238528 blocks [2/2] [UU] unused devices: <none>
「md0 : active」と表示され,SCSIデバイスが表示されることを確認してください。「md0 : active」が表示されなかった場合は,mdデバイスを活性化させてください。
すでにコンフィグレーションファイル(/etc/mdadm.conf)を使用していた場合,そのコンフィグレーションファイルをバックアップします。
次のコマンドを実行してコンフィグレーションファイルのバックアップを作成してください。
# cp -pr /etc/mdadm.conf /etc/mdadm.conf.backup
次のコマンドを実行して,コンフィグレーションファイルを作成します。
手順5で,すでにコンフィグレーションファイルを使用していた場合でも,mdデバイスをHDLM管理対象デバイスにするため,コンフィグレーションファイルを作成し直してください。
# echo "DEVICE /dev/sdh1 /dev/sdi1" >> /etc/mdadm.conf # mdadm --detail --scan | grep -w "/dev/md0" >> /etc/mdadm.conf
sdh1およびsdi1は手順4で表示されたSCSIデバイスを指定してください。
コンフィグレーションファイルの作成例を次に示します。下線部の行がこの手順で追加した行です。
# cat /etc/mdadm.conf DEVICE /dev/sdh1 /dev/sdi1 DEVICE /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 ARRAY /dev/md0 level=raid1 num-devices=2 UUID=e39a6b15:32e48a5d:ca05f4db:25bc8af9 ARRAY /dev/md0 level=linear num-devices=1 UUID=426a9f1c:9cfa6310:6aa9a80b:11ea2102
コンフィグレーションファイルの記述内容については,Linuxのマニュアルやmanコマンドを参照してください。
新規にコンフィグレーションファイルを作成した場合は,手順9に進んでください。
すでにコンフィグレーションファイル(/etc/mdadm.conf)を使用していた場合,コンフィグレーションファイル内の不要なARRAY行を削除します。
手順6で作成したARRAY行と同じmdデバイス名(md0)のARRAY行を削除してください。次の例では,下線部の行が削除対象になります。
# cat /etc/mdadm.conf DEVICE /dev/sdh1 /dev/sdi1 DEVICE /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 ARRAY /dev/md0 level=raid1 num-devices=2 UUID=e39a6b15:32e48a5d:ca05f4db:25bc8af9 ARRAY /dev/md0 level=linear num-devices=1 UUID=426a9f1c:9cfa6310:6aa9a80b:11ea2102
すでにコンフィグレーションファイル(/etc/mdadm.conf)を使用していた場合,DEVICE行を編集します。
すでに記載されているDEVICE行が手順6で作成したDEVICE行のSCSIデバイスを含むように設定している場合,それを除外するようにDEVICE行を編集してください。
修正例を次に示します。
- 修正前
DEVICE /dev/sdh1 /dev/sdi1 DEVICE /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
- 修正後
DEVICE /dev/sdh1 /dev/sdi1 DEVICE /dev/sdf1 /dev/sdg1
/etc/mdadm.confファイルを編集して,コンフィグレーションファイルのARRAY行に「auto=yes」を追加します。
DEVICE /dev/sdh1 /dev/sdi1 DEVICE /dev/sdf1 /dev/sdg1 ARRAY /dev/md0 level=raid1 num-devices=2 UUID=e39a6b15:32e48a5d:ca05f4db:25bc8af9 auto=yes
HDLMをインストールします。
「3.6.2 HDLMの新規インストール」の手順2,手順4から手順12を実行し,HDLMをインストールしてください。
HDLMデバイスとSCSIデバイスの対応関係を確認します。
HDLM構成定義ユーティリティー(dlmcfgmgr)に-vパラメーターを指定して実行してください。
# dlmcfgmgr -v HDevName Management Device Host Channel Target Lun /dev/sddlmaa configured /dev/sdh 1 0 0 0 /dev/sddlmab configured /dev/sdi 1 0 0 1 KAPL10302-I /sbin/dlmcfgmgr completed normally.
HDevName列はHDLMデバイス,Device列はSCSIデバイスになります。
次のコマンドを実行して,mdデバイスを非活性化します。
# mdadm -Ss /dev/md0
mdデバイスが非活性化されていることを確認します。
mdデバイスにRAID1(ミラーリング)が適用されている場合の実行例を次に示します。
# cat /proc/mdstat Personalities : [raid1] unused devices: <none>
「md0 : active」と表示されないことを確認してください。
コンフィグレーションファイルを編集します。
手順11で表示されたHDLMデバイスとSCSIデバイスの対応関係を基に,DEVICE行のSCSIデバイス名をHDLMデバイス名に変更してください。
- 修正前
DEVICE /dev/sdh1 /dev/sdi1
- 修正後
DEVICE /dev/sddlmaa1 /dev/sddlmab1
DEVICE行を編集する場合は,デバイス名だけを変更してください。パーティション番号は変更しないでください。
HDLMデバイスのディスクパーティションタイプがfdの場合,タイプを83に変更してください。
fdiskコマンドを実行して,ディスクパーティションタイプを83に変更する例を次に示します。
# fdisk /dev/sddlmaa コマンド (m でヘルプ): p Disk /dev/sddlmaa: 5368 MB, 5368709120 bytes 166 heads, 62 sectors/track, 1018 cylinders Units = シリンダー数 of 10292 * 512 = 5269504 bytes デバイス Boot Start End Blocks Id System /dev/sddlmaa1 1 1018 5238597 fd Linux raid 自動検出 コマンド (m でヘルプ): t Selected partition 1 16進数コード (L コマンドでコードリスト表示): 83 領域のシステムタイプを 1 から 83 (Linux) に変更しました コマンド (m でヘルプ): p Disk /dev/sddlmaa: 5368 MB, 5368709120 bytes 166 heads, 62 sectors/track, 1018 cylinders Units = シリンダー数 of 10292 * 512 = 5269504 bytes デバイス Boot Start End Blocks Id System /dev/sddlmaa1 1 1018 5238597 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。
/dev/sddlmabも同様に実行してください。
次のコマンドを実行して,mdデバイスを活性化します。
# mdadm -As /dev/md0 mdadm: /dev/md0 has been started with 2 drives.
mdデバイスが活性化されていることを確認します。
mdデバイスにRAID1(ミラーリング)が適用されている場合の実行例を次に示します。
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sddlmaa1[0] sddlmab1[1] 5238528 blocks [2/2] [UU] unused devices: <none>
「md0 : active」と表示され,HDLMデバイスが表示されていることを確認してください。
mdデバイス上のファイルシステムをマウントする必要がある場合は,ファイルシステムをマウントします。
LUへパスを追加します。
該当LUへのパスを接続してから,ホストを再起動してください。または,「4.7.4 HDLMデバイスの構成変更」の「(3) LUへのパスを追加する」を参照して,既存のLUへのパスを追加してください。
(2) mdデバイスにMULTIPATH機能を使用している場合
MULTIPATH機能を使用したmdデバイスの環境に,HDLMを適用する手順を説明します。HDLMを適用するためには,mdデバイスのMULTIPATH機能を解除する必要があります。ここでは,MULTIPATH機能を使用したmdデバイスからLINEAR機能を使用したmdデバイスに,移行する場合を例に説明します。
- 注意事項
Red Hat Enterprise Linux 6は,MULTIPATH機能を使用したmdデバイスからLINEAR機能を使用したmdデバイスに移行できません。
次の手順では,/dev/sdo1および/dev/sdh1上の/dev/md0を,/dev/sddlmaa1上の/dev/md0に移行しています。「図3‒12 SCSIデバイス上にあるmdデバイス(mdデバイスのMULTIPATH機能を使用した環境)からHDLMデバイス上に移行した場合のデバイス構成」に示す環境は,次の手順で構築してください。
既存のmdデバイスを使用しているアプリケーションをすべて停止します。
必要に応じてmdデバイス上のアプリケーションのデータをバックアップします。
mdデバイス上にファイルシステムをマウントしている場合は,アンマウントします。
mdデバイスの状態を確認します。
次のコマンドを実行して,mdデバイスの構成状態を確認します。
# cat /proc/mdstat Personalities : [multipath] md0 : active multipath sdo1[0] sdh1[1] 5238528 blocks [2/2] [UU] unused devices: <none>
「md0 : active」と表示され,SCSIデバイスが表示されることを確認してください。「md0 : active」が表示されなかった場合は,mdデバイスを活性化させてください。
mdデバイスの設定をして,HDLMをインストールします。
「(1) mdデバイスにMULTIPATH機能を使用していない場合」の手順5から手順10を実行してください。
HDLMデバイスとSCSIデバイスの対応関係を確認します。
HDLM構成定義ユーティリティー(dlmcfgmgr)に-vパラメーターを指定して確認してください。
# dlmcfgmgr -v HDevName Management Device Host Channel Target Lun /dev/sddlmaa configured /dev/sdh 1 0 0 0 /dev/sdo 2 0 0 1 KAPL10302-I /sbin/dlmcfgmgr completed normally.
HDevName列はHDLMデバイス,Device列はSCSIデバイスになります。
mdデバイスを作成します。
手順6で表示されたHDLMデバイスとSCSIデバイスの対応関係を基に,mdデバイスを作成してください。
デバイス名を指定する場合は,必ずパーティション番号も指定してください。パーティション番号は,手順4で表示されたデバイスのパーティション番号を設定してください。
# mdadm -C /dev/md0 -llinear -f -n1 /dev/sddlmaa1 mdadm: /dev/sddlmaa1 appears to contain an ext2fs file system size=5238528K mtime=Wed Feb 6 19:17:08 2008 mdadm: /dev/sddlmaa1 appears to be part of a raid array: level=-4 devices=2 ctime=Wed Feb 6 19:16:07 2008 Continue creating array? y mdadm: array /dev/md0 started.
コンフィグレーションファイルを作成します。
次のコマンドを実行して,既存のコンフィグレーションファイル(/etc/mdadm.conf)にmdデバイスの定義を追加してください。
# mdadm --detail --scan | grep -w "/dev/md0" >> /etc/mdadm.conf
コンフィグレーションファイルの作成例を次に示します。下線部の行がこの手順で追加した行です。
# cat /etc/mdadm.conf DEVICE /dev/sdo1 /dev/sdh1 ARRAY /dev/md0 level=multipath num-devices=2 UUID=6b2ec21b:06d0f50b:bbf04d32:1e00b09a auto=yes ARRAY /dev/md0 level=linear num-devices=1 UUID=426a9f1c:9cfa6310:6aa9a80b:11ea2102
コンフィグレーションファイルの記述内容については,Linuxのマニュアルやmanコマンドを参照してください。
コンフィグレーションファイル(/etc/mdadm.conf)を作成し直した場合,コンフィグレーションファイル内の不要なARRAY行を削除します。
手順8で作成したARRAY行と同じmdデバイス名(md0)のARRAY行を削除してください。次の例では,下線部の行が削除対象になります。
# cat /etc/mdadm.conf DEVICE /dev/sdo1 /dev/sdh1 ARRAY /dev/md0 level=multipath num-devices=2 UUID=6b2ec21b:06d0f50b:bbf04d32:1e00b09a auto=yes ARRAY /dev/md0 level=linear num-devices=1 UUID=426a9f1c:9cfa6310:6aa9a80b:11ea2102
/etc/mdadm.confファイルを編集して,コンフィグレーションファイルのARRAY行に「auto=yes」を追加します。
DEVICE /dev/sdo1 /dev/sdh1 ARRAY /dev/md0 level=linear num-devices=1 UUID=426a9f1c:9cfa6310:6aa9a80b:11ea2102 auto=yes
コンフィグレーションファイルのDEVICE行のSCSIデバイス名をHDLMデバイス名に変更します。
手順6で表示されたHDLMデバイスとSCSIデバイスの対応関係を基に,DEVICE行のSCSIデバイス名をHDLMデバイス名に変更してください。
- 修正前
DEVICE /dev/sdo1 /dev/sdh1
- 修正後
DEVICE /dev/sddlmaa1
DEVICE行を編集する場合は,デバイス名だけを変更してください。パーティション番号は変更しないでください。
次のコマンドを実行して,mdデバイスを非活性化します。
# mdadm -Ss /dev/md0
mdデバイスが非活性化されていることを確認します。
mdデバイスにLINEAR機能が適用されている場合の実行例を次に示します。
# cat /proc/mdstat Personalities : [linear] [multipath]※ unused devices: <none>
「md0 : active」と表示されないことを確認してください。
- 注※
[multipath]は再起動するまで表示されますが,動作に問題はありません。
mdデバイスを活性化して,LUへパスを追加します。
「(1) mdデバイスにMULTIPATH機能を使用していない場合」の手順15から手順19を実行してください。
また,「(1) mdデバイスにMULTIPATH機能を使用していない場合」の手順17で[multipath]は再起動するまで表示されますが,動作に問題はありません。