1. 前提条件: bcache モジュールがカーネルで設定されている必要があります
1.1 チェック
- カーネルに存在するかどうか: /sys/fs/bcache ディレクトリが存在するかどうかを確認します。カーネルに bcache がないという意味ではありません
- カーネルモジュールとして存在するかどうか: /lib/modules/<$version>/kernel/drivers/md/bcache ディレクトリが存在するかどうかを確認します。存在する場合は、存在しない場合は、bcache カーネル モジュールが存在しないことを意味します
- 上記 2 つの手順の両方が完了した場合、そうでない場合は、カーネルが bcache をコンパイルするように構成されていないことを意味し、新しいカーネルを自分で構成してコンパイルする必要があります(カーネルをダウンロードする際はバージョンに注意する必要があります。bcache 機能はバージョン 3.10 以降でのみ利用可能です)
1.2 新しいカーネルをコンパイルします
$ wget "" $ rpm2cpio ./kernel-3.10.0-514.el7.src.rpm | cpio -idmv //提取rpm包内容,获取内核:linux-3.10.0-514.el7.tar.xz$ make menuconfig //内核配置 Device Drivers ->Multiple devices driver support (RAID and LVM) -><*> Block device as cache $ make bzImage (V=1) //编译内核$ make modules //编译内核模块$ make modules_install //拷贝内核模块的.ko文件到/lib/modules下$ make install //拷贝initrd和bzImage到boot目录下,并修改开机启动配置文件$ reboot //重启,根据菜单选择对应内核版本进入
2コンパイルしてインストールします
//获取bcache-tools工具(以下两个网址任选其一)$ git clone http://evilpiepirate.org/git/bcache-tools.git$ git clone https://github.com/g2p/bcache-tools.git//安装前需要两个依赖包pkg-config和libblkid-dev$ yum -y install pkg-config libblkid-dev//编译安装bcache-tools$ make$ make install
3. デプロイ方法
3.1 bcacheデバイスを作成します
$ -bcache -C <cache-device> -B <backing device>--B -C - -b 结果:有几个backing device就会对应生成几个/dev/
例: デフォルトのブロックとバケットのサイズは 512B で、 128kB が使用されます。たとえば、HDD を使用する場合、バケット サイズは、キャッシュ デバイスの消去ブロック サイズと一致する必要があります。 4k セクターと消去ブロック サイズが 2MB の SSD の場合、このコマンドは次のようになります
# make-bcache --block 4k --bucket 2m -C /dev /sdy
3.2 バッキングデバイスの追加
- 1. バックエンドデバイスの作成
<br>
- 2. バックエンドデバイスの接続
$ make-bcache -B <backing-device> 结果:生成对应的设备/dev/bcache<n>
$ -la /sys/fs/bcache $ <CSET-UUID> > /sys/block/bcache<n>/bcache/
3.3 バックエンドデバイスの削除
- 1. バッキングデバイスの切断
- 2. バックエンドデバイスの削除
<br>
3.4 キャッシュデバイス (キャッシュデバイス) の追加
-1.作成します。キャッシュデバイス
$ -la /sys/fs/bcache/ $ <CSET-UUID> > /sys/block/bcache<n>/bcache/
-2. bcacheデバイスにアタッチ、関連付けます
$ > /sys/block/bcache<N>/bcache/
3.5 キャッシュデバイスを削除します
前提:バックがないことを確認してくださいデバイスがそれを使用しています ( lsblk を通じて表示されます)
説明: - キャッシュ デバイスの存在は、/sys/fs/bcache ディレクトリに対応するキャッシュ セット uuid を通じて把握できます
- uuid の登録を解除した後、キャッシュ デバイスは削除されたとみなされます
$ make-bcache -C <cache device> 结果:在/sys/fs/bcache目录下生成对应的CACHE SET UUID 注意:有可能设备本身有残余数据,需要使用wipefs清理掉 $ wipefs -a /dev/sda
3.6 bcache をフォーマットし、使用してマウントします4.1 実行ステータスを確認します
$ echo <CSET-UUID> > /sys/block/bcache<n>/bcache/attach 解释:通过后端设备attach缓存设备,cache device才能开始缓存,backing device才能被缓存
キャッシュなし: このバッキング デバイスにはキャッシュ デバイスが接続されていません (つまり、すべての I/O は、バッキング デバイス [パススルー モード])。
クリーン: すべてOK、キャッシュはクリーンです。ダーティ: これは、すべてが正常に設定されており、ライトバックが有効になっており、キャッシュがダーティであることを意味します。
矛盾: バックグラウンド デバイスがキャッシュ デバイスと同期していないため、問題が発生しています。$ echo 1 > /sys/fs/bcache/<cache set uuid>/unregister 结果:再看/sys/fs/bcache目录下就没有这个cache设备的uuid了
$ mkfs.xfs /dev/bcache<n> //格式化设备为xfs文件系统$ mount /dev/bcache<n> /mnt //挂载设备到/mnt目录进行访问
4.4 デバイス情報の印刷
りー4.5 構成情報
バッキングデバイスは/sys/block/bcache
キャッシュデバイスは/sys/fs/bcache/
/sys 内の構成情報への変更は一時的なものであり、再起動すると無効になります。起動時に現在の構成を設定したい場合は、/etc/tmpfile.d/ に conf 構成ファイルを作成する必要があります (例: /etc/tmpfile.d/my-bcache.conf:
w /sys/) block/ bcache0/bcache/sequential_cutoff - - - - 1
w /sys/block/bcache0/bcache/cache_mode - - - - writeback
(永続的な方法で bcache0 のシーケンシャル カットオフを 1 MB に設定し、ライトバックするには)
以上がbcache モジュールを構成するためのチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。