CASIO PRO TREK Smart WSD-F20 使用記 その3 #プロトレックスマート #アウトドアアンバサダー今日(2018/07/12)のガッカリ

2018年04月17日

bcache+btrfsを試す

作業環境としてLinux PCを使っている.
現在HDD 3台をbtrfsで纏めて使用中.
SSDが手に入ったのでこれをbcacheでキャッシュとして利用しようと思い, 試してみた.

本エントリはその時の作業記録である. (そのためデバイス名はその時のまま記載)

なお作業はubuntu 17.04のRecovery modeで行なった.
bcache関連のツールの導入は次のコマンドで.
# apt install bcache-tools
HDDをバックエンドに、SSDをフロントエンドに設定する. が, データを残して云々とするのはなんとなく失敗の予感. なのでデータはバックアップ&書き戻しとした.
というわけでバックアップはrsyncを3回ほど行い, ちゃんとコピーされたことを確認した後, HDDのファイルシステムをクリアした.
# wipefs -a /dev/sda # HDD1
wipefs -a /dev/sdb # HDD2
wipefs -a /dev/sdc # HDD3
wipefs -a /dev/sde # SSD
そしてbcacheの設定.
# make-bcache -B /dev/sda /dev/sdb /dev/sdc -C /dev/sde
lsblkをすると以下のようになった.
lsblk 
NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0       7:0    0  86.5M  1 loop /snap/core/4407
loop1       7:1    0    82M  1 loop /snap/core/4327
loop2       7:2    0  81.7M  1 loop /snap/core/4206
sda         8:0    0 232.9G  0 disk 
└─bcache0 252:0    0 232.9G  0 disk
sdb         8:16   0 232.9G  0 disk 
└─bcache1 252:16   0 232.9G  0 disk 
sdc         8:32   0 232.9G  0 disk 
└─bcache2 252:32   0 232.9G  0 disk 
sdd         8:48   0 372.6G  0 disk 
├─sdd1      8:49   0   857M  0 part /boot
├─sdd2      8:50   0   7.6G  0 part [SWAP]
├─sdd3      8:51   0 182.5G  0 part /
└─sdd4      8:52   0 181.7G  0 part 
sde         8:64   0 149.1G  0 disk 
├─bcache0 252:0    0 232.9G  0 disk
├─bcache1 252:16   0 232.9G  0 disk 
└─bcache2 252:32   0 232.9G  0 disk 
sdf         8:80   0 223.6G  0 disk 
sr0        11:0    1  1024M  0 rom  
ここにbtrfsでファイルシステムを構築する. (RAID1やRAID5などにするなら指定すること)
# mkfs.btrfs /dev/bcache0 /dev/bcache1 /dev/bcache2
そしてとりあえずマウントしてファイルを書き戻します.
そのあと以下のコマンドでUUIDをゲットして/etc/fstabをいい感じに直して終了.

# btrfs filesystem show /dev/bcache0
Label: none  uuid: 60cb16ad-a195-4e56-8c8d-59808a6dadb7
        Total devices 3 FS bytes used 243.97GiB
        devid    1 size 232.83GiB used 83.00GiB path /dev/bcache0
        devid    2 size 232.83GiB used 83.01GiB path /dev/bcache1
        devid    3 size 232.89GiB used 84.01GiB path /dev/bcache2
ちなみにキャッシュがまともに動いていたらcleanが読み出せます.
# cat /sys/block/bcache0/bcache/state
clean
キャッシュのモードは以下.
cat /sys/block/bcache0/bcache/cache_mode 
[writethrough] writeback writearound none
writebackにしたい時は以下. この時 stateはdirtyになります.
echo writeback > /sys/block/bcache0/bcache/cache_mode
btrfsに対して手を加えるときはキャッシュを無効化する.
echo writethrough > /sys/block/bcache0/bcache/cache_mode
watch cat /sys/block/bcache0/bcache/state # cleanになるのを待つ
なにかあれば以下を参照 https://www.kernel.org/doc/Documentation/bcache.txt

このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
highfrontier at 19:32│Comments(0)linux | PC

コメントする

このブログにコメントするにはログインが必要です。

CASIO PRO TREK Smart WSD-F20 使用記 その3 #プロトレックスマート #アウトドアアンバサダー今日(2018/07/12)のガッカリ