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 マルチユーザーモードに戻る。 |