hammer fs を試してみたかったので、VMware Server 2.0のGuest OSとしてDragonflyBSDをインストールしてみました。
- Host OS: Linux (Ubuntu 8.10 Intrepid SNAPSHOT)
- Host Kernel: linux 2.6.27-7-server
- VMware: VMware server 2.0
- Guest Machine: Processor=1, MEM=256MB, HDD=20G(SCSI), Network=NAT, CD/DVD=file:dfly-2.0.1_REL.iso, SCSIController=LSI Logic
- Guest OS: DragonflyBSD 2.0.1
DragonflyBSDインストール
dfly-2.0.1_REL.iso をダウンロードし、CDブートします。
login: プロンプトがでるので、「installer 」と入力します。
適当にいろいろやってインストール完了です。ただし、hammer fs で遊べるように20GB中8GBは/, swap=512Bとし後は未使用としておきます。
Hammer FSセットアップ
HAMMER用のスライスを作成します
# disklabel -e /dev/da0s1
以下のように設定
a: 16777216 0 4.2BSD # 8192.000MB
b: 1048576 16777216 swap # 512.000MB
c: 41929587 0 unused # 20473.431MB
g: 24103795 17825792 HAMMER # 11769.431MB
/dev/da0s1gをhome用とする。
ファイルシステムを作成します
# newfs_hammer -L HOME /dev/da0s1g
Volume 0 DEVICE /dev/da0s1g size 11.49GB
initialize freemap volume 0
---------------------------------------------
1 volume total size 11.49GB
boot-area-size: 32.00MB
memory-log-size: 32.00MB
undo-buffer-size: 104.00MB
total-pre-allocated: 120.00MB
fsid: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX
NOTE: Please remember to set up a cron job to prune and
reblock the filesystem regularly, see 'man hammer' for
more information.
WARNING: HAMMER filesystems less than 50G are not recommended!
You may have to run 'hammer prune-everything' and 'hammer reblock'
quite often, even if using a nohistory mount.
12GB程度しか割り当ててないので少なすぎるよと文句を言われますが、お試しなのでとりあえずはこのまま続行します。
mountしてみます。
# mount_hammer /dev/da0s1g /usr/home
(mount /dev/da0s1g /usr/homeでは失敗しました)
mount成功したので、fstabを変更します。
# vi /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/da0s1a / ufs rw 1 1
/dev/da0s1b none swap sw 0 0
/dev/da0s1g /usr/home hammer rw,noatime 0 0
proc /proc procfs rw 0 0
確認します。
# umount /usr/home
# mount -a
# mount
/dev/da0s1a on / (ufs, local)
HOME on /usr/home (hammer, local, noatime)
procfs on /proc (procfs, local)
Hammer FSを少しいじってみます。
# hammer cleanup
cleanup /usr/home - handle PFS #0 using /usr/home/snapshots
snapshots - run
prune - run
reblock - run...
recopy - run...
(これでsnapshot用ディレクトリ(/usr/home/snapshots)が生成されるようです)
# hammer snapshot /usr/home/snapshots
(snapshotが作成されるようです)
# hammer prune /usr/home/snapshots
(不要な履歴が削除されるようです)
# undo
(履歴からファイルを復活させたりするのに使うようです)