LinuxカーネルHack: Btrfsを試す

VirtualBoxにインストールしたUbuntu 10.10(ホスト名は適当にmonkeyにしてみた)でBtrfsを早速試してみる。ちなみに、現在利用中のVirtualBoxのバージョンは3.2.8 r64453。

まずは、VirtualBoxで仮想ドライブを追加。
Oracle VM VirtualBox > [Ubuntu 10.10のVM] > 設定 > ストレージ > SATAコントローラより「ハードディスクの追加」をクリック。
ひとまず、可変サイズのストレージで2GB確保。

Ubuntu@VirtualBoxを起動。

Ubuntuの「ディスク・ユーティリティ」で追加した仮想ドライブを確認。
バイスファイルは/dev/sdb。

標準では、ユーザーランドからBtrfsを操作するためのツールがインストールされていないので、インストール。

fixme@monkey:~$ sudo apt-get install btrfs-tools

追加した仮想ドライブをBtrfsでフォーマットしてみる。

fixme@monkey:~$ sudo mkfs.btrfs /dev/sdb
WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sdb
	nodesize 4096 leafsize 4096 sectorsize 4096 size 2.00GB
Btrfs Btrfs v0.19cd

マウントしてみる。

fixme@monkey:~$ sudo mount -t btrfs /dev/sdb /mnt

マウントを確認。おーマウントできてる。

fixme@monkey:~$ df -h
ファイルシステム            Size  Used Avail Use% マウント位置
/dev/sda1              48G  7.7G   38G  17% /
none                  369M  240K  369M   1% /dev
none                  375M  204K  375M   1% /dev/shm
none                  375M   92K  375M   1% /var/run
none                  375M     0  375M   0% /var/lock
/dev/sdb              2.0G   80K  2.0G   1% /mnt

Btrfsのディスク消費量は以下のコマンドでもできるらしい。

fixme@monkey:/mnt$ sudo btrfs filesystem show
Label: none  uuid: 76df62a5-7b68-477b-ae01-7f08ea6824fb
	Total devices 1 FS bytes used 28.00KB
	devid    1 size 2.00GB used 240.75MB path /dev/sdb

Btrfs Btrfs v0.19

Btrfsのスナップショット機能を試すために、サブボリュームを切ってみる。

fixme@monkey:/mnt$ sudo btrfs sub create /mnt/subvol
Create subvolume '/mnt/subvol'

作成したサブボリューム内にテキストファイルを作成。

root@monkey:/mnt# echo "Hello, Btrfs" > subvol/hello.txt

サブボリュームのスナップショットを/mnt/20101003_2311に取る。

root@monkey:/mnt# btrfs sub snap /mnt/subvol/ /mnt/20101003_2311
Create a snapshot of '/mnt/subvol/' in '/mnt/20101003_2311'

作成したスナップショットを確認。

root@monkey:/mnt# cat /mnt/20101003_2311/hello.txt 
Hello, Btrfs

サブボリューム内のファイルを変更して、バックアップに影響が無いことを確認。おー、バックアップに影響せずに変更できた。

root@monkey:/mnt# echo "Goodbye, Btrfs" > subvol/hello.txt
root@monkey:/mnt# cat /mnt/subvol/hello.txt 
Goodbye, Btrfs
root@monkey:/mnt# cat /mnt/20101003_2311/hello.txt 
Hello, Btrfs

これから色々さわってみよう。