「EnhanceIO」の版間の差分
(→initcpio で EnhanceIO を有効化: 警告を翻訳) |
(→インストール: 微修正) |
||
34行目: | 34行目: | ||
$ cat /proc/enhanceio/my_first_enhanceio/stats |
$ cat /proc/enhanceio/my_first_enhanceio/stats |
||
− | {{Tip|EnhanceIOを開始した後、システムが遅くなっているように感じた場合。これは、最初にキャッシュを構築したことが原因であると思われます。通常どおりにシステムを使用し、すばやく起動したいアプリケーションを開いてみたり。もう一度再起動などして、動作を観察してみてください。}} |
+ | {{Tip|EnhanceIO を開始した後、システムが遅くなっているように感じた場合。これは、最初にキャッシュを構築したことが原因であると思われます。通常どおりにシステムを使用し、すばやく起動したいアプリケーションを開いてみたり。もう一度再起動などして、動作を観察してみてください。}} |
=== initcpio で EnhanceIO を有効化 === |
=== initcpio で EnhanceIO を有効化 === |
||
40行目: | 40行目: | ||
EnhanceIO が動作するのを確認できたら、システムの起動時間を短縮させるのにも EnhanceIO を使うことができます。ルートファイルシステムがマウントされる前よりもできるだけ早く EnhanceIO を起動する必要があります。それには initcpio で EnhanceIO を有効にする必要があります。 |
EnhanceIO が動作するのを確認できたら、システムの起動時間を短縮させるのにも EnhanceIO を使うことができます。ルートファイルシステムがマウントされる前よりもできるだけ早く EnhanceIO を起動する必要があります。それには initcpio で EnhanceIO を有効にする必要があります。 |
||
− | {{Warning|EnhanceIOは、rootfsを高速化する際のWriteBack方式 {{ic|-m wb}} をサポートしておらず、 {{ic|-m ro}} またはWriteThrough (デフォルト)のみサポートします。ルートボリュームでWriteBackを有効にすると、問題が発生します。}} |
+ | {{Warning|EnhanceIO は、rootfs を高速化する際の WriteBack 方式 {{ic|-m wb}} をサポートしておらず、 {{ic|-m ro}} または WriteThrough (デフォルト)のみサポートします。ルートボリュームで WriteBack を有効にすると、問題が発生します。}} |
まず、[[AUR]] から {{AUR|pyinstaller}} パッケージをインストールしてください。initcpio イメージに EnhanceIO を含めるために EnhanceIO の Python スクリプト {{ic|eio_cli}} を実行可能ファイルにコンパイルします。 |
まず、[[AUR]] から {{AUR|pyinstaller}} パッケージをインストールしてください。initcpio イメージに EnhanceIO を含めるために EnhanceIO の Python スクリプト {{ic|eio_cli}} を実行可能ファイルにコンパイルします。 |
2020年8月4日 (火) 11:18時点における版
EnhanceIO は SSD を他のブロックデバイスストレージ (HDD, ネットワークストレージなど) のキャッシュデバイスとして使用することを可能にします。設定はほとんど必要ありません。Flashcache が元になっていますが、設定は簡単です。Bcache と違ってファイルシステムの変換は必要ありません。
インストール
AUR から enhanceio-dkms-gitAUR をインストールしてください。
モジュールとドライブの設定
EnhanceIO コマンドラインインターフェース (eio_cli) を使用してセットアップを管理します。高速な SSD に低速な HDD のキャッシュを設定するには:
# eio_cli create -d /dev/sda -s /dev/sdb -c my_first_enhanceio
上記のコマンドは安全なデフォルトオプションを使用します。さらに速度を向上させたい場合、-m wb
を追加することで WriteThrough モードのかわりに WriteBack モードが有効になります。データが破損する危険性があるので注意してください。
キャッシュドライブは再起動しても使用されます。無効化したい場合はまずキャッシュを読み取り専用モードに設定してください (まだ書き込まれていないブロックを消失させないため):
# eio_cli edit -c my_first_enhanceio -m ro
以下のコマンドで0が返ってくるようになるまで待機してください:
$ grep nr_dirty /proc/enhanceio/enchanceio_test/stats
HDD に全てのブロックが書き込まれたらキャッシュデバイスを削除しても安全です:
# eio_cli delete -c my_first_enhanceio
キャッシュの情報を取得
キャッシュの基本情報を取得するには:
# eio_cli info
詳細情報を取得するには:
$ cat /proc/enhanceio/my_first_enhanceio/stats
initcpio で EnhanceIO を有効化
EnhanceIO が動作するのを確認できたら、システムの起動時間を短縮させるのにも EnhanceIO を使うことができます。ルートファイルシステムがマウントされる前よりもできるだけ早く EnhanceIO を起動する必要があります。それには initcpio で EnhanceIO を有効にする必要があります。
まず、AUR から pyinstallerAUR パッケージをインストールしてください。initcpio イメージに EnhanceIO を含めるために EnhanceIO の Python スクリプト eio_cli
を実行可能ファイルにコンパイルします。
起動時にキャッシュの初期化を実行する EnhanceIO のフックとなる /etc/initcpio/hooks/enhanceio
ファイルを作成してください:
#!/usr/bin/bash run_hook () { local mod for mod in enhanceio enhanceio_lru enhanceio_fifo; do modprobe "$mod" done msg -n ":: Activating EnhanceIO..." udevadm trigger }
eio_cli
を実行可能ファイルとしてコンパイルして initcpio から EnhanceIO をロードするのに必要なモジュールが含まれた /etc/initcpio/install/enhanceio
ファイルを作成してください:
#!/bin/bash build () { local mod for mod in enhanceio enhanceio_lru enhanceio_rand enhanceio_fifo; do add_module "$mod" done add_binary "/usr/lib/libutil.so.1" add_file "/etc/udev/rules.d/94-enhanceio-my_first_enhanceio.rules" sudo -u ${SUDO_USER} pyinstaller --distpath=/tmp/eio_cli/dist --workpath=/tmp/eio_cli --specpath=/tmp/eio_cli --clean --onefile --noconfirm --strip --console /usr/bin/eio_cli add_binary "/tmp/eio_cli/dist/eio_cli" "/usr/bin/eio_cli" add_runscript } help () { echo "This hook loads the necessary modules for EnhanceIO when caching your root device." }
/etc/mkinitcpio.conf
を編集して HOOKS 変数の udev, block, modconf の後に enhanceio
フックを追加してください:
HOOKS="base udev block modconf enhanceio ..."
eio_cli のパーミッションを変更:
# chmod uga+xr /usr/bin/eio_cli
最後に、initcpio を再生成:
# mkinitcpio -p linux
再起動するとシステムが飛ぶように速く起動します。