SCSI ディスクの制限: Linux 上のディスク装置数の定義

このセクションでは、SCSI ディスクの制限について理解するための情報を提供します。

Linux カーネルは、 静的なメジャー・ナンバーおよびマイナー・ナンバーによるアドレス・メカニズムを使用します。 カーネルが SCSI ディスク装置用に予約するメジャー・ナンバーの数は制限されています。 そのため、使用可能なメジャー・ナンバーに応じて、存在できる SCSI ディスク装置の数も制限されます。 SCSI ディスク装置に使用できるメジャー・ナンバーの数は、配布カーネルのレベルによって異なります。

Linux 2.4 カーネルの場合、サポートされる Linux ホスト・システムで使用できる構成可能装置の最大数は 128、256、または 2304 のいずれかです。 マイナー・ナンバーには 8 ビットが予約されているため、メジャー・ナンバーごとに 28 または 256 個のマイナー・ナンバーが使用可能です。 規則により、SCSI ディスクではそれぞれのメジャー・ナンバーごとに 16 個のマイナー・ナンバーが予約されているため、ディスク当たり、最大 15 のパーティションを作成することができます。 各ディスクとそこに含まれるパーティションを記述するために 16 個のマイナー・ナンバーが使用され、使用可能なマイナー・ナンバーが 256 個であるとき、256 ÷ 16 = 16 という計算により、1 つのメジャー・ナンバーによって記述できるディスクの数は 16 になります。

SCSI デバイスには、これまで 8 つのメジャー・ナンバーが予約されていました。 メジャー・ナンバーは、8、65、66、 67、68、79、70、および 71 です。 RHEL 2.1 および RHEL3 では 8 個の予約済みメジャー・ナンバーが使用されます。したがって、8 個の予約済みメジャー・ナンバーがあり、メジャー・ナンバーごとに 16 のディスクが使用可能な場合、これらのカーネルは 8 x 16 = 128 という計算式により、最大 128 のディスクを記述することができます。以前の SuSE SLES8 カーネルでは、16 個のメジャー・ナンバーが予約されたため、最大 256 の装置をサポートできました。 追加のメジャー・ナンバーは、128、129、130、131、132、133、 134 および 135 です。

それ以降の新しいカーネルは動的構成方式に移行しています。この方式では、最初の 16 個の予約済みメジャー・ナンバーが使用された後に、いくつのメジャー・ナンバーでも使用できます。 最新の SuSE SLES 8 カーネル正誤表にはこの変更が組み込まれており、SCSI ディスク装置に割り当てられるメジャー・ナンバーが 144 を超えないように制限されています。 このため、これらのカーネルがサポートできるディスク装置の最大数は 2304 になります。

一般に、Linux ホスト・システム用の装置の最大数は、 装置の数 = (メジャー・ナンバーの数) x (マイナー・ナンバーの数) ÷ (パーティションの数) という数式を使用して求めます。 たとえば、装置の数 = 8 x 256 ÷ 16 = 128 または 装置の数 = 144 x 256 ÷ 16 = 2304 となります。

Linux 2.6 カーネルでは、メジャーおよびマイナー・ビットの数がそれぞれ 12 および 20 ビットに増えたため、Linux 2.6 カーネルは数千ものディスクをサポートできます。 ただし、ディスク当たり最大 15 のパーティションのみという制限は引き続き存在します。

ディスク装置の数を制限するその他の要因

Linux で、ホスト・アダプター・ドライバーをモジュールとしてロードする場合は、 構成可能なディスクの総数に対してカーネルの制限があります。この制限は、 カーネルによりサポートされる総数 (通常は、128 または 256) よりも少ない可能性があります。システムにロードされた最初のモジュールは、 検出されたディスクを、カーネルがサポートする最大数に構成することがあります。 後続のドライバーは、固定の、より少ないドライブの数に構成が制限されます。これらのドライバーは、最初のホスト・アダプター・ドライバーをロードした後で、 静的に割り振りした装置構造のプールをすべて共用します。割り振りされる装置構造の数は、 カーネルのコンパイル時に、CONFIG_SD_EXTRA_DEVS パラメーターによって設定されます。 通常、この値は 40 でしたが、新しい Red Hat カーネルでは 128 または 256 に設定されています。

たとえば、内部に SCSI Adaptec ホスト・アダプターおよび 1 台のディスクを備えたシステムを考えてみます。このシステムはファイバー接続ディスク、および 40 に設定された CONFIG_SD_EXTRA_DEVS パラメーターを含んでいます。Adaptec ホスト・アダプター・ドライバーは、接続された単一のディスクを最初にロードし、 構成します。この時点で、システムは 128 台または 256 台の最大数の代わりに、 合計 41 台の SCSI ディスクに制限します。ファイバー・チャネル・ファブリックに、40 台を超えるディスクが見える場合は、システムは最初の 40 台のみを構成し、 使用します。/proc/scsi/scsi ディレクトリーにすべてのファブリック・デバイスがリストされる場合もありますが、最初の 40 台のみが SCSI ディスク・ドライバー scsi_mod によって構成されます。この制限は、マルチパス・ファブリック状態で多く発生します。

2304 の SCSI ディスクをサポートする、やや新しい SuSE SLES8 カーネルの場合、CONFIG_SD_EXTRA_DEVS パラメーターは CONFIG_SD_MAX_MAJORS パラメーター (デフォルト値 144) と置き換えられています。 Linux 2.6 カーネルでは、この両方のパラメーターが廃止され、必要なくなっています。

SCSI ディスクの問題の識別および解決

このセクションでは、SCSI ディスクの使用中にストレージ・ユニットで起こるいくつかの問題について説明します。
ライブラリー | サポート | ご利用条件 | フィードバック
© Copyright IBM Corporation 2004, 2006. All Rights Reserved.