SSDキャッシュ用にflashcacheまたはbcacheでビルドされたカーネルをインストールして実行しようとした人がいるかどうか知りたいですか?
どうやってそれをやったのですか?
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です。
リブート!
ルートデバイスを使用する場合の注意事項
ルートデバイスにflashcacheを使用する場合の小さな厄介な点の1つは、grub-probeがルートデバイスの検出に失敗し、ブートメニューを台無しにして、Ubuntu全体が2つあることです。ただし、make -f Makefile.dkms boot_conf
上記の手順では、フラッシュキャッシュデバイスを検出して使用するスクリプトがinitrdにインストールされるため、実際にどちらを使用するかは重要ではありません。
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
to linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(つまり、root =パラメーターを変更)
既存のデバイスでbcacheを有効にするための変換ツールがあります(開示:私はそれを書きました)。また、現在のディストリビューションインストーラーはbcacheデバイスの作成方法を知らないため(この場合は、HDDにインストールすることから始めます)、これは新規インストールの方法でもあります。
手順については、READMEでルートファイルシステムをbcacheに変換するをご覧くださいblocks
。
bcacheにはLinux 3.10以降が必要です。これは生意気で、http: //kernel.ubuntu.com/~kernel-ppa/mainline/?C = M; O = Dから手動でインストールできます
(最新のタグ付きリリースを探す、現在v3.11.5-saucy
、およびアーキテクチャに一致するdebsをインストールします)。
bcache-tools
以下とblocks
からインストールすることができ、私のストレージPPA。
/
、/home
、/usr/
システムの実行中(maintbootが破壊されるように)、...)。別の方法として、ライブUSBスティックblocks
を使用し、そこにインストールして、ディスクの変換に使用することもできます。ただし、このツールはプライマリMBRおよびGPTパーティションテーブルでのみ機能し、各パーティションの前に1MiBの追加スペースが必要であることに注意してください。
事前の警告: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としてログインすることを終了し、通常どおり起動を続行する必要があります。全部終わった!