私は3つのディスクを持っています:
/dev/sda
遅いhdd/dev/sdb
遅いhdd/dev/sdc
fast ssd/dev/vg0
/dev/sd{a,b,c}
で構成されるボリュームグループ各論理ボリューム(lv)は、raid1ミラーリングされ、ssdキャッシュされる必要があります。
次のコマンドを使用して、vg0でtestという名前のミラーリングされたraid1lvを作成できます。
lvcreate --type raid1 -m 1 -L 1G -n test vg0
@hdd, @ssd
)を使用できますか?lvmcacheのマニュアルページ に基づくと、キャッシュは完全に論理ボリュームのものであり、ボリュームグループレベルで実装できるものではないようです。 VG全体をキャッシュできないのは面倒なようですが、これはアーキテクチャ上の制限のようです。
特定のPVのみを使用してLVを強制的に作成する場合は、lvcreate
コマンドの最後でPVを指定できます。
無関係なオプションが削除されたmanページの概要は次のとおりです。
lvcreate <...> [VolumeGroup{Name|Path} [/ExternalOrigin | Origin | Pool}LogicalVolumeName] [PhysicalVolumePath[:PE[-PE]]...]
そのあらすじはかなり「関与」しているので、多くの人がこれを見逃していると思います。ただし、キャッシュLVをSSD PVに強制的に配置できる必要があるため、キャッシュを作成するときにこの機能が実際に必要になります。
補足:a クイック検索 は、LVMミラーリングは一般にLinuxソフトウェアRAIDよりもはるかに遅いと考えられていることを示しています。しかし、いくつかの調整を行うことで、失われたパフォーマンスの一部を取り戻すことができると思います。
興味深いプロジェクトはbcacheです: https://bcache.evilpiepirate.org/
Bcacheを使用すると、ssdを低速(回転)の大きなディスクの高速キャッシュとして設定できます。このようにして、最もアクセスの多いブロックは、より遅いディスク上のより大きなファイルシステムを維持しながら、より速いssdから(そしてそのように構成されている場合は書き込まれ)読み取られます。