Solstice DiskSuite 4.2.1 リファレンス

シンプルメタデバイスと開始ブロック

複数のスライスで構成されるシンプルメタデバイスを作成すると、先頭以外のスライスでは、スライスがシリンダ 0 から開始されている場合には、先頭のディスクシリンダは無視されます。たとえば、metastat(1M) コマンドで次のようなリストが出力されたとします。


# metastat d0
 
d0: Concat/Stripe
    Size: 3546160 blocks
    Stripe 0: (interface: 32 blocks)
        Device              Start Block  Dbase
        c1t0d0s0                   0     No
        c1t0d1s0                   1520  No
        c1t0d2s0                   1520  No
        c1t0d2s0                   1520  No
        c1t1d0s0                   1520  No
        c1t1d1s0                   1520  No
        c1t1d2s0                   1520  No

このリストを見ると、最初のスライス以外は、すべてブロック 1520 から開始されていることがわかります。これは、最初のスライス以外のすべてのスライスでは、ディスクセクターの先頭にディスクラベルを保存するためです。メタデバイスドライバは、ストライプ境界を越えてアクセスをマッピングする場合には、最初のディスク以外の少なくとも先頭セクターをスキップしなければなりません。先頭セクターのみをスキップすると、ディスクのジオメトリ (幾何学的配置) が不規則になるため、これらのディスクでは先頭シリンダ全体をスキップしています。こうすることで、上位レベルのファイルシステムソフトウェア (UFS) が、ブロック割り当てを正しく最適化できるようになります。このため、DiskSuite ではディスクラベルの上書きを禁止しており、先頭シリンダを意図的にスキップしています。

単純連結またはストライプにおいて、先頭シリンダをスキップしないスライスが存在しますが、この理由は UFS 側にあります。既存のファイルシステムから連結方式メタデバイスを作成して、後から領域を追加すると、データが失われます。これは、先頭シリンダがデータの開始位置として認識されているためです。