Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Global Network Block Device

Red Hat Enterprise Linux 5

Red Hat Global File System を持つ GNBD の使用

エディッション 3

概要

このドキュメントは Red Hat Enterprise Linux 5 対応の Red Hat GFS を 持つ Global Network Block Device (GNBD) の使用に関する概要を提供します。

はじめに

1. このガイドについて

このガイドは、Global File System (GFS) を持つ Global Network Block Device (GNDB) の使い方を 説明しています。デバイスマッパーマルチパス、GNDB ドライバーとコマンドの使用法、 そして GNBD サーバーノード上での GFS の実行についての説明が含まれます。

2. 対象者

このガイドは、Linux オペレーティングシステムを実行しているシステムの 管理に携わるシステム管理者によって使用されることを意図しています。そして Red Hat Enterprise Linux 5 及び GFS ファイルシステムの管理に精通している 必要があります。

3. ソフトウェアバージョン

表1 ソフトウェアバージョン

ソフトウェア 説明
RHEL5
RHEL5 とそれ以降を意味します
GFS
RHEL5 とそれ以降対応の GFS を意味します

5. フィードバック

誤字・脱字を見つけたり、又はこのマニュアルを改善するアイデアをお持ちの場合は、 弊社までご連絡下さい。その際には、このコンポーネント rh-cs に対して Bugzilla ( http://bugzilla.redhat.com/bugzilla/) 内でレポートを提出して下さい。
Be sure to mention the manual's identifier:
Bugzilla component: Documentation-cluster
Book identifier: Global_Network_Block_Device(EN)-5 (2009-01-05T15:25)
By mentioning this manual's identifier, we know exactly which version of the guide you have.
ドキュメントの改善案をお持ちの場合は、できるだけ詳しい記述をお願いします。 エラーを発見された場合は、そのセクション番号や周辺の文章を含めて頂くと 弊社で簡単に発見できるようになります。

第1章 Red Hat GFS と共に GNBD を使用

GNBD (Global Network Block Device) は イーサネット LAN でのブロックレベルの ストレージアクセスを提供します。GNBD コンポーネントは GFS ノードではクライアント として稼働し、GNBD サーバーノードではサーバーとして稼働します。GNBD サーバーノードは そのローカルストレージ(直接接続したストレージ、又は SAN ストレージ)から GFS ノードへ ブロックレベルのストレージをエキスポートします。
表1.1「GNBD ソフトウェアサブシステムコンポーネント」 summarizes the GNBD software subsystems components.

表1.1 GNBD ソフトウェアサブシステムコンポーネント

ソフトウェアサブシステム コンポーネント 説明
GNBD gnbd.ko クライアント上に GNBD デバイスドライバーを実装するカーネルモジュール。
gnbd_export GNBD サーバー上で GNBD 群を作成、エキスポート、及び管理するコマンド。
gnbd_import GNBD クライアント上で GNBD 群をインポートと管理するコマンド。
gnbd_serv ノードがネットワーク上でローカルストレージをエキスポート出来るようにするサーバーデーモン。
GNBD サーバーがデバイスマッパーマルチパスと一緒に機能するように設定することが できます。デバイスマッパーマルチパスを持つ GNBD により、複数の GNBD サーバー ノードを設定してストレージデバイスまでの冗長パスを提供することができるように なります。GNBD サーバー群はそこで、冗長 GNBD 群を介して GFS ノード群への 複数ストレージパスを提供します。デバイスマッパーマルチパスを持つ GNBD を使用する時、 1つの GNBD サーバーノードが使用不可能になった場合は、他の GNBD サーバーノードが GFS ノードにストレージデバイスへのアクセスを提供します。
これは、Red Hat GFS を持つ GNBD の使用法を文書化しており、以下の章で構成 されます:

第2章 Device-Mapper Multipath を持つ GNBD の使用を考慮する

デバイスマッパーマルチパスを使用する GNBD により、複数の GNBD サーバーノード (GNBD 群を GFS ノードにエキスポートするノード群)を設定してストレージ デバイスへの冗長パスを提供できるようになります。GNBD サーバーノード群は、そこで 冗長 GNBD 群を介して GFS ノードへの複数ストレージパスを提供します。デバイスマッパー マルチパスを持つ GNBD を使用する時、1つの GNBD サーバーノードが使用不可能に なった場合には、別の GNBD サーバーノードが、GFS ノードにストレージへのアクセスを提供することができます。
デバイスマッパーマルチパスを持つ GNBD を使用している場合、以下の事項を 考慮する必要があります:

2.1. Linux ページキャッシング

For GNBD with device-mapper multipath, do not specify Linux page caching (the -c option of the gnbd_export command). All GNBDs that are part of a logical volume must run with caching disabled. Data corruption occurs if the GNBDs are run with caching enabled. Refer to 「サーバーから GNBD をエキスポート」 for more information about using the gnbd_export command for GNBD with device-mapper multipath.

2.2. GNBD サーバーノードフェンシング

GNBD サーバーノードは、ネットワークから物理的にノードを取り除くフェンシング メソッドを使用してフェンスされる必要があります。物理的に GNBD サーバーノードを 取り除くには、次の項目以外の他のフェンシングデバイスを使用します: fence_brocade フェンスエージェント、fence_vixel フェンスエージェント、fence_mcdata フェンスエージェント、 fence_sanbox2 フェンスエージェント、fence_scsi フェンスエージェント。更に、GNBD フェンシングデバイス(fence_gnbd フェンシングエージェント)を使用して GNBD サーバーノードをフェンスすることは できません。 GNBD サーバーノード用のフェンシングの設定に関する詳細情報には、『Global File System 』 マニュアルを参照して下さい。

第3章 GNBD ドライバーとコマンドの使用

Global Network Block Device (GNBD) ドライバーはノードがそのローカルストレージを GNBD として ネットワーク上でエキスポートできるようにして、そのネットワークの他の ノードがストレージを共有出来るようにします。GNBD をインポートするクライアントノードは それを普通のブロックデバイスのように使用します。複数クライアント上での GNBD の インポートは、GFS を使用可能にする共有ストレージの設定を形成します。
GNBD ドライバーは以下のコンポーネントを通じて実装されます。
  • gnbd_serv — GNBD サーバーを実装します。これは、 ノードがネットワーク上でローカルストレージをエキスポートできるようにする user-spaceデーモンです。
  • gnbd.ko — GNBD クライアント (GNBD デバイスを使用しているノード) 上で GNBD デバイスドライバーを実装します。
次の2つのユーザーコマンドを使用して GNBD を設定できます:
  • gnbd_export (for servers) — User program for creating, exporting, and managing GNBDs on a GNBD server.
  • gnbd_import (クライアント用) — GNBD クライアント上で GNBD 群のインポートと管理をする為のユーザープログラムです。

3.1. サーバーから GNBD をエキスポート

gnbd_serv デーモンは、それが GNBD としてストレージを エキスポートできるようになるにはノード上で稼働している必要があります。以下のように して gnbd_serv コマンドを使用して、gnbd_serv デーモンを開始します:
#gnbd_serv
gnbd_serv: startup succeeded
ローカルストレージがエキスポート用に識別されると、そのエキスポートの ために gnbd_export コマンドが使用されます。

注記

デバイスマッパーマルチパスを持つ GNBD サーバーを設定する時は、ページキャッシングを 使用してはいけません。論理ボリュームの一部となっている全ての GNBD 群はキャッシングを 無効にして実行する必要があります。デフォルトで、gnbd_export コマンドはキャッシングをオフにしてエキスポートします。

注記

GNBD をインポートするのはクライアントであるため、サーバーは GNBD をインポートしてそれを 使用すべきではありません。サーバーがキャッシュ化されていないデバイスをエキスポート した場合、背後にあるデバイスも gfs によって使用されます。

使用法

gnbd_export -d pathname -e gnbdname [-c][-u][-U
pathname
エキスポートするストレージデバイスを指定します。
gnbdname
GNBD の為に選択された任意の名前を指定します。これは GNBD クライアント上で デバイス名として使用されます。この名前は、ネットワーク内でエキスポートされる 全ての GNBD 群内で特有のものである必要があります。
-o
読み込み専用としてデバイスをエキスポートします。
-c
キャッシングを有効にします。エキスポートされた GNBD から読み込み、Linux ページ キャッシングを活用します。
デフォルトで、gnbd_export コマンドはキャッシングを 有効にしません。

注記

デバイスマッパーマルチパスを持つ GNBD サーバーを設定する時は、-c オプションを指定しないで下さい。論理ボリュームの一部となっている全ての GNBD 群は キャッシングを無効にして実行される必要があります。

注記

GFS 5.2 又はそれ以前のバージョンを使用していて、GNBD 設定を変更したくない 場合は、-c オプションを指定する必要があります。 GFS Release 5.2.1 以前は、Linux キャッシングは gnbd_export 用に デフォルトで有効になっていました。-c オプションが指定されていない 場合は、GNBD は認知できるほどのパフォーマンス低下を受けます。また、-c オプションが指定されていないと、エキスポートされた GNBD はデフォルトの タイムアウト値 (-t オプション) を使用してタイムアウトモードで動作します。 gnbd_export コマンドとそのオプションに関する詳細情報については gnbd_export man ページを参照して下さい。
-u uid
エキスポートされたデバイスに手動で、汎用識別子(UIDーUniversal Identifier)をセットします。 このオプションは -e と一緒に使用されます。UID はデバイスマッパー マルチパスによって使用されて、マルチパスマップ内に所属するデバイスを決定します。 マルチパス化をするにはデバイスは UID を持っている必要があります。しかし、ほとんどの SCSI デバイスでは、デフォルトの Get UID コマンド /usr/sbin/gnbd_get_uid が適切な値を返します。

注記

UID は GNBD 自身ではなく、エキスポートされているデバイスを参照します。 2つの GNBD デバイスの UID は、同じ背後のデバイスをエキスポートしている 場合にのみ同一となる必要があります。これは、両方の GNBD サーバーが 同じ物理デバイスに接続されていると言う意味です。

注記

-U command オプションが機能 しない場合に、このオプションは共有ストレージデバイスのエキスポートの為にのみ 使用されるものです。この状態は SCSI デバイスではほとんど発生しません。2つの GNBD デバイスが同じ背後のデバイスをエキスポートしていないのに、同じ UID を与えて ある場合には、データ破損が生じます。
-U Command
UID 取得のコマンドです。UID コマンドは、gnbd_export コマンドがエキスポートされたデバイス用に汎用識別子を取得する 為に実行するコマンドです。UID は GNBD でデバイスマッパーマルチパスを使用する 為に必要となります。このコマンドは実行したい実行ファイルの完全なパスを使用する 必要があります。そのコマンドには、%M、%m、あるいは、%n のエスケープシーケンスを 含むことができます。%M はエキスポートされたデバイスのメジャー番号に展開され、%m は エキスポートされたデバイスのマイナー番号に展開されます。そして %n はそのデバイスの sysfs 名に展開されます。コマンドが与えられない場合は、GNBD は デフォルトのコマンド /usr/sbin/gnbd_get_uid を使用します。 このコマンドはほとんどの SCSI デバイスで機能します。

サンプル

このサンプルは GNBD マルチパスで設定された GNBD サーバーの為のものです。 これは デバイス /dev/sdc2 を GNBD gamma としてエキスポートします。キャッシュはデフォルトで無効になっています。
gnbd_export -d /dev/sdc2 -e gamma -U
このサンプルは GNBD マルチパスで設定されていない GNBD サーバーの為のものです。これはデバイス /dev/sdb2 を キャッシュが 有効になっている GNBD delta としてエキスポートします。
gnbd_export -d /dev/sdb1 -e delta -c
このサンプルは デバイス /dev/sdb2 を GNBD delta としてキャッシュを有効に した状態でエキスポートします。
gnbd_export -d /dev/sdb2 -e delta -c

3.2. クライアント上で GNBD をインポート

gnbd.ko カーネルモジュールは、それが GNBD 群を インポートできるようになるには、ノード上でロードされている必要があります。 GNBD 群がインポートされる時には、デバイスノード群がその為に /dev/gnbd/ 内で作成されてそれがエキスポートされた時の名前を割り当てられています。

使用法

gnbd_import -i Server
Server
GNBD 群のインポート元となるホスト名、又は IP アドレスによって GNBD サーバーを 指定します。このサーバーからエキスポートされた全ての GNBD 群はこのコマンドを 実行しているクライアント上でインポートされます。

サンプル

このサンプルは nodeA と言う名前のサーバーから全ての GNBD 群をインポートします。
gnbd_import -i nodeA

第4章 GNBD サーバーノード上で GFS の実行

GFS は少々の制限を持って、 GNBD サーバーノード上で実行することが できます。その上、GNBD サーバーノード上で GFS を実行すると、パフォーマンスが 減少します。以下の制限が GNBD サーバーノード上で GFS を実行する場合に適用 されます。

重要

GNBD サーバーノード上で GFS を実行している場合には、一覧表示してある制限に 従わなければなりません。さもないと GNBD サーバーノードは失敗します。
  1. GNBD サーバーノードは、GFS ファイルシステムをマウントするのに必要な 全てのストレージデバイスにローカルアクセスできなければなりません。 GNBD サーバーノードは、他の GNBD デバイスをインポートして(gnbd_import コマンド)ファイルシステムを実行することは出来ません。
  2. GNBD サーバーは、全ての GNBD を非キャッシュ化モードでエキスポート しなければなりません。そして、論理ボリュームデバイスではなく、生の (raw)デバイスをエキスポートしなければなりません。
  3. GFS は生の(raw)デバイスではなく、論理ボリュームデバイス上で 実行しなければなりません。

注記

低下したパフォーマンスを受け入れるために、エキスポートした GNBD 上で タイムアウトの期間を増加する必要があるかも知れません。タイムアウトの期間を 増加する必要度はハードウェアの品質により決定されます。

付録A 改訂履歴

改訂履歴
改訂 3-7.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
改訂 3-72012-07-18Anthony Towns
Rebuild for Publican 3.0
改訂 1.0-0Thu Jan 29 2009

法律上の通知

Copyright © 2009 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.