UFS ロギングに移行するためには、ログ用に 1M バイト以上の空き領域が必要です (デフォルトのシステム設定を使用する場合)。これはログが、ログボリュームに置かれるためです。十分な空き領域がない場合は、ファイルを削除するか、ファイルシステムを拡張してから変換手順を実行する必要があります。
metastat コマンドを使って、トランザクションボリュームと、対応するログデバイスを特定し、出力中で Trans と Logging device を探します。
# metastat
d2: Trans
State: Okay
Size: 2869209 blocks
Master Device: d0
Logging Device: d20
d20: Logging device for d2
State: Okay
Size: 28470 blocks
d20: Concat/Stripe
Size: 28728 blocks
Stripe 0: (interlace: 32 blocks)
Device Start Block Dbase State Reloc Hot Spare
d10 0 No Okay No
d11 0 No Okay No
d12
|
後で必要になるので、これらの名前を書き留めておきます。
df コマンドを使って、Trans device がマウントされているかチェックします。出力中でトランザクションボリュームの名前を探します。トランザクションボリュームがマウントされていない場合は、手順 7に進みます。
# df | grep d2 /mnt/transvolume (/dev/md/dsk/d2 ): 2782756 blocks 339196 files |
df -k コマンドを使って、トランザクションボリュームに十分な空き容量があることを確認します。
# df -k /mnt/transvolume file system kbytes used avail capacity Mounted on /dev/md/dsk/d2 1391387 91965 1243767 7% /mnt/transvolume |
アプリケーションを停止するか、システムをシングルユーザーモードに移行して、ファイルシステム上のすべてのアクティビティを停止します。
# init s [root@lexicon:lexicon-setup]$ init s INIT: New run level: S The system is coming down for administration. Please wait. Dec 11 08:14:43 lexicon syslogd: going down on signal 15 Killing user processes: done. INIT: SINGLE USER MODE Type control-d to proceed with normal startup, (or give root password for system maintenance): single-user privilege assigned to /dev/console. Entering System Maintenance Mode Dec 11 08:15:52 su: 'su root' succeeded for root on /dev/console Sun Microsystems Inc. SunOS 5.9 s81_51 May 2002 # |
lockfs -f を使って、ファイルシステムのログを消去します。
# /usr/sbin/lockfs -f /mnt/transvolume |
ファイルシステムをマウント解除します。
# umount /mnt/transvolume |
ファイルシステムを含むトランザクションボリュームを削除します。
この操作を実行しても、ファイルシステム上のデータに影響はありません。
# metaclear d2 d2: Trans is cleared |
この手順の始めで特定した Logging device はもはや使用されないので、他の目的に使用できます。しかし、この手順の始めに特定したマスターデバイスにはファイルシステムが格納されているため、マスターデバイスはその後マウントされ使用されます。
/etc/vfstab ファイルを編集して、ファイルシステムのマウント情報を変更します。
raw およびブロックマウントポイントを変更し、ファイルシステムのオプションに logging を追加する必要があります。トランザクションボリュームが使用されている場合には、/etc/vfstab ファイルのエントリは次のようになっています。
/dev/md/dsk/d2 /dev/md/rdsk/d2 /mnt/transvolume ufs 1 no - |
マウントポイントをトランザクションボリューム d2 からそのデバイス d0 に変更し、ロギングオプションを追加したした後の /etc/vfstab のエントリは次のようになります。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/d0 /dev/md/rdsk/d0 /mnt/transvolume ufs 1 no logging |
ファイルシステムをマウントし直します。
# mount /mnt/transvolume |
mount コマンドから次のような「 /dev/md/dsk/d0 が正常でありません。読み取り/書き込みとマウントしようとしました。fsck を実行し、再度行なってください。 」が返されることがあります。この場合には、raw デバイス (fsck /dev/md/rdsk/d0 ) に対して fsck コマンドを実行し、 y を入力して、スーパーブロック内のファイルシステム状態を修正する必要があります。その後で mount コマンドを再び実行します。
マウントしたファイルシステムのロギングが有効になっているか確認します。そのためには、/etc/mnttab ファイルを調べ、ファイルシステムのオプションとしてロギングが指定されていることを確認します。
# grep mnt /etc/mnttab mnttab /etc/mnttab mntfs dev=43c0000 1007575477 /dev/md/dsk/d0 /mnt/transvolume ufs rw,intr,largefiles, logging,xattr,onerror=panic,suid,dev=1540000 1008085006 |
この手順の中でシステムをシングルユーザーモードに移行している場合は、ここでマルチユーザーモードに戻ることができます。
トランザクションボリュームを UFS ロギングに変換する例を以下に示します。
# metastat
d50: Trans
State: Okay
Size: 204687 blocks
Master Device: c1t14d0s0
Logging Device: c1t12d0s0
Master Device Start Block Dbase Reloc
c1t14d0s0 0 No Yes
c1t12d0s0: Logging device for d50
State: Okay
Size: 30269 blocks
Logging Device Start Block Dbase Reloc
c1t12d0s0 5641 No Yes
この後のステップで必要になるので、マスターデバイスとログデバイスの名前を書き留めておく。
トランザクションボリュームに、マウントされたファイルシステムが格納されているか判別する。
# df | grep d50
/home1 (/dev/md/dsk/d50 ): 161710 blocks 53701 files
十分な空き領域 (1M バイト以上) があることを確認する。
# df -k /home1
filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d50 95510 14655 71304 18% /home1
シングルユーザーモードにする。
# /usr/sbin/lockfs -f /home1
# /usr/sbin/umount /home1
# /usr/sbin/metaclear d50
d50: Trans is cleared
/etc/vfstab ファイルを編集して、関連するボリュームをマウントし、ロギングオプションを追加する。
# cat /etc/vfstab
#device device mount FS fsck mount
mount
#to mount to fsck point type pass at boot
options
/dev/dsk/c1t14d0s0 /dev/rdsk/c1t14d0s0 /home1 ufs 2 yes
logging
# mount /home1
# /usr/bin/grep /home1 /etc/mnttab
/dev/dsk/c1t14d0s0 /home1 ufs
rw,intr,largefiles,logging,xattr,onerror=panic,suid,dev=740380
1008019906
マルチユーザーモードに戻る。
|