SSDキャッシング用に flashcache または bcache でビルドされたカーネルをインストールして実行しようとした人がいるかどうか知りたいですか?
どうやってそれをやったのですか?
さて、bcacheの回答はありましたが、flashcacheの回答はありませんでした。既存のインストール済み環境があるため、フラッシュキャッシュを選択しました。そのため、bcacheは問題外でした。私にとっては、セットアップも簡単に思えました。カーネルのアップグレードを取得するたびにモジュール/ツールを再構築するのに困らないように、DKMSメソッドを選択しました。
これらの手順は、Githubの README-DKMS で概説されています。
モジュールの構築
最初に行うことは、建物の前提条件をインストールすることです。
Sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
次に、ソースをスナッグします:
git clone git://github.com/facebook/flashcache; cd flashcache
モジュールをビルドしてインストールします。
make -f Makefile.dkms
フラッシュキャッシュデバイスの作成
(この例では、デフォルトのライトバックキャッシュを使用していますが、フラッシュキャッシュはライトアラウンドとライトスルーも実行できます)
非ルート(/にマウントされていない)デバイスのキャッシュ
Sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
fcacheは作成されたデバイス(/ dev/mapper/fcache)、/ dev/sdaXはSSDパーティション(またはディスク全体)、/ dev/sdbXはHDDパーティションです。
ルートデバイスのキャッシュ
ルートデバイスをキャッシュする場合は、さらにいくつかの手順があります。このセクションにはUbuntu LiveCD/USBが必要です。
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
/boot/grub/grub.cnfと/ etc/fstabを編集して/ dev/mapper/fcacheから起動します(このステップは本当に必要だとは思いませんが、と言っています)。元のルートデバイスのUUIDを書き留めてください。
LiveCD/LiveUSBで再起動します。
ルートデバイスをマウントします:mount /dev/sda4 /mnt
(/ dev/sda4は私のLinuxルートパーティションです)
cd /mnt/path/to/flashcache/source
Sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; Sudo make install
ライブ環境でDKMSセットアップ全体を実行する必要はありません
ルートデバイスSudo umount /mnt
をアンマウントします
Sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]
fcacheが作成されたデバイス(/ etc/fstabおよび/boot/grub/grub.cnfに配置したものと同じである必要があります。私の場合はfcache)、/ dev/sdbXはSSDですパーティション(またはディスク全体)および[UUID]はルートパーティションのUUIDです。
リブート!
ルートデバイス使用時の注意事項
フラッシュキャッシュがルートデバイスに使用されるときの1つの小さな迷惑は、grub-probeがルートデバイスの検出に失敗し、ブートメニューを台無しにして、Ubuntu全体が2つあることです。ただし、上記のmake -f Makefile.dkms boot_conf
ステップにより、initcacheにフラッシュキャッシュデバイスを検出して使用するスクリプトがインストールされるため、実際にどちらを使用するかは問題ではありません。
既存のデバイスでbcacheを有効にするための変換ツールがあります(開示:私が書いた)。また、現在のディストリビューションインストーラーはbcacheデバイスの作成方法を知らないため、新規インストールを行う方法でもあります(この場合、HDDへのインストールから始めます)。
手順については、 blocks
READMEの ルートファイルシステムのbcacheへの変換 を参照してください。
bcacheにはLinux 3.10以降が必要です。これは生意気で、 http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D から手動でインストールできます。 (最新のタグ付きリリース、現在v3.11.5-saucy
を探し、アーキテクチャに合ったdebをインストールしてください)。
bcache-tools
およびblocks
は、 my storage ppa からインストールできます。
事前の警告:bcacheは、既存のUbuntuインストールに使用できません。オペレーティングシステムにSSDキャッシュが必要な場合は、SSDキャッシュをセットアップできるUbuntuインストーラーの将来または特別なバージョンを待つ必要があります。 Oliによるこの回答を参照してください: bcacheは新規インストールが必要ですか?
OS以外のデータ用のbcacheドライブを必要とする他のすべてのユーザー向け:
カーネルメインラインPPAを使用して13.04以前を使用している場合、最初に行うことはカーネルをアップグレードすることです。これを使用するための指示はここにあります:
https://wiki.ubuntu.com/Kernel/MainlineBuilds
起動時に3.9以上のカーネルを選択しないと、動作しなくなり、ドライブが消えます。
Bcache-toolsをインストールします。現時点では、gitリポジトリからインストールする必要があります。
git clone http://evilpiepirate.org/git/bcache-tools.git
bcache-tools
をdebianにパッケージ化することができた場合はお知らせください。この質問は更新されます。 (bcache-tools
のビルド依存関係はuuid-dev
およびlibblkid-dev
です。bcache-tools
をビルドするには、これらをインストールする必要があります。)
すべてのツールを準備したら、次のガイドを試してみてください。
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
このガイドでは、ドライブ(SSDおよびハードドライブ)をフォーマットし、それらを接続してbcacheを使用して新しいデバイスブロックを作成する方法を示します。説明がわかりにくい場合はコメントを投稿してください。この回答を簡略化して更新します。
私はここに来て、新しいカーネルをインストールしたときに私に何が起こったのかについてコメントすると思いました。/home /フォルダパーティションにのみフラッシュキャッシュを使用していました。新しいカーネルをインストールして起動し、起動中に停止し、/ dev/mapper/home_cachedが見つからないと言いました。このメッセージを受け取ったときに3つの選択肢があり、rootとしてログインするオプションを選択します。修正を試みてください。私は最初にフラッシュキャッシュモジュールをロードしようとしましたが、見つからないと言いました。それで、インストールしたばかりのこの新しいカーネル用にコンパイルしてインストールする必要があると考えました。私はまだ/ root /内に/ flashcache /フォルダーがあるので、そこにcd'dして実行しました
make -f Makefile.dkms boot_conf
それから私は走った
make install
次に、フラッシュキャッシュモジュールをロードしました
modprobe flashcache
その後、既存のフラッシュキャッシュデバイスをロードする必要がありました
flashcache_load /dev/sdb1
それからちょうど私の家のパーティションをマウントします
mount /home
その後、コマンドラインでexitを使用してrootとしてログインすることを終了し、通常どおり起動を続行する必要があります。全部終わった!