Solaris ボリュームマネージャの管理

growfs コマンドによるファイルシステムの拡張

ファイルシステムが格納されているボリュームを拡張 (領域を追加) したときに、そのボリュームに UFS が格納されている場合は、ファイルシステムを拡張して新しい領域が認識されるようにする必要があります。 ファイルシステムの拡張は、growfs コマンドを使って手動で行う必要があります。 growfs コマンドは、マウントされているファイルシステムも拡張できます。 ただし、growfs コマンドの実行中は、ファイルシステムに書き込みアクセスを行うことはできません。

データベースなど、raw デバイスを使用するアプリケーションは、独自の方法で領域を拡張できなければなりません。 Solaris ボリュームマネージャには、この機能はありません。

growfs コマンドは、ファイルシステムを拡張する間、マウントされているファイルシステムを「書き込みロック」します。 ファイルシステムが書き込みロックされている時間を短縮する必要がある場合は、ファイルシステムを段階的に拡張できます。 たとえば、1G バイトのファイルシステムを 2G バイトに拡張する場合は、-s オプションを使って新しいファイルシステムの合計サイズを拡張処理の各段階で指定することによって、ファイルシステムを 16M バイト単位で拡張できます。

拡張処理の間はファイルシステムが書き込みロックされるため、このファイルシステムへの書き込みは実行できません。 書き込みアクセスは growfs コマンドがファイルシステムのロックを解除するまで自動的に中断され、ロックが解除されると再開されます。 読み取りアクセスには影響はありませんが、ロックが行われている間の読み取りアクセス時間は保証されません。

スライスやボリュームを拡張するための背景情報


Solaris ボリュームマネージャのボリュームは拡張することはできますが、縮小することはできません。


Procedureファイルシステムを拡張するには

手順
  1. 「Solaris ボリュームマネージャコンポーネントを作成するための前提条件 」を確認します。

  2. growfs コマンドを使ってローカルボリュームの UFS を拡張します。


    # growfs -M /mount-point /dev/md/rdsk/volumename
    

    詳細は、次の例と growfs(1M) のマニュアルページを参照してください。


例 225 ファイルシステムを拡張する


# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
...
/dev/md/dsk/d10        69047   65426       0   100%    /home2
...
# growfs -M /home2 /dev/md/rdsk/d10
/dev/md/rdsk/d10:       295200 sectors in 240 cylinders of 15 tracks, 82 sectors
        144.1MB in 15 cyl groups (16 c/g, 9.61MB/g, 4608 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 19808, 39584, 59360, 79136, 98912, 118688, 138464, 158240, 178016, 197792,
 217568, 237344, 257120, 276896,
# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
...
/dev/md/dsk/d10       138703   65426   59407    53%    /home2
...

この例では、新しいスライスがボリューム d10 にすでに追加されています。このボリュームには、マウントされているファイルシステム /home2 があります。 growfs コマンドでは、-M オプションを使ってマウントポイントに /home2 を指定し、これを raw ボリューム /dev/md/rdsk/d10 上に拡張します。 growfs コマンドが終了すると、このファイルシステムはボリューム全体を占めます。 拡張の前後で df -hk コマンドを使用すれば、全体のディスク容量を確認できます。

ミラーやトランザクションボリュームの場合は、サブミラーやマスターデバイスに領域を追加する場合でも、必ずトップレベルのボリューム (サブミラーやマスターデバイスではなく) に対して growfs コマンドを実行する必要があります。