CCDCONFIG(8) | FreeBSD System Manager's Manual | CCDCONFIG(8) |
名称
ccdconfig — 連結ディスクドライバのための設定ユーティリティ書式
ccdconfig | [ -cv] ccd ileave [ flags] dev ... |
ccdconfig | -C [ -v][ -f config_file] |
ccdconfig | -u [ -v] ccd ... |
ccdconfig | -U [ -v][ -f config_file] |
ccdconfig | -g [ ccd ...] |
解説
ccdconfig ユーティリティは、連結したディスクデバイス、または ccd を動的に設定して設定解除するために使用されます。 ccd に関する詳細については、 ccd(4) を参照してください。オプションは、次の通りです:
- -c
- ccd の設定を行います。 ccdconfig のデフォルトの動作です。
- -C
- 設定ファイルに書かれている全てのデバイスの設定を行います。
- -f config_file
- 全てのデバイスの設定あるいは解除を行う時に、デフォルトの /etc/ccd.conf ではなく、 config_file から設定情報を読み込みます。
- -g
- ccd の設定ファイルとして使用できる形式で、現在の ccd の設定を出力します。引数が指定されていなければ、設定されている全ての ccd について出力します。引数が指定されていれば、指定された ccd についてのみ出力します。
- -u
- ccd の設定を解除します。
- -U
- ccd 設定ファイルに書かれている全ての ccd デバイスの設定を解除します。
- -v
- ccdconfig は、より冗長な出力を行います。
ccd は、コマンド行ないし ccd 設定ファイルにて、ccd の名前、インタリーブファクタ、ccd 設定フラグ、ひとつ以上のデバイスのリストの情報により定義されます。フラグは、10 進数、16 進数、コンマで区切られた名前のリスト、“none”のいずれかで表すことができます。フラグは、次の通りです:
CCDF_UNIFORM 0x02 均一なインタリーブを使用 CCDF_MIRROR 0x04 ミラーリングをサポート CCDF_NO_OFFSET 0x08 オフセットを使用しない CCDF_LINUX 0x0A Linux md(4) 互換性
設定ファイルのフォーマットは、コマンド行から指定する場合と同一の形式になります。コマンド行から指定する場合も、設定ファイルから指定する場合も、 flags 引数はオプションです。
# # /etc/ccd.conf # 連結されたディスクデバイスのための設定ファイル # # ccd ileave フラグ 構成デバイス ccd0 16 none /dev/da2s1 /dev/da3s1
構成要素のデバイスは、パーティションタイプが FS_BSDFFS
( disklabel(8) では“4.2BSD”と表示されます) であることが必要です。
関連ファイル
- /etc/ccd.conf
- デフォルトの ccd 設定ファイル
使用例
ccdconfig の例をいくつか以下に示します。 ccdconfig に渡される引数は、 /etc/ccd.conf 設定ファイルに書けるものと正に同じものです。 1 番目の例は、 4 ディスクのストライプを 4 SCSI ディスクパーティションから作成します。ストライプは 64 セクタインタリーブを使用します。 2 番目の例は、複雑なストライプ/ミラーの組み合わせの例です。これは、 da4 と da5 の 2 ディスクストライプを、 da6 と da7 の 2 ディスクストライプへミラーすると、解釈します。最後の例は、単純なミラーです。 /dev/da8 の 2 番目のスライスは /dev/da9 の 3 番目のスライスへミラーされ、 ccd0 に割り当てられます。
# ccdconfig ccd0 64 none /dev/da0s1 /dev/da1s1 /dev/da2s1 /dev/da3s1 # ccdconfig ccd0 128 CCDF_MIRROR /dev/da4 /dev/da5 /dev/da6 /dev/da7 # ccdconfig ccd0 128 CCDF_MIRROR /dev/da8s2 /dev/da9s3
次は、 Linux で RAID-0 を作成し、 FreeBSD からそれを読み込むための Linux と FreeBSD のコマンドに適合しています。
# Linux で RAID-0 を作成: mdadm --create --chunk=32 --level=0 --raid-devices=2 /dev/md0 \ /dev/hda1 /dev/hdb1 # FreeBSD で利用可能な RAID-0 だけを作成する: ccdconfig -c /dev/ccd0 32 linux /dev/ada0s1 /dev/ada0s2
新規 ccd ディスクを作成するとき、一般的には他のことに先駆けて fdisk(8) と disklabel(8) をしたいでしょう。最初のラベルを作成した後は、これを編集して、追加パーティションを追加可能です。ラベル自身は、ccd ディスクの最初の 16 セクタを占めます。ファイルシステムを newfs で作成するだけなら、 newfs がラベル領域を飛ばしますので、心配することはありません。しかし、ccd パーティションからまたは ccd パーティション宛へ dd(1) するつもりなら、一般的には、パーティションを作成してラベルデータに重ならないようにするのが良い考えです。例えば、10000 セクタの ccd ディスクがある場合、オフセット 16 大きさ 9984 のパーティション 'd' を作成するでしょう。
# disklabel ccd0 > /tmp/disklabel.ccd0 # disklabel -Rr ccd0 /tmp/disklabel.ccd0 # disklabel -e ccd0
ccd ディスクに対する disklabel 処理は 1 度の機会です。マシンをリブートし ccd ディスクを再構成する場合、以前作成したディスクラベルが残っているため再作成は不要です。 ccd パラメータの変更には注意してください。インタリーブ、フラグ、ccd ディスクを構成するデバイスリストを変えると、通常、ccd ディスク上にあったデータを壊してしまいます。こうなってしまった場合、 ccd ディスクを (再) 初期化する前にラベルを再初期化するのは、通常良い考えです。
回復
ccd ディスク上のエラーは、ミラーリングオプションを使用していない限り、通常は回復不可能です。しかし、ミラーリングにはそれ自身の危険性があります。これは、すべてのセクタの両方のコピーが同一であることを仮定していることです。この仮定は、書き込みエラーが発生するか、どちらかのミラーを交換するまでは、成り立ちます。これは、貧者のミラーリング実装なのです。ディスクエラーが発生し始めたら、 ccd ディスクのバックアップを取って、壊れたハードウェアを交換して、 ccd ディスクを再作成可能である限りは、この実装は十分うまく働きます。これ以上を望むなら、外部ハードウェア RAID SCSI ボックスや、 RAID コントローラ (GENERIC を参照して下さい) や、 geom(8) や gvinum(8) 等のソフトウェア RAID システムを検討すべきです。歴史
ccdconfig ユーティリティは、 NetBSD 1.0a ではじめて登場しました。バグ
ccd(4) が最初に返すディスクラベルは、3 個のパーティションしか指定しません。“ disklabel -e”を使用し、 BSD が期待するように、パーティション数を 8 に変更する必要があります。October 1, 2013 | FreeBSD |