EN JA
CCD(4)
CCD(4) FreeBSD Kernel Interfaces Manual CCD(4)

名称

ccd連結ディスクドライバ

書式

device ccd

解説

ccd ドライバは 1 つ以上のディスク/パーティションを結合して 1 つの仮想ディスクにする機能を提供します。

この文書は、利用者がどのようにカーネルを生成するか、カーネル設定ファイルでディスクとデバイスをどのように適切に設定するか、そして、どのようにディスクのパーティションを行なうかに詳しいと仮定しています。

ccd をサポートするようにコンパイルするために、利用者は次と同様の行をカーネル設定ファイルに追加しなければなりません。

device ccd # 連結ディスクデバイス

FreeBSD 3.0 リリース以後は、利用者はカーネルで ccd を設定する必要はなく、代わりにカーネルローダブルモジュールとしてそれを使用することができます。 ccdconfig(8) を単に実行することはモジュールをカーネルにロードします。

ccd はシリアル連結されるかインタリーブ (交互配置) できます。パーティションをシリアル連結するには、インタリーブファクタを 0 に指定します。ミラーリングはインタリーブファクタが 0 では使用できないことに注意してください。

ccd を設定するために使用される実行時ユーティリティがあります。詳細に関しては ccdconfig(8) を参照してください。

インタリーブファクタ

ccd が正しくインタリーブされるなら、“ストライピング”効果は達成されて、それは連続した読み書き性能を増加させることができます。インタリーブファクタは DEV_BSIZE (通常 512 バイト) 単位で表現されます。大量の書き込みのためには、最適なインタリーブファクタは通常トラックのサイズです。しかし一方、大量の読み込みのためには、それはトラックのおよそ 1/4 です。 (これはディスクの数と速度に大きく依存して変わることに注意してください。) 例えば、2 つの Fast-Wide SCSI バスの上の 8 つの 7,200 RPM (回転) ドライブでは、これは書き込みのためにはおよそ 128、そして読み込みのためには 32 になります。より大きいインタリーブは、ディスクが任意の与えられたプロセスから単一のディスクにファイル入出力を局所化することによってマルチタスクの負荷を取っているとき、よりよく動作する傾向があります。利用者ががこれを行なうとき、シーケンシャル (アクセス) 性能を失いますが、通常シーケンシャル (アクセス) 性能はマルチタスクの負荷の問題ではありません。

ミラーリング構成を使用するとき、利用者が 2 つのディスク (すなわち、レイアウトは結局インタリーブファクタが何であっても同じ結果となります) しか持たないときさえ、インタリーブファクタを指定しなければなりません。しかしながら、インタリーブファクタは入出力がどのように分割されかを決定し、そして、値 128 以上が勧められます。

ccd はパリティディスクのためのオプションがありますが、現在それは実装されていません。

すべてのコンポーネントディスクに同じジオメトリとサイズがあるなら、最も良い性能が達成されます。最適なストライピングは異なったディスクタイプで存在することができません。

ニュースサーバなどのランダムアクセス指向のワークロード (作業負荷) において、より大きいインタリーブファクタ (例えば、65,536) はより望ましいです。 ccd がシーク時間が制限されているアプリケーションを加速するためにできるたくさんのことはないことに注意してください。より大きなインタリーブファクタは少なくとも 1 つのディレクトリかファイルを読み込むために 2 つのディスクヘッドをシークしなければならない可能性を小さくします。

ディスクミラーリング

利用者は、任意の偶数のディスクを“ミラー”するために ccd を設定することができます。必要なフラグをどのように指定するかは ccdconfig(8) を参照してください。例えば、4 つのディスクを指定する ccd 設定がある場合、最初の 2 つのディスクが 2 番目の 2 つのディスクをミラーします。書き込み (write) はミラーの両方で実行されます。読み込み (read) はドライバが最も最適であること思っているものによりミラーのどちらかの側で実行されます。読み込みが失敗すると、ドライバは自動的にミラーの反対側から同じセクタの読み込みを試みます。現在の ccd はシーケンシャル負荷よりむしろマルチタスク負荷のための最適化した読み込みを行なうデュアルシークゾーンモデルを使用します。

ディスクが故障した場合、利用者は、失敗したディスクを回復するために dd(1) を使用することができます。

1 つのディスクの ccd はオリジナルのパーティションと同じでないことに注意してください。特にこれは、2 つのディスクでミラーされた ccd のファイルシステムがあり、1 つのディスクが機能しなくなれば、それ自体の残っているパーティションをマウントして使用できないことを意味します。利用者は 1 つのディスクの ccd としてそれを設定しなければなりません。最初にパーティションをバックアップ (控えを作る)、その次に、ディスクを取り替えて、それから、パーティションを復元することをしないで、ミラーされた ccd パーティションのディスクを取り替えることができません。

Linux 互換性

Linux 互換性モードは、 Linux の md(4) ドライバが生の (raw) デバイスで残されたラベルの読み込みを試みません。利用者は、デバイスの順序と利用者自身のインタリーブファクタを与えなければなりません。 Linux 互換性モードのとき、 ccd は、 Linux 専門用語からのインタリーブファクタを変換します。それは、利用者が Linux のチャンク (塊) サイズとして与えられた同じインタリーブファクタを与えることを意味します。

“legacy”モードの Linux md(4) デバイスがあるなら、 ccdconfig(8)CCDF_LINUX フラグを使用しないでください。代わりに CCDF_NO_OFFSET フラグを使用してください。その場合には、利用者自身のインタリーブファクタを変換しなければならなくて、通常、それは、2 の倍数の Linux のチャンク (塊) サイズです。

Linux RAID を使用することは、この方法は、潜在的に危険であり、そこでデータを破壊にすることができます。 FreeBSD は、 Linux によって使用されるラベルを読み込まないので、 Linux での変更は、互換性のあるレイヤ (層) を無効にするかもしれません。

しかしながら、これを使用することは、始めて RAID の読み込み書き込みでマウントする前に、互換性をテストするなら、合理的に安全です。ただマウントせずに ccdconfig(8) を使用することは、 Linux RAID に何も書き込みません。次に、利用者は、 -n フラグを使用して ccd デバイスで fsck.ext2fs ( ports/sysutils/e2fsprogs) を実行します。利用者は、そこで、ファイルをチェックするためにファイルシステムを読み込み専用でマウントすることができます。この作業をすべて行うなら、 ccd に関する問題は起こらないでしょう。 ccd の Linux 互換性モードが正しく動作しているときでさえ、 FreeBSDex2fs 実装のバグは、まだ利用者のデータを破壊するかもしれないことを覚えておいてください。

警告

ccd のちょうど 1 つ (以上) のディスクが機能しなくなった場合、利用者がディスクをミラーリングしていなければ、すべてのファイルシステムは失われます。

ミラーしているディスクの 1 つが失われても、利用者はまだデータのバックアップをとることができるはずです。書き込みエラーが発生する場合、しかしながら、そのセクタから読み込まれたデータは非決定性となります。書き込む前のデータが返されるかもしれないし、書き込んだデータが返されるかもしれません。書き込みエラーが発生する場合、利用者できるだけ早く、データを修復して再生するべきです。

ccd ディスクのためにインタリーブか他のパラメータを変更することは、通常、そのディスクに以前に存在したどんなデータも破壊されます。

関連ファイル

/dev/ccd*
ccd デバイス特殊ファイル。

歴史

連結ディスクドライバは、最初、the University of Utah (ユタ大学) で書かれました。
August 9, 1995 FreeBSD