9個以上のディスクスライス作成UNIX処方箋

「事件は枯れたシステムが稼働する現場で起こってるんだ」と現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、SolarisでVolumeManagerを用いたソフトパーティーションの作成法について解説する。

» 2008年03月19日 01時00分 公開
[ITmedia]

Solaris 9のマシンに2TバイトのRAID装置を接続し、ファイルサーバとして使用しようと考えています。全容量を1つのスライスに割り当てると管理しづらくなるので、サーバを使用するユーザーごとにパーティーションを分けたいのですが、fdiskコマンドを使用すると8つまでしかスライスを作れません。9つ以上のスライスを作ることはできないのでしょうか?


Solaris 9では、VolumeManager*が利用できます。このツールを使うと、スライスまたはボリューム*上に、論理ボリュームとして最大で8192個*の「ソフトパーティーション」を作成できます。

 ソフトパーティーションの作成/拡張/削除には表1に挙げたコマンドを利用します。

目的 利用コマンド 書式
ソフトパーティションの作成 metainit metainit <ソフトパーティション名(dnnnn)> -p <スライスまたはボリューム名> <サイズ(m/g/t/b)>
ソフトパーティションの情報確認 metastat metastat <ソフトパーティション名(省略可)>
ソフトパーティションの拡張 metattach metattach <既存ソフトパーティション名> <サイズ>
ソフトパーティションの削除 metaclear metaclear <ソフトパーティション名>
スライス上にあるソフトパーティションすべてを削除 metaclear metaclear -p <スライスまたはボリューム名>
表1 ソフトパーティション関連コマンド(抜粋)

ソフトパーティーションの作成

ソフトパーティーションを作成するには、metainitコマンドを利用します。実行例1のように、ソフトパーティーション名はdnnnn(nnnnは0から8191までの数字)、サイズは数字と単位(m:Mバイト、g:Gバイト、t:Tバイト、b:ブロック数)の組み合わせで指定します。


# metainit d0 -p /dev/dsk/c0t1d0s0 200m

実行例1 200Mバイトのソフトパーティションを/dev/dsk/c0t1d0s0に作成する

 作成したソフトパーティーションは、通常のボリュームのようにファイルシステムの作成を行った後でマウントできるようになります(実行例2)。また、ソフトパーティーションの情報を確認するには、metastatコマンドを使用します。


# newfs /dev/md/dsk/d0
# mount /dev/md/dsk/d0 /test
# df -h
ファイルシステム     サイズ 使用済み 使用可能 容量    マウント先
/dev/md/dsk/d0         188M     9K   169M     1%  /test

実行例2 ソフトパーティションは、ファイルシステムの作成を行った後、マウントできるようになる

ソフトパーティーションの拡張

 ソフトパーティーションでは、マシンを止めずに領域を拡張できます。拡張にはmetattachコマンドを使用し、実行例4のように実行します。

 ただし、ソフトパーティーションを使ってさらにミラーリングなどのRAIDを組んでいる場合は拡張できません。また、拡張したいソフトパーティーションがあるボリュームまたはスライスの容量に空きがあることが条件です。


# metastat | head -4
d0: Soft Partition
    Device: c0t0d0s5
    State: Okay
    Size: 409600 blocks (200 MB) ← 元は200Mバイト

# metattach d0 200m d0: ソフトパーティションが拡張されました
# metastat | head -4 d0: Soft Partition     Device: c0t0d0s5     State: Okay     Size: 819200 blocks (400 MB) ← 400Mバイトに変わる
実行例4 既存ソフトパーティションd0を200Mバイト拡張する

ファイルシステムの作成

 ソフトパーティーションを拡張したら、growfsコマンドでファイルシステムの作成を行います。


# df -h
ファイルシステム     サイズ 使用済み 使用可能 容量    マウント先
/dev/md/dsk/d0         188M     9K   169M     1%   /test    ←初めは188Mバイト
#
# growfs -M /test /dev/md/rdsk/d0
警告: 最終シリンダで304セクターが割り当てられません。
/dev/md/rdsk/d0:       全セクター数: 819200 (シリンダ数: 813、トラック数: 16、
セクター数: 63)
        400.0MB、51シリンダグループ(16 c/g, 7.88MB/g, 3776 i/g)
スーパーブロックのバックアップの位置(fsck -F ufs -o b=# のため) :
 32, 16224, 32416, 48608, 64800, 80992, 97184, 113376, 129568, 145760,
 661856, 678048, 694240, 710432, 726624, 742816, 759008, 774176, 790368,
 806560,
#
# df -h
ファイルシステム     サイズ 使用済み 使用可能 容量    マウント先
/dev/md/dsk/d0         376M     9K   357M     1%   /test    ←倍の376Mバイトに変わる

 /testにマウントされている拡張済みのd0にファイルシステムを作成する場合

ソフトパーティーションの削除

 ソフトパーティーションを消すには、metaclearコマンドを使用します。また、スライス上にあるソフトパーティーションすべてを削除する場合は、「-p」オプションをつけて実行します。例えば、c0t1d0s0にあるソフトパーティーションをすべて削除する際には、以下のように実行します。


# metaclear -p c0t0d0s0

このページで出てきた専門用語

VolumeManager

従来はDiskSuiteと呼ばれていたが、Solaris 9でVolumeManagerと名称が変更された。

ボリューム

単一の論理デバイスとしてシステムに認識される物理スライスの集合。DiskSuiteでは、このような論理デバイスを「メタデバイス」と呼んでいたが、VolumeManagerでは「ボリューム」と表記されるようになった。

最大で8192個

デフォルトではd0からd127までの128個の論理ボリュームしかサポートしていない。この制限を外す方法に関しては、Sunより提供されている「Solarisボリュームマネージャの管理」を参照。


関連キーワード

Solaris | RAID | UNIX | UNIX処方箋


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ