web-dev-qa-db-ja.com

bcacheをセットアップする方法は?

Ubuntu 14.04でbcacheを新規インストールし、バッキングデバイスとして空の/homeパーティション(/dev/sdb2)を設定しようとしました。 SSDで実行中のシステムがあり、その/dev/sda2パーティションを使用して/homeをキャッシュしたいのですが。私はいつもubuntuの問題をフォーラムから整理することができましたが、ここで基本を理解するのに苦労しており、助けが必要です:

  1. 最初にbcacheを設定するとき、どのアカウントにログインする必要がありますか?明らかに/dev/sdb2のインストール中に作成されたユーザーは、/homeのマウントを解除するためにログアウトする必要があるため、別のパーティションに一時ユーザーアカウントを設定します。これはすでに不器用すぎるようです。
  2. make-bcache -B-Cはどちらも、デバイスに非bcacheスーパーブロックがあることを教えてくれるので、両方のデバイスでSudo wipefs -aを実行しました。パーティションは、GPartedにUUIDなしで未フォーマットとして表示されます。これは正常ですか?
  3. もしそうなら、ブート時にfstabと/homeはどうなりますか? fstabでbcacheのUUIDを使用する必要がありますか?しましたが、システムは次回の起動時に/homeパーティションを見つけられませんでした。

  4. echo /dev/sdb2 > /sys/fs/bcache/registerecho /dev/sda2 > /sys/fs/bcache/registerの両方が 'Permission denied'メッセージを返します。 /sysに書き込みできないことを理解しています。

    echo /dev/sdb2 | Sudo tee /sys/fs/bcache/registerは機能しているようです。

誰かがこれがUbuntuでそれを行う適切な方法であることを確認できますか?

バッキングドライブを作成、登録、接続できたようですが、tail /sys/block/bcache0/bcache/stats_total/*に従ってデータをバイパスしました。私のセットアップ全体は非常に混乱しているので、説明をいただければ幸いです。

9
Laszlo Almasi

Ubuntu 15.10では、alexの答えは正しくありません。 initramfsイメージはインストーラーでロックされており、システムのインストール時に自動的に再生成されません。したがって、インストールはbcacheになりますが、起動できなくなります。 他の場所での次のプロセスの詳細な説明 ;ただし、基本は次のとおりです。

1.パーティショニング

UbuntuライブCDを起動し、fdiskまたはgpartedを使用して次のパーティション構成を作成します。 /dev/sdaがSSDであり、/dev/sdbがHDDであると仮定します。

/dev/sda1 - 1024 MB, EXT4, used for /boot (grub/grub2 doesn't support bcache)
/dev/sda2 - any format, for cache
/dev/sdb1 - EFI partition (if your machine needs it)
/dev/sdb2 - swap
/dev/sdb3 - any format, backing partition

2. bcacheデバイスを作成します

ターミナルを開き、バッキングおよびキャッシングデバイスのファイルシステムを消去します。

Sudo wipefs -a /dev/sda2
Sudo wifefs -a /dev/sdb3

bcache-toolsをインストールし、bcacheデバイスを作成します。

Sudo apt-get update
Sudo apt-get install bcache-tools
Sudo make-bcache -B /dev/sdb3 -C /dev/sda2
Sudo mkfs.ext4 /dev/bcache0

3. Ubuntuをインストールする

次のように、カスタムパーティショナーを使用してオペレーティングシステムをインストールします。

/dev/bcache0 - format EXT4, use as /
/dev/sda1    - format EXT4, use as /boot
/dev/sdb1    - EFI partition (if your machine needs it)
/dev/sdb2    - swap

インストーラーの完了後に再起動しないでください

4.新しいインストールにbcacheをインストールします

chrootを使用して、bcache-toolsを新しいインストールにインストールします。環境をセットアップし、DNS解決を有効にします

Sudo mount /dev/bcache0 /mnt
Sudo mount /dev/sda1 /mnt/boot
Sudo mount --bind /dev /mnt/dev
Sudo mount --bind /proc /mnt/proc
Sudo mount --bind /sys /mnt/sys
Sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

chrootを入力してインストールを実行します

Sudo chroot /mnt
Sudo apt-get update
Sudo apt-get install bcache-tools

インストール中に、initramfsが再生成され、(chroot- ed)/bootパーティションにインストールされることに注意してください。

5.クリーンアップ

ファイルシステムを完全にディスマウントして再起動します。

exit
Sudo umount /mnt/sys
Sudo umount /mnt/proc
Sudo umount /mnt/dev
Sudo umount /mnt/boot
Sudo umount /mnt
Sudo reboot
5
bkloppenborg

いくつかの試行錯誤の後、クリーンインストール:の次のソリューションに到達しました。

  • 思い通りにHDDをパーティション分割します(/dev/sdb2/homeに必要なスペースであると仮定します)。
  • # apt-get install bcache-tools
  • # make-bcache -B /dev/sdb2 -C /dev/sda2(これにより/dev/bcache0が作成されますが、UIインストーラーはまだ使用できません。)
  • # mkfs.ext4 /dev/bcache0(これにより、インストーラーは「デバイス/ dev/bcache0」の下に「パーティション/ dev/bcache0」を表示し、インストール中に「/ home」として使用できるようになります。)
  • 通常どおりインストーラーを実行し、必ず高度なディスクパーティションオプションを選択してください。
  • インストーラーはinitrdイメージを作成し、bcacheカーネルモジュールを含めてロードします。これは、以前にbcache-toolsをインストールしたため、再起動後は正常に機能します。
  • インストールされたシステムをブートした後、bcache-toolsをもう一度インストールします。これにより、initrdイメージから必要なbcacheカーネルモジュールを省略して、更なる更新がブートプロセスを妨げないようにします。
2
alex

私もこれらの指示を見つけるまで何度も試みて失敗しました: http://www.wdong.org/wordpress/blog/2014/05/28/installing-ubuntu-14-04-to-bcache/

少々毛むくじゃらに聞こえますが、少なくともbcacheがubuntuインストーラの一部になるまで、これがおそらくbcacheを実行する唯一の実行可能な方法です。

指示の唯一の不思議な省略は、最後の段階です。

すべてを完了したら、/ sys/fs/bcacheでキャッシュセットのUUIDを検索し、これを実行します。

echo <UUID> > /sys/block/bcache0/bcache/attach

ライトバックモードを有効にする場合(強くお勧めします):

echo writeback > /sys/block/bcache0/bcache/cache_mode

/sys/block/bcache0/bcache/にさまざまなファイルを配置すると、キャッシュの実行方法がすべてわかります。今年の7月26日にこれらの手順を使用してシステムをセットアップしましたが、それ以降はすべてが正常に動作しています。 cat /sys/block/bcache0/bcache/stats_total/cache_hit_ratioは非常に満足できる88%を示し、主観的には、マシンはすべてSSDのセットアップのように感じます。

0
Vivek