web-dev-qa-db-ja.com

mdadmとLVMを使用したフラッシュキャッシュ

LVMとmdadmを備えたシステムでフラッシュキャッシュを設定するのに問題があります。明らかなステップがないか、マッピングが間違っているのではないかと思います。誰かが私を正しい方向に向けてくれることを望んでいますか?

システム情報:

CentOS 6.464ビット

mdadm config

md0 : active raid1 sdd3[2] sde3[3] sdf3[4] sdg3[5] sdh3[1] sda3[0]
      204736 blocks super 1.0 [6/6] [UUUUUU]


md2 : active raid6 sdd5[2] sde5[3] sdf5[4] sdg5[5] sdh5[1] sda5[0]
      3794905088 blocks super 1.1 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]


md3 : active raid0 sdc1[1] sdb1[0]
      250065920 blocks super 1.1 512k chunks


md1 : active raid10 sdh1[1] sda1[0] sdd1[2] sdf1[4] sdg1[5] sde1[3]
      76749312 blocks super 1.1 512K chunks 2 near-copies [6/6] [UUUUUU]

pcsvan

PV /dev/mapper/ssdcache   VG Xenvol   lvm2 [3.53 TiB / 3.53 TiB free]
Total: 1 [3.53 TiB] / in use: 1 [3.53 TiB] / in no VG: 0 [0   ]

使用されるflashcachecreateコマンド:

flashcache_create -p back ssdcache /dev/md3 /dev/md2

pvdisplay

--- Physical volume ---
PV Name               /dev/mapper/ssdcache
VG Name               Xenvol
PV Size               3.53 TiB / not usable 106.00 MiB
Allocatable           yes
PE Size               128.00 MiB
Total PE              28952
Free PE               28912
Allocated PE          40
PV UUID               w0ENVR-EjvO-gAZ8-TQA1-5wYu-ISOk-pJv7LV

vgdisplay

--- Volume group ---
VG Name               Xenvol
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  2
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                1
Act PV                1
VG Size               3.53 TiB
PE Size               128.00 MiB
Total PE              28952
Alloc PE / Size       40 / 5.00 GiB
Free  PE / Size       28912 / 3.53 TiB
VG UUID               7vfKWh-ENPb-P8dV-jVlb-kP0o-1dDd-N8zzYj

それが私が今いるところです、しかし私はそれが行われた仕事だと思いました、しかしテストと呼ばれる論理ボリュームを作成してそれをマウントするとき/ mnt/testは哀れです、60 ish MB/s

/ dev/md3にはRaid0に2x SSDがあり、単独で約800 MB/sのシーケンシャル書き込みで実行されています。raid6に6 x1TBドライブである/ dev/md2をキャッシュしようとしています。

私は一日を通して多くのページを読みました、そしてそれらのいくつかはここにあります、キャッシュが機能していないことは結果から明らかですが、私は理由がわかりません。

Lvm.confにフィルター行を追加しました

filter = [ "r|/dev/sdb|", "r|/dev/sdc|", "r|/dev/md3|" ]

それはおそらくばかげたものですが、キャッシュは明らかに書き込みを実行していないので、マッピングしていないか、キャッシュを正しくマウントしていないと思われます。

dmsetupステータス

ssdcache: 0 7589810176 flashcache stats:
    reads(142), writes(0)
    read hits(133), read hit percent(93)
    write hits(0) write hit percent(0)
    dirty write hits(0) dirty write hit percent(0)
    replacement(0), write replacement(0)
    write invalidates(0), read invalidates(0)
    pending enqueues(0), pending inval(0)
    metadata dirties(0), metadata cleans(0)
    metadata batch(0) metadata ssd writes(0)
    cleanings(0) fallow cleanings(0)
    no room(0) front merge(0) back merge(0)
    force_clean_block(0)
    disk reads(9), disk writes(0) ssd reads(133) ssd writes(9)
    uncached reads(0), uncached writes(0), uncached IO requeue(0)
    disk read errors(0), disk write errors(0) ssd read errors(0) ssd write errors(0)
    uncached sequential reads(0), uncached sequential writes(0)
    pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)
    lru hot blocks(31136000), lru warm blocks(31136000)
    lru promotions(0), lru demotions(0)
Xenvol-test: 0 10485760 linear

私は私が考えることができる限り多くの情報を含めました、どんな返事も楽しみにしています。

3
Backtogeek

/ dev/md2がlvm.confによって無効にされていないことがわかりますが、無効になっているはずです。

このような複雑なセットアップでは、LVMデバイスを明示的に追加し、他のすべてのデバイスを無効にする方がよいと思います。

_filter = [ "...", "a|/dev/md0|", "a|/dev/md1|", "a|/dev/mapper/ssdcache|", "r|.*|" ]
_

さらに、iostatを使用して、実際のデバイスアクティビティを監視できます。

PS:

ドライブが非常に多くの異なるRAIDに参加する多くのパーティションに分割されているクレイジーなストレージレイアウトについて、私は非常に悲観的です。

システム{RAID1 (/dev/ssd1p1+/dev/ssd2p1)}
そして
データ{RAID10 (6 whole drives) + flashcache on RAID1 (/dev/ssd1p2+/dev/ssd2p2)}

-はるかに魅力的です:)。

PD:
またはさらに良い:

SSD全体のRAID1:フラッシュキャッシュのシステムとパーティション
そして
HDD全体のRAID10/6 +フラッシュキャッシュ

1
Veniamin