訳註: これは作業してる最中のもので、本来、訳作業者以外は見えぬべきものです。 訳作業者以外は見ないでください。意味が反対になったりとか当然にあるから、 内容は利用しないでください。この言語への変換作業(翻訳作業)物に関しては、現在、オープンなライセンス条件ではありません。 十進240のコードのキャラクターを<240>に置換してる場合あり
Chapter15.Concatenated Disk Device (CCD) configuration

Table of Contents

15.1. Install physical media
15.2. Configure Kernel Support
15.3. Disklabel each volume member of the CCD
15.4. Configure the CCD
15.5. Initialize the CCD device
15.6. Create a 4.2BSD/UFS filesystem on the new CCD device
15.7. Mount the filesystem

CCD ドライバーは、いくつかの物理ディスクを1つの 仮想ボリューム に 結合 することを許します。 RAIDframe (Chapter16, NetBSD RAIDframe を見てください) もまた、RAID level 0 セットを作るのにこれを許しますが、 geometry の異なるディスクをまたいだ striping をすることを allow せず、, which is where CCD comes in handy. CCD はまた、 gained space ロスをともなうディスク性能向上のための インターリーブ も allows ですが、この例ではその機能は cover ません。

CCD の設定に要求されるステップは次のように:

  1. 物理メディアの Install

  2. カーネル support 設定

  3. Disklabel each volume member of the CCD

  4. CCD 設定ファイル設定

  5. CCD デバイス初期化

  6. 新しい CCD デバイスへのファイルシステム作成

  7. CCD ファイルシステムのマウント

この例では、 NetBSD/sparc 1.5 での CCD 設定を特集します。 CCD は、外部 50 ピン SCSI ポートにつながれた a generic external Sun disk pack chassis に住む 4 SCSI ディスクに構築し ます。

15.1.Install physical media

このステップはあなた自身の判断でプラットホームやハードウェアは自由に使ってください。

私の DMESG では:

Disk #1:
  probe(esp0:0:0): max sync rate 10.00MB/s
  sd0 at scsibus0 target 0 lun 0: <SEAGATE, ST32430N SUN2.1G, 0444> SCSI2 0/direct fixed
  sd0: 2049 MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4197405 sectors

Disk #2
  probe(esp0:1:0): max sync rate 10.00MB/s
  sd1 at scsibus0 target 1 lun 0: <SEAGATE, ST32430N SUN2.1G, 0444> SCSI2 0/direct fixed
  sd1: 2049 MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4197405 sectors

Disk #3
  probe(esp0:2:0): max sync rate 10.00MB/s
  sd2 at scsibus0 target 2 lun 0: <SEAGATE, ST11200N SUN1.05, 9500> SCSI2 0/direct fixed
  sd2: 1005 MB, 1872 cyl, 15 head, 73 sec, 512 bytes/sect x 2059140 sectors

Disk #4
  probe(esp0:3:0): max sync rate 10.00MB/s
  sd3 at scsibus0 target 3 lun 0: <SEAGATE, ST11200N SUN1.05, 8808 > SCSI2 0
  sd3: 1005 MB, 1872 cyl, 15 head, 73 sec, 512 bytes/sect x 2059140 sectors

15.2.Configure Kernel Support

次のカーネル設定命令 CCD デバイスサポートが提供されている事が必要で、それは GENERIC カーネルでは enabled で:

pseudo-device  ccd  4    # concatenated disk devices

私のカーネル設定では、不都合が起こらないように、 SCSI ID と /dev デバイスエントリーを固定するように hard code も していて:

sd0     at scsibus0 target 0 lun ?
# SCSI disk drives
sd1     at scsibus0 target 1 lun ?
# SCSI disk drives
sd2     at scsibus0 target 2 lun ?
# SCSI disk drives
sd3     at scsibus0 target 3 lun ?
# SCSI disk drives
sd4     at scsibus0 target 4 lun ?
# SCSI disk drives
sd5     at scsibus0 target 5 lun ?
# SCSI disk drives
sd6     at scsibus0 target 6 lun ?
# SCSI disk drives

15.3.Disklabel each volume member of the CCD

CCD の各 member ディスクには special ファイルシステム established.が必要です。この例では、ディスクラベルの必要があるのは:

/dev/rsd0c
/dev/rsd1c
/dev/rsd2c
/dev/rsd3c

ディスクラベルはブロックデバイスではなくてキャラクターデバイスに対して、 in /dev/r{s,w}d* を常に記憶しておいてください。

全 platforms で, c スライスは 全 NetBSD パーティションをあらわし、予約されています。

CCD において、たぶん、既存のディスクラベルを除去したいでしょう。 これは 2つの方法で成就することができ、 dd(1) コマンドで:

# dd if=/dev/zero of=/dev/rsd0c bs=8k count=1
# dd if=/dev/zero of=/dev/rsd1c bs=8k count=1
# dd if=/dev/zero of=/dev/rsd2c bs=8k count=1
# dd if=/dev/zero of=/dev/rsd3c bs=8k count=1

あなたの port が ディスクの パーティションに MBR (Master Boot Record) を使っているなら、 NetBSD パーティションはディスク全体の一部に過ぎず、 Windows や Linux のような 他の OS が他の部分を使い、 コマンドを使って MBR および ディスク上の全パーティションを無効化できて:

# dd if=/dev/zero of=/dev/rsd0d bs=8k count=1
# dd if=/dev/zero of=/dev/rsd1d bs=8k count=1
# dd if=/dev/zero of=/dev/rsd2d bs=8k count=1
# dd if=/dev/zero of=/dev/rsd3d bs=8k count=1 

これでディスク全体の全データがアクセスできなくなります。 註として ディスク全体はスライス d on i386 (およびいくつかの他の ports)、 および c elsewhere (例. sparc で)。 kern.rawpartition sysctl を見て - "3" なら "d"、 "2" なら "c" を指します。

ディスクの default ディスクラベルはこのような感じでしょう:

# disklabel -r sd0
[...snip...]
bytes/sector: 512
sectors/track: 116
tracks/cylinder: 9
sectors/cylinder: 1044
cylinders: 3992
total sectors: 4197405
[..snip...]
3 partitions:
#        size   offset    fstype   [fsize bsize   cpg]
  c:  4197405       0     unused     1024  8192        # (Cyl.    0 - 4020*)

ディスクの NetBSD パーティション上にパーティション全体を使い尽くす1つの スライス を 作る必要があります。特殊な CCD ディスクラベルにスペースを提供するため、 スライスは、ディスク/パーティションから最低1シリンダーのオフセットを与えて 始める必要があります。オフセットは 1x sectors/cylinder でなければなりません(次の註をみてください)。 それゆえ size 値は total sectors 引く 1x sectors/cylinder である必要があります。それに合うようにディスクラベルを編集してください:

# disklabel -e sd0

種類 ccd のスライス のオフセットは sectors/cylinder の値の倍数である必要があります。

ディスクラベルの編集の前に、 export EDITOR=[あなたの好きなエディターへのパス ] をしてください。

スライスの fstype は必ず ccd で。

このパーティション上には 1つのスライスだけなので、 c スライス (通常 symbolic な使い方で予約されています) をリサイクルできます。ディスクラベルを次のように変更し:

3 partitions:
#        size   offset    fstype   [fsize bsize   cpg]
  c:  4196361     1044       ccd                       # (Cyl. 1 - 4020*)

任意として、 c 以外のスライスを用いて構成でき、 単純にしかるべき調整をして下のように:

3 partitions:
#        size   offset    fstype   [fsize bsize   cpg]
  a:  4196361     1044       ccd                       # (Cyl. 1 - 4020*)
  c:  4197405       0     unused     1024  8192        # (Cyl. 0 - 4020*)

終わったら、ラベルを必ず書いてください。 Disklabel は健全性チェックを通らないディスクラベルに対して異議をとなえ、 再編集を問い掛けてきます。

15.4.Configure the CCD

一度、全てのディスクに正しくラベルがつけられれば、 設定ファイル /etc/ccd.conf の生成が必要です。ファイルは default では存在していないので、新しいのを作る必要があります。フォーマットは:

#ccd    ileave    flags   component    devices

ileave には、 ディスクの結合には、値 0 を使いますが、インターリーブには sectors/track 数と同じ値を使います。

この場合の例は:

# more /etc/ccd.conf
ccd0  0  none /dev/sd0c /dev/sd1c /dev/sd2c /dev/sd3c

CCD ドライバーは components としてブロックデバイスファイルを expects しています。 設定ではキャラクターデバイスファイルは絶対使わないでください。

15.5.Initialize the CCD device

一度あなたの CCD 設定が健全だと自信が持てれば、 ccdconfig(8) コマンドを使ってデバイスの初期化ができ: 設定するには:

# ccdconfig -C -f /etc/ccd.conf

Unconfigure解除には :

# ccdconfig -u -f /etc/ccd.conf

CCD デバイスの初期化で /dev エントリーが activate になり: /dev/{,r}ccd#:

# ls -la  /dev/{,r}ccd0*
brw-r-----  1 root  operator   9, 0 Apr 28 21:35 /dev/ccd0a
brw-r-----  1 root  operator   9, 1 Apr 28 21:35 /dev/ccd0b
brw-r-----  1 root  operator   9, 2 May 12 00:10 /dev/ccd0c
brw-r-----  1 root  operator   9, 3 Apr 28 21:35 /dev/ccd0d
brw-r-----  1 root  operator   9, 4 Apr 28 21:35 /dev/ccd0e
brw-r-----  1 root  operator   9, 5 Apr 28 21:35 /dev/ccd0f
brw-r-----  1 root  operator   9, 6 Apr 28 21:35 /dev/ccd0g
brw-r-----  1 root  operator   9, 7 Apr 28 21:35 /dev/ccd0h
crw-r-----  1 root  operator  23, 0 Jun 12 20:40 /dev/rccd0a
crw-r-----  1 root  operator  23, 1 Apr 28 21:35 /dev/rccd0b
crw-r-----  1 root  operator  23, 2 Jun 12 20:58 /dev/rccd0c
crw-r-----  1 root  operator  23, 3 Apr 28 21:35 /dev/rccd0d
crw-r-----  1 root  operator  23, 4 Apr 28 21:35 /dev/rccd0e
crw-r-----  1 root  operator  23, 5 Apr 28 21:35 /dev/rccd0f
crw-r-----  1 root  operator  23, 6 Apr 28 21:35 /dev/rccd0g
crw-r-----  1 root  operator  23, 7 Apr 28 21:35 /dev/rccd0h

15.6.Create a 4.2BSD/UFS filesystem on the new CCD device

ここで、 CCD と結合した新しい仮想ディスクデバイスに ディスクラベルを付けます:

# disklabel -e ccd0

もう一度、 1スライスだけなので、 c スライスをリサイクルして使うか、 separate スライスを作ります。

# disklabel -r ccd0
# /dev/rccd0c:
type: ccd
disk: ccd
label: default label
flags:
bytes/sector: 512
sectors/track: 2048
tracks/cylinder: 1
sectors/cylinder: 2048
cylinders: 6107
total sectors: 12508812
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0
#        size   offset    fstype   [fsize bsize   cpg]
  c: 12508812        0    4.2BSD     1024  8192    16  # (Cyl. 0 - 6107*)

ファイルシステムはそれからフォーマットされる必要があり:

# newfs /dev/rccd0c
Warning: 372 sector(s) in last cylinder unallocated
/dev/rccd0c:    12508812 sectors in 6108 cylinders of 1 tracks, 2048 sectors
        6107.8MB in 382 cyl groups (16 c/g, 16.00MB/g, 3968 i/g)

super-block backups (for fsck -b #) at:
[...]

15.7.Mount the filesystem

一度 CCD デバイス上にファイルシステムが作られれば、 そのファイルシステムをシステムのマウントポイントにマウントできます。 必ず、 ffs または 4.2BSD というスライスラベル type のものをマウントしてください:

# mount /dev/ccd0c /mnt

すると:

# export BLOCKSIZE=1024; df
Filesystem  1K-blocks     Used   Avail Capacity  Mounted on
/dev/sd6a      376155   320290   37057    89%    /
/dev/ccd0c    6058800       1  5755859     0%    /mnt

おめでとうございます。これで CCD は動作します。起動時の CCD デバイスの設定には /etc/rc.conf 中の ccd=yes をセットしてください。 /etc/fstab を調整して、 起動時にファイルシステムがマウントされるようにするには:

/dev/ccd0c  /home ffs     rw    1 2