Ubuntu 14.04でbcacheを新規インストールし、バッキングデバイスとして空の/home
パーティション(/dev/sdb2
)を設定しようとしました。 SSDで実行中のシステムがあり、その/dev/sda2
パーティションを使用して/home
をキャッシュしたいのですが。私はいつもubuntuの問題をフォーラムから整理することができましたが、ここで基本を理解するのに苦労しており、助けが必要です:
/dev/sdb2
のインストール中に作成されたユーザーは、/home
のマウントを解除するためにログアウトする必要があるため、別のパーティションに一時ユーザーアカウントを設定します。これはすでに不器用すぎるようです。make-bcache -B
と-C
はどちらも、デバイスに非bcacheスーパーブロックがあることを教えてくれるので、両方のデバイスでSudo wipefs -a
を実行しました。パーティションは、GPartedにUUIDなしで未フォーマットとして表示されます。これは正常ですか?もしそうなら、ブート時にfstabと/home
はどうなりますか? fstabでbcacheのUUIDを使用する必要がありますか?しましたが、システムは次回の起動時に/home
パーティションを見つけられませんでした。
echo /dev/sdb2 > /sys/fs/bcache/register
とecho /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/*
に従ってデータをバイパスしました。私のセットアップ全体は非常に混乱しているので、説明をいただければ幸いです。
Ubuntu 15.10では、alexの答えは正しくありません。 initramfs
イメージはインストーラーでロックされており、システムのインストール時に自動的に再生成されません。したがって、インストールはbcache
になりますが、起動できなくなります。 他の場所での次のプロセスの詳細な説明 ;ただし、基本は次のとおりです。
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
ターミナルを開き、バッキングおよびキャッシングデバイスのファイルシステムを消去します。
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
次のように、カスタムパーティショナーを使用してオペレーティングシステムをインストールします。
/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
インストーラーの完了後に再起動しないでください!
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
パーティションにインストールされることに注意してください。
ファイルシステムを完全にディスマウントして再起動します。
exit
Sudo umount /mnt/sys
Sudo umount /mnt/proc
Sudo umount /mnt/dev
Sudo umount /mnt/boot
Sudo umount /mnt
Sudo reboot
いくつかの試行錯誤の後、クリーンインストール:の次のソリューションに到達しました。
/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カーネルモジュールを省略して、更なる更新がブートプロセスを妨げないようにします。私もこれらの指示を見つけるまで何度も試みて失敗しました: 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のセットアップのように感じます。